Commit 03f87f58 authored by Grajade's avatar Grajade

Update c74563014.lua

parent 3d3a25a1
...@@ -104,71 +104,46 @@ function c74563014.eqop(e,tp,eg,ep,ev,re,r,rp) ...@@ -104,71 +104,46 @@ function c74563014.eqop(e,tp,eg,ep,ev,re,r,rp)
tg=dg:GetNext() tg=dg:GetNext()
end end
end end
function c74563014.exfilter1(c,fc) --
return c74563014.allfilter1(c,fc) and c:IsCode(74563024) and c:IsAbleToRemove() function c74563014.ExFusFilter(c,fc)
return c74563014.AllFusFilter(c,fc) and c:IsCode(74563024) and c:IsAbleToRemove()
end end
function c74563014.allfilter1(c,fc) function c74563014.AllFusFilter(c,fc)
return c:IsCanBeFusionMaterial(fc) and c:IsFusionType(TYPE_MONSTER) return c:IsCanBeFusionMaterial(fc) and c:IsFusionType(TYPE_MONSTER) and (c74563014.CheckFusFilter1(c) or c74563014.CheckFusFilter2(c))
and (c:IsFusionSetCard(0x258) or c:IsFusionAttribute(ATTRIBUTE_WIND) or c:IsFusionAttribute(ATTRIBUTE_DARK))
end end
-- function c74563014.CheckFusFilter1(c)
function c74563014.CheckFusionFilter1(c,sg,tc) return c:IsFusionSetCard(0x258)
local check1=0 end
local check2=0 function c74563014.CheckFusFilter2(c)
local sc=sg:GetFirst() return c:IsFusionAttribute(ATTRIBUTE_DARK+ATTRIBUTE_WIND)
while sc do end
if sc:IsFusionSetCard(0x258) then check1=1 end function c74563014.CheckGroupFilter(sg,lc)
if (sc:IsFusionAttribute(ATTRIBUTE_WIND) or sc:IsFusionAttribute(ATTRIBUTE_DARK)) then check2=1 end return (not lc) or (lc and sg:IsContains(lc))
sc=sg:GetNext()
end
return (check1==0 and (tc:IsFusionSetCard(0x258)))
or (check2==0 and (tc:IsFusionAttribute(ATTRIBUTE_WIND) or tc:IsFusionAttribute(ATTRIBUTE_DARK)))
end
function c74563014.CheckRecursive1(c,mg,sg,exg,tp,fc,chkf)
--if exg and exg:IsContains(c) then return false end
if sg:GetCount()>0 and not sg:IsExists(c74563014.CheckFusionFilter1,1,nil,sg,c) then return false end
sg:AddCard(c)
if Duel.GetLocationCountFromEx(tp,tp,sg,c)<0 then return false end
local res=false
if sg:GetCount()==2 then
res=(chkf==PLAYER_NONE or Duel.GetLocationCountFromEx(chkf,tp,sg,fc)>0)
if aux.FCheckAdditional and not aux.FCheckAdditional(tp,sg,fc) then res=false end
else
res=mg:IsExists(c74563014.CheckRecursive1,1,sg,mg,sg,exg,tp,fc,PLAYER_NONE)
end
sg:RemoveCard(c)
return res
end end
--
function c74563014.con1(e,g,gc,chkfnf) function c74563014.con1(e,g,gc,chkfnf)
if g==nil then return true end if g==nil then return true end
local sg=Group.CreateGroup() local sg=Group.CreateGroup()
local chkf=(chkfnf & 0xff) local chkf=(chkfnf & 0xff)
local c=e:GetHandler() local c=e:GetHandler()
local tp=c:GetControler() local tp=c:GetControler()
local mg=g:Filter(c74563014.allfilter1,nil,c) local mg=g:Filter(c74563014.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563014.exfilter1,tp,LOCATION_GRAVE,0,mg,c) local exg=Duel.GetMatchingGroup(c74563014.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg) mg:Merge(exg)
if gc then return c74563014.allfilter1(gc,c) local checks={c74563014.CheckFusFilter1,c74563014.CheckFusFilter2}
and c74563014.CheckRecursive1(gc,mg,sg,exg,tp,c,chkf) end return mg:CheckSubGroupEach(checks,c74563014.CheckGroupFilter,gc)
return mg:IsExists(c74563014.CheckRecursive1,1,sg,mg,sg,exg,tp,c,chkf)
end end
--
function c74563014.op1(e,tp,eg,ep,ev,re,r,rp,gc,chkfnf) function c74563014.op1(e,tp,eg,ep,ev,re,r,rp,gc,chkfnf)
local c=e:GetHandler() local c=e:GetHandler()
local chkf=(chkfnf & 0xff) local chkf=(chkfnf & 0xff)
local mg=eg:Filter(c74563014.allfilter1,nil,c) local mg=eg:Filter(c74563014.AllFusFilter,nil,c)
local exg=Duel.GetMatchingGroup(c74563014.exfilter1,tp,LOCATION_GRAVE,0,mg,c) local exg=Duel.GetMatchingGroup(c74563014.ExFusFilter,tp,LOCATION_GRAVE,0,mg,c)
mg:Merge(exg) mg:Merge(exg)
local sg=Group.CreateGroup() local checks={c74563014.CheckFusFilter1,c74563014.CheckFusFilter2}
if gc then sg:AddCard(gc) end
repeat
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local g=mg:FilterSelect(tp,c74563014.CheckRecursive1,1,1,sg,mg,sg,exg,tp,c,chkf) local sg=mg:SelectSubGroupEach(tp,checks,false,c74563014.CheckGroupFilter,gc)
sg:Merge(g)
until sg:GetCount()==2
Duel.SetFusionMaterial(sg) Duel.SetFusionMaterial(sg)
end end
--
c74563014.OriginalSetMaterial=Card.SetMaterial c74563014.OriginalSetMaterial=Card.SetMaterial
function c74563014.SetMaterial(c,g) function c74563014.SetMaterial(c,g)
c74563014.OriginalSetMaterial(c,g) c74563014.OriginalSetMaterial(c,g)
......
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