Commit 1c8a501d authored by VanillaSalt's avatar VanillaSalt

fix

parent 01250445
......@@ -52,13 +52,14 @@ function c11502550.spfilter(c,code)
return c:IsAbleToDeckOrExtraAsCost() and c:IsFusionCode(code)
end
function c11502550.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c11502550.spfilter,tp,LOCATION_ONFIELD,0,nil,89943723)
local g2=Duel.GetMatchingGroup(c11502550.spfilter,tp,LOCATION_ONFIELD,0,nil,54959865)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -76,12 +77,22 @@ function c11502550.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(89943723) then
local sg=Duel.GetMatchingGroup(c11502550.spfilter,tp,LOCATION_ONFIELD,0,tc,54959865)
g1:Merge(sg)
end
if tc:IsFusionCode(54959865) then
local sg=Duel.GetMatchingGroup(c11502550.spfilter,tp,LOCATION_ONFIELD,0,tc,89943723)
g1:Merge(sg)
end
end
end
local cg=g:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
......@@ -89,10 +100,10 @@ function c11502550.spop(e,tp,eg,ep,ev,re,r,rp,c)
end
Duel.SendtoDeck(g,nil,2,REASON_COST)
end
function c11502550.retcon1(e,tp,eg,ep,ev,re,r,rp,chk)
function c11502550.retcon1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsHasEffect(42015635)
end
function c11502550.retcon2(e,tp,eg,ep,ev,re,r,rp,chk)
function c11502550.retcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsHasEffect(42015635)
end
function c11502550.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -38,13 +38,14 @@ function c2111707.spfilter(c,code)
return c:IsFusionCode(code) and c:IsAbleToRemoveAsCost()
end
function c2111707.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c2111707.spfilter,tp,LOCATION_ONFIELD,0,nil,62651957)
local g2=Duel.GetMatchingGroup(c2111707.spfilter,tp,LOCATION_ONFIELD,0,nil,65622692)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -62,12 +63,22 @@ function c2111707.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(65622692) then
local sg=Duel.GetMatchingGroup(c2111707.spfilter,tp,LOCATION_ONFIELD,0,tc,62651957)
g1:Merge(sg)
end
if tc:IsFusionCode(62651957) then
local sg=Duel.GetMatchingGroup(c2111707.spfilter,tp,LOCATION_ONFIELD,0,tc,65622692)
g1:Merge(sg)
end
end
end
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
......
......@@ -38,13 +38,14 @@ function c25119460.spfilter(c,code)
return c:IsFusionCode(code) and c:IsAbleToRemoveAsCost()
end
function c25119460.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c25119460.spfilter,tp,LOCATION_ONFIELD,0,nil,65622692)
local g2=Duel.GetMatchingGroup(c25119460.spfilter,tp,LOCATION_ONFIELD,0,nil,64500000)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -62,12 +63,22 @@ function c25119460.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(64500000) then
local sg=Duel.GetMatchingGroup(c25119460.spfilter,tp,LOCATION_ONFIELD,0,tc,65622692)
g1:Merge(sg)
end
if tc:IsFusionCode(65622692) then
local sg=Duel.GetMatchingGroup(c25119460.spfilter,tp,LOCATION_ONFIELD,0,tc,64500000)
g1:Merge(sg)
end
end
end
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
......
......@@ -55,13 +55,14 @@ function c28677304.spfilter(c,code)
return c:IsAbleToDeckOrExtraAsCost() and c:IsFusionCode(code)
end
function c28677304.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c28677304.spfilter,tp,LOCATION_ONFIELD,0,nil,89943723)
local g2=Duel.GetMatchingGroup(c28677304.spfilter,tp,LOCATION_ONFIELD,0,nil,43237273)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -79,12 +80,22 @@ function c28677304.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(89943723) then
local sg=Duel.GetMatchingGroup(c28677304.spfilter,tp,LOCATION_ONFIELD,0,tc,43237273)
g1:Merge(sg)
end
if tc:IsFusionCode(43237273) then
local sg=Duel.GetMatchingGroup(c28677304.spfilter,tp,LOCATION_ONFIELD,0,tc,89943723)
g1:Merge(sg)
end
end
end
local cg=g:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
......@@ -92,10 +103,10 @@ function c28677304.spop(e,tp,eg,ep,ev,re,r,rp,c)
end
Duel.SendtoDeck(g,nil,2,REASON_COST)
end
function c28677304.retcon1(e,tp,eg,ep,ev,re,r,rp,chk)
function c28677304.retcon1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsHasEffect(42015635)
end
function c28677304.retcon2(e,tp,eg,ep,ev,re,r,rp,chk)
function c28677304.retcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsHasEffect(42015635)
end
function c28677304.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -55,13 +55,14 @@ function c48996569.spfilter(c,code)
return c:IsAbleToDeckOrExtraAsCost() and c:IsFusionCode(code)
end
function c48996569.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c48996569.spfilter,tp,LOCATION_ONFIELD,0,nil,89943723)
local g2=Duel.GetMatchingGroup(c48996569.spfilter,tp,LOCATION_ONFIELD,0,nil,80344569)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -79,12 +80,22 @@ function c48996569.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(89943723) then
local sg=Duel.GetMatchingGroup(c48996569.spfilter,tp,LOCATION_ONFIELD,0,tc,80344569)
g1:Merge(sg)
end
if tc:IsFusionCode(80344569) then
local sg=Duel.GetMatchingGroup(c48996569.spfilter,tp,LOCATION_ONFIELD,0,tc,89943723)
g1:Merge(sg)
end
end
end
local cg=g:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
......@@ -92,10 +103,10 @@ function c48996569.spop(e,tp,eg,ep,ev,re,r,rp,c)
end
Duel.SendtoDeck(g,nil,2,REASON_COST)
end
function c48996569.retcon1(e,tp,eg,ep,ev,re,r,rp,chk)
function c48996569.retcon1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsHasEffect(42015635)
end
function c48996569.retcon2(e,tp,eg,ep,ev,re,r,rp,chk)
function c48996569.retcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsHasEffect(42015635)
end
function c48996569.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -36,17 +36,15 @@ end
function c5128859.spfilter(c,code)
return c:IsAbleToDeckOrExtraAsCost() and c:IsFusionCode(code)
end
function c5128859.spfilter2(c,code)
return c:IsAbleToDeckOrExtraAsCost() and c:IsFusionCode(code)
end
function c5128859.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c5128859.spfilter,tp,LOCATION_ONFIELD,0,nil,89943723)
local g2=Duel.GetMatchingGroup(c5128859.spfilter2,tp,LOCATION_ONFIELD,0,nil,78734254)
local g2=Duel.GetMatchingGroup(c5128859.spfilter,tp,LOCATION_ONFIELD,0,nil,78734254)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -56,7 +54,7 @@ end
function c5128859.spop(e,tp,eg,ep,ev,re,r,rp,c)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g1=Duel.GetMatchingGroup(c5128859.spfilter,tp,LOCATION_ONFIELD,0,nil,89943723)
local g2=Duel.GetMatchingGroup(c5128859.spfilter2,tp,LOCATION_ONFIELD,0,nil,78734254)
local g2=Duel.GetMatchingGroup(c5128859.spfilter,tp,LOCATION_ONFIELD,0,nil,78734254)
g1:Merge(g2)
local g=Group.CreateGroup()
local tc=nil
......@@ -64,12 +62,22 @@ function c5128859.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(89943723) then
local sg=Duel.GetMatchingGroup(c5128859.spfilter,tp,LOCATION_ONFIELD,0,tc,78734254)
g1:Merge(sg)
end
if tc:IsFusionCode(78734254) then
local sg=Duel.GetMatchingGroup(c5128859.spfilter,tp,LOCATION_ONFIELD,0,tc,89943723)
g1:Merge(sg)
end
end
end
local cg=g:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
......
......@@ -55,13 +55,14 @@ function c55171412.spfilter(c,code)
return c:IsAbleToDeckOrExtraAsCost() and c:IsFusionCode(code)
end
function c55171412.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c55171412.spfilter,tp,LOCATION_ONFIELD,0,nil,89943723)
local g2=Duel.GetMatchingGroup(c55171412.spfilter,tp,LOCATION_ONFIELD,0,nil,17955766)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -79,12 +80,22 @@ function c55171412.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(89943723) then
local sg=Duel.GetMatchingGroup(c55171412.spfilter,tp,LOCATION_ONFIELD,0,tc,17955766)
g1:Merge(sg)
end
if tc:IsFusionCode(17955766) then
local sg=Duel.GetMatchingGroup(c55171412.spfilter,tp,LOCATION_ONFIELD,0,tc,89943723)
g1:Merge(sg)
end
end
end
local cg=g:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
......@@ -92,10 +103,10 @@ function c55171412.spop(e,tp,eg,ep,ev,re,r,rp,c)
end
Duel.SendtoDeck(g,nil,2,REASON_COST)
end
function c55171412.retcon1(e,tp,eg,ep,ev,re,r,rp,chk)
function c55171412.retcon1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsHasEffect(42015635)
end
function c55171412.retcon2(e,tp,eg,ep,ev,re,r,rp,chk)
function c55171412.retcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsHasEffect(42015635)
end
function c55171412.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -38,13 +38,14 @@ function c58859575.spfilter(c,code)
return c:IsFusionCode(code) and c:IsAbleToRemoveAsCost()
end
function c58859575.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c58859575.spfilter,tp,LOCATION_ONFIELD,0,nil,51638941)
local g2=Duel.GetMatchingGroup(c58859575.spfilter,tp,LOCATION_ONFIELD,0,nil,96300057)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -62,12 +63,22 @@ function c58859575.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(96300057) then
local sg=Duel.GetMatchingGroup(c58859575.spfilter,tp,LOCATION_ONFIELD,0,tc,51638941)
g1:Merge(sg)
end
if tc:IsFusionCode(51638941) then
local sg=Duel.GetMatchingGroup(c58859575.spfilter,tp,LOCATION_ONFIELD,0,tc,96300057)
g1:Merge(sg)
end
end
end
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
......
......@@ -52,13 +52,14 @@ function c81566151.spfilter(c,code)
return c:IsAbleToDeckOrExtraAsCost() and c:IsFusionCode(code)
end
function c81566151.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c81566151.spfilter,tp,LOCATION_ONFIELD,0,nil,89943723)
local g2=Duel.GetMatchingGroup(c81566151.spfilter,tp,LOCATION_ONFIELD,0,nil,89621922)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -76,12 +77,22 @@ function c81566151.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(89943723) then
local sg=Duel.GetMatchingGroup(c81566151.spfilter,tp,LOCATION_ONFIELD,0,tc,89621922)
g1:Merge(sg)
end
if tc:IsFusionCode(89621922) then
local sg=Duel.GetMatchingGroup(c81566151.spfilter,tp,LOCATION_ONFIELD,0,tc,89943723)
g1:Merge(sg)
end
end
end
local cg=g:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
......@@ -89,10 +100,10 @@ function c81566151.spop(e,tp,eg,ep,ev,re,r,rp,c)
end
Duel.SendtoDeck(g,nil,2,REASON_COST)
end
function c81566151.retcon1(e,tp,eg,ep,ev,re,r,rp,chk)
function c81566151.retcon1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsHasEffect(42015635)
end
function c81566151.retcon2(e,tp,eg,ep,ev,re,r,rp,chk)
function c81566151.retcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsHasEffect(42015635)
end
function c81566151.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -48,13 +48,14 @@ function c84243274.spfilter(c,code)
return c:IsFusionCode(code) and c:IsAbleToRemoveAsCost()
end
function c84243274.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c84243274.spfilter,tp,LOCATION_ONFIELD,0,nil,58859575)
local g2=Duel.GetMatchingGroup(c84243274.spfilter,tp,LOCATION_ONFIELD,0,nil,91998119)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -72,12 +73,22 @@ function c84243274.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(91998119) then
local sg=Duel.GetMatchingGroup(c84243274.spfilter,tp,LOCATION_ONFIELD,0,tc,58859575)
g1:Merge(sg)
end
if tc:IsFusionCode(58859575) then
local sg=Duel.GetMatchingGroup(c84243274.spfilter,tp,LOCATION_ONFIELD,0,tc,91998119)
g1:Merge(sg)
end
end
end
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
......
......@@ -56,13 +56,14 @@ function c85507811.spfilter(c,code)
return c:IsAbleToDeckOrExtraAsCost() and c:IsFusionCode(code)
end
function c85507811.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c85507811.spfilter,tp,LOCATION_ONFIELD,0,nil,89943723)
local g2=Duel.GetMatchingGroup(c85507811.spfilter,tp,LOCATION_ONFIELD,0,nil,17732278)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -80,12 +81,22 @@ function c85507811.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(89943723) then
local sg=Duel.GetMatchingGroup(c85507811.spfilter,tp,LOCATION_ONFIELD,0,tc,17732278)
g1:Merge(sg)
end
if tc:IsFusionCode(17732278) then
local sg=Duel.GetMatchingGroup(c85507811.spfilter,tp,LOCATION_ONFIELD,0,tc,89943723)
g1:Merge(sg)
end
end
end
local cg=g:Filter(Card.IsFacedown,nil)
if cg:GetCount()>0 then
......@@ -93,10 +104,10 @@ function c85507811.spop(e,tp,eg,ep,ev,re,r,rp,c)
end
Duel.SendtoDeck(g,nil,2,REASON_COST)
end
function c85507811.retcon1(e,tp,eg,ep,ev,re,r,rp,chk)
function c85507811.retcon1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsHasEffect(42015635)
end
function c85507811.retcon2(e,tp,eg,ep,ev,re,r,rp,chk)
function c85507811.retcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsHasEffect(42015635)
end
function c85507811.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -38,13 +38,14 @@ function c99724761.spfilter(c,code)
return c:IsFusionCode(code) and c:IsAbleToRemoveAsCost()
end
function c99724761.spcon(e,c)
if c==nil then return true end
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<-1 then return false end
local g1=Duel.GetMatchingGroup(c99724761.spfilter,tp,LOCATION_ONFIELD,0,nil,62651957)
local g2=Duel.GetMatchingGroup(c99724761.spfilter,tp,LOCATION_ONFIELD,0,nil,64500000)
if g1:GetCount()==0 or g2:GetCount()==0 then return false end
if g1:GetCount()==1 and g2:GetCount()==1 and g1:GetFirst()==g2:GetFirst() then return false end
if ft>0 then return true end
local f1=g1:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
local f2=g2:FilterCount(Card.IsLocation,nil,LOCATION_MZONE)
......@@ -62,12 +63,22 @@ function c99724761.spop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
if ft<=0 then
tc=g1:FilterSelect(tp,Card.IsLocation,1,1,nil,LOCATION_MZONE):GetFirst()
ft=ft+1
else
tc=g1:Select(tp,1,1,nil):GetFirst()
end
g:AddCard(tc)
g1:Remove(Card.IsCode,nil,tc:GetCode())
ft=ft+1
if i==1 then
g1:Clear()
if tc:IsFusionCode(64500000) then
local sg=Duel.GetMatchingGroup(c99724761.spfilter,tp,LOCATION_ONFIELD,0,tc,62651957)
g1:Merge(sg)
end
if tc:IsFusionCode(62651957) then
local sg=Duel.GetMatchingGroup(c99724761.spfilter,tp,LOCATION_ONFIELD,0,tc,64500000)
g1:Merge(sg)
end
end
end
Duel.Remove(g,POS_FACEUP,REASON_COST)
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