Commit b6d052ca authored by DailyShana's avatar DailyShana

fix

parent a715903e
...@@ -10,14 +10,6 @@ function c18013090.initial_effect(c) ...@@ -10,14 +10,6 @@ function c18013090.initial_effect(c)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetOperation(c18013090.atop1) e1:SetOperation(c18013090.atop1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_DAMAGE_CALCULATING)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetCondition(c18013090.atcon2)
e2:SetOperation(c18013090.atop2)
c:RegisterEffect(e2)
--chain attack --chain attack
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(18013090,0)) e3:SetDescription(aux.Stringid(18013090,0))
...@@ -37,20 +29,20 @@ end ...@@ -37,20 +29,20 @@ end
function c18013090.atop1(e,tp,eg,ep,ev,re,r,rp) function c18013090.atop1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp or ep~=tp then return end if Duel.GetTurnPlayer()~=tp or ep~=tp then return end
if not re:IsHasType(EFFECT_TYPE_ACTIVATE) or not re:IsActiveType(TYPE_SPELL) then return end if not re:IsHasType(EFFECT_TYPE_ACTIVATE) or not re:IsActiveType(TYPE_SPELL) then return end
e:GetHandler():RegisterFlagEffect(18013090,RESET_EVENT+0x2fe0000+RESET_PHASE+PHASE_END,0,1)
end
function c18013090.atcon2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return c==Duel.GetAttacker() and c:GetFlagEffect(18013090)~=0 local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(c18013090.atkcon)
e2:SetValue(1000)
e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_DAMAGE_CAL+PHASE_END)
c:RegisterEffect(e2)
end end
function c18013090.atop2(e,tp,eg,ep,ev,re,r,rp) function c18013090.atkcon(e)
local c=e:GetHandler() local c=e:GetHandler()
local e1=Effect.CreateEffect(c) return c==Duel.GetAttacker()
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetValue(1000)
c:RegisterEffect(e1)
end end
function c18013090.cacon(e,tp,eg,ep,ev,re,r,rp) function c18013090.cacon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -18,10 +18,13 @@ function c20457551.initial_effect(c) ...@@ -18,10 +18,13 @@ function c20457551.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--atk down --atk down
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_DAMAGE_CALCULATING) e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_SZONE) e3:SetRange(LOCATION_SZONE)
e3:SetOperation(c20457551.atkdown) e3:SetTargetRange(0,LOCATION_MZONE)
e3:SetCondition(c20457551.atkcon)
e3:SetTarget(c20457551.atktg)
e3:SetValue(c20457551.atkval)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--destroy sub --destroy sub
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
...@@ -51,18 +54,15 @@ function c20457551.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -51,18 +54,15 @@ function c20457551.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Equip(tp,c,tc) Duel.Equip(tp,c,tc)
end end
end end
function c20457551.atkdown(e,tp,eg,ep,ev,re,r,rp) function c20457551.atkcon(e)
local eqc=e:GetHandler():GetEquipTarget() return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL
if Duel.GetAttacker()~=eqc and Duel.GetAttackTarget()~=eqc then return end and e:GetHandler():GetEquipTarget():GetBattleTarget()
local tc=eqc:GetBattleTarget() end
if tc then function c20457551.atktg(e,c)
local e1=Effect.CreateEffect(e:GetHandler()) return c==e:GetHandler():GetEquipTarget():GetBattleTarget()
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_UPDATE_ATTACK) function c20457551.atkval(e,c)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL) return e:GetHandler():GetEquipTarget():GetLevel()*-100
e1:SetValue(-eqc:GetLevel()*100)
tc:RegisterEffect(e1)
end
end end
function c20457551.desreptg(e,tp,eg,ep,ev,re,r,rp,chk) function c20457551.desreptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCurrentPhase()==PHASE_END end if chk==0 then return Duel.GetCurrentPhase()==PHASE_END end
......
...@@ -11,10 +11,10 @@ function c242146.initial_effect(c) ...@@ -11,10 +11,10 @@ function c242146.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk up --atk up
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EVENT_DAMAGE_CALCULATING) e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_SZONE) e2:SetCondition(c242146.atkcon)
e2:SetOperation(c242146.atkup) e2:SetValue(1500)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--Equip limit --Equip limit
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
...@@ -37,16 +37,10 @@ function c242146.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -37,16 +37,10 @@ function c242146.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Equip(tp,e:GetHandler(),tc) Duel.Equip(tp,e:GetHandler(),tc)
end end
end end
function c242146.atkup(e,tp,eg,ep,ev,re,r,rp) function c242146.atkcon(e)
if Duel.GetCurrentPhase()~=PHASE_DAMAGE_CAL then return false end
local eqc=e:GetHandler():GetEquipTarget() local eqc=e:GetHandler():GetEquipTarget()
local a=Duel.GetAttacker() local a=Duel.GetAttacker()
local d=Duel.GetAttackTarget() local d=Duel.GetAttackTarget()
if d and a==eqc and d:GetBattlePosition()==POS_FACEDOWN_DEFENCE then return d and a==eqc and d:GetBattlePosition()==POS_FACEDOWN_DEFENCE
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetValue(1500)
a:RegisterEffect(e1)
end
end end
...@@ -22,11 +22,17 @@ function c25920413.initial_effect(c) ...@@ -22,11 +22,17 @@ function c25920413.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--atk def --atk def
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_DAMAGE_CALCULATING) e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetOperation(c25920413.adval) e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetCondition(c25920413.adcon)
e3:SetTarget(c25920413.adtg)
e3:SetValue(c25920413.adval)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e4)
end end
function c25920413.spfilter(c) function c25920413.spfilter(c)
return c:IsLevelBelow(3) and c:IsFaceup() and c:IsReleasable() return c:IsLevelBelow(3) and c:IsFaceup() and c:IsReleasable()
...@@ -61,22 +67,13 @@ function c25920413.ctop(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,22 +67,13 @@ function c25920413.ctop(e,tp,eg,ep,ev,re,r,rp)
c:AddCounter(0xe,1) c:AddCounter(0xe,1)
end end
end end
function c25920413.addown(c,e) function c25920413.adcon(e)
local e1=Effect.CreateEffect(e:GetHandler()) return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL and Duel.GetAttackTarget()
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_UPDATE_ATTACK) function c25920413.adtg(e,c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) local bc=c:GetBattleTarget()
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL) return bc and c:GetCounter(0xe)~=0 and bc:IsSetCard(0xc)
e1:SetValue(c:GetCounter(0xe)*-300)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e2)
end end
function c25920413.adval(e,tp,eg,ep,ev,re,r,rp) function c25920413.adval(e,c)
local a=Duel.GetAttacker() return c:GetCounter(0xe)*-300
local d=Duel.GetAttackTarget()
if not d then return end
if a:GetCounter(0xe)>0 and d:IsSetCard(0xc) then c25920413.addown(a,e) end
if d:GetCounter(0xe)>0 and a:IsSetCard(0xc) then c25920413.addown(d,e) end
end end
...@@ -5,21 +5,18 @@ function c37057012.initial_effect(c) ...@@ -5,21 +5,18 @@ function c37057012.initial_effect(c)
aux.AddFusionProcCodeRep(c,64268668,2,false,false) aux.AddFusionProcCodeRep(c,64268668,2,false,false)
--atk up --atk up
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EVENT_DAMAGE_CALCULATING) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c37057012.atkcon) e1:SetCondition(c37057012.atkcon)
e1:SetOperation(c37057012.atkop) e1:SetValue(c37057012.atkval)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c37057012.atkcon(e,tp,eg,ep,ev,re,r,rp) function c37057012.atkcon(e)
return e:GetHandler()==Duel.GetAttacker() and Duel.GetAttackTarget()~=nil return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL
and e:GetHandler()==Duel.GetAttacker() and Duel.GetAttackTarget()~=nil
end end
function c37057012.atkop(e,tp,eg,ep,ev,re,r,rp) function c37057012.atkval(e,c)
local bc=Duel.GetAttackTarget() return Duel.GetAttackTarget():GetAttack()/2
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetValue(bc:GetAttack()/2)
e:GetHandler():RegisterEffect(e1)
end end
...@@ -3,10 +3,12 @@ function c49217579.initial_effect(c) ...@@ -3,10 +3,12 @@ function c49217579.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
--atkup --atkup
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EVENT_DAMAGE_CALCULATING) e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c49217579.atkcon) e1:SetCondition(c49217579.atkcon)
e1:SetOperation(c49217579.atkop) e1:SetValue(c49217579.atkval)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--remove --remove
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -25,17 +27,11 @@ function c49217579.initial_effect(c) ...@@ -25,17 +27,11 @@ function c49217579.initial_effect(c)
e3:SetValue(aux.FALSE) e3:SetValue(aux.FALSE)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c49217579.atkcon(e,tp,eg,ep,ev,re,r,rp) function c49217579.atkcon(e)
return e:GetHandler():GetBattleTarget()~=nil return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL and e:GetHandler():GetBattleTarget()
end end
function c49217579.atkop(e,tp,eg,ep,ev,re,r,rp) function c49217579.atkval(e,c)
local tc=e:GetHandler():GetBattleTarget() return e:GetHandler():GetBattleTarget():GetBaseAttack()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetValue(tc:GetBaseAttack())
e:GetHandler():RegisterEffect(e1)
end end
function c49217579.rmcon(e,tp,eg,ep,ev,re,r,rp) function c49217579.rmcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetBattledGroupCount()>0 return e:GetHandler():GetBattledGroupCount()>0
......
...@@ -23,11 +23,17 @@ function c51192573.initial_effect(c) ...@@ -23,11 +23,17 @@ function c51192573.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--atk def --atk def
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_DAMAGE_CALCULATING) e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetOperation(c51192573.adval) e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetCondition(c51192573.adcon)
e3:SetTarget(c51192573.adtg)
e3:SetValue(c51192573.adval)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e4)
end end
function c51192573.otfilter(c,tp) function c51192573.otfilter(c,tp)
return c:GetOwner()==tp return c:GetOwner()==tp
...@@ -57,22 +63,13 @@ function c51192573.ctop(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,22 +63,13 @@ function c51192573.ctop(e,tp,eg,ep,ev,re,r,rp)
tc:AddCounter(0xe,1) tc:AddCounter(0xe,1)
end end
end end
function c51192573.addown(c,e) function c51192573.adcon(e)
local e1=Effect.CreateEffect(e:GetHandler()) return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL and Duel.GetAttackTarget()
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_UPDATE_ATTACK) function c51192573.adtg(e,c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) local bc=c:GetBattleTarget()
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL) return bc and c:GetCounter(0xe)~=0 and bc:IsSetCard(0xc)
e1:SetValue(c:GetCounter(0xe)*-300)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e2)
end end
function c51192573.adval(e,tp,eg,ep,ev,re,r,rp) function c51192573.adval(e,c)
local a=Duel.GetAttacker() return c:GetCounter(0xe)*-300
local d=Duel.GetAttackTarget()
if not d then return end
if a:GetCounter(0xe)>0 and d:IsSetCard(0xc) then c51192573.addown(a,e) end
if d:GetCounter(0xe)>0 and a:IsSetCard(0xc) then c51192573.addown(d,e) end
end end
...@@ -11,10 +11,10 @@ function c5183693.initial_effect(c) ...@@ -11,10 +11,10 @@ function c5183693.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk up --atk up
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EVENT_DAMAGE_CALCULATING) e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_SZONE) e2:SetCondition(c5183693.atkcon)
e2:SetOperation(c5183693.atkup) e2:SetValue(c5183693.atkval)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--Equip limit --Equip limit
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
...@@ -52,25 +52,15 @@ function c5183693.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -52,25 +52,15 @@ function c5183693.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Equip(tp,e:GetHandler(),tc) Duel.Equip(tp,e:GetHandler(),tc)
end end
end end
function c5183693.atkup(e,tp,eg,ep,ev,re,r,rp) function c5183693.atkcon(e)
if Duel.GetCurrentPhase()~=PHASE_DAMAGE_CAL then return false end
local eqc=e:GetHandler():GetEquipTarget() local eqc=e:GetHandler():GetEquipTarget()
local a=Duel.GetAttacker() local bc=eqc:GetBattleTarget()
local d=Duel.GetAttackTarget() return eqc:GetLevel()>0 and bc:GetLevel()>eqc:GetLevel()
if not d or (a~=eqc and d~=eqc) then return end end
local la=a:GetLevel() function c5183693.atkval(e,c)
local ld=d:GetLevel() local bc=c:GetBattleTarget()
if (a==eqc and ld<=la) or (d==eqc and la<=ld) then return end return (bc:GetLevel()-c:GetLevel())*500
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
if a==eqc then
e1:SetValue((ld-la)*500)
a:RegisterEffect(e1)
else
e1:SetValue((la-ld)*500)
d:RegisterEffect(e1)
end
end end
function c5183693.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) function c5183693.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeck() end if chk==0 then return e:GetHandler():IsAbleToDeck() end
......
...@@ -27,11 +27,17 @@ function c62437709.initial_effect(c) ...@@ -27,11 +27,17 @@ function c62437709.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--atk def --atk def
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EVENT_DAMAGE_CALCULATING) e4:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetOperation(c62437709.adval) e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e4:SetCondition(c62437709.adcon)
e4:SetTarget(c62437709.adtg)
e4:SetValue(c62437709.adval)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e5)
end end
function c62437709.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c62437709.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsFaceup() end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsFaceup() end
...@@ -63,22 +69,13 @@ function c62437709.drop(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,22 +69,13 @@ function c62437709.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM) local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT) Duel.Draw(p,d,REASON_EFFECT)
end end
function c62437709.addown(c,e) function c62437709.adcon(e)
local e1=Effect.CreateEffect(e:GetHandler()) return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL and Duel.GetAttackTarget()
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_UPDATE_ATTACK) function c62437709.adtg(e,c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) local bc=c:GetBattleTarget()
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL) return bc and c:GetCounter(0xe)~=0 and bc:IsSetCard(0xc)
e1:SetValue(c:GetCounter(0xe)*-300)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e2)
end end
function c62437709.adval(e,tp,eg,ep,ev,re,r,rp) function c62437709.adval(e,c)
local a=Duel.GetAttacker() return c:GetCounter(0xe)*-300
local d=Duel.GetAttackTarget()
if not d then return end
if a:GetCounter(0xe)>0 and d:IsSetCard(0xc) then c62437709.addown(a,e) end
if d:GetCounter(0xe)>0 and a:IsSetCard(0xc) then c62437709.addown(d,e) end
end end
...@@ -22,11 +22,17 @@ function c63253763.initial_effect(c) ...@@ -22,11 +22,17 @@ function c63253763.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--atk def --atk def
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EVENT_DAMAGE_CALCULATING) e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetOperation(c63253763.adval) e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetCondition(c63253763.adcon)
e3:SetTarget(c63253763.adtg)
e3:SetValue(c63253763.adval)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e4)
end end
function c63253763.spcon(e,c) function c63253763.spcon(e,c)
if c==nil then return true end if c==nil then return true end
...@@ -47,22 +53,13 @@ function c63253763.ctop(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,22 +53,13 @@ function c63253763.ctop(e,tp,eg,ep,ev,re,r,rp)
tc=g:GetNext() tc=g:GetNext()
end end
end end
function c63253763.addown(c,e) function c63253763.adcon(e)
local e1=Effect.CreateEffect(e:GetHandler()) return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL and Duel.GetAttackTarget()
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_UPDATE_ATTACK) function c63253763.adtg(e,c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) local bc=c:GetBattleTarget()
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL) return bc and c:GetCounter(0xe)~=0 and bc:IsSetCard(0xc)
e1:SetValue(c:GetCounter(0xe)*-300)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e2)
end end
function c63253763.adval(e,tp,eg,ep,ev,re,r,rp) function c63253763.adval(e,c)
local a=Duel.GetAttacker() return c:GetCounter(0xe)*-300
local d=Duel.GetAttackTarget()
if not d then return end
if a:GetCounter(0xe)>0 and d:IsSetCard(0xc) then c63253763.addown(a,e) end
if d:GetCounter(0xe)>0 and a:IsSetCard(0xc) then c63253763.addown(d,e) end
end end
...@@ -9,11 +9,17 @@ function c64160836.initial_effect(c) ...@@ -9,11 +9,17 @@ function c64160836.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk def --atk def
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_DAMAGE_CALCULATING) e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetOperation(c64160836.adval) e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetCondition(c64160836.adcon)
e2:SetTarget(c64160836.adtg)
e2:SetValue(c64160836.adval)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e3)
end end
function c64160836.ctop(e,tp,eg,ep,ev,re,r,rp) function c64160836.ctop(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst() local tc=eg:GetFirst()
...@@ -24,22 +30,13 @@ function c64160836.ctop(e,tp,eg,ep,ev,re,r,rp) ...@@ -24,22 +30,13 @@ function c64160836.ctop(e,tp,eg,ep,ev,re,r,rp)
tc=eg:GetNext() tc=eg:GetNext()
end end
end end
function c64160836.addown(c,e) function c64160836.adcon(e)
local e1=Effect.CreateEffect(e:GetHandler()) return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL and Duel.GetAttackTarget()
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_UPDATE_ATTACK) function c64160836.adtg(e,c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) local bc=c:GetBattleTarget()
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL) return bc and c:GetCounter(0xe)~=0 and bc:IsSetCard(0xc)
e1:SetValue(c:GetCounter(0xe)*-300)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e2)
end end
function c64160836.adval(e,tp,eg,ep,ev,re,r,rp) function c64160836.adval(e,c)
local a=Duel.GetAttacker() return c:GetCounter(0xe)*-300
local d=Duel.GetAttackTarget()
if not d then return end
if a:GetCounter(0xe)>0 and d:IsSetCard(0xc) then c64160836.addown(a,e) end
if d:GetCounter(0xe)>0 and a:IsSetCard(0xc) then c64160836.addown(d,e) end
end end
...@@ -39,13 +39,12 @@ function c6691855.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -39,13 +39,12 @@ function c6691855.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(500) e1:SetValue(500)
e1:SetReset(RESET_EVENT+0x1fe0000) e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--damage cal --def
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EVENT_PRE_DAMAGE_CALCULATE) e2:SetCode(EFFECT_UPDATE_DEFENCE)
e2:SetRange(LOCATION_SZONE) e2:SetCondition(c6691855.defcon)
e2:SetCondition(c6691855.damcon) e2:SetValue(c6691855.defval)
e2:SetOperation(c6691855.damop)
e2:SetReset(RESET_EVENT+0x1fe0000) e2:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--Equip limit --Equip limit
...@@ -58,17 +57,11 @@ function c6691855.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -58,17 +57,11 @@ function c6691855.operation(e,tp,eg,ep,ev,re,r,rp)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
end end
function c6691855.damcon(e,tp,eg,ep,ev,re,r,rp) function c6691855.defcon(e)
if Duel.GetCurrentPhase()~=PHASE_DAMAGE_CAL then return false end
local eq=e:GetHandler():GetEquipTarget() local eq=e:GetHandler():GetEquipTarget()
return eq:IsRelateToBattle() and eq:IsDefencePos() return (eq==Duel.GetAttacker() or eq==Duel.GetAttackTarget()) and eq:IsDefencePos()
end end
function c6691855.damop(e,tp,eg,ep,ev,re,r,rp) function c6691855.defval(e,c)
local c=e:GetHandler() return c:GetAttack()
local atk=c:GetEquipTarget():GetAttack()
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_UPDATE_DEFENCE)
e2:SetValue(atk)
e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_DAMAGE_CAL)
c:RegisterEffect(e2)
end end
...@@ -11,13 +11,6 @@ function c68540058.initial_effect(c) ...@@ -11,13 +11,6 @@ function c68540058.initial_effect(c)
e1:SetTarget(c68540058.target) e1:SetTarget(c68540058.target)
e1:SetOperation(c68540058.operation) e1:SetOperation(c68540058.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk up
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_DAMAGE_CALCULATING)
e2:SetRange(LOCATION_SZONE)
e2:SetOperation(c68540058.atkup)
c:RegisterEffect(e2)
end end
function c68540058.condition(e,tp,eg,ep,ev,re,r,rp) function c68540058.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()~=PHASE_DAMAGE or not Duel.IsDamageCalculated() return Duel.GetCurrentPhase()~=PHASE_DAMAGE or not Duel.IsDamageCalculated()
...@@ -57,17 +50,20 @@ function c68540058.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,17 +50,20 @@ function c68540058.operation(e,tp,eg,ep,ev,re,r,rp)
e3:SetValue(1) e3:SetValue(1)
e3:SetReset(RESET_EVENT+0x1fe0000) e3:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--atk up
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetCondition(c68540058.atkcon)
e4:SetValue(c68540058.atkval)
e4:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e4)
end end
end end
function c68540058.atkup(e,tp,eg,ep,ev,re,r,rp) function c68540058.atkcon(e)
local eqc=e:GetHandler():GetEquipTarget() return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL
local bc=eqc:GetBattleTarget() and Duel.GetAttacker()==e:GetHandler():GetEquipTarget() and Duel.GetAttackTarget()
if eqc==Duel.GetAttacker() and bc then end
local e1=Effect.CreateEffect(e:GetHandler()) function c68540058.atkval(e,c)
e1:SetType(EFFECT_TYPE_SINGLE) return Duel.GetAttackTarget():GetAttack()/2
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetValue(bc:GetAttack()/2)
eqc:RegisterEffect(e1)
end
end end
...@@ -14,11 +14,17 @@ function c91070115.initial_effect(c) ...@@ -14,11 +14,17 @@ function c91070115.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk def --atk def
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_DAMAGE_CALCULATING) e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetOperation(c91070115.adval) e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetCondition(c91070115.adcon)
e2:SetTarget(c91070115.adtg)
e2:SetValue(c91070115.adval)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e3)
end end
function c91070115.descost(e,tp,eg,ep,ev,re,r,rp,chk) function c91070115.descost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,0,1,0xe,1,REASON_COST) end if chk==0 then return Duel.IsCanRemoveCounter(tp,0,1,0xe,1,REASON_COST) end
...@@ -40,22 +46,13 @@ function c91070115.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -40,22 +46,13 @@ function c91070115.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(tc,REASON_EFFECT) Duel.Destroy(tc,REASON_EFFECT)
end end
end end
function c91070115.addown(c,e) function c91070115.adcon(e)
local e1=Effect.CreateEffect(e:GetHandler()) return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL and Duel.GetAttackTarget()
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_UPDATE_ATTACK) function c91070115.adtg(e,c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) local bc=c:GetBattleTarget()
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL) return bc and c:GetCounter(0xe)~=0 and bc:IsSetCard(0xc)
e1:SetValue(c:GetCounter(0xe)*-300)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e2)
end end
function c91070115.adval(e,tp,eg,ep,ev,re,r,rp) function c91070115.adval(e,c)
local a=Duel.GetAttacker() return c:GetCounter(0xe)*-300
local d=Duel.GetAttackTarget()
if not d then return end
if a:GetCounter(0xe)>0 and d:IsSetCard(0xc) then c91070115.addown(a,e) end
if d:GetCounter(0xe)>0 and a:IsSetCard(0xc) then c91070115.addown(d,e) end
end end
...@@ -11,11 +11,17 @@ function c98719226.initial_effect(c) ...@@ -11,11 +11,17 @@ function c98719226.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk def --atk def
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EVENT_DAMAGE_CALCULATING) e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetOperation(c98719226.adval) e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetCondition(c98719226.adcon)
e2:SetTarget(c98719226.adtg)
e2:SetValue(c98719226.adval)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e3)
end end
function c98719226.ctcon(e,tp,eg,ep,ev,re,r,rp) function c98719226.ctcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_GRAVE) and e:GetHandler():IsReason(REASON_BATTLE) return e:GetHandler():IsLocation(LOCATION_GRAVE) and e:GetHandler():IsReason(REASON_BATTLE)
...@@ -26,22 +32,13 @@ function c98719226.ctop(e,tp,eg,ep,ev,re,r,rp) ...@@ -26,22 +32,13 @@ function c98719226.ctop(e,tp,eg,ep,ev,re,r,rp)
tc:AddCounter(0xe,2) tc:AddCounter(0xe,2)
end end
end end
function c98719226.addown(c,e) function c98719226.adcon(e)
local e1=Effect.CreateEffect(e:GetHandler()) return Duel.GetCurrentPhase()==PHASE_DAMAGE_CAL and Duel.GetAttackTarget()
e1:SetType(EFFECT_TYPE_SINGLE) end
e1:SetCode(EFFECT_UPDATE_ATTACK) function c98719226.adtg(e,c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) local bc=c:GetBattleTarget()
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL) return bc and c:GetCounter(0xe)~=0 and bc:IsSetCard(0xc)
e1:SetValue(c:GetCounter(0xe)*-300)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENCE)
c:RegisterEffect(e2)
end end
function c98719226.adval(e,tp,eg,ep,ev,re,r,rp) function c98719226.adval(e,c)
local a=Duel.GetAttacker() return c:GetCounter(0xe)*-300
local d=Duel.GetAttackTarget()
if not d then return end
if a:GetCounter(0xe)>0 and d:IsSetCard(0xc) then c98719226.addown(a,e) end
if d:GetCounter(0xe)>0 and a:IsSetCard(0xc) then c98719226.addown(d,e) end
end end
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