Commit e544b93a authored by salix5's avatar salix5 Committed by GitHub

fix EFFECT_SWAP_BASE_AD (#1790)

parent 93471152
...@@ -39,9 +39,16 @@ function c26775203.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -39,9 +39,16 @@ function c26775203.operation(e,tp,eg,ep,ev,re,r,rp)
end end
function c26775203.adchange(e,tp,eg,ep,ev,re,r,rp) function c26775203.adchange(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local batk=c:GetBaseAttack()
local bdef=c:GetBaseDefense()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SWAP_BASE_AD) e1:SetCode(EFFECT_SET_BASE_ATTACK_FINAL)
e1:SetValue(bdef)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_BASE_DEFENSE_FINAL)
e2:SetValue(batk)
c:RegisterEffect(e2)
end end
...@@ -27,6 +27,7 @@ function c44139064.initial_effect(c) ...@@ -27,6 +27,7 @@ function c44139064.initial_effect(c)
e3:SetCountLimit(1,44139065) e3:SetCountLimit(1,44139065)
e3:SetCondition(c44139064.atkcon) e3:SetCondition(c44139064.atkcon)
e3:SetCost(c44139064.atkcost) e3:SetCost(c44139064.atkcost)
e3:SetTarget(c44139064.atktg)
e3:SetOperation(c44139064.atkop) e3:SetOperation(c44139064.atkop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
Duel.AddCustomActivityCounter(44139064,ACTIVITY_SPSUMMON,c44139064.counterfilter) Duel.AddCustomActivityCounter(44139064,ACTIVITY_SPSUMMON,c44139064.counterfilter)
...@@ -96,14 +97,30 @@ function c44139064.atkcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -96,14 +97,30 @@ function c44139064.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function c44139064.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local a=Duel.GetAttacker()
if not a:IsControler(tp) then
a=Duel.GetAttackTarget()
end
Duel.SetTargetCard(a)
end
function c44139064.atkop(e,tp,eg,ep,ev,re,r,rp) function c44139064.atkop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetAttacker() local c=e:GetHandler()
if tc:IsControler(1-tp) then tc=Duel.GetAttackTarget() end local tg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
if tc:IsRelateToBattle() then local tc=tg:GetFirst()
local e1=Effect.CreateEffect(e:GetHandler()) if tc:IsRelateToBattle() and tc:IsControler(1-tp) then
local batk=tc:GetBaseAttack()
local bdef=tc:GetBaseDefense()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SWAP_BASE_AD) e1:SetCode(EFFECT_SET_BASE_ATTACK_FINAL)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE) e1:SetValue(bdef)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_DAMAGE_CAL)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_BASE_DEFENSE_FINAL)
e2:SetValue(batk)
tc:RegisterEffect(e2)
end end
end end
...@@ -23,11 +23,18 @@ function c52097679.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -23,11 +23,18 @@ function c52097679.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=sg:GetFirst() local tc=sg:GetFirst()
while tc do while tc do
local batk=tc:GetBaseAttack()
local bdef=tc:GetBaseDefense()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SWAP_BASE_AD) e1:SetCode(EFFECT_SET_BASE_ATTACK_FINAL)
e1:SetValue(bdef)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_BASE_DEFENSE_FINAL)
e2:SetValue(batk)
tc:RegisterEffect(e2)
tc=sg:GetNext() tc=sg:GetNext()
end end
end end
...@@ -23,12 +23,20 @@ function c73648243.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -23,12 +23,20 @@ function c73648243.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c73648243.spop(e,tp,eg,ep,ev,re,r,rp) function c73648243.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local batk=c:GetBaseAttack()
local bdef=c:GetBaseDefense()
if c:IsRelateToEffect(e) and Duel.SpecialSummonStep(c,0,tp,tp,false,false,POS_FACEUP) then if c:IsRelateToEffect(e) and Duel.SpecialSummonStep(c,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SWAP_BASE_AD) e1:SetCode(EFFECT_SET_BASE_ATTACK)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetValue(bdef)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_BASE_DEFENSE)
e2:SetValue(batk)
c:RegisterEffect(e2)
end end
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
end end
...@@ -41,12 +41,21 @@ function c92736188.adtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -41,12 +41,21 @@ function c92736188.adtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.SelectTarget(tp,c92736188.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil) Duel.SelectTarget(tp,c92736188.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
end end
function c92736188.adop(e,tp,eg,ep,ev,re,r,rp) function c92736188.adop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() and tc:IsAttribute(ATTRIBUTE_EARTH) then if tc:IsRelateToEffect(e) and tc:IsFaceup() and tc:IsAttribute(ATTRIBUTE_EARTH) then
local e1=Effect.CreateEffect(e:GetHandler()) local batk=tc:GetBaseAttack()
local bdef=tc:GetBaseDefense()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SWAP_BASE_AD) e1:SetCode(EFFECT_SET_BASE_ATTACK_FINAL)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetValue(bdef)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_BASE_DEFENSE_FINAL)
e2:SetValue(batk)
tc:RegisterEffect(e2)
end 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