Commit 575cb4b4 authored by salix5's avatar salix5 Committed by GitHub

Update Union monsters (#1423)

* CheckUnionTarget()

* add EFFECT_UNION_LIMIT

Now union monsters will not have their own EFFECT_EQUIP_LIMIT effect.
EFFECT_EFFECT_LIMIT is gained in union equipping procedure.

* comment

* old union

* modern union
parent dba3aaaf
......@@ -42,7 +42,7 @@ function c11678191.initial_effect(c)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetCode(EFFECT_UNION_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c11678191.eqlimit)
c:RegisterEffect(e6)
......
......@@ -12,7 +12,7 @@ function c12079734.initial_effect(c)
c:RegisterEffect(e1)
end
function c12079734.filter1(c,ec)
return c:IsType(TYPE_UNION) and c:CheckEquipTarget(ec) and aux.CheckUnionEquip(c,ec)
return c:IsType(TYPE_UNION) and c:CheckUnionTarget(ec) and aux.CheckUnionEquip(c,ec)
end
function c12079734.filter2(c)
return c:IsFaceup() and c:IsRace(RACE_MACHINE) and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsAbleToDeck()
......
......@@ -17,7 +17,7 @@ function c12524259.tgfilter(c,tp)
and Duel.IsExistingMatchingCard(c12524259.eqfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,c,tp)
end
function c12524259.eqfilter(c,tc,tp)
return aux.CheckUnionEquip(c,tc) and c:CheckEquipTarget(tc) and c:IsType(TYPE_UNION)
return aux.CheckUnionEquip(c,tc) and c:CheckUnionTarget(tc) and c:IsType(TYPE_UNION)
and c:IsRace(RACE_MACHINE) and c:CheckUniqueOnField(tp) and not c:IsForbidden()
end
function c12524259.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
......
......@@ -42,7 +42,7 @@ function c12965761.initial_effect(c)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetCode(EFFECT_UNION_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(c12965761.eqlimit)
c:RegisterEffect(e5)
......
......@@ -42,7 +42,7 @@ function c19086954.initial_effect(c)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetCode(EFFECT_UNION_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c19086954.eqlimit)
c:RegisterEffect(e6)
......
--戦乙女の戦車
function c19190082.initial_effect(c)
aux.EnableUnionAttribute(c,c19190082.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(19190082,0))
......@@ -19,20 +20,6 @@ function c19190082.initial_effect(c)
e2:SetTarget(c19190082.sptg)
e2:SetOperation(c19190082.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c19190082.repval)
c:RegisterEffect(e3)
--eqlimit
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_EQUIP_LIMIT)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetValue(c19190082.eqlimit)
c:RegisterEffect(e4)
--atk up
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(19190082,2))
......@@ -81,9 +68,6 @@ function c19190082.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c19190082.repval(e,re,r,rp)
return r&(REASON_BATTLE+REASON_EFFECT)~=0
end
function c19190082.eqlimit(e,c)
return c:IsRace(RACE_FAIRY) or e:GetHandler():GetEquipTarget()==c
end
......
--強化支援メカ・ヘビーウェポン
function c23265594.initial_effect(c)
aux.EnableUnionAttribute(c,c23265594.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(23265594,0))
......@@ -31,20 +32,6 @@ function c23265594.initial_effect(c)
e4:SetCode(EFFECT_UPDATE_DEFENSE)
e4:SetValue(500)
c:RegisterEffect(e4)
--destroy sub
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_EQUIP)
e5:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e5:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e5:SetValue(1)
c:RegisterEffect(e5)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c23265594.eqlimit)
c:RegisterEffect(e6)
end
function c23265594.eqlimit(e,c)
return c:IsRace(RACE_MACHINE) or e:GetHandler():GetEquipTarget()==c
......
......@@ -14,7 +14,7 @@ function c26931058.filter1(c,tp)
and Duel.IsExistingMatchingCard(c26931058.filter2,tp,LOCATION_MZONE,0,1,c,c)
end
function c26931058.filter2(c,ec)
return c:IsFaceup() and ec:CheckEquipTarget(c) and aux.CheckUnionEquip(ec,c)
return c:IsFaceup() and ec:CheckUnionTarget(c) and aux.CheckUnionEquip(ec,c)
end
function c26931058.filter3(c,e,tp)
return c:IsFaceup() and c:IsHasEffect(EFFECT_UNION_STATUS) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
--A-アサルト・コア
function c30012506.initial_effect(c)
aux.EnableUnionAttribute(c,c30012506.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(30012506,0))
......@@ -19,13 +20,6 @@ function c30012506.initial_effect(c)
e2:SetTarget(c30012506.sptg)
e2:SetOperation(c30012506.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c30012506.repval)
c:RegisterEffect(e3)
--immune
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
......@@ -42,13 +36,6 @@ function c30012506.initial_effect(c)
e5:SetTarget(c30012506.thtg)
e5:SetOperation(c30012506.thop)
c:RegisterEffect(e5)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c30012506.eqlimit)
c:RegisterEffect(e6)
end
function c30012506.filter(c)
local ct1,ct2=c:GetUnionCount()
......@@ -87,9 +74,6 @@ function c30012506.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c30012506.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0 or bit.band(r,REASON_EFFECT)~=0
end
function c30012506.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:GetOwner()~=e:GetOwner()
and te:IsActiveType(TYPE_MONSTER)
......
......@@ -26,7 +26,7 @@ function c31768112.initial_effect(c)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetCondition(aux.IsUnionState)
e3:SetValue(1)
e3:SetValue(aux.UnionReplaceFilter)
c:RegisterEffect(e3)
--draw
local e4=Effect.CreateEffect(c)
......@@ -43,7 +43,7 @@ function c31768112.initial_effect(c)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetCode(EFFECT_UNION_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(c31768112.eqlimit)
c:RegisterEffect(e5)
......
--C-クラッシュ・ワイバーン
function c3405259.initial_effect(c)
aux.EnableUnionAttribute(c,c3405259.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(3405259,0))
......@@ -19,13 +20,6 @@ function c3405259.initial_effect(c)
e2:SetTarget(c3405259.sptg)
e2:SetOperation(c3405259.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c3405259.repval)
c:RegisterEffect(e3)
--immune
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
......@@ -42,13 +36,6 @@ function c3405259.initial_effect(c)
e5:SetTarget(c3405259.sptg2)
e5:SetOperation(c3405259.spop2)
c:RegisterEffect(e5)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c3405259.eqlimit)
c:RegisterEffect(e6)
end
function c3405259.filter(c)
local ct1,ct2=c:GetUnionCount()
......@@ -87,9 +74,6 @@ function c3405259.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c3405259.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0 or bit.band(r,REASON_EFFECT)~=0
end
function c3405259.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:GetOwner()~=e:GetOwner()
and te:IsActiveType(TYPE_TRAP)
......
--チューン・ナイト
function c38783169.initial_effect(c)
aux.EnableExtraDeckSummonCountLimit()
aux.EnableUnionAttribute(c,1)
--tuner
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(38783169,0))
......@@ -29,20 +30,6 @@ function c38783169.initial_effect(c)
e3:SetTarget(c38783169.sptg)
e3:SetOperation(c38783169.spop)
c:RegisterEffect(e3)
--destroy sub
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e4:SetValue(c38783169.repval)
c:RegisterEffect(e4)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(1)
c:RegisterEffect(e5)
end
function c38783169.tntg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not e:GetHandler():IsType(TYPE_TUNER) end
......@@ -131,6 +118,3 @@ function c38783169.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c38783169.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0 or bit.band(r,REASON_EFFECT)~=0
end
--運命の戦車
function c39299733.initial_effect(c)
aux.EnableUnionAttribute(c,c39299733.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(39299733,0))
......@@ -19,13 +20,6 @@ function c39299733.initial_effect(c)
e2:SetTarget(c39299733.sptg)
e2:SetOperation(c39299733.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c39299733.repval)
c:RegisterEffect(e3)
--direct attack
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_EQUIP)
......@@ -38,13 +32,6 @@ function c39299733.initial_effect(c)
e6:SetCondition(c39299733.rdcon)
e6:SetValue(aux.ChangeBattleDamage(1,HALF_DAMAGE))
c:RegisterEffect(e6)
--eqlimit
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_EQUIP_LIMIT)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetValue(c39299733.eqlimit)
c:RegisterEffect(e7)
end
function c39299733.filter(c)
local ct1,ct2=c:GetUnionCount()
......@@ -83,9 +70,6 @@ function c39299733.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c39299733.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0 or bit.band(r,REASON_EFFECT)~=0
end
function c39299733.rdcon(e)
local c=e:GetHandler():GetEquipTarget()
local tp=e:GetHandlerPlayer()
......
--強化支援メカ・ヘビーアーマー
function c39890958.initial_effect(c)
aux.EnableUnionAttribute(c,c39890958.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(39890958,0))
......@@ -19,13 +20,6 @@ function c39890958.initial_effect(c)
e2:SetTarget(c39890958.sptg)
e2:SetOperation(c39890958.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c39890958.repval)
c:RegisterEffect(e3)
--untargetable
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
......@@ -43,13 +37,6 @@ function c39890958.initial_effect(c)
e5:SetTarget(c39890958.sumtg)
e5:SetOperation(c39890958.sumop)
c:RegisterEffect(e5)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c39890958.eqlimit)
c:RegisterEffect(e6)
end
function c39890958.filter(c)
local ct1,ct2=c:GetUnionCount()
......@@ -88,9 +75,6 @@ function c39890958.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c39890958.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0 or bit.band(r,REASON_EFFECT)~=0
end
function c39890958.spfilter(c,e,tp)
return c:IsType(TYPE_UNION) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
......
--マシンナーズ・ギアフレーム
function c42940404.initial_effect(c)
aux.EnableUnionAttribute(c,c42940404.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(42940404,0))
......@@ -19,20 +20,6 @@ function c42940404.initial_effect(c)
e2:SetTarget(c42940404.sptg)
e2:SetOperation(c42940404.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c42940404.repval)
c:RegisterEffect(e3)
--eqlimit
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_EQUIP_LIMIT)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetValue(c42940404.eqlimit)
c:RegisterEffect(e4)
--search
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(42940404,2))
......@@ -43,9 +30,6 @@ function c42940404.initial_effect(c)
e5:SetOperation(c42940404.sop)
c:RegisterEffect(e5)
end
function c42940404.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end
function c42940404.eqlimit(e,c)
return c:IsRace(RACE_MACHINE) or e:GetHandler():GetEquipTarget()==c
end
......
......@@ -26,7 +26,7 @@ function c47228077.initial_effect(c)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetCondition(aux.IsUnionState)
e3:SetValue(1)
e3:SetValue(aux.UnionReplaceFilter)
c:RegisterEffect(e3)
--destroy
local e4=Effect.CreateEffect(c)
......@@ -43,7 +43,7 @@ function c47228077.initial_effect(c)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetCode(EFFECT_UNION_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(c47228077.eqlimit)
c:RegisterEffect(e5)
......
......@@ -47,7 +47,7 @@ function c47415292.initial_effect(c)
--eqlimit
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_EQUIP_LIMIT)
e7:SetCode(EFFECT_UNION_LIMIT)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetValue(c47415292.eqlimit)
c:RegisterEffect(e7)
......
......@@ -56,7 +56,7 @@ function c47693640.initial_effect(c)
--eqlimit
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_EQUIP_LIMIT)
e7:SetCode(EFFECT_UNION_LIMIT)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetValue(c47693640.eqlimit)
c:RegisterEffect(e7)
......
......@@ -26,14 +26,14 @@ function c48568432.initial_effect(c)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetCondition(aux.IsUnionState)
e3:SetValue(1)
e3:SetValue(aux.UnionReplaceFilter)
c:RegisterEffect(e3)
--eqlimit
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_EQUIP_LIMIT)
e4:SetCode(EFFECT_UNION_LIMIT)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetValue(aux.TargetBoolFunction(Card.IsRace,RACE_MACHINE))
e4:SetValue(c48568432.eqlimit)
c:RegisterEffect(e4)
--spsummon
local e5=Effect.CreateEffect(c)
......@@ -49,6 +49,9 @@ function c48568432.initial_effect(c)
c:RegisterEffect(e5)
end
c48568432.old_union=true
function c48568432.eqlimit(e,c)
return c:IsRace(RACE_MACHINE)
end
function c48568432.filter(c)
return c:IsFaceup() and c:IsRace(RACE_MACHINE) and c:GetUnionCount()==0
end
......
......@@ -38,7 +38,7 @@ function c57062206.initial_effect(c)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetCode(EFFECT_UNION_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c57062206.eqlimit)
c:RegisterEffect(e6)
......
......@@ -43,7 +43,7 @@ function c59364406.initial_effect(c)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetCode(EFFECT_UNION_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(c59364406.eqlimit)
c:RegisterEffect(e5)
......
......@@ -26,12 +26,12 @@ function c63676256.initial_effect(c)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetCondition(aux.IsUnionState)
e3:SetValue(1)
e3:SetValue(aux.UnionReplaceFilter)
c:RegisterEffect(e3)
--eqlimit
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_EQUIP_LIMIT)
e4:SetCode(EFFECT_UNION_LIMIT)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetValue(1)
c:RegisterEffect(e4)
......
--Z-メタル・キャタピラー
function c64500000.initial_effect(c)
aux.EnableUnionAttribute(c,c64500000.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(64500000,0))
......@@ -31,23 +32,6 @@ function c64500000.initial_effect(c)
e4:SetCode(EFFECT_UPDATE_DEFENSE)
e4:SetValue(600)
c:RegisterEffect(e4)
--destroy sub
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_EQUIP)
e5:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e5:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e5:SetValue(c64500000.repval)
c:RegisterEffect(e5)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c64500000.eqlimit)
c:RegisterEffect(e6)
end
function c64500000.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end
function c64500000.eqlimit(e,c)
return c:IsCode(62651957,65622692) or e:GetHandler():GetEquipTarget()==c
......
--Y-ドラゴン・ヘッド
function c65622692.initial_effect(c)
aux.EnableUnionAttribute(c,c65622692.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(65622692,0))
......@@ -31,23 +32,6 @@ function c65622692.initial_effect(c)
e4:SetCode(EFFECT_UPDATE_DEFENSE)
e4:SetValue(400)
c:RegisterEffect(e4)
--destroy sub
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_EQUIP)
e5:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e5:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e5:SetValue(c65622692.repval)
c:RegisterEffect(e5)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c65622692.eqlimit)
c:RegisterEffect(e6)
end
function c65622692.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end
function c65622692.eqlimit(e,c)
return c:IsCode(62651957) or e:GetHandler():GetEquipTarget()==c
......
......@@ -40,7 +40,7 @@ function c65685470.initial_effect(c)
e5:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e5:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e5:SetCondition(aux.IsUnionState)
e5:SetValue(1)
e5:SetValue(aux.UnionReplaceFilter)
c:RegisterEffect(e5)
--draw
local e6=Effect.CreateEffect(c)
......@@ -57,7 +57,7 @@ function c65685470.initial_effect(c)
--eqlimit
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_EQUIP_LIMIT)
e7:SetCode(EFFECT_UNION_LIMIT)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetValue(c65685470.eqlimit)
c:RegisterEffect(e7)
......
......@@ -44,7 +44,7 @@ function c66399653.tgfilter(c,e,tp,chk)
end
function c66399653.cfilter(c,ec)
return c:IsRace(RACE_MACHINE) and c:IsAttribute(ATTRIBUTE_LIGHT)
and c:IsType(TYPE_UNION) and c:CheckEquipTarget(ec) and aux.CheckUnionEquip(c,ec) and not c:IsCode(ec:GetCode())
and c:IsType(TYPE_UNION) and c:CheckUnionTarget(ec) and aux.CheckUnionEquip(c,ec) and not c:IsCode(ec:GetCode())
end
function c66399653.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return eg:IsContains(chkc) and c66399653.tgfilter(chkc,e,tp,true) end
......
--アーマード・サイバーン
function c67159705.initial_effect(c)
aux.EnableUnionAttribute(c,c67159705.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(67159705,0))
......@@ -19,20 +20,6 @@ function c67159705.initial_effect(c)
e2:SetTarget(c67159705.sptg)
e2:SetOperation(c67159705.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(1)
c:RegisterEffect(e3)
--eqlimit
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_EQUIP_LIMIT)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetValue(c67159705.eqlimit)
c:RegisterEffect(e4)
--destroy
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(67159705,2))
......@@ -45,9 +32,6 @@ function c67159705.initial_effect(c)
e5:SetOperation(c67159705.desop)
c:RegisterEffect(e5)
end
function c67159705.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0
end
function c67159705.eqlimit(e,c)
return c:IsCode(70095154) or aux.IsMaterialListCode(c,70095154) or e:GetHandler():GetEquipTarget()==c
end
......
......@@ -44,7 +44,7 @@ function c69456283.initial_effect(c)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetCode(EFFECT_UNION_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c69456283.eqlimit)
c:RegisterEffect(e6)
......
--比翼レンリン
function c70298454.initial_effect(c)
aux.EnableUnionAttribute(c,1)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(70298454,0))
......@@ -19,13 +20,6 @@ function c70298454.initial_effect(c)
e2:SetTarget(c70298454.sptg)
e2:SetOperation(c70298454.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c70298454.repval)
c:RegisterEffect(e3)
--change atk
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
......@@ -38,13 +32,6 @@ function c70298454.initial_effect(c)
e5:SetCode(EFFECT_EXTRA_ATTACK)
e5:SetValue(1)
c:RegisterEffect(e5)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(1)
c:RegisterEffect(e6)
end
function c70298454.filter(c)
local ct1,ct2=c:GetUnionCount()
......@@ -86,6 +73,3 @@ function c70298454.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(c,REASON_RULE)
end
end
function c70298454.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end
......@@ -38,7 +38,7 @@ function c7369217.initial_effect(c)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetCode(EFFECT_UNION_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(1)
c:RegisterEffect(e6)
......
--B-バスター・ドレイク
function c77411244.initial_effect(c)
aux.EnableUnionAttribute(c,c77411244.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(77411244,0))
......@@ -19,13 +20,6 @@ function c77411244.initial_effect(c)
e2:SetTarget(c77411244.sptg)
e2:SetOperation(c77411244.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c77411244.repval)
c:RegisterEffect(e3)
--immune
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
......@@ -42,13 +36,6 @@ function c77411244.initial_effect(c)
e5:SetTarget(c77411244.thtg)
e5:SetOperation(c77411244.thop)
c:RegisterEffect(e5)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c77411244.eqlimit)
c:RegisterEffect(e6)
end
function c77411244.filter(c)
local ct1,ct2=c:GetUnionCount()
......@@ -87,9 +74,6 @@ function c77411244.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c77411244.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end
function c77411244.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:GetOwner()~=e:GetOwner()
and te:IsActiveType(TYPE_SPELL)
......
--マシンナーズ・ピースキーパー
function c78349103.initial_effect(c)
aux.EnableUnionAttribute(c,c78349103.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(78349103,0))
......@@ -19,20 +20,6 @@ function c78349103.initial_effect(c)
e2:SetTarget(c78349103.sptg)
e2:SetOperation(c78349103.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c78349103.repval)
c:RegisterEffect(e3)
--eqlimit
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_EQUIP_LIMIT)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetValue(c78349103.eqlimit)
c:RegisterEffect(e4)
--search
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(78349103,2))
......@@ -45,9 +32,6 @@ function c78349103.initial_effect(c)
e5:SetOperation(c78349103.sop)
c:RegisterEffect(e5)
end
function c78349103.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end
function c78349103.eqlimit(e,c)
return c:IsRace(RACE_MACHINE) or e:GetHandler():GetEquipTarget()==c
end
......
--トルクチューン・ギア
function c79538761.initial_effect(c)
aux.EnableUnionAttribute(c,1)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(79538761,0))
......@@ -19,13 +20,6 @@ function c79538761.initial_effect(c)
e2:SetTarget(c79538761.sptg)
e2:SetOperation(c79538761.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c79538761.repval)
c:RegisterEffect(e3)
--add type
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
......@@ -44,13 +38,6 @@ function c79538761.initial_effect(c)
e6:SetCode(EFFECT_UPDATE_DEFENSE)
e6:SetValue(500)
c:RegisterEffect(e6)
--eqlimit
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_EQUIP_LIMIT)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetValue(1)
c:RegisterEffect(e7)
end
function c79538761.filter(c)
local ct1,ct2=c:GetUnionCount()
......@@ -89,6 +76,3 @@ function c79538761.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c79538761.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end
--奇動装置メイルファクター
function c81951640.initial_effect(c)
aux.EnableUnionAttribute(c,1)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(81951640,0))
......@@ -19,13 +20,6 @@ function c81951640.initial_effect(c)
e2:SetTarget(c81951640.sptg)
e2:SetOperation(c81951640.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c81951640.repval)
c:RegisterEffect(e3)
--spsummon
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(81951640,2))
......@@ -38,13 +32,6 @@ function c81951640.initial_effect(c)
e4:SetTarget(c81951640.tg)
e4:SetOperation(c81951640.op)
c:RegisterEffect(e4)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(1)
c:RegisterEffect(e5)
end
function c81951640.filter(c)
local ct1,ct2=c:GetUnionCount()
......@@ -83,9 +70,6 @@ function c81951640.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c81951640.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0 or bit.band(r,REASON_EFFECT)~=0
end
function c81951640.con(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_DESTROY) and c:GetPreviousLocation()==LOCATION_SZONE and not c:IsReason(REASON_LOST_TARGET)
......
......@@ -26,7 +26,7 @@ function c84313685.initial_effect(c)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetCondition(aux.IsUnionState)
e3:SetValue(1)
e3:SetValue(aux.UnionReplaceFilter)
c:RegisterEffect(e3)
--special summon
local e4=Effect.CreateEffect(c)
......@@ -43,7 +43,7 @@ function c84313685.initial_effect(c)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetCode(EFFECT_UNION_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(c84313685.eqlimit)
c:RegisterEffect(e5)
......
......@@ -54,7 +54,7 @@ function c84814897.initial_effect(c)
--eqlimit
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_EQUIP_LIMIT)
e7:SetCode(EFFECT_UNION_LIMIT)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e7:SetValue(c84814897.eqlimit)
c:RegisterEffect(e7)
......
......@@ -43,7 +43,7 @@ function c85359414.initial_effect(c)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetCode(EFFECT_UNION_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(c85359414.eqlimit)
c:RegisterEffect(e5)
......
......@@ -45,7 +45,7 @@ function c87564935.initial_effect(c)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetCode(EFFECT_UNION_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(1)
c:RegisterEffect(e6)
......
......@@ -43,7 +43,7 @@ function c87798440.initial_effect(c)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetCode(EFFECT_UNION_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(c87798440.eqlimit)
c:RegisterEffect(e5)
......
......@@ -14,7 +14,7 @@ function c91597389.filter(c,tp)
return c:IsType(TYPE_UNION) and Duel.IsExistingMatchingCard(c91597389.filter2,tp,LOCATION_MZONE,0,1,nil,c)
end
function c91597389.filter2(c,eqc)
return c:IsFaceup() and eqc:CheckEquipTarget(c) and aux.CheckUnionEquip(eqc,c)
return c:IsFaceup() and eqc:CheckUnionTarget(c) and aux.CheckUnionEquip(eqc,c)
end
function c91597389.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c91597389.filter(chkc,tp) end
......
--W-ウィング・カタパルト
function c96300057.initial_effect(c)
aux.EnableUnionAttribute(c,c96300057.eqlimit)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(96300057,0))
......@@ -31,23 +32,6 @@ function c96300057.initial_effect(c)
e4:SetCode(EFFECT_UPDATE_DEFENSE)
e4:SetValue(400)
c:RegisterEffect(e4)
--destroy sub
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_EQUIP)
e5:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e5:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e5:SetValue(c96300057.repval)
c:RegisterEffect(e5)
--eqlimit
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_EQUIP_LIMIT)
e6:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e6:SetValue(c96300057.eqlimit)
c:RegisterEffect(e6)
end
function c96300057.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end
function c96300057.eqlimit(e,c)
return c:IsCode(51638941) or e:GetHandler():GetEquipTarget()==c
......
--ユニオン・ドライバー
function c99249638.initial_effect(c)
aux.EnableUnionAttribute(c,1)
--equip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(99249638,0))
......@@ -19,13 +20,6 @@ function c99249638.initial_effect(c)
e2:SetTarget(c99249638.sptg)
e2:SetOperation(c99249638.spop)
c:RegisterEffect(e2)
--destroy sub
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e3:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e3:SetValue(c99249638.repval)
c:RegisterEffect(e3)
--reequip
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(99249638,2))
......@@ -37,13 +31,6 @@ function c99249638.initial_effect(c)
e4:SetTarget(c99249638.retg)
e4:SetOperation(c99249638.reop)
c:RegisterEffect(e4)
--eqlimit
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EQUIP_LIMIT)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetValue(1)
c:RegisterEffect(e5)
end
function c99249638.filter(c)
local ct1,ct2=c:GetUnionCount()
......@@ -82,9 +69,6 @@ function c99249638.spop(e,tp,eg,ep,ev,re,r,rp)
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)
end
function c99249638.repval(e,re,r,rp)
return bit.band(r,REASON_BATTLE)~=0 or bit.band(r,REASON_EFFECT)~=0
end
function c99249638.recost(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=e:GetHandler():GetEquipTarget()
e:SetLabelObject(tc)
......@@ -92,7 +76,7 @@ function c99249638.recost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
end
function c99249638.refilter(c,tc,tp)
return aux.CheckUnionEquip(c,tc) and c:CheckEquipTarget(tc) and c:IsType(TYPE_UNION)
return aux.CheckUnionEquip(c,tc) and c:CheckUnionTarget(tc) and c:IsType(TYPE_UNION)
and c:IsLevelBelow(4) and c:CheckUniqueOnField(tp) and not c:IsForbidden()
end
function c99249638.retg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -372,6 +372,7 @@ EFFECT_DIRECT_ATTACK =74 --可以直接攻击
EFFECT_DUAL_STATUS =75 --二重状态
EFFECT_EQUIP_LIMIT =76 --装备对象限制
EFFECT_DUAL_SUMMONABLE =77 --可以再度召唤
EFFECT_UNION_LIMIT =78 --
EFFECT_REVERSE_DAMAGE =80 --伤害变回复
EFFECT_REVERSE_RECOVER =81 --回复变伤害
EFFECT_CHANGE_DAMAGE =82 --改变伤害数值
......
......@@ -191,7 +191,16 @@ function Auxiliary.IsUnionState(effect)
local c=effect:GetHandler()
return c:IsHasEffect(EFFECT_UNION_STATUS)
end
--set EFFECT_EQUIP_LIMIT after equipping
function Auxiliary.SetUnionState(c)
local eset={c:IsHasEffect(EFFECT_UNION_LIMIT)}
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_EQUIP_LIMIT)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e0:SetValue(eset[1]:GetValue())
e0:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UNION_STATUS)
......@@ -209,6 +218,28 @@ function Auxiliary.CheckUnionEquip(uc,tc)
if uc.old_union then return ct1==0
else return ct2==0 end
end
--EFFECT_DESTROY_SUBSTITUTE filter for modern union monsters
function Auxiliary.UnionReplaceFilter(e,re,r,rp)
return r&(REASON_BATTLE+REASON_EFFECT)~=0
end
--add effect to modern union monsters
function Auxiliary.EnableUnionAttribute(c,f)
--destroy sub
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_EQUIP)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_DESTROY_SUBSTITUTE)
e1:SetCondition(aux.IsUnionState)
e1:SetValue(aux.UnionReplaceFilter)
c:RegisterEffect(e1)
--limit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UNION_LIMIT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(f)
c:RegisterEffect(e2)
end
function Auxiliary.TargetEqualFunction(f,value,...)
local ext_params={...}
return function(effect,target)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment