Commit 85459acc authored by Tachibana's avatar Tachibana

1145141919810

parent e08c09c8
Pipeline #13579 passed with stages
in 32 minutes and 21 seconds
...@@ -7,8 +7,8 @@ function c17032430.initial_effect(c) ...@@ -7,8 +7,8 @@ function c17032430.initial_effect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_FUSION_MATERIAL) e1:SetCode(EFFECT_FUSION_MATERIAL)
e1:SetCondition(c17032430.fscondition) e1:SetCondition(c17032430.fscondition())
e1:SetOperation(c17032430.fsoperation) e1:SetOperation(c17032430.fsoperation())
c:RegisterEffect(e1) c:RegisterEffect(e1)
--summon success --summon success
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -27,16 +27,55 @@ function c17032430.initial_effect(c) ...@@ -27,16 +27,55 @@ function c17032430.initial_effect(c)
e3:SetOperation(c17032430.ctop) e3:SetOperation(c17032430.ctop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c17032430.fscondition(e,g,gc) function c17032430.fscondition()
local c=e:GetHandler() return function(e,g,gc,chkf)
if g==nil then return true end if g==nil then return aux.MustMaterialCheck(nil,e:GetHandlerPlayer(),EFFECT_MUST_BE_FMATERIAL) end
if gc then return false end local c=e:GetHandler()
return g:IsExists(Card.IsCanBeFusionMaterial,3,nil,c,c) and g:GetClassCount(Card.GetRace)==g:GetCount() local mg=g:Filter(Card.IsCanBeFusionMaterial,nil,c)
local tp=e:GetHandlerPlayer()
return mg:GetClassCount(Card.GetRace)>=3
end
end
function c17032430.racefilter(c,sg,fc)
return not sg:IsExists(Card.IsRace,1,nil,c:GetRace()) and Duel.GetLocationCountFromEx(tp,tp,c,fc)>0
end end
function c17032430.fsoperation(e,tp,eg,ep,ev,re,r,rp,gc) function c17032430.fsoperation()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL) return function(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
local g=eg:FilterSelect(tp,Card.IsCanBeFusionMaterial,3,63,nil,c,c) local c=e:GetHandler()
Duel.SetFusionMaterial(g) local mg=eg:Filter(Card.IsCanBeFusionMaterial,nil,c)
if mg:GetClassCount(Card.GetRace)<3 then return end
local sg=Group.CreateGroup()
if gc then sg:AddCard(gc) end
while sg:GetCount()<3 do
local cg=mg:Filter(c17032430.racefilter,nil,sg,c)
if cg:GetCount()==0 then break end
local cancel_group=sg:Clone()
if gc then cancel_group:RemoveCard(gc) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local tc=cg:SelectUnselect(cancel_group,tp,false,false,3,63)
if not tc then break end
if sg:IsContains(tc) then
sg:RemoveCard(tc)
else
sg:AddCard(tc)
end
end
while sg:GetCount()<63 do
local cg=mg:Filter(c17032430.racefilter,nil,sg,c)
if cg:GetCount()==0 then break end
local cancel_group=sg:Clone()
if gc then cancel_group:RemoveCard(gc) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
local tc=cg:SelectUnselect(cancel_group,tp,true,false,3,63)
if not tc then break end
if sg:IsContains(tc) then
sg:RemoveCard(tc)
else
sg:AddCard(tc)
end
end
Duel.SetFusionMaterial(sg)
end
end end
function c17032430.matcheck(e,c) function c17032430.matcheck(e,c)
......
...@@ -33,7 +33,7 @@ function c71400032.tg1(e,c) ...@@ -33,7 +33,7 @@ function c71400032.tg1(e,c)
end end
function c71400032.con2(e,tp,eg,ep,ev,re,r,rp) function c71400032.con2(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase() local ph=Duel.GetCurrentPhase()
return Duel.IsExistingMatchingCard(c71400032.filter2,tp,LOCATION_MZONE,LOCATION_MZONE,4,nil) and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2) return Duel.IsExistingMatchingCard(c71400032.filter2con,tp,LOCATION_MZONE,LOCATION_MZONE,4,nil) and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2)
end end
function c71400032.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c71400032.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c71400032.filter2(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and c71400032.filter2(chkc) end
...@@ -45,7 +45,7 @@ end ...@@ -45,7 +45,7 @@ end
function c71400032.op2(e,tp,eg,ep,ev,re,r,rp) function c71400032.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then if tc:IsFaceup() and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then
c:SetCardTarget(tc) c:SetCardTarget(tc)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -69,6 +69,9 @@ end ...@@ -69,6 +69,9 @@ end
function c71400032.filter2(c) function c71400032.filter2(c)
return c:IsRace(RACE_PLANT) and aux.NegateMonsterFilter(c) return c:IsRace(RACE_PLANT) and aux.NegateMonsterFilter(c)
end end
function c71400032.filter2con(c)
return c:IsFaceup() and c:IsRace(RACE_PLANT)
end
function c71400032.filter2a(c) function c71400032.filter2a(c)
return c:IsSetCard(0xd714) and c:IsAbleToHand() return c:IsSetCard(0xd714) and c:IsAbleToHand()
end 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