Commit 4ee90111 authored by Chen Bill's avatar Chen Bill

fix: REASON_TEMPORARY remove

parent 459197a9
...@@ -38,7 +38,7 @@ end ...@@ -38,7 +38,7 @@ end
function c11954712.rmop(e,tp,eg,ep,ev,re,r,rp) function c11954712.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)==0 then return end if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY) e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
...@@ -49,6 +49,7 @@ function c11954712.rmop(e,tp,eg,ep,ev,re,r,rp) ...@@ -49,6 +49,7 @@ function c11954712.rmop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN) e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
end
end end
function c11954712.retcon(e,tp,eg,ep,ev,re,r,rp) function c11954712.retcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
......
...@@ -63,7 +63,7 @@ end ...@@ -63,7 +63,7 @@ end
function c21123811.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c21123811.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return c:IsAbleToRemoveAsCost() end if chk==0 then return c:IsAbleToRemoveAsCost() end
if Duel.Remove(c,0,REASON_COST+REASON_TEMPORARY)~=0 then if Duel.Remove(c,0,REASON_COST+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
......
...@@ -78,7 +78,7 @@ function c36016907.spop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -78,7 +78,7 @@ function c36016907.spop2(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e1,true) tc:RegisterEffect(e1,true)
if c:IsFaceup() and c:IsRelateToEffect(e) and c:IsAbleToRemove() then if c:IsFaceup() and c:IsRelateToEffect(e) and c:IsAbleToRemove() then
Duel.BreakEffect() Duel.BreakEffect()
if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_PHASE+PHASE_END) e2:SetCode(EVENT_PHASE+PHASE_END)
......
...@@ -73,8 +73,7 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp) ...@@ -73,8 +73,7 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
local fid=c:GetFieldID() local fid=c:GetFieldID()
if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)>0 then if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)>0 and c:GetOriginalCode()==id then
if c:IsLocation(LOCATION_REMOVED) then
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid) c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
...@@ -86,7 +85,6 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp) ...@@ -86,7 +85,6 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp)
e1:SetOperation(s.retop) e1:SetOperation(s.retop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end
if Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil,e,tp) if Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
......
...@@ -109,7 +109,7 @@ end ...@@ -109,7 +109,7 @@ end
function c40939228.negop(e,tp,eg,ep,ev,re,r,rp) function c40939228.negop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local fid=c:GetFieldID() local fid=c:GetFieldID()
if c:IsRelateToEffect(e) and Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:IsLocation(LOCATION_REMOVED) then if c:IsRelateToEffect(e) and Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
c:RegisterFlagEffect(40939228,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid) c:RegisterFlagEffect(40939228,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......
...@@ -29,8 +29,7 @@ function c41006930.rmtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -29,8 +29,7 @@ function c41006930.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c41006930.rmop(e,tp,eg,ep,ev,re,r,rp) function c41006930.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then if c:IsFaceup() and c:IsRelateToEffect(e) and Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
......
...@@ -40,7 +40,7 @@ end ...@@ -40,7 +40,7 @@ end
function c47349310.rmop(e,tp,eg,ep,ev,re,r,rp) function c47349310.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)==0 then return end if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY) e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
...@@ -51,6 +51,7 @@ function c47349310.rmop(e,tp,eg,ep,ev,re,r,rp) ...@@ -51,6 +51,7 @@ function c47349310.rmop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN) e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
end
end end
function c47349310.retcon(e,tp,eg,ep,ev,re,r,rp) function c47349310.retcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
......
...@@ -63,7 +63,7 @@ function c48285768.rmop(e,tp,eg,ep,ev,re,r,rp) ...@@ -63,7 +63,7 @@ function c48285768.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then if c:IsFaceup() and c:IsRelateToEffect(e) then
local ct=c:GetOverlayCount() local ct=c:GetOverlayCount()
Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY) if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
...@@ -72,6 +72,7 @@ function c48285768.rmop(e,tp,eg,ep,ev,re,r,rp) ...@@ -72,6 +72,7 @@ function c48285768.rmop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetOperation(c48285768.retop) e1:SetOperation(c48285768.retop)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end
if ct>=2 and Duel.IsExistingMatchingCard(c48285768.exfilter,tp,LOCATION_EXTRA,0,1,nil) if ct>=2 and Duel.IsExistingMatchingCard(c48285768.exfilter,tp,LOCATION_EXTRA,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(48285768,2)) then and Duel.SelectYesNo(tp,aux.Stringid(48285768,2)) then
Duel.BreakEffect() Duel.BreakEffect()
......
...@@ -82,7 +82,7 @@ function c55285840.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -82,7 +82,7 @@ function c55285840.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.RaiseSingleEvent(c,EVENT_DETACH_MATERIAL,e,0,0,0,0) Duel.RaiseSingleEvent(c,EVENT_DETACH_MATERIAL,e,0,0,0,0)
if sg:IsExists(Card.IsType,1,nil,TYPE_MONSTER) then if sg:IsExists(Card.IsType,1,nil,TYPE_MONSTER) then
Duel.BreakEffect() Duel.BreakEffect()
Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY) if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
...@@ -92,6 +92,7 @@ function c55285840.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -92,6 +92,7 @@ function c55285840.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetOperation(c55285840.retop) e1:SetOperation(c55285840.retop)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
end
if sg:IsExists(Card.IsType,1,nil,TYPE_SPELL) then if sg:IsExists(Card.IsType,1,nil,TYPE_SPELL) then
Duel.BreakEffect() Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
......
...@@ -95,7 +95,7 @@ function c62941499.rmtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -95,7 +95,7 @@ function c62941499.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c62941499.rmop(e,tp,eg,ep,ev,re,r,rp) function c62941499.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then if c:IsRelateToEffect(e) and Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetCode(EVENT_PHASE+PHASE_END)
......
...@@ -38,7 +38,7 @@ function c84747429.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -38,7 +38,7 @@ function c84747429.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) and Duel.Destroy(tc,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then if tc:IsFaceup() and tc:IsRelateToEffect(e) and Duel.Destroy(tc,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then
Duel.BreakEffect() Duel.BreakEffect()
if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)==0 then return end if Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 and c:GetOriginalCode()==id then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY) e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
...@@ -49,6 +49,7 @@ function c84747429.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -49,6 +49,7 @@ function c84747429.desop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN) e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
end
end end
function c84747429.retcon(e,tp,eg,ep,ev,re,r,rp) function c84747429.retcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp return Duel.GetTurnPlayer()==tp
......
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