Commit bc64d33e authored by POLYMER's avatar POLYMER

fix

parent 9ee57c5a
...@@ -18,6 +18,13 @@ function cm.initial_effect(c) ...@@ -18,6 +18,13 @@ function cm.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
if not cm.global_check then if not cm.global_check then
cm.global_check=true cm.global_check=true
local _Equip=Duel.Equip
Duel.Equip=function(p,c,...)
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
local res=_Equip(p,c,...)
c:ResetFlagEffect(m)
return res
end
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_SUMMON_SUCCESS) e1:SetCode(EVENT_SUMMON_SUCCESS)
...@@ -51,7 +58,7 @@ function cm.costchk(e,c,tp,st) ...@@ -51,7 +58,7 @@ function cm.costchk(e,c,tp,st)
return false return false
end end
function cm.filter(c,e) function cm.filter(c,e)
if not (c:IsOnField() and (c:IsFacedown() or c:IsStatus(STATUS_EFFECT_ENABLED))) then return false end if not (c:IsOnField() and (c:IsFacedown() or c:IsStatus(STATUS_EFFECT_ENABLED) or c:GetFlagEffect(m)>0)) then return false end
if e:GetCode()==EVENT_MOVE then if e:GetCode()==EVENT_MOVE then
local b1,g1=Duel.CheckEvent(EVENT_SUMMON_SUCCESS,true) local b1,g1=Duel.CheckEvent(EVENT_SUMMON_SUCCESS,true)
local b2,g2=Duel.CheckEvent(EVENT_SPSUMMON_SUCCESS,true) local b2,g2=Duel.CheckEvent(EVENT_SPSUMMON_SUCCESS,true)
......
...@@ -8,6 +8,7 @@ function cm.initial_effect(c) ...@@ -8,6 +8,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--special summon --special summon
...@@ -48,6 +49,8 @@ function cm.equipfd(c,tp,tc) ...@@ -48,6 +49,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -57,12 +60,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,12 +60,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11451556) return not Duel.IsPlayerAffectedByEffect(tp,11451556)
......
...@@ -8,6 +8,7 @@ function cm.initial_effect(c) ...@@ -8,6 +8,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--equip --equip
...@@ -60,6 +61,8 @@ function cm.equipfd2(c,tp,tc) ...@@ -60,6 +61,8 @@ function cm.equipfd2(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -69,12 +72,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -69,12 +72,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11451556) return not Duel.IsPlayerAffectedByEffect(tp,11451556)
......
...@@ -8,6 +8,7 @@ function cm.initial_effect(c) ...@@ -8,6 +8,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--search --search
...@@ -34,7 +35,7 @@ function cm.eqlimit(e,c) ...@@ -34,7 +35,7 @@ function cm.eqlimit(e,c)
return e:GetOwner()==c return e:GetOwner()==c
end end
function cm.equipfd(c,tp,tc) function cm.equipfd(c,tp,tc)
if tc:IsPosition(POS_FACEUP) then Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) return true end if tc:IsPosition(POS_FACEUP) then return Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) end
if not Duel.Equip(tp,tc,c,false) then return false end if not Duel.Equip(tp,tc,c,false) then return false end
--Add Equip limit --Add Equip limit
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0) tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0)
...@@ -48,6 +49,8 @@ function cm.equipfd(c,tp,tc) ...@@ -48,6 +49,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -57,12 +60,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,12 +60,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11451556) return not Duel.IsPlayerAffectedByEffect(tp,11451556)
......
...@@ -8,6 +8,7 @@ function cm.initial_effect(c) ...@@ -8,6 +8,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--negate --negate
...@@ -45,6 +46,8 @@ function cm.equipfd(c,tp,tc) ...@@ -45,6 +46,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -54,12 +57,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,12 +57,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.filter(c,type1) function cm.filter(c,type1)
return c:GetEquipTarget() and c:IsFacedown() and c:IsAbleToGraveAsCost() and c:GetOriginalType()&type1~=0 return c:GetEquipTarget() and c:IsFacedown() and c:IsAbleToGraveAsCost() and c:GetOriginalType()&type1~=0
......
...@@ -8,6 +8,7 @@ function cm.initial_effect(c) ...@@ -8,6 +8,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--destroy --destroy
...@@ -34,7 +35,7 @@ function cm.eqlimit(e,c) ...@@ -34,7 +35,7 @@ function cm.eqlimit(e,c)
return e:GetOwner()==c return e:GetOwner()==c
end end
function cm.equipfd(c,tp,tc) function cm.equipfd(c,tp,tc)
if tc:IsPosition(POS_FACEUP) then Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) return true end if tc:IsPosition(POS_FACEUP) then return Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) end
if not Duel.Equip(tp,tc,c,false) then return false end if not Duel.Equip(tp,tc,c,false) then return false end
--Add Equip limit --Add Equip limit
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0) tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0)
...@@ -48,6 +49,8 @@ function cm.equipfd(c,tp,tc) ...@@ -48,6 +49,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -57,12 +60,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,12 +60,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11451556) return not Duel.IsPlayerAffectedByEffect(tp,11451556)
......
...@@ -21,6 +21,7 @@ function cm.initial_effect(c) ...@@ -21,6 +21,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--quicko --quicko
...@@ -146,7 +147,7 @@ function cm.eqlimit(e,c) ...@@ -146,7 +147,7 @@ function cm.eqlimit(e,c)
return e:GetOwner()==c return e:GetOwner()==c
end end
function cm.equipfd(c,tp,tc) function cm.equipfd(c,tp,tc)
if tc:IsPosition(POS_FACEUP) then Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) return true end if tc:IsPosition(POS_FACEUP) then return Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) end
if not Duel.Equip(tp,tc,c,false) then return false end if not Duel.Equip(tp,tc,c,false) then return false end
--Add Equip limit --Add Equip limit
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0) tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0)
...@@ -160,6 +161,8 @@ function cm.equipfd(c,tp,tc) ...@@ -160,6 +161,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -169,12 +172,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -169,12 +172,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,m) return not Duel.IsPlayerAffectedByEffect(tp,m)
......
...@@ -21,6 +21,7 @@ function cm.initial_effect(c) ...@@ -21,6 +21,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--fusion --fusion
...@@ -147,7 +148,7 @@ function cm.eqlimit(e,c) ...@@ -147,7 +148,7 @@ function cm.eqlimit(e,c)
return e:GetOwner()==c return e:GetOwner()==c
end end
function cm.equipfd(c,tp,tc) function cm.equipfd(c,tp,tc)
if tc:IsPosition(POS_FACEUP) then Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) return true end if tc:IsPosition(POS_FACEUP) then return Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) end
if not Duel.Equip(tp,tc,c,false) then return false end if not Duel.Equip(tp,tc,c,false) then return false end
--Add Equip limit --Add Equip limit
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0) tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0)
...@@ -161,6 +162,8 @@ function cm.equipfd(c,tp,tc) ...@@ -161,6 +162,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -170,12 +173,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -170,12 +173,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11451556) return not Duel.IsPlayerAffectedByEffect(tp,11451556)
......
...@@ -21,6 +21,7 @@ function cm.initial_effect(c) ...@@ -21,6 +21,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--exchange --exchange
...@@ -134,6 +135,7 @@ function cm.LinkOperation(f,minc,maxc,gf) ...@@ -134,6 +135,7 @@ function cm.LinkOperation(f,minc,maxc,gf)
aux.LExtraMaterialCount(g,c,tp) aux.LExtraMaterialCount(g,c,tp)
g1=g:Filter(cm.fdfilter,nil) g1=g:Filter(cm.fdfilter,nil)
g:Sub(g1) g:Sub(g1)
--for tc in aux.Next(g1) do if tc:IsCode(m-2) then Debug.Message(tc:IsType(TYPE_LINK)) end end
Duel.SendtoDeck(g1,nil,2,REASON_MATERIAL+REASON_LINK) Duel.SendtoDeck(g1,nil,2,REASON_MATERIAL+REASON_LINK)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_LINK) Duel.SendtoGrave(g,REASON_MATERIAL+REASON_LINK)
g:DeleteGroup() g:DeleteGroup()
...@@ -146,7 +148,7 @@ function cm.eqlimit(e,c) ...@@ -146,7 +148,7 @@ function cm.eqlimit(e,c)
return e:GetOwner()==c return e:GetOwner()==c
end end
function cm.equipfd(c,tp,tc) function cm.equipfd(c,tp,tc)
if tc:IsPosition(POS_FACEUP) then Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) return true end if tc:IsPosition(POS_FACEUP) then return Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) end
if not Duel.Equip(tp,tc,c,false) then return false end if not Duel.Equip(tp,tc,c,false) then return false end
--Add Equip limit --Add Equip limit
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0) tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0)
...@@ -160,6 +162,8 @@ function cm.equipfd(c,tp,tc) ...@@ -160,6 +162,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -169,12 +173,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -169,12 +173,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11451556) return not Duel.IsPlayerAffectedByEffect(tp,11451556)
......
...@@ -11,6 +11,7 @@ function cm.initial_effect(c) ...@@ -11,6 +11,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--todeck --todeck
...@@ -67,6 +68,8 @@ function cm.equipfd(c,tp,tc) ...@@ -67,6 +68,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -76,12 +79,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -76,12 +79,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11451556) return not Duel.IsPlayerAffectedByEffect(tp,11451556)
......
...@@ -11,6 +11,7 @@ function cm.initial_effect(c) ...@@ -11,6 +11,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--todeck --todeck
...@@ -48,7 +49,7 @@ function cm.eqlimit(e,c) ...@@ -48,7 +49,7 @@ function cm.eqlimit(e,c)
return e:GetOwner()==c return e:GetOwner()==c
end end
function cm.equipfd(c,tp,tc) function cm.equipfd(c,tp,tc)
if tc:IsPosition(POS_FACEUP) then Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) return true end if tc:IsPosition(POS_FACEUP) then return Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,false) end
if not Duel.Equip(tp,tc,c,false) then return false end if not Duel.Equip(tp,tc,c,false) then return false end
--Add Equip limit --Add Equip limit
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0) tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,0)
...@@ -62,6 +63,8 @@ function cm.equipfd(c,tp,tc) ...@@ -62,6 +63,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -71,12 +74,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -71,12 +74,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
Duel.Readjust() pnfl_adjusting=false
cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11451556) return not Duel.IsPlayerAffectedByEffect(tp,11451556)
......
...@@ -8,6 +8,7 @@ function cm.initial_effect(c) ...@@ -8,6 +8,7 @@ function cm.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_ADJUST) e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function() return not pnfl_adjusting end)
e1:SetOperation(cm.adjustop) e1:SetOperation(cm.adjustop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--equip --equip
...@@ -55,6 +56,8 @@ function cm.equipfd(c,tp,tc) ...@@ -55,6 +56,8 @@ function cm.equipfd(c,tp,tc)
return true return true
end end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
local phase=Duel.GetCurrentPhase() local phase=Duel.GetCurrentPhase()
local c=e:GetHandler() local c=e:GetHandler()
if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end if (phase==PHASE_DAMAGE and not Duel.IsDamageCalculated()) or phase==PHASE_DAMAGE_CAL or c:IsStatus(STATUS_BATTLE_DESTROYED) or not Duel.IsPlayerCanSSet(tp) then return end
...@@ -64,12 +67,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,12 +67,15 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
if tc:IsForbidden() then if tc:IsForbidden() then
Duel.DiscardDeck(tp,1,REASON_RULE) Duel.DiscardDeck(tp,1,REASON_RULE)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
elseif cm.equipfd(c,tp,tc) then elseif cm.equipfd(c,tp,tc) then
Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0) Duel.RaiseEvent(tc,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
pnfl_adjusting=false
Duel.Readjust() Duel.Readjust()
end end
end end
pnfl_adjusting=false
end end
function cm.con(e,tp,eg,ep,ev,re,r,rp) function cm.con(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11451556) return not Duel.IsPlayerAffectedByEffect(tp,11451556)
......
...@@ -38,21 +38,21 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp) ...@@ -38,21 +38,21 @@ function cm.disop(e,tp,eg,ep,ev,re,r,rp)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_DISABLE) e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EFFECT_DISABLE_EFFECT) e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET) e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2) tc:RegisterEffect(e2)
if tc:IsType(TYPE_TRAPMONSTER) then if tc:IsType(TYPE_TRAPMONSTER) then
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER) e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3) tc:RegisterEffect(e3)
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