Commit 52700c01 authored by POLYMER's avatar POLYMER

fix

parent d982b14a
......@@ -68,7 +68,7 @@ function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return not eg:IsContains(e:GetHandler())
end
function cm.dsfilter(c)
return c:IsFaceup() and ((c:IsLocation(LOCATION_MZONE) and ((bit.band(c:GetOriginalType(),TYPE_SPELL+TYPE_TRAP)~=0 and (not c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsCanTurnSet()) or (c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable() and c:IsCanTurnSet())) or (bit.band(c:GetOriginalType(),TYPE_SPELL+TYPE_TRAP)==0 and c:IsCanTurnSet()))) or (c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true))) and not (c:IsType(TYPE_PENDULUM) and c:IsLocation(LOCATION_PZONE))
return c:IsFaceup() and c:IsCanTurnSet()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......@@ -83,22 +83,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if c:IsRelateToEffect(e) and ct>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,cm.dsfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,ct,nil)
local flag=0
local setg=Group.CreateGroup()
for tc in aux.Next(g) do
tc:CancelToGrave()
if (tc:IsType(TYPE_MONSTER) and Duel.ChangePosition(tc,POS_FACEDOWN_DEFENSE)>0) or Duel.ChangePosition(tc,POS_FACEDOWN)>0 then flag=1 end
--[[local loc=0
if tc:IsType(TYPE_FIELD) then loc=LOCATION_FZONE
elseif tc:IsType(TYPE_SPELL+TYPE_TRAP) then loc=LOCATION_SZONE end
if tc:GetOriginalType()&TYPE_MONSTER==0 and tc:IsLocation(LOCATION_MZONE) then Duel.MoveToField(tc,tp,tp,loc,POS_FACEDOWN,false) end--]]
if tc:IsType(TYPE_SPELL+TYPE_TRAP) and tc:IsFacedown() then setg:AddCard(tc) end
end
if #setg>0 then
setg:KeepAlive()
Duel.RaiseEvent(setg,EVENT_SSET,e,REASON_EFFECT,tp,tp,0)
end
if flag>0 then c:RemoveOverlayCard(tp,1,1,REASON_EFFECT) end
for tc in aux.Next(g) do tc:CancelToGrave() end
if Duel.ChangePosition(g,POS_FACEDOWN_DEFENSE)>0 then c:RemoveOverlayCard(tp,1,1,REASON_EFFECT) end
end
end
function cm.spfilter(c,se)
......
......@@ -152,7 +152,7 @@ function pnflpf.resetop(e,tp,eg,ep,ev,re,r,rp)
if PNFL_PROPHECY_FLIGHT_DEBUG then Debug.Message("reset") end
if res0 then for tc in aux.Next(g0) do tc:ResetFlagEffect(11451851) end end
if res1 then for tc in aux.Next(g1) do tc:ResetFlagEffect(11451851) end end
--Duel.Readjust()
Duel.Readjust()
end
end
function pnflpf.tdfilter(c)
......@@ -212,7 +212,7 @@ function cm.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetCode(EVENT_ADJUST)
e2:SetRange(LOCATION_DECK)
e2:SetCondition(function(e) return e:GetHandler():IsFaceup() end)
e2:SetCondition(function(e) return e:GetHandler():IsFaceup() and not pnfl_adjusting end)
e2:SetOperation(cm.adjustop)
c:RegisterEffect(e2)
local e7=e2:Clone()
......@@ -264,7 +264,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if #g>0 then Duel.SSet(tp,g) end
if c:IsRelateToEffect(e) then
local res=Duel.TossCoin(tp,1)
if PNFL_PROPHECY_FLIGHT_DEBUG then res=1 end
--if PNFL_PROPHECY_FLIGHT_DEBUG then res=1 end
if c:IsRelateToEffect(e) and Duel.SendtoDeck(c,nil,0,REASON_EFFECT) and c:IsLocation(LOCATION_DECK) then
Duel.ShuffleDeck(c:GetControler())
if res==1 then c:ReverseInDeck() end
......
......@@ -24,7 +24,7 @@ function cm.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetCode(EVENT_ADJUST)
e2:SetRange(LOCATION_DECK)
e2:SetCondition(function(e) return e:GetHandler():IsFaceup() end)
e2:SetCondition(function(e) return e:GetHandler():IsFaceup() and not pnfl_adjusting end)
e2:SetOperation(cm.adjustop)
c:RegisterEffect(e2)
local e7=e2:Clone()
......@@ -75,7 +75,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end
if c:IsRelateToEffect(e) then
local res=Duel.TossCoin(tp,1)
if PNFL_PROPHECY_FLIGHT_DEBUG then res=1 end
--if PNFL_PROPHECY_FLIGHT_DEBUG then res=1 end
if c:IsRelateToEffect(e) and Duel.SendtoDeck(c,nil,0,REASON_EFFECT) and c:IsLocation(LOCATION_DECK) then
Duel.ShuffleDeck(c:GetControler())
if res==1 then c:ReverseInDeck() end
......
......@@ -22,7 +22,7 @@ function cm.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetCode(EVENT_ADJUST)
e2:SetRange(LOCATION_DECK)
e2:SetCondition(function(e) return e:GetHandler():IsFaceup() end)
e2:SetCondition(function(e) return e:GetHandler():IsFaceup() and not pnfl_adjusting end)
e2:SetOperation(cm.adjustop)
c:RegisterEffect(e2)
local e7=e2:Clone()
......@@ -94,7 +94,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end
if c:IsRelateToEffect(e) then
local res=Duel.TossCoin(tp,1)
if PNFL_PROPHECY_FLIGHT_DEBUG then res=1 end
--if PNFL_PROPHECY_FLIGHT_DEBUG then res=1 end
if c:IsRelateToEffect(e) and Duel.SendtoDeck(c,nil,0,REASON_EFFECT) and c:IsLocation(LOCATION_DECK) then
Duel.ShuffleDeck(c:GetControler())
if res==1 then c:ReverseInDeck() end
......@@ -211,7 +211,7 @@ function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local rg=ng:Filter(cm.nnfilter,nil,tc)
Duel.HintSelection(rg)
for tc in aux.Next(rg) do tc:CancelToGrave() end
if Duel.ChangePosition(rg,POS_FACEDOWN)>0 then
if Duel.ChangePosition(rg,POS_FACEDOWN_DEFENSE)>0 then
rg=rg:Filter(cm.tfilter,nil)
for tc in aux.Next(rg) do
local e1=Effect.CreateEffect(e:GetHandler())
......
......@@ -11,6 +11,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_HAND+LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_MAIN_END)
e1:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
e1:SetCondition(cm.thcon)
e1:SetTarget(cm.thtg)
......@@ -22,7 +23,7 @@ function cm.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetCode(EVENT_ADJUST)
e2:SetRange(LOCATION_DECK)
e2:SetCondition(function(e) return e:GetHandler():IsFaceup() end)
e2:SetCondition(function(e) return e:GetHandler():IsFaceup() and not pnfl_adjusting end)
e2:SetOperation(cm.adjustop)
c:RegisterEffect(e2)
local e7=e2:Clone()
......@@ -107,7 +108,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end
if c:IsRelateToEffect(e) then
local res=Duel.TossCoin(tp,1)
if PNFL_PROPHECY_FLIGHT_DEBUG then res=1 end
--if PNFL_PROPHECY_FLIGHT_DEBUG then res=1 end
if c:IsRelateToEffect(e) and Duel.SendtoDeck(c,nil,0,REASON_EFFECT) and c:IsLocation(LOCATION_DECK) then
Duel.ShuffleDeck(c:GetControler())
if res==1 then c:ReverseInDeck() end
......
......@@ -15,6 +15,7 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EVENT_ADJUST)
e2:SetCondition(function() return not pnfl_adjusting end)
e2:SetRange(LOCATION_FZONE)
e2:SetOperation(cm.efop)
c:RegisterEffect(e2)
......
......@@ -26,6 +26,70 @@ function cm.initial_effect(c)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
if not PNFL_MOVE_DELAY_CHECK then
PNFL_MOVE_DELAY_CHECK=true
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCondition(cm.descon)
e1:SetOperation(cm.desop2)
Duel.RegisterEffect(e1,0)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
Duel.RegisterEffect(e2,0)
local e3=e1:Clone()
e3:SetCode(EVENT_MOVE)
Duel.RegisterEffect(e3,0)
local e4=e1:Clone()
e4:SetCode(EVENT_CHAINING)
e4:SetCondition(cm.descon3)
e4:SetOperation(cm.desop3)
Duel.RegisterEffect(e4,0)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_CANNOT_SUMMON)
e5:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e5:SetTargetRange(1,1)
e5:SetTarget(cm.costchk)
Duel.RegisterEffect(e5,0)
end
end
function cm.costchk(e,c,tp,st)
if bit.band(st,SUMMON_TYPE_DUAL)~=SUMMON_TYPE_DUAL then return false end
if c:GetFlagEffect(11450901)==0 then c:RegisterFlagEffect(11450901,RESET_EVENT+RESETS_STANDARD,0,1) end
return false
end
function cm.filter12(c,e)
if not (c:IsOnField() and (c:IsFacedown() or c:IsStatus(STATUS_EFFECT_ENABLED))) then return false end
if e:GetCode()==EVENT_MOVE then
local b1,g1=Duel.CheckEvent(EVENT_SUMMON_SUCCESS,true)
local b2,g2=Duel.CheckEvent(EVENT_SPSUMMON_SUCCESS,true)
return not c:IsPreviousLocation(LOCATION_ONFIELD) and (not b1 or not g1:IsContains(c)) and (not b2 or not g2:IsContains(c))
end
return not (e:GetCode()==EVENT_SUMMON_SUCCESS and c:GetFlagEffect(11450901)>0)
end
function cm.descon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.filter12,1,nil,e)
end
function cm.desop2(e,tp,eg,ep,ev,re,r,rp)
if (re and re:GetHandler():GetOriginalCode()==m) then return end
Duel.RaiseEvent(eg,EVENT_CUSTOM+11450901,re,r,rp,ep,ev)
end
function cm.descon3(e,tp,eg,ep,ev,re,r,rp)
return re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:GetHandler():GetFieldID()==re:GetHandler():GetRealFieldID()
end
function cm.desop3(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_ACTIVATING)
--e1:SetCondition(function() return Duel.GetCurrentChain()==1 end)
e1:SetOperation(function(e) Duel.RaiseEvent(eg,EVENT_CUSTOM+11450901,re,r,rp,ep,ev) end)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,0)
local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED)
--Duel.RegisterEffect(e2,0)
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
......@@ -73,40 +137,53 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
e3:SetCountLimit(1)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET)
e3:SetCondition(cm.thcon2)
e3:SetCost(cm.thtg2)
e3:SetTarget(cm.thtg2)
e3:SetOperation(cm.thop2)
Duel.RegisterEffect(e3,tp)
local e4=e3:Clone()
e4:SetType(EFFECT_TYPE_QUICK_F)
e4:SetCode(EVENT_CUSTOM+11450901)
e4:SetCondition(cm.thcon3)
Duel.RegisterEffect(e4,tp)
end
end
end
function cm.clfilter(c,tp,i)
return aux.GetColumn(c,tp)==i
return aux.GetColumn(c,tp)==i and not c:IsStatus(STATUS_SUMMONING)
end
function cm.thcon2(e,tp,eg,ep,ev,re,r,rp)
local ng=Duel.GetMatchingGroup(cm.clfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp,e:GetLabel())
local res=#Group.__band(ng,eg)>0
local i=e:GetLabel()
local cid=i+1
if tp==1 then cid=5-i end
cm.column=cm.column&~(1<<cid)
if res then
local i=e:GetLabel()
local cid=i+1
if tp==1 then cid=5-i end
cm.column=cm.column&~(1<<cid)
end
return res
end
function cm.thcon3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return ((c:IsLocation(LOCATION_ONFIELD+LOCATION_REMOVED) and c:IsFacedown()) or c:GetOverlayTarget()) and cm.thcon2(e,tp,eg,ep,ev,re,r,rp)
end
function cm.thtg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return false end
if chk==0 then return true end
Duel.Hint(HINT_OPSELECTED,tp,e:GetDescription())
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
local ng=Duel.GetMatchingGroup(cm.clfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp,e:GetLabel())
local ag=ng:Filter(Card.IsCanBeEffectTarget,e)
if #ag>0 then Duel.SetTargetCard(ag) end
Duel.Hint(HINT_OPSELECTED,tp,e:GetDescription())
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function cm.thop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
if not g or #g==0 then return end
if not g then return end
g=g:Filter(Card.IsRelateToEffect,nil,e)
if #g==0 then return end
g:KeepAlive()
g:ForEach(Card.RegisterFlagEffect,m-10,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,aux.Stringid(m,10))
g:ForEach(Card.RegisterFlagEffect,m-10,RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET,EFFECT_FLAG_CLIENT_HINT,1,aux.Stringid(m,10))
for tc in aux.Next(g) do
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_SINGLE)
......@@ -114,6 +191,7 @@ function cm.thop2(e,tp,eg,ep,ev,re,r,rp)
ge2:SetRange(0x1c)
ge2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
ge2:SetLabelObject(g)
ge2:SetOwnerPlayer(tp)
ge2:SetValue(cm.chkval)
ge2:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
tc:RegisterEffect(ge2,true)
......@@ -130,19 +208,32 @@ function cm.chkval(e,te)
local e3=Effect.CreateEffect(e:GetOwner())
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_ADJUST)
e3:SetCondition(function() return not pnfl_adjusting end) --error.
e3:SetOperation(cm.tdop)
Duel.RegisterEffect(e3,tp)
end
return false
end
function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
Duel.Hint(HINT_CARD,0,m)
local sg=Duel.GetMatchingGroup(cm.shfilter,tp,0xff,0xff,nil)
if #sg==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,5))
local tc=sg:Select(tp,1,1,nil):GetFirst()
local te=tc:IsHasEffect(EFFECT_FLAG_EFFECT+m):GetLabelObject()
local op=te:GetOperation()
op(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,tc:GetOriginalCode())
local eset={tc:IsHasEffect(EFFECT_FLAG_EFFECT+m)}
local te=eset[1]:GetLabelObject()
if #eset>1 then
Duel.Hint(HINT_SELECTMSG,tp,550)
local ct=Duel.AnnounceNumber(tp,table.unpack(aux.idx_table,1,#eset))
te=eset[ct]:GetLabelObject()
end
local tg=te:GetTarget() or aux.TRUE
local op=te:GetOperation() or aux.TRUE
tg(e,tp,eg,ep,ev,re,r,rp,1)
op(e,tp,eg,ep,ev,re,r,rp) --recursive!!!
e:Reset()
pnfl_adjusting=false
end
\ No newline at end of file
......@@ -5,6 +5,12 @@ function cm.initial_effect(c)
dofile("expansions/script/c11451851.lua")
pnfl_prophecy_flight_initial(c)
end
--psuedo Activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
e0:SetRange(0)
c:RegisterEffect(e0)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
......@@ -109,8 +115,7 @@ function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetFlagEffect(m)>0
return e:GetHandler():GetFlagEffect(m)>0 and cm.thcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......@@ -130,7 +135,7 @@ end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_ONFIELD+LOCATION_GRAVE) and chkc:IsControler(1-tp) end
if chk==0 then return Duel.IsExistingTarget(nil,tp,0,LOCATION_ONFIELD+LOCATION_GRAVE,1,nil) end
if chk==0 then return e:GetValue()==100 or Duel.IsExistingTarget(nil,tp,0,LOCATION_ONFIELD+LOCATION_GRAVE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,nil,tp,0,LOCATION_ONFIELD+LOCATION_GRAVE,1,1,nil)
if e:IsHasType(EFFECT_TYPE_ACTIVATE) then
......@@ -207,7 +212,7 @@ function cm.mrtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function cm.mrop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,1))
end
function cm.geop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -11,6 +11,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_END_PHASE,0)
e1:SetCondition(function(e,tp) return (Duel.GetCurrentPhase()~=PHASE_MAIN1 and Duel.GetCurrentPhase()~=PHASE_MAIN2) or Duel.GetTurnPlayer()==1-tp end)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
......
......@@ -103,13 +103,16 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local tc=te:GetHandler()
local prop1,prop2=te:GetProperty()
local eset={Duel.IsPlayerAffectedByEffect(tp,m)}
if tc:IsLocation(LOCATION_HAND) and te:IsHasType(EFFECT_TYPE_ACTIVATE) and (tc:IsHasEffect(EFFECT_TRAP_ACT_IN_HAND) or tc:IsHasEffect(EFFECT_QP_ACT_IN_NTPHAND)) and tc~=e:GetHandler() then
local case1=tc:IsType(TYPE_SPELL) and not tc:IsType(TYPE_QUICKPLAY)
local case2=tc:IsType(TYPE_QUICKPLAY)
local case3=tc:IsType(TYPE_TRAP)
if cm.hand2(e) and tc:IsLocation(LOCATION_HAND) and te:IsHasType(EFFECT_TYPE_ACTIVATE) and tc~=e:GetHandler() and ((case2 and tc:GetEffectCount(EFFECT_QP_ACT_IN_NTPHAND)<=#eset) or (case3 and tc:GetEffectCount(EFFECT_TRAP_ACT_IN_HAND)<=#eset) or Duel.SelectYesNo(tp,aux.Stringid(m,0))) then
local cost=te:GetCost() or aux.TRUE
local cost2=function(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return cost(e,tp,eg,ep,ev,re,r,rp,0) end
cost(e,tp,eg,ep,ev,re,r,rp,1)
e:SetCost(cost)
Duel.SSet(tp,c,tp,false)
Duel.SSet(tp,c,tp,true)
end
te:SetCost(cost2)
end
......@@ -202,9 +205,11 @@ end
function cm.thop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
if not g or #g==0 then return end
if not g then return end
g=g:Filter(Card.IsRelateToEffect,nil,e)
if #g==0 then return end
g:KeepAlive()
g:ForEach(Card.RegisterFlagEffect,m-10,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,aux.Stringid(m,10))
g:ForEach(Card.RegisterFlagEffect,m-10,RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET,EFFECT_FLAG_CLIENT_HINT,1,aux.Stringid(m,10))
for tc in aux.Next(g) do
local ge2=Effect.CreateEffect(c)
ge2:SetDescription(aux.Stringid(m,10))
......@@ -226,13 +231,17 @@ function cm.chkval(e,te)
local e3=Effect.CreateEffect(tc)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_ADJUST)
e3:SetCondition(function() return not pnfl_adjusting end)
e3:SetOperation(cm.tdop)
Duel.RegisterEffect(e3,te:GetHandlerPlayer())
end
return false
end
function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
if pnfl_adjusting then return end
pnfl_adjusting=true
Duel.DisableShuffleCheck()
Duel.SendtoGrave(Duel.GetFieldGroup(tp,LOCATION_DECK,0):GetMinGroup(Card.GetSequence),REASON_EFFECT)
e:Reset()
pnfl_adjusting=false
end
\ No newline at end of file
......@@ -5540,11 +5540,11 @@ function cm.ActivatedAsSpellorTrapCheck(c)
Duel.GetChainInfo=function(chainc,...)
local re=ADIMI_GetChainInfo(chainc,CHAININFO_TRIGGERING_EFFECT)
local b=false
local ls,typ=0
if re and aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
local xe={}
if rc then xe={rc:IsHasEffect(53765099)} end
local ls,typ=0
for _,v in pairs(xe) do
if re==v:GetLabelObject() then
b=true
......
......@@ -39,7 +39,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e4)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1
return Duel.GetCurrentPhase()==PHASE_MAIN1 and Duel.GetTurnPlayer()~=tp
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
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