Commit 89f1725d authored by nanahira's avatar nanahira

updatexyzfus

parent 0b4c248a
......@@ -308,12 +308,6 @@ function cm.XyzProcedureCustomTuneMagicianCheck(c,g)
return false
end
function cm.XyzProcedureCustomCheck(g,xyzc,tp,gf)
if EFFECT_MUST_BE_XMATERIAL then
local eset={Duel.IsPlayerAffectedByEffect(tp,EFFECT_MUST_BE_XMATERIAL)}
for _,te in ipairs(eset) do
if not g:IsContains(te:GetHandler()) then return false end
end
end
if g:IsExists(cm.XyzProcedureCustomTuneMagicianCheck,1,nil,g) then return false end
return not gf or gf(g,xyzc,tp)
end
......@@ -354,7 +348,14 @@ function cm.XyzProcedureCustomCondition(func,gf,minct,maxct,ext_params)
else
mg=Duel.GetMatchingGroup(cm.XyzProcedureCustomFilter,tp,LOCATION_MZONE,0,nil,c,func,ext_params)
end
return maxc>=minc and cm.CheckGroup(mg,cm.CheckFieldFilter,nil,minc,maxc,tp,c,cm.XyzProcedureCustomCheck,c,tp,gf)
local sg=Group.CreateGroup()
local ce={Duel.IsPlayerAffectedByEffect(EFFECT_MUST_BE_XMATERIAL)}
for _,te in ipairs(ce) do
local tc=te:GetHandler()
if not mg:IsContains(tc) then return false end
sg:AddCard(tc)
end
return maxc>=minc and cm.CheckGroup(mg,cm.CheckFieldFilter,sg,minc,maxc,tp,c,cm.XyzProcedureCustomCheck,c,tp,gf)
end
end
function cm.XyzProcedureCustomTarget(func,gf,minct,maxct,ext_params)
......@@ -375,7 +376,12 @@ function cm.XyzProcedureCustomTarget(func,gf,minct,maxct,ext_params)
minc=math.max(minc,min)
maxc=math.min(maxc,max)
end
g=cm.SelectGroupWithCancel(tp,HINTMSG_XMATERIAL,mg,cm.CheckFieldFilter,nil,minc,maxc,tp,c,cm.XyzProcedureCustomCheck,c,tp,gf)
local ce={Duel.IsPlayerAffectedByEffect(EFFECT_MUST_BE_XMATERIAL)}
for _,te in ipairs(ce) do
local tc=te:GetHandler()
sg:AddCard(tc)
end
g=cm.SelectGroupWithCancel(tp,HINTMSG_XMATERIAL,mg,cm.CheckFieldFilter,sg,minc,maxc,tp,c,cm.XyzProcedureCustomCheck,c,tp,gf)
end
if g then
g:KeepAlive()
......@@ -1749,13 +1755,19 @@ return function(e,g,gc,chkfnf)
local chkf=bit.band(chkfnf,0xff)
local mg=g:Filter(cm.FusionFilter_3L,nil,e:GetHandler(),mf,sub)
local tp=e:GetHandlerPlayer()
local exg=Duel.GetMatchingGroup(cm.MyonCheckFilter,tp,0,LOCATION_MZONE,nil,c,myon)
mg:Merge(exg)
local sg=Group.CreateGroup()
if gc then
if not cm.FusionFilter_3L(gc,fc,mf,sub) then return false end
sg:AddCard(gc)
end
local exg=Duel.GetMatchingGroup(cm.MyonCheckFilter,tp,0,LOCATION_MZONE,nil,c,myon)
mg:Merge(exg)
local ce={Duel.IsPlayerAffectedByEffect(EFFECT_MUST_BE_FMATERIAL)}
for _,te in ipairs(ce) do
local tc=te:GetHandler()
if not mg:IsContains(tc) then return false end
sg:AddCard(tc)
end
return cm.CheckGroup(mg,cm.FusionCheck_3L,sg,1,max,min,tp,c,f,chkfnf,sub)
end
end
......@@ -1764,10 +1776,17 @@ return function(e,tp,eg,ep,ev,re,r,rp,gc,chkfnf)
local c=e:GetHandler()
local chkf=bit.band(chkfnf,0xff)
local mg=eg:Filter(cm.FusionFilter_3L,nil,e:GetHandler(),mf,sub)
local sg=Group.CreateGroup()
if gc then sg:AddCard(gc) end
local exg=Duel.GetMatchingGroup(cm.MyonCheckFilter,tp,0,LOCATION_MZONE,nil,c,myon)
mg:Merge(exg)
local sg=Group.CreateGroup()
if gc then
sg:AddCard(gc)
end
local ce={Duel.IsPlayerAffectedByEffect(EFFECT_MUST_BE_FMATERIAL)}
for _,te in ipairs(ce) do
local tc=te:GetHandler()
sg:AddCard(tc)
end
local g=cm.SelectGroup(tp,HINTMSG_FMATERIAL,mg,cm.FusionCheck_3L,sg,1,max,min,tp,c,f,chkf,sub)
Duel.SetFusionMaterial(g)
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