Commit 8fbc3353 authored by POLYMER's avatar POLYMER

fix

parent 6ddde21c
...@@ -57,7 +57,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,7 +57,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.rmcon(e,tp,eg,ep,ev,re,r,rp) function cm.rmcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsRace(RACE_MACHINE) and re:GetHandler():IsType(TYPE_MONSTER) return re and re:IsActiveType(TYPE_MONSTER) and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_RACE)&RACE_MACHINE~=0
end end
function cm.rmfilter(c) function cm.rmfilter(c)
return c:IsAbleToRemove() and c:IsType(TYPE_MONSTER) return c:IsAbleToRemove() and c:IsType(TYPE_MONSTER)
......
...@@ -40,7 +40,7 @@ function cm.synclv(e,c) ...@@ -40,7 +40,7 @@ function cm.synclv(e,c)
return (6<<16)+lv return (6<<16)+lv
end end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsRace(RACE_MACHINE) and re:GetHandler():IsType(TYPE_MONSTER) return re and re:IsActiveType(TYPE_MONSTER) and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_RACE)&RACE_MACHINE~=0
end end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.scfilter,tp,LOCATION_EXTRA,0,1,nil) or Duel.IsExistingMatchingCard(cm.xyzfilter,tp,LOCATION_EXTRA,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cm.scfilter,tp,LOCATION_EXTRA,0,1,nil) or Duel.IsExistingMatchingCard(cm.xyzfilter,tp,LOCATION_EXTRA,0,1,nil) end
......
...@@ -78,7 +78,7 @@ function cm.tgop(e,tp,eg,ep,ev,re,r,rp) ...@@ -78,7 +78,7 @@ function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsRace(RACE_MACHINE) and re:GetHandler():IsType(TYPE_MONSTER) return re and re:IsActiveType(TYPE_MONSTER) and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_RACE)&RACE_MACHINE~=0
end end
function cm.filter(c,e,tp) function cm.filter(c,e,tp)
return c:IsCode(15005130) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsCode(15005130) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
...@@ -53,7 +53,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -53,7 +53,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end end
function cm.tfcon(e,tp,eg,ep,ev,re,r,rp) function cm.tfcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsRace(RACE_MACHINE) and re:GetHandler():IsType(TYPE_MONSTER) return re and re:IsActiveType(TYPE_MONSTER) and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_RACE)&RACE_MACHINE~=0
end end
function cm.tffilter(c,tp) function cm.tffilter(c,tp)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and not c:IsType(TYPE_FIELD) and aux.IsCodeListed(c,15005130) and c:IsType(TYPE_CONTINUOUS) return c:IsType(TYPE_SPELL+TYPE_TRAP) and not c:IsType(TYPE_FIELD) and aux.IsCodeListed(c,15005130) and c:IsType(TYPE_CONTINUOUS)
......
...@@ -54,7 +54,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,7 +54,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function cm.descon(e,tp,eg,ep,ev,re,r,rp) function cm.descon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsRace(RACE_MACHINE) and re:GetHandler():IsType(TYPE_MONSTER) return re and re:IsActiveType(TYPE_MONSTER) and Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_RACE)&RACE_MACHINE~=0
end end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil) local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
......
...@@ -76,6 +76,7 @@ function cm.tnop(e,tp,eg,ep,ev,re,r,rp) ...@@ -76,6 +76,7 @@ function cm.tnop(e,tp,eg,ep,ev,re,r,rp)
e3:SetCode(EVENT_CHAINING) e3:SetCode(EVENT_CHAINING)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL+EFFECT_FLAG_NO_TURN_RESET) e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL+EFFECT_FLAG_NO_TURN_RESET)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetReset(RESET_EVENT+RESETS_STANDARD) e3:SetReset(RESET_EVENT+RESETS_STANDARD)
e3:SetCondition(cm.discon) e3:SetCondition(cm.discon)
e3:SetTarget(cm.distg) e3:SetTarget(cm.distg)
......
...@@ -3,47 +3,26 @@ local cm=_G["c"..m] ...@@ -3,47 +3,26 @@ local cm=_G["c"..m]
cm.name="麦卡恩的秩序" cm.name="麦卡恩的秩序"
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c,15005130) aux.AddCodeList(c,15005130)
--synchro summon
aux.AddSynchroMixProcedure(c,aux.Tuner(nil),aux.Tuner(nil),nil,aux.NonTuner(cm.sfilter),1,99)
c:EnableReviveLimit() c:EnableReviveLimit()
--self
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE) e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(15005141) e0:SetCode(15005141)
e0:SetRange(LOCATION_EXTRA) e0:SetRange(LOCATION_EXTRA)
e0:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE) e0:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_UNCOPYABLE)
c:RegisterEffect(e0) c:RegisterEffect(e0)
--Hand Synchro --synchro summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetDescription(1164)
e1:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCondition(cm.syncon) e1:SetRange(LOCATION_EXTRA)
e1:SetTarget(cm.syntg) e1:SetCondition(cm.SynMixCondition(aux.Tuner(nil),aux.Tuner(nil),nil,aux.NonTuner(cm.sfilter),1,99,gc))
e1:SetValue(1) e1:SetTarget(cm.SynMixTarget(aux.Tuner(nil),aux.Tuner(nil),nil,aux.NonTuner(cm.sfilter),1,99,gc))
e1:SetOperation(cm.synop) e1:SetOperation(cm.SynMixOperation(aux.Tuner(nil),aux.Tuner(nil),nil,aux.NonTuner(cm.sfilter),1,99,gc))
local e2=Effect.CreateEffect(c) e1:SetValue(SUMMON_TYPE_SYNCHRO)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT) c:RegisterEffect(e1)
e2:SetRange(LOCATION_EXTRA)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e2:SetTarget(cm.mattg)
e2:SetLabelObject(e1)
c:RegisterEffect(e2)
--Hand Synchro
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM)
e3:SetCondition(cm.syncon)
e3:SetCode(EFFECT_HAND_SYNCHRO)
e3:SetTargetRange(0,1)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e4:SetRange(LOCATION_EXTRA)
e4:SetTargetRange(LOCATION_MZONE,0)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e4:SetTarget(cm.mattg)
e4:SetLabelObject(e3)
c:RegisterEffect(e4)
--add ind --add ind
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
...@@ -82,77 +61,216 @@ end ...@@ -82,77 +61,216 @@ end
function cm.sfilter(c) function cm.sfilter(c)
return c:IsRace(RACE_MACHINE) return c:IsRace(RACE_MACHINE)
end end
function cm.mattg(e,c) function cm.GetSynMaterials(tp,syncard)
return c:IsType(TYPE_TUNER) local mg=Duel.GetSynchroMaterial(tp):Filter(aux.SynMaterialFilter,nil,syncard)
if mg then
local mg2=Duel.GetMatchingGroup(aux.SynMaterialFilter,tp,LOCATION_HAND,0,nil,syncard)
if mg2:GetCount()>0 then mg:Merge(mg2) end
end
return mg
end end
function cm.synfilter(c,syncard,tuner,f) function cm.SynMixCondition(f1,f2,f3,f4,minc,maxc,gc)
return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard)) and (c:IsFaceup() or (c:IsLocation(LOCATION_HAND) and c:IsRace(RACE_MACHINE))) return function(e,c,smat,mg1,min,max)
if c==nil then return true end
if c:IsType(TYPE_PENDULUM) and c:IsFaceup() then return false end
local minc=minc
local maxc=maxc
if min then
if min>minc then minc=min end
if max<maxc then maxc=max end
if minc>maxc then return false end
end
if smat and not smat:IsCanBeSynchroMaterial(c) then return false end
local tp=c:GetControler()
local mg
local mgchk=false
if mg1 then
mg=mg1
mgchk=true
else
mg=cm.GetSynMaterials(tp,c)
end
if smat~=nil then mg:AddCard(smat) end
return mg:IsExists(cm.SynMixFilter1,1,nil,f1,f2,f3,f4,minc,maxc,c,mg,smat,gc,mgchk)
end
end end
function cm.syncheck(c,g,mg,tp,lv,syncard,minc,maxc) function cm.SynMixTarget(f1,f2,f3,f4,minc,maxc,gc)
g:AddCard(c) return function(e,tp,eg,ep,ev,re,r,rp,chk,c,smat,mg1,min,max)
local ct=g:GetCount() local minc=minc
local res=cm.syngoal(g,tp,lv,syncard,minc,ct) local maxc=maxc
or (ct<maxc and mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)) if min then
g:RemoveCard(c) if min>minc then minc=min end
return res if max<maxc then maxc=max end
if minc>maxc then return false end
end
::SynMixTargetSelectStart::
local g=Group.CreateGroup()
local mg
local mgchk=false
if mg1 then
mg=mg1
mgchk=true
else
mg=cm.GetSynMaterials(tp,c)
end
if smat~=nil then mg:AddCard(smat) end
local c1
local c2
local c3
local cancel=Duel.IsSummonCancelable()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
c1=mg:Filter(cm.SynMixFilter1,nil,f1,f2,f3,f4,minc,maxc,c,mg,smat,gc,mgchk):SelectUnselect(g,tp,false,cancel,1,1)
if not c1 then return false end
g:AddCard(c1)
if f2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
c2=mg:Filter(cm.SynMixFilter2,g,f2,f3,f4,minc,maxc,c,mg,smat,c1,gc,mgchk):SelectUnselect(g,tp,false,cancel,1,1)
if not c2 then return false end
if g:IsContains(c2) then goto SynMixTargetSelectStart end
g:AddCard(c2)
if f3 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
c3=mg:Filter(cm.SynMixFilter3,g,f3,f4,minc,maxc,c,mg,smat,c1,c2,gc,mgchk):SelectUnselect(g,tp,false,cancel,1,1)
if not c3 then return false end
if g:IsContains(c3) then goto SynMixTargetSelectStart end
g:AddCard(c3)
end
end
local g4=Group.CreateGroup()
for i=0,maxc-1 do
local mg2=mg:Clone()
if f4 then
mg2=mg2:Filter(f4,g,c,c1,c2,c3)
else
mg2:Sub(g)
end
local cg=mg2:Filter(cm.SynMixCheckRecursive,g4,tp,g4,mg2,i,minc,maxc,c,g,smat,gc,mgchk)
if cg:GetCount()==0 then break end
local finish=cm.SynMixCheckGoal(tp,g4,minc,i,c,g,smat,gc,mgchk)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local c4=cg:SelectUnselect(g+g4,tp,finish,cancel,minc,maxc)
if not c4 then
if finish then break
else return false end
end
if g:IsContains(c4) or g4:IsContains(c4) then goto SynMixTargetSelectStart end
g4:AddCard(c4)
end
g:Merge(g4)
if g:GetCount()>0 then
g:KeepAlive()
e:SetLabelObject(g)
return true
else return false end
end
end end
function cm.syngoal(g,tp,lv,syncard,minc,ct) function cm.SynMixOperation(f1,f2,f3,f4,minct,maxc,gc)
return ct>=minc return function(e,tp,eg,ep,ev,re,r,rp,c,smat,mg,min,max)
and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard) local g=e:GetLabelObject()
and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0 c:SetMaterial(g)
and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL) if g:IsExists(Card.IsLocation,1,nil,LOCATION_HAND) then
and (g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)==0 or (syncard:IsHasEffect(15005141) and g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1)) for tc in aux.Next(g) do
if tc:IsLocation(LOCATION_HAND) then
Duel.ConfirmCards(1-tp,tc)
end
end
Duel.SendtoDeck(g,nil,2,REASON_MATERIAL+REASON_SYNCHRO)
else
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
end
g:DeleteGroup()
end
end end
function cm.syncon(e) function cm.SynMixFilter1(c,f1,f2,f3,f4,minc,maxc,syncard,mg,smat,gc,mgchk)
return true return (not f1 or f1(c,syncard)) and mg:IsExists(cm.SynMixFilter2,1,c,f2,f3,f4,minc,maxc,syncard,mg,smat,c,gc,mgchk)
end end
function cm.syntg(e,syncard,f,min,max) function cm.SynMixFilter2(c,f2,f3,f4,minc,maxc,syncard,mg,smat,c1,gc,mgchk)
local minc=min+1 if f2 then
local maxc=max+1 return f2(c,syncard,c1)
local c=e:GetHandler() and (mg:IsExists(cm.SynMixFilter3,1,Group.FromCards(c1,c),f3,f4,minc,maxc,syncard,mg,smat,c1,c,gc,mgchk)
or minc==0 and cm.SynMixFilter4(c,nil,1,1,syncard,mg,smat,c1,nil,nil,gc,mgchk))
else
return mg:IsExists(cm.SynMixFilter4,1,c1,f4,minc,maxc,syncard,mg,smat,c1,nil,nil,gc,mgchk)
end
end
function cm.SynMixFilter3(c,f3,f4,minc,maxc,syncard,mg,smat,c1,c2,gc,mgchk)
if f3 then
return f3(c,syncard,c1,c2)
and (mg:IsExists(cm.SynMixFilter4,1,Group.FromCards(c1,c2,c),f4,minc,maxc,syncard,mg,smat,c1,c2,c,gc,mgchk)
or minc==0 and cm.SynMixFilter4(c,nil,1,1,syncard,mg,smat,c1,c2,nil,gc,mgchk))
else
return mg:IsExists(cm.SynMixFilter4,1,Group.FromCards(c1,c2),f4,minc,maxc,syncard,mg,smat,c1,c2,nil,gc,mgchk)
end
end
function cm.SynMixFilter4(c,f4,minc,maxc,syncard,mg1,smat,c1,c2,c3,gc,mgchk)
if f4 and not f4(c,syncard,c1,c2,c3) then return false end
local sg=Group.FromCards(c1,c)
sg:AddCard(c1)
if c2 then sg:AddCard(c2) end
if c3 then sg:AddCard(c3) end
local mg=mg1:Clone()
if f4 then
mg=mg:Filter(f4,sg,syncard,c1,c2,c3)
else
mg:Sub(sg)
end
return cm.SynMixCheck(mg,sg,minc-1,maxc-1,syncard,smat,gc,mgchk)
end
function cm.SynMixCheck(mg,sg1,minc,maxc,syncard,smat,gc,mgchk)
local tp=syncard:GetControler() local tp=syncard:GetControler()
local lv=syncard:GetLevel() local sg=Group.CreateGroup()
if lv<=c:GetLevel() then return false end if minc<=0 and cm.SynMixCheckGoal(tp,sg1,0,0,syncard,sg,smat,gc,mgchk) then return true end
local g=Group.FromCards(c) if maxc==0 then return false end
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f) return mg:IsExists(cm.SynMixCheckRecursive,1,nil,tp,sg,mg,0,minc,maxc,syncard,sg1,smat,gc,mgchk)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
return mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
end end
function cm.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max) function cm.SynMixCheckRecursive(c,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat,gc,mgchk)
local minc=min+1 sg:AddCard(c)
local maxc=max+1 ct=ct+1
local c=e:GetHandler() local res=cm.SynMixCheckGoal(tp,sg,minc,ct,syncard,sg1,smat,gc,mgchk)
local lv=syncard:GetLevel() or (ct<maxc and mg:IsExists(cm.SynMixCheckRecursive,1,sg,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat,gc,mgchk))
local g=Group.FromCards(c) sg:RemoveCard(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f) ct=ct-1
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f) return res
mg:Merge(exg) end
for i=1,maxc do function cm.MekhaneFilter(c)
local cg=mg:Filter(cm.syncheck,g,g,mg,tp,lv,syncard,minc,maxc) return c:IsLocation(LOCATION_HAND) and not c:IsRace(RACE_MACHINE)
if cg:GetCount()==0 then break end end
local minct=1 function cm.SynMixCheckGoal(tp,sg,minc,ct,syncard,sg1,smat,gc,mgchk)
if cm.syngoal(g,tp,lv,syncard,minc,i) then if ct<minc then return false end
minct=0 local g=sg:Clone()
g:Merge(sg1)
if Duel.GetLocationCountFromEx(tp,tp,g,syncard)<=0 then return false end
if gc and not gc(g) then return false end
if smat and not g:IsContains(smat) then return false end
if not aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL) then return false end
if not (g:CheckWithSumEqual(Card.GetSynchroLevel,syncard:GetLevel(),g:GetCount(),g:GetCount(),syncard) and g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1 and not g:IsExists(cm.MekhaneFilter,1,nil))
and (not g:IsExists(Card.IsHasEffect,1,nil,89818984)
or not g:CheckWithSumEqual(aux.GetSynchroLevelFlowerCardian,syncard:GetLevel(),g:GetCount(),g:GetCount(),syncard))
then return false end
local hg=g:Filter(aux.SynMixHandFilter,nil,tp,syncard)
local hct=hg:GetCount()
if hct>0 and not mgchk then
for c in aux.Next(g) do
local he,hf,hmin,hmax=c:GetHandSynchro()
if he then
if hf and hg:IsExists(aux.SynLimitFilter,1,c,hf,he,syncard) then return false end
if (hmin and hct<hmin) or (hmax and hct>hmax) then return false end
end
end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local sg=cg:Select(tp,minct,1,nil)
if sg:GetCount()==0 then break end
g:Merge(sg)
end end
if g:IsExists(Card.IsLocation,1,nil,LOCATION_HAND) then for c in aux.Next(g) do
for tc in aux.Next(g) do local le,lf,lloc,lmin,lmax=c:GetTunerLimit()
if tc:IsLocation(LOCATION_HAND) then Duel.ConfirmCards(1-tp,tc) end if le then
local e1=Effect.CreateEffect(c) local lct=g:GetCount()-1
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_IGNORE_IMMUNE) if lloc then
e1:SetType(EFFECT_TYPE_SINGLE) local llct=g:FilterCount(Card.IsLocation,c,lloc)
e1:SetCode(EFFECT_TO_GRAVE_REDIRECT) if llct~=lct then return false end
e1:SetValue(LOCATION_DECK) end
e1:SetReset(RESET_EVENT+RESETS_REDIRECT) if lf and g:IsExists(aux.SynLimitFilter,1,c,lf,le,syncard) then return false end
tc:RegisterEffect(e1,true) if (lmin and lct<lmin) or (lmax and lct>lmax) then return false end
end end
end end
Duel.SetSynchroMaterial(g) return true
end end
function cm.valcheck(e,c) function cm.valcheck(e,c)
local g=c:GetMaterial() local g=c:GetMaterial()
......
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