Skip to content

Commit 0e8a475

Browse files
committed
fixed Time Machine
fixed interaction with Maximum Mode monsters and multiple Time Machines
1 parent f3016bb commit 0e8a475

2 files changed

Lines changed: 22 additions & 8 deletions

File tree

proc_maximum.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ function Maximum.Operation(mats)
133133
--side
134134
for tc in aux.Next(tg) do
135135
tc:RegisterFlagEffect(FLAG_MAXIMUM_SIDE,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD,0,1)
136-
tc:RegisterFlagEffect(FLAG_MAXIMUM_SIDE_PREONFIELD,RESET_EVENT+RESETS_STANDARD-RESET_TOGRAVE-RESET_LEAVE,0,1)
136+
tc:RegisterFlagEffect(FLAG_MAXIMUM_SIDE_PREONFIELD,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD-RESET_TOGRAVE-RESET_LEAVE,0,1)
137137
tc:RegisterFlagEffect(FLAG_MAXIMUM_SIDE_RELATION+c:GetCardID(),RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD-RESET_TOGRAVE-RESET_LEAVE,0,1)
138138
end
139139
g=Duel.GetFieldGroup(tp,LOCATION_MZONE,0)

rush/c160019058.lua

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,29 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
2929
local tc=eg:GetFirst()
3030
if tc:WasMaximumMode() then
3131
Duel.SpecialSummon(tc,0,tp,tc:GetPreviousControler(),false,false,tc:GetPreviousPosition(),0x4)
32+
tc:RegisterFlagEffect(FLAG_MAXIMUM_CENTER_PREONFIELD,RESET_EVENT+RESETS_STANDARD-RESET_TOGRAVE-RESET_LEAVE,0,1)
3233
tc:RegisterFlagEffect(FLAG_MAXIMUM_CENTER,RESET_EVENT|RESETS_STANDARD&~RESET_TOFIELD,0,1)
33-
local maxg=Duel.GetMatchingGroup(s.maxfilter,tc:GetPreviousControler(),LOCATION_GRAVE,0,nil,tc)
34-
for maxc in maxg:Iter() do
35-
local zone=0x8
36-
if maxc.MaximumSide=="Left" then zone=0x2 end
37-
maxc:RegisterFlagEffect(FLAG_MAXIMUM_SIDE,RESET_EVENT|RESETS_STANDARD&~RESET_TOFIELD,0,1)
38-
Duel.MoveToField(maxc,tc:GetPreviousControler(),tc:GetPreviousControler(),LOCATION_MZONE,POS_FACEUP_ATTACK,true,zone)
39-
end
34+
local e1=Effect.CreateEffect(e:GetHandler())
35+
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
36+
e1:SetCode(EVENT_CHAIN_END)
37+
e1:SetLabelObject(tc)
38+
e1:SetOperation(s.desop)
39+
e1:SetReset(RESET_PHASE+PHASE_END)
40+
Duel.RegisterEffect(e1,tp)
4041
else
4142
Duel.SpecialSummon(tc,0,tp,tc:GetPreviousControler(),false,false,tc:GetPreviousPosition())
4243
end
44+
end
45+
function s.desop(e,tp,eg,ep,ev,re,r,rp)
46+
local tc=e:GetLabelObject()
47+
local maxg=Duel.GetMatchingGroup(s.maxfilter,tc:GetPreviousControler(),LOCATION_GRAVE,0,nil,tc)
48+
for maxc in maxg:Iter() do
49+
local zone=0x8
50+
if maxc.MaximumSide=="Left" then zone=0x2 end
51+
maxc:RegisterFlagEffect(FLAG_MAXIMUM_SIDE_PREONFIELD,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD-RESET_TOGRAVE-RESET_LEAVE,0,1)
52+
maxc:RegisterFlagEffect(FLAG_MAXIMUM_SIDE_RELATION+tc:GetCardID(),RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD-RESET_TOGRAVE-RESET_LEAVE,0,1)
53+
maxc:RegisterFlagEffect(FLAG_MAXIMUM_SIDE,RESET_EVENT|RESETS_STANDARD&~RESET_TOFIELD,0,1)
54+
Duel.MoveToField(maxc,tc:GetPreviousControler(),tc:GetPreviousControler(),LOCATION_MZONE,POS_FACEUP_ATTACK,true,zone)
55+
end
56+
e:Reset()
4357
end

0 commit comments

Comments
 (0)