Commit b1afe4c9 authored by VanillaSalt's avatar VanillaSalt

fix

parent 46c3a89e
...@@ -81,24 +81,23 @@ function c18386170.hdop(e,tp,eg,ep,ev,re,r,rp) ...@@ -81,24 +81,23 @@ function c18386170.hdop(e,tp,eg,ep,ev,re,r,rp)
local sg=g:RandomSelect(tp,1) local sg=g:RandomSelect(tp,1)
Duel.SendtoGrave(sg,REASON_EFFECT) Duel.SendtoGrave(sg,REASON_EFFECT)
end end
function c18386170.ffilter(c) function c18386170.ffilter(c,fc)
return c:IsFusionSetCard(0xb1) and not c:IsHasEffect(6205579) return c:IsFusionSetCard(0xb1) and not c:IsHasEffect(6205579) and c:IsCanBeFusionMaterial(fc)
end end
function c18386170.fscon(e,g,gc,chkf) function c18386170.fscon(e,g,gc,chkf)
if g==nil then return true end if g==nil then return true end
local mg=g:Filter(c18386170.ffilter,nil,e:GetHandler())
if gc then if gc then
local mg=g:Filter(c18386170.ffilter,nil)
mg:AddCard(gc) mg:AddCard(gc)
return c18386170.ffilter(gc) and mg:GetClassCount(Card.GetCode)>=3 return c18386170.ffilter(gc,e:GetHandler()) and mg:GetClassCount(Card.GetCode)>=3
end end
local fs=false local fs=false
local mg=g:Filter(c18386170.ffilter,nil)
if mg:IsExists(aux.FConditionCheckF,1,nil,chkf) then fs=true end if mg:IsExists(aux.FConditionCheckF,1,nil,chkf) then fs=true end
return mg:GetClassCount(Card.GetCode)>=3 and (fs or chkf==PLAYER_NONE) return mg:GetClassCount(Card.GetCode)>=3 and (fs or chkf==PLAYER_NONE)
end end
function c18386170.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c18386170.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
local sg=eg:Filter(c18386170.ffilter,gc,e:GetHandler())
if gc then if gc then
local sg=eg:Filter(c18386170.ffilter,gc)
sg:Remove(Card.IsCode,nil,gc:GetCode()) sg:Remove(Card.IsCode,nil,gc:GetCode())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local g1=sg:Select(tp,1,1,nil) local g1=sg:Select(tp,1,1,nil)
...@@ -109,7 +108,6 @@ function c18386170.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) ...@@ -109,7 +108,6 @@ function c18386170.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
Duel.SetFusionMaterial(g1) Duel.SetFusionMaterial(g1)
return return
end end
local sg=eg:Filter(c18386170.ffilter,nil)
local g1=nil local g1=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
if chkf~=PLAYER_NONE then g1=sg:FilterSelect(tp,aux.FConditionCheckF,1,1,nil,chkf) if chkf~=PLAYER_NONE then g1=sg:FilterSelect(tp,aux.FConditionCheckF,1,1,nil,chkf)
......
...@@ -48,20 +48,24 @@ function c19261966.exfilter(c,g) ...@@ -48,20 +48,24 @@ function c19261966.exfilter(c,g)
end end
function c19261966.fuscon(e,g,gc,chkf) function c19261966.fuscon(e,g,gc,chkf)
if g==nil then return true end if g==nil then return true end
local mg=g:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c19261966.exfilter,tp,0,LOCATION_MZONE,nil,g) local sg=Duel.GetMatchingGroup(c19261966.exfilter,tp,0,LOCATION_MZONE,nil,mg)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then return (c19261966.ffilter1(gc) and (g:IsExists(c19261966.ffilter2,1,gc) or exg:IsExists(c19261966.ffilter2,1,gc))) if gc then
or (c19261966.ffilter2(gc) and (g:IsExists(c19261966.ffilter1,1,gc) or exg:IsExists(c19261966.ffilter1,1,gc))) end if not gc:IsCanBeFusionMaterial(e:GetHandler()) then return false end
return (c19261966.ffilter1(gc) and (mg:IsExists(c19261966.ffilter2,1,gc) or exg:IsExists(c19261966.ffilter2,1,gc)))
or (c19261966.ffilter2(gc) and (mg:IsExists(c19261966.ffilter1,1,gc) or exg:IsExists(c19261966.ffilter1,1,gc)))
end
local g1=Group.CreateGroup() local g1=Group.CreateGroup()
local g2=Group.CreateGroup() local g2=Group.CreateGroup()
local g3=Group.CreateGroup() local g3=Group.CreateGroup()
local g4=Group.CreateGroup() local g4=Group.CreateGroup()
local tc=g:GetFirst() local tc=mg:GetFirst()
while tc do while tc do
if c19261966.ffilter1(tc) then if c19261966.ffilter1(tc) then
g1:AddCard(tc) g1:AddCard(tc)
...@@ -71,7 +75,7 @@ function c19261966.fuscon(e,g,gc,chkf) ...@@ -71,7 +75,7 @@ function c19261966.fuscon(e,g,gc,chkf)
g2:AddCard(tc) g2:AddCard(tc)
if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end
end end
tc=g:GetNext() tc=mg:GetNext()
end end
local exg1=exg:Filter(c19261966.ffilter1,nil) local exg1=exg:Filter(c19261966.ffilter1,nil)
local exg2=exg:Filter(c19261966.ffilter2,nil) local exg2=exg:Filter(c19261966.ffilter2,nil)
...@@ -87,21 +91,22 @@ function c19261966.fuscon(e,g,gc,chkf) ...@@ -87,21 +91,22 @@ function c19261966.fuscon(e,g,gc,chkf)
end end
end end
function c19261966.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c19261966.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
local g=eg:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c19261966.exfilter,tp,0,LOCATION_MZONE,nil,eg) local sg=Duel.GetMatchingGroup(c19261966.exfilter,tp,0,LOCATION_MZONE,nil,g)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then if gc then
local sg1=Group.CreateGroup() local sg1=Group.CreateGroup()
local sg2=Group.CreateGroup() local sg2=Group.CreateGroup()
if c19261966.ffilter1(gc) then if c19261966.ffilter1(gc) then
sg1:Merge(eg:Filter(c19261966.ffilter2,gc)) sg1:Merge(g:Filter(c19261966.ffilter2,gc))
sg2:Merge(exg:Filter(c19261966.ffilter2,gc)) sg2:Merge(exg:Filter(c19261966.ffilter2,gc))
end end
if c19261966.ffilter2(gc) then if c19261966.ffilter2(gc) then
sg1:Merge(eg:Filter(c19261966.ffilter1,gc)) sg1:Merge(g:Filter(c19261966.ffilter1,gc))
sg2:Merge(exg:Filter(c19261966.ffilter1,gc)) sg2:Merge(exg:Filter(c19261966.ffilter1,gc))
end end
local g1=nil local g1=nil
...@@ -116,7 +121,7 @@ function c19261966.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) ...@@ -116,7 +121,7 @@ function c19261966.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
Duel.SetFusionMaterial(g1) Duel.SetFusionMaterial(g1)
return return
end end
local sg=eg:Filter(aux.FConditionFilterF2c,nil,c19261966.ffilter1,c19261966.ffilter2) local sg=g:Filter(aux.FConditionFilterF2c,nil,c19261966.ffilter1,c19261966.ffilter2)
local g1=nil local g1=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
if chkf~=PLAYER_NONE then if chkf~=PLAYER_NONE then
......
...@@ -59,20 +59,24 @@ function c20366274.exfilter(c,g) ...@@ -59,20 +59,24 @@ function c20366274.exfilter(c,g)
end end
function c20366274.fuscon(e,g,gc,chkf) function c20366274.fuscon(e,g,gc,chkf)
if g==nil then return true end if g==nil then return true end
local mg=g:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c20366274.exfilter,tp,0,LOCATION_MZONE,nil,g) local sg=Duel.GetMatchingGroup(c20366274.exfilter,tp,0,LOCATION_MZONE,nil,mg)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then return (c20366274.ffilter1(gc) and (g:IsExists(c20366274.ffilter2,1,gc) or exg:IsExists(c20366274.ffilter2,1,gc))) if gc then
or (c20366274.ffilter2(gc) and (g:IsExists(c20366274.ffilter1,1,gc) or exg:IsExists(c20366274.ffilter1,1,gc))) end if not gc:IsCanBeFusionMaterial(e:GetHandler()) then return false end
return (c20366274.ffilter1(gc) and (mg:IsExists(c20366274.ffilter2,1,gc) or exg:IsExists(c20366274.ffilter2,1,gc)))
or (c20366274.ffilter2(gc) and (mg:IsExists(c20366274.ffilter1,1,gc) or exg:IsExists(c20366274.ffilter1,1,gc)))
end
local g1=Group.CreateGroup() local g1=Group.CreateGroup()
local g2=Group.CreateGroup() local g2=Group.CreateGroup()
local g3=Group.CreateGroup() local g3=Group.CreateGroup()
local g4=Group.CreateGroup() local g4=Group.CreateGroup()
local tc=g:GetFirst() local tc=mg:GetFirst()
while tc do while tc do
if c20366274.ffilter1(tc) then if c20366274.ffilter1(tc) then
g1:AddCard(tc) g1:AddCard(tc)
...@@ -82,7 +86,7 @@ function c20366274.fuscon(e,g,gc,chkf) ...@@ -82,7 +86,7 @@ function c20366274.fuscon(e,g,gc,chkf)
g2:AddCard(tc) g2:AddCard(tc)
if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end
end end
tc=g:GetNext() tc=mg:GetNext()
end end
local exg1=exg:Filter(c20366274.ffilter1,nil) local exg1=exg:Filter(c20366274.ffilter1,nil)
local exg2=exg:Filter(c20366274.ffilter2,nil) local exg2=exg:Filter(c20366274.ffilter2,nil)
...@@ -98,21 +102,22 @@ function c20366274.fuscon(e,g,gc,chkf) ...@@ -98,21 +102,22 @@ function c20366274.fuscon(e,g,gc,chkf)
end end
end end
function c20366274.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c20366274.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
local g=eg:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c20366274.exfilter,tp,0,LOCATION_MZONE,nil,eg) local sg=Duel.GetMatchingGroup(c20366274.exfilter,tp,0,LOCATION_MZONE,nil,g)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then if gc then
local sg1=Group.CreateGroup() local sg1=Group.CreateGroup()
local sg2=Group.CreateGroup() local sg2=Group.CreateGroup()
if c20366274.ffilter1(gc) then if c20366274.ffilter1(gc) then
sg1:Merge(eg:Filter(c20366274.ffilter2,gc)) sg1:Merge(g:Filter(c20366274.ffilter2,gc))
sg2:Merge(exg:Filter(c20366274.ffilter2,gc)) sg2:Merge(exg:Filter(c20366274.ffilter2,gc))
end end
if c20366274.ffilter2(gc) then if c20366274.ffilter2(gc) then
sg1:Merge(eg:Filter(c20366274.ffilter1,gc)) sg1:Merge(g:Filter(c20366274.ffilter1,gc))
sg2:Merge(exg:Filter(c20366274.ffilter1,gc)) sg2:Merge(exg:Filter(c20366274.ffilter1,gc))
end end
local g1=nil local g1=nil
...@@ -127,7 +132,7 @@ function c20366274.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) ...@@ -127,7 +132,7 @@ function c20366274.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
Duel.SetFusionMaterial(g1) Duel.SetFusionMaterial(g1)
return return
end end
local sg=eg:Filter(aux.FConditionFilterF2c,nil,c20366274.ffilter1,c20366274.ffilter2) local sg=g:Filter(aux.FConditionFilterF2c,nil,c20366274.ffilter1,c20366274.ffilter2)
local g1=nil local g1=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
if chkf~=PLAYER_NONE then if chkf~=PLAYER_NONE then
......
...@@ -28,17 +28,17 @@ function c31111109.initial_effect(c) ...@@ -28,17 +28,17 @@ function c31111109.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
c31111109.material_setcode=0x8 c31111109.material_setcode=0x8
function c31111109.ffilter(c,cat) function c31111109.ffilter(c,cat,fc)
return c:IsFusionSetCard(cat) and not c:IsHasEffect(6205579) return c:IsFusionSetCard(cat) and not c:IsHasEffect(6205579) and c:IsCanBeFusionMaterial(fc)
end end
function c31111109.fuscon(e,g,gc,chkf) function c31111109.fuscon(e,g,gc,chkf)
if g==nil then return false end if g==nil then return false end
if gc then return false end if gc then return false end
local g1=g:Filter(c31111109.ffilter,nil,0x9) local g1=g:Filter(c31111109.ffilter,nil,0x9,e:GetHandler())
local c1=g1:GetCount() local c1=g1:GetCount()
local g2=g:Filter(c31111109.ffilter,nil,0x1f) local g2=g:Filter(c31111109.ffilter,nil,0x1f,e:GetHandler())
local c2=g2:GetCount() local c2=g2:GetCount()
local g3=g:Filter(c31111109.ffilter,nil,0x8) local g3=g:Filter(c31111109.ffilter,nil,0x8,e:GetHandler())
local c3=g3:GetCount() local c3=g3:GetCount()
local ag=g1:Clone() local ag=g1:Clone()
ag:Merge(g2) ag:Merge(g2)
...@@ -48,9 +48,9 @@ function c31111109.fuscon(e,g,gc,chkf) ...@@ -48,9 +48,9 @@ function c31111109.fuscon(e,g,gc,chkf)
end end
function c31111109.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c31111109.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
if gc then return end if gc then return end
local g1=eg:Filter(c31111109.ffilter,nil,0x9) local g1=eg:Filter(c31111109.ffilter,nil,0x9,e:GetHandler())
local g2=eg:Filter(c31111109.ffilter,nil,0x1f) local g2=eg:Filter(c31111109.ffilter,nil,0x1f,e:GetHandler())
local g3=eg:Filter(c31111109.ffilter,nil,0x8) local g3=eg:Filter(c31111109.ffilter,nil,0x8,e:GetHandler())
local ag=g1:Clone() local ag=g1:Clone()
ag:Merge(g2) ag:Merge(g2)
ag:Merge(g3) ag:Merge(g3)
......
...@@ -50,20 +50,24 @@ function c74009824.exfilter(c,g) ...@@ -50,20 +50,24 @@ function c74009824.exfilter(c,g)
end end
function c74009824.fuscon(e,g,gc,chkf) function c74009824.fuscon(e,g,gc,chkf)
if g==nil then return true end if g==nil then return true end
local mg=g:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c74009824.exfilter,tp,0,LOCATION_MZONE,nil,g) local sg=Duel.GetMatchingGroup(c74009824.exfilter,tp,0,LOCATION_MZONE,nil,mg)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then return (c74009824.ffilter1(gc) and (g:IsExists(c74009824.ffilter2,1,gc) or exg:IsExists(c74009824.ffilter2,1,gc))) if gc then
or (c74009824.ffilter2(gc) and (g:IsExists(c74009824.ffilter1,1,gc) or exg:IsExists(c74009824.ffilter1,1,gc))) end if not gc:IsCanBeFusionMaterial(e:GetHandler()) then return false end
return (c74009824.ffilter1(gc) and (mg:IsExists(c74009824.ffilter2,1,gc) or exg:IsExists(c74009824.ffilter2,1,gc)))
or (c74009824.ffilter2(gc) and (mg:IsExists(c74009824.ffilter1,1,gc) or exg:IsExists(c74009824.ffilter1,1,gc)))
end
local g1=Group.CreateGroup() local g1=Group.CreateGroup()
local g2=Group.CreateGroup() local g2=Group.CreateGroup()
local g3=Group.CreateGroup() local g3=Group.CreateGroup()
local g4=Group.CreateGroup() local g4=Group.CreateGroup()
local tc=g:GetFirst() local tc=mg:GetFirst()
while tc do while tc do
if c74009824.ffilter1(tc) then if c74009824.ffilter1(tc) then
g1:AddCard(tc) g1:AddCard(tc)
...@@ -73,7 +77,7 @@ function c74009824.fuscon(e,g,gc,chkf) ...@@ -73,7 +77,7 @@ function c74009824.fuscon(e,g,gc,chkf)
g2:AddCard(tc) g2:AddCard(tc)
if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end
end end
tc=g:GetNext() tc=mg:GetNext()
end end
local exg1=exg:Filter(c74009824.ffilter1,nil) local exg1=exg:Filter(c74009824.ffilter1,nil)
local exg2=exg:Filter(c74009824.ffilter2,nil) local exg2=exg:Filter(c74009824.ffilter2,nil)
...@@ -89,21 +93,22 @@ function c74009824.fuscon(e,g,gc,chkf) ...@@ -89,21 +93,22 @@ function c74009824.fuscon(e,g,gc,chkf)
end end
end end
function c74009824.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c74009824.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
local g=eg:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c74009824.exfilter,tp,0,LOCATION_MZONE,nil,eg) local sg=Duel.GetMatchingGroup(c74009824.exfilter,tp,0,LOCATION_MZONE,nil,g)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then if gc then
local sg1=Group.CreateGroup() local sg1=Group.CreateGroup()
local sg2=Group.CreateGroup() local sg2=Group.CreateGroup()
if c74009824.ffilter1(gc) then if c74009824.ffilter1(gc) then
sg1:Merge(eg:Filter(c74009824.ffilter2,gc)) sg1:Merge(g:Filter(c74009824.ffilter2,gc))
sg2:Merge(exg:Filter(c74009824.ffilter2,gc)) sg2:Merge(exg:Filter(c74009824.ffilter2,gc))
end end
if c74009824.ffilter2(gc) then if c74009824.ffilter2(gc) then
sg1:Merge(eg:Filter(c74009824.ffilter1,gc)) sg1:Merge(g:Filter(c74009824.ffilter1,gc))
sg2:Merge(exg:Filter(c74009824.ffilter1,gc)) sg2:Merge(exg:Filter(c74009824.ffilter1,gc))
end end
local g1=nil local g1=nil
...@@ -118,7 +123,7 @@ function c74009824.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) ...@@ -118,7 +123,7 @@ function c74009824.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
Duel.SetFusionMaterial(g1) Duel.SetFusionMaterial(g1)
return return
end end
local sg=eg:Filter(aux.FConditionFilterF2c,nil,c74009824.ffilter1,c74009824.ffilter2) local sg=g:Filter(aux.FConditionFilterF2c,nil,c74009824.ffilter1,c74009824.ffilter2)
local g1=nil local g1=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
if chkf~=PLAYER_NONE then if chkf~=PLAYER_NONE then
......
...@@ -16,17 +16,18 @@ function c74506079.initial_effect(c) ...@@ -16,17 +16,18 @@ function c74506079.initial_effect(c)
e2:SetValue(c74506079.matcheck) e2:SetValue(c74506079.matcheck)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c74506079.ffilter(c) function c74506079.ffilter(c,fc)
return c:IsFusionSetCard(0x3e) and c:IsRace(RACE_REPTILE) and not c:IsHasEffect(6205579) return c:IsFusionSetCard(0x3e) and c:IsRace(RACE_REPTILE) and not c:IsHasEffect(6205579) and c:IsCanBeFusionMaterial(fc)
end end
function c74506079.fscondition(e,g,gc) function c74506079.fscondition(e,g,gc)
if g==nil then return true end if g==nil then return true end
if gc then return false end if gc then return false end
return g:IsExists(c74506079.ffilter,2,nil) return g:IsExists(c74506079.ffilter,2,nil,e:GetHandler())
end end
function c74506079.fsoperation(e,tp,eg,ep,ev,re,r,rp,gc) function c74506079.fsoperation(e,tp,eg,ep,ev,re,r,rp,gc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
Duel.SetFusionMaterial(eg:FilterSelect(tp,c74506079.ffilter,2,63,nil)) local g=eg:FilterSelect(tp,c74506079.ffilter,2,63,nil,e:GetHandler())
Duel.SetFusionMaterial(g)
end end
function c74506079.matcheck(e,c) function c74506079.matcheck(e,c)
local ct=c:GetMaterial():GetClassCount(Card.GetCode) local ct=c:GetMaterial():GetClassCount(Card.GetCode)
......
...@@ -52,20 +52,24 @@ function c74822425.exfilter(c,g) ...@@ -52,20 +52,24 @@ function c74822425.exfilter(c,g)
end end
function c74822425.fuscon(e,g,gc,chkf) function c74822425.fuscon(e,g,gc,chkf)
if g==nil then return true end if g==nil then return true end
local mg=g:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c74822425.exfilter,tp,0,LOCATION_MZONE,nil,g) local sg=Duel.GetMatchingGroup(c74822425.exfilter,tp,0,LOCATION_MZONE,nil,mg)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then return (c74822425.ffilter1(gc) and (g:IsExists(c74822425.ffilter2,1,gc) or exg:IsExists(c74822425.ffilter2,1,gc))) if gc then
or (c74822425.ffilter2(gc) and (g:IsExists(c74822425.ffilter1,1,gc) or exg:IsExists(c74822425.ffilter1,1,gc))) end if not gc:IsCanBeFusionMaterial(e:GetHandler()) then return false end
return (c74822425.ffilter1(gc) and (mg:IsExists(c74822425.ffilter2,1,gc) or exg:IsExists(c74822425.ffilter2,1,gc)))
or (c74822425.ffilter2(gc) and (mg:IsExists(c74822425.ffilter1,1,gc) or exg:IsExists(c74822425.ffilter1,1,gc)))
end
local g1=Group.CreateGroup() local g1=Group.CreateGroup()
local g2=Group.CreateGroup() local g2=Group.CreateGroup()
local g3=Group.CreateGroup() local g3=Group.CreateGroup()
local g4=Group.CreateGroup() local g4=Group.CreateGroup()
local tc=g:GetFirst() local tc=mg:GetFirst()
while tc do while tc do
if c74822425.ffilter1(tc) then if c74822425.ffilter1(tc) then
g1:AddCard(tc) g1:AddCard(tc)
...@@ -75,7 +79,7 @@ function c74822425.fuscon(e,g,gc,chkf) ...@@ -75,7 +79,7 @@ function c74822425.fuscon(e,g,gc,chkf)
g2:AddCard(tc) g2:AddCard(tc)
if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end
end end
tc=g:GetNext() tc=mg:GetNext()
end end
local exg1=exg:Filter(c74822425.ffilter1,nil) local exg1=exg:Filter(c74822425.ffilter1,nil)
local exg2=exg:Filter(c74822425.ffilter2,nil) local exg2=exg:Filter(c74822425.ffilter2,nil)
...@@ -91,21 +95,22 @@ function c74822425.fuscon(e,g,gc,chkf) ...@@ -91,21 +95,22 @@ function c74822425.fuscon(e,g,gc,chkf)
end end
end end
function c74822425.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c74822425.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
local g=eg:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c74822425.exfilter,tp,0,LOCATION_MZONE,nil,eg) local sg=Duel.GetMatchingGroup(c74822425.exfilter,tp,0,LOCATION_MZONE,nil,g)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then if gc then
local sg1=Group.CreateGroup() local sg1=Group.CreateGroup()
local sg2=Group.CreateGroup() local sg2=Group.CreateGroup()
if c74822425.ffilter1(gc) then if c74822425.ffilter1(gc) then
sg1:Merge(eg:Filter(c74822425.ffilter2,gc)) sg1:Merge(g:Filter(c74822425.ffilter2,gc))
sg2:Merge(exg:Filter(c74822425.ffilter2,gc)) sg2:Merge(exg:Filter(c74822425.ffilter2,gc))
end end
if c74822425.ffilter2(gc) then if c74822425.ffilter2(gc) then
sg1:Merge(eg:Filter(c74822425.ffilter1,gc)) sg1:Merge(g:Filter(c74822425.ffilter1,gc))
sg2:Merge(exg:Filter(c74822425.ffilter1,gc)) sg2:Merge(exg:Filter(c74822425.ffilter1,gc))
end end
local g1=nil local g1=nil
...@@ -120,7 +125,7 @@ function c74822425.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) ...@@ -120,7 +125,7 @@ function c74822425.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
Duel.SetFusionMaterial(g1) Duel.SetFusionMaterial(g1)
return return
end end
local sg=eg:Filter(aux.FConditionFilterF2c,nil,c74822425.ffilter1,c74822425.ffilter2) local sg=g:Filter(aux.FConditionFilterF2c,nil,c74822425.ffilter1,c74822425.ffilter2)
local g1=nil local g1=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
if chkf~=PLAYER_NONE then if chkf~=PLAYER_NONE then
......
...@@ -96,11 +96,14 @@ function c82734805.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -96,11 +96,14 @@ function c82734805.op(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(g1,REASON_EFFECT) Duel.SendtoGrave(g1,REASON_EFFECT)
end end
end end
function c82734805.filter(c)
return c:IsFusionSetCard(0xbb) and not c:IsHasEffect(6205579)
end
function c82734805.fcfilter1(c,code1,code2,g) function c82734805.fcfilter1(c,code1,code2,g)
return c:IsFusionCode(code1,code2) and g:IsExists(Card.IsFusionSetCard,1,c,0xbb) return c:IsFusionCode(code1,code2) and g:IsExists(c82734805.filter,1,c)
end end
function c82734805.fcfilter2(c,code,g,fc) function c82734805.fcfilter2(c,code,g,fc)
return (c:IsFusionCode(code) or c:CheckFusionSubstitute(fc)) and g:IsExists(Card.IsFusionSetCard,1,c,0xbb) return (c:IsFusionCode(code) or c:CheckFusionSubstitute(fc)) and g:IsExists(c82734805.filter,1,c)
end end
function c82734805.fcfilter3(c,g,fc) function c82734805.fcfilter3(c,g,fc)
return ((c:IsFusionCode(14799437) or c:CheckFusionSubstitute(fc)) and g:IsExists(Card.IsFusionCode,1,c,23440231)) return ((c:IsFusionCode(14799437) or c:CheckFusionSubstitute(fc)) and g:IsExists(Card.IsFusionCode,1,c,23440231))
...@@ -110,20 +113,19 @@ function c82734805.fcfilter4(c,code,fc) ...@@ -110,20 +113,19 @@ function c82734805.fcfilter4(c,code,fc)
return c:IsFusionCode(code) or c:CheckFusionSubstitute(fc) return c:IsFusionCode(code) or c:CheckFusionSubstitute(fc)
end end
function c82734805.fcfilter7(c,chkf,fc) function c82734805.fcfilter7(c,chkf,fc)
return aux.FConditionCheckF(c,chkf) and (c:IsFusionSetCard(0xbb) or c:CheckFusionSubstitute(fc)) return aux.FConditionCheckF(c,chkf) and (c82734805.filter(c) or c:CheckFusionSubstitute(fc))
end end
function c82734805.fscon(e,g,gc,chkf) function c82734805.fscon(e,g,gc,chkf)
if g==nil then return true end if g==nil then return true end
local mg=g:Filter(Card.IsCanBeFusionMaterial,gc,e:GetHandler())
if gc then if gc then
local mg=g:Clone()
mg:RemoveCard(gc)
if gc:CheckFusionSubstitute(e:GetHandler()) then if gc:CheckFusionSubstitute(e:GetHandler()) then
return mg:IsExists(c82734805.fcfilter1,1,nil,14799437,23440231,mg) return mg:IsExists(c82734805.fcfilter1,1,nil,14799437,23440231,mg)
elseif gc:IsFusionCode(14799437) then elseif gc:IsFusionCode(14799437) then
return mg:IsExists(c82734805.fcfilter2,1,nil,23440231,mg,e:GetHandler()) return mg:IsExists(c82734805.fcfilter2,1,nil,23440231,mg,e:GetHandler())
elseif gc:IsFusionCode(23440231) then elseif gc:IsFusionCode(23440231) then
return mg:IsExists(c82734805.fcfilter2,1,nil,14799437,mg,e:GetHandler()) return mg:IsExists(c82734805.fcfilter2,1,nil,14799437,mg,e:GetHandler())
elseif gc:IsFusionSetCard(0xbb) then elseif c82734805.filter(gc) then
return mg:IsExists(c82734805.fcfilter3,1,nil,mg,e:GetHandler()) return mg:IsExists(c82734805.fcfilter3,1,nil,mg,e:GetHandler())
else else
return false return false
...@@ -131,7 +133,7 @@ function c82734805.fscon(e,g,gc,chkf) ...@@ -131,7 +133,7 @@ function c82734805.fscon(e,g,gc,chkf)
end end
local b1=0 local b2=0 local b3=0 local bs=0 local b1=0 local b2=0 local b3=0 local bs=0
local fs=false local fs=false
local tc=g:GetFirst() local tc=mg:GetFirst()
while tc do while tc do
if tc:CheckFusionSubstitute(e:GetHandler()) then if tc:CheckFusionSubstitute(e:GetHandler()) then
bs=1 if aux.FConditionCheckF(tc,chkf) then fs=true end bs=1 if aux.FConditionCheckF(tc,chkf) then fs=true end
...@@ -139,10 +141,10 @@ function c82734805.fscon(e,g,gc,chkf) ...@@ -139,10 +141,10 @@ function c82734805.fscon(e,g,gc,chkf)
if b1==0 then b1=1 else b3=1 end if aux.FConditionCheckF(tc,chkf) then fs=true end if b1==0 then b1=1 else b3=1 end if aux.FConditionCheckF(tc,chkf) then fs=true end
elseif tc:IsFusionCode(23440231) then elseif tc:IsFusionCode(23440231) then
if b2==0 then b2=1 else b3=1 end if aux.FConditionCheckF(tc,chkf) then fs=true end if b2==0 then b2=1 else b3=1 end if aux.FConditionCheckF(tc,chkf) then fs=true end
elseif tc:IsFusionSetCard(0xbb) then elseif c82734805.filter(tc) then
b3=1 if aux.FConditionCheckF(tc,chkf) then fs=true end b3=1 if aux.FConditionCheckF(tc,chkf) then fs=true end
end end
tc=g:GetNext() tc=mg:GetNext()
end end
if chkf~=PLAYER_NONE then if chkf~=PLAYER_NONE then
return fs and b1+b2+b3+bs>=3 return fs and b1+b2+b3+bs>=3
...@@ -151,14 +153,13 @@ function c82734805.fscon(e,g,gc,chkf) ...@@ -151,14 +153,13 @@ function c82734805.fscon(e,g,gc,chkf)
end end
end end
function c82734805.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c82734805.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
local mg=eg:Filter(Card.IsCanBeFusionMaterial,gc,e:GetHandler())
local g1=Group.CreateGroup() local g1=Group.CreateGroup()
if not gc and chkf~=PLAYER_NONE then if not gc and chkf~=PLAYER_NONE then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
gc=eg:FilterSelect(tp,c82734805.fcfilter7,1,1,nil,chkf,e:GetHandler()):GetFirst() gc=mg:FilterSelect(tp,c82734805.fcfilter7,1,1,nil,chkf,e:GetHandler()):GetFirst()
g1:AddCard(gc) g1:AddCard(gc)
end end
local mg=eg:Clone()
if gc then mg:RemoveCard(gc) end
local ok=false local ok=false
if gc then if gc then
if gc:CheckFusionSubstitute(e:GetHandler()) then if gc:CheckFusionSubstitute(e:GetHandler()) then
...@@ -173,7 +174,7 @@ function c82734805.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) ...@@ -173,7 +174,7 @@ function c82734805.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local sg=mg:FilterSelect(tp,c82734805.fcfilter2,1,1,nil,14799437,mg,e:GetHandler()) local sg=mg:FilterSelect(tp,c82734805.fcfilter2,1,1,nil,14799437,mg,e:GetHandler())
g1:Merge(sg) g1:Merge(sg)
elseif gc:IsFusionSetCard(0xbb) then elseif c82734805.filter(gc) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local sg=mg:FilterSelect(tp,c82734805.fcfilter3,1,1,nil,mg,e:GetHandler()) local sg=mg:FilterSelect(tp,c82734805.fcfilter3,1,1,nil,mg,e:GetHandler())
g1:Merge(sg) g1:Merge(sg)
...@@ -196,8 +197,8 @@ function c82734805.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) ...@@ -196,8 +197,8 @@ function c82734805.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local sg1=mg2:Select(tp,1,1,nil) local sg1=mg2:Select(tp,1,1,nil)
local tc1=sg1:GetFirst() local tc1=sg1:GetFirst()
if not mg:IsExists(Card.IsFusionSetCard,2,tc1,0xbb) then if not mg:IsExists(c82734805.filter,2,tc1) then
mg2:Remove(Card.IsFusionSetCard,nil,0xbb) mg2:Remove(c82734805.filter,nil)
end end
if tc1:CheckFusionSubstitute(e:GetHandler()) then if tc1:CheckFusionSubstitute(e:GetHandler()) then
mg2:Remove(Card.CheckFusionSubstitute,nil,e:GetHandler()) mg2:Remove(Card.CheckFusionSubstitute,nil,e:GetHandler())
...@@ -208,7 +209,7 @@ function c82734805.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) ...@@ -208,7 +209,7 @@ function c82734805.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
g1:Merge(sg2) g1:Merge(sg2)
end end
mg:Sub(g1) mg:Sub(g1)
mg=mg:Filter(Card.IsFusionSetCard,nil,0xbb) mg=mg:Filter(c82734805.filter,nil)
if mg:GetCount()==0 or (ok and not Duel.SelectYesNo(tp,93)) then if mg:GetCount()==0 or (ok and not Duel.SelectYesNo(tp,93)) then
Duel.SetFusionMaterial(g1) Duel.SetFusionMaterial(g1)
return return
......
...@@ -29,25 +29,25 @@ function c84058253.initial_effect(c) ...@@ -29,25 +29,25 @@ function c84058253.initial_effect(c)
e3:SetOperation(c84058253.tgop) e3:SetOperation(c84058253.tgop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c84058253.ffilter(c) function c84058253.ffilter(c,fc)
return c:IsFusionSetCard(0x1093) and not c:IsHasEffect(6205579) return c:IsFusionSetCard(0x1093) and not c:IsHasEffect(6205579) and c:IsCanBeFusionMaterial(fc)
end end
function c84058253.fscondition(e,g,gc,chkf) function c84058253.fscondition(e,g,gc,chkf)
if g==nil then return false end if g==nil then return false end
if gc then return c84058253.ffilter(gc) and g:IsExists(c84058253.ffilter,1,gc) end if gc then return c84058253.ffilter(gc,e:GetHandler()) and g:IsExists(c84058253.ffilter,1,gc,e:GetHandler()) end
local g1=g:Filter(c84058253.ffilter,nil) local g1=g:Filter(c84058253.ffilter,nil,e:GetHandler())
if chkf~=PLAYER_NONE then if chkf~=PLAYER_NONE then
return g1:FilterCount(Card.IsOnField,nil)~=0 and g1:GetCount()>=2 return g1:IsExists(aux.FConditionCheckF,1,nil,chkf) and g1:GetCount()>=2
else return g1:GetCount()>=2 end else return g1:GetCount()>=2 end
end end
function c84058253.fsoperation(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c84058253.fsoperation(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
if gc then if gc then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local g1=eg:FilterSelect(tp,c84058253.ffilter,1,63,gc) local g1=eg:FilterSelect(tp,c84058253.ffilter,1,63,gc,e:GetHandler())
Duel.SetFusionMaterial(g1) Duel.SetFusionMaterial(g1)
return return
end end
local sg=eg:Filter(c84058253.ffilter,nil) local sg=eg:Filter(c84058253.ffilter,nil,e:GetHandler())
if chkf==PLAYER_NONE or sg:GetCount()==2 then if chkf==PLAYER_NONE or sg:GetCount()==2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local g1=sg:Select(tp,2,63,nil) local g1=sg:Select(tp,2,63,nil)
......
...@@ -57,20 +57,24 @@ function c94977269.exfilter(c,g) ...@@ -57,20 +57,24 @@ function c94977269.exfilter(c,g)
end end
function c94977269.fuscon(e,g,gc,chkf) function c94977269.fuscon(e,g,gc,chkf)
if g==nil then return true end if g==nil then return true end
local mg=g:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local tp=e:GetHandlerPlayer() local tp=e:GetHandlerPlayer()
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c94977269.exfilter,tp,0,LOCATION_MZONE,nil,g) local sg=Duel.GetMatchingGroup(c94977269.exfilter,tp,0,LOCATION_MZONE,nil,mg)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then return (c94977269.ffilter1(gc) and (g:IsExists(c94977269.ffilter2,1,gc) or exg:IsExists(c94977269.ffilter2,1,gc))) if gc then
or (c94977269.ffilter2(gc) and (g:IsExists(c94977269.ffilter1,1,gc) or exg:IsExists(c94977269.ffilter1,1,gc))) end if not gc:IsCanBeFusionMaterial(e:GetHandler()) then return false end
return (c94977269.ffilter1(gc) and (mg:IsExists(c94977269.ffilter2,1,gc) or exg:IsExists(c94977269.ffilter2,1,gc)))
or (c94977269.ffilter2(gc) and (mg:IsExists(c94977269.ffilter1,1,gc) or exg:IsExists(c94977269.ffilter1,1,gc)))
end
local g1=Group.CreateGroup() local g1=Group.CreateGroup()
local g2=Group.CreateGroup() local g2=Group.CreateGroup()
local g3=Group.CreateGroup() local g3=Group.CreateGroup()
local g4=Group.CreateGroup() local g4=Group.CreateGroup()
local tc=g:GetFirst() local tc=mg:GetFirst()
while tc do while tc do
if c94977269.ffilter1(tc) then if c94977269.ffilter1(tc) then
g1:AddCard(tc) g1:AddCard(tc)
...@@ -80,7 +84,7 @@ function c94977269.fuscon(e,g,gc,chkf) ...@@ -80,7 +84,7 @@ function c94977269.fuscon(e,g,gc,chkf)
g2:AddCard(tc) g2:AddCard(tc)
if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end if aux.FConditionCheckF(tc,chkf) then g4:AddCard(tc) end
end end
tc=g:GetNext() tc=mg:GetNext()
end end
local exg1=exg:Filter(c94977269.ffilter1,nil) local exg1=exg:Filter(c94977269.ffilter1,nil)
local exg2=exg:Filter(c94977269.ffilter2,nil) local exg2=exg:Filter(c94977269.ffilter2,nil)
...@@ -96,21 +100,22 @@ function c94977269.fuscon(e,g,gc,chkf) ...@@ -96,21 +100,22 @@ function c94977269.fuscon(e,g,gc,chkf)
end end
end end
function c94977269.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c94977269.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
local g=eg:Filter(Card.IsCanBeFusionMaterial,nil,e:GetHandler())
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local exg=Group.CreateGroup() local exg=Group.CreateGroup()
if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then if fc and fc:IsHasEffect(81788994) and fc:IsCanRemoveCounter(tp,0x16,3,REASON_EFFECT) then
local sg=Duel.GetMatchingGroup(c94977269.exfilter,tp,0,LOCATION_MZONE,nil,eg) local sg=Duel.GetMatchingGroup(c94977269.exfilter,tp,0,LOCATION_MZONE,nil,g)
exg:Merge(sg) exg:Merge(sg)
end end
if gc then if gc then
local sg1=Group.CreateGroup() local sg1=Group.CreateGroup()
local sg2=Group.CreateGroup() local sg2=Group.CreateGroup()
if c94977269.ffilter1(gc) then if c94977269.ffilter1(gc) then
sg1:Merge(eg:Filter(c94977269.ffilter2,gc)) sg1:Merge(g:Filter(c94977269.ffilter2,gc))
sg2:Merge(exg:Filter(c94977269.ffilter2,gc)) sg2:Merge(exg:Filter(c94977269.ffilter2,gc))
end end
if c94977269.ffilter2(gc) then if c94977269.ffilter2(gc) then
sg1:Merge(eg:Filter(c94977269.ffilter1,gc)) sg1:Merge(g:Filter(c94977269.ffilter1,gc))
sg2:Merge(exg:Filter(c94977269.ffilter1,gc)) sg2:Merge(exg:Filter(c94977269.ffilter1,gc))
end end
local g1=nil local g1=nil
...@@ -125,7 +130,7 @@ function c94977269.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf) ...@@ -125,7 +130,7 @@ function c94977269.fusop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
Duel.SetFusionMaterial(g1) Duel.SetFusionMaterial(g1)
return return
end end
local sg=eg:Filter(aux.FConditionFilterF2c,nil,c94977269.ffilter1,c94977269.ffilter2) local sg=g:Filter(aux.FConditionFilterF2c,nil,c94977269.ffilter1,c94977269.ffilter2)
local g1=nil local g1=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
if chkf~=PLAYER_NONE then if chkf~=PLAYER_NONE then
......
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