Skip to content

Commit 94fb387

Browse files
authored
"Number 92: Heart-eartH Dragon (Anime)" fix
Use the card's placement timing as reference for the banishing rather than this card's Special Summon timing.
1 parent db18941 commit 94fb387

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

unofficial/c511000368.lua

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ function s.initial_effect(c)
3838
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
3939
e4:SetOperation(s.regop)
4040
c:RegisterEffect(e4)
41-
--Banish all cards placed on your opponent's field during the Standby Phase of the next turn after this card was Special Summoned
41+
--Any card placed on your opponent's field after this card was Special Summoned is banished during the Standby Phase of the next turn
4242
local e5=Effect.CreateEffect(c)
4343
e5:SetDescription(aux.Stringid(id,1))
4444
e5:SetCategory(CATEGORY_REMOVE)
4545
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
4646
e5:SetCode(EVENT_PHASE+PHASE_STANDBY)
4747
e5:SetRange(LOCATION_MZONE)
4848
e5:SetCountLimit(1)
49-
e5:SetCondition(function(e) return e:GetHandler():HasFlagEffect(id) and e:GetHandler():GetTurnID()~=Duel.GetTurnCount() end)
49+
e5:SetCondition(function(e) return e:GetHandler():HasFlagEffect(id) end)
5050
e5:SetTarget(s.rmtg)
5151
e5:SetOperation(s.rmop)
5252
c:RegisterEffect(e5)
@@ -113,8 +113,7 @@ function s.damval(e,re,val,r,rp,rc)
113113
end
114114
function s.regop(e,tp,eg,ep,ev,re,r,rp)
115115
local c=e:GetHandler()
116-
local reset_ct=Duel.GetCurrentPhase()<=PHASE_STANDBY and 2 or 1
117-
c:RegisterFlagEffect(id,RESET_EVENT|RESETS_STANDARD|RESET_PHASE|PHASE_STANDBY,0,reset_ct)
116+
c:RegisterFlagEffect(id,RESET_EVENT|RESETS_STANDARD,0,1)
118117
--Keep track of cards placed on your opponent's fiel after this card's Special Summon
119118
local e1=Effect.CreateEffect(c)
120119
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
@@ -129,19 +128,19 @@ function s.trackop(e,tp,eg,ep,ev,re,r,rp)
129128
local g=eg:Filter(Card.IsControler,nil,1-tp)
130129
local reset_ct=Duel.GetCurrentPhase()<=PHASE_STANDBY and 2 or 1
131130
for tc in g:Iter() do
132-
tc:RegisterFlagEffect(id,RESET_EVENT|RESETS_STANDARD|RESET_PHASE|PHASE_STANDBY,0,reset_ct)
131+
tc:RegisterFlagEffect(id+1,RESET_EVENT|RESETS_STANDARD|RESET_PHASE|PHASE_STANDBY,0,reset_ct,Duel.GetTurnCount()+1)
133132
end
134133
end
135-
function s.rmfilter(c,turn)
136-
return c:IsAbleToRemove() and c:HasFlagEffect(id)
134+
function s.rmfilter(c,turn_ct)
135+
return c:IsAbleToRemove() and c:HasFlagEffect(id+1) and c:GetFlagEffectLabel(id+1)==turn_ct
137136
end
138137
function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
139138
if chk==0 then return true end
140-
local g=Duel.GetMatchingGroup(s.rmfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,e:GetHandler())
139+
local g=Duel.GetMatchingGroup(s.rmfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,Duel.GetTurnCount())
141140
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,#g,tp,0)
142141
end
143142
function s.rmop(e,tp,eg,ep,ev,re,r,rp)
144-
local g=Duel.GetMatchingGroup(s.rmfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,e:GetHandler())
143+
local g=Duel.GetMatchingGroup(s.rmfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,Duel.GetTurnCount())
145144
if #g>0 then
146145
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
147146
end
@@ -152,10 +151,10 @@ function s.spcon(e,tp,eg,ep,ev,re,r,rp)
152151
end
153152
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
154153
local c=e:GetHandler()
155-
if chk==0 then return not c:HasFlagEffect(id+1)
154+
if chk==0 then return not c:HasFlagEffect(id+2)
156155
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
157156
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
158-
c:RegisterFlagEffect(id+1,(RESET_EVENT|RESETS_STANDARD|RESET_MSCHANGE)&~(RESET_TOFIELD|RESET_TOGRAVE|RESET_LEAVE|RESET_TURN_SET),EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,3))
157+
c:RegisterFlagEffect(id+2,(RESET_EVENT|RESETS_STANDARD|RESET_MSCHANGE)&~(RESET_TOFIELD|RESET_TOGRAVE|RESET_LEAVE|RESET_TURN_SET),EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,3))
159158
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,tp,0)
160159
end
161160
function s.spop(e,tp,eg,ep,ev,re,r,rp)

0 commit comments

Comments
 (0)