Commit 97f5c9ed authored by nanahira's avatar nanahira
parents da55e6d1 2daf39f3
...@@ -75,7 +75,7 @@ function c33700172.fsplimit(e,se,sp,st) ...@@ -75,7 +75,7 @@ function c33700172.fsplimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_FUSION)==SUMMON_TYPE_FUSION or se:GetHandler()==e:GetHandler() return bit.band(st,SUMMON_TYPE_FUSION)==SUMMON_TYPE_FUSION or se:GetHandler()==e:GetHandler()
end end
function c33700172.ffilter(c) function c33700172.ffilter(c)
return (c:IsFusionType(TYPE_XYZ) or c:IsFusionType(TYPE_FUSION) or c:IsFusionType(TYPE_SYNCHRO) or c:IsFusionType(TYPE_LINK)) and c:IsFusionSetCard(0x442) return c:IsFusionType(TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK) and c:IsFusionSetCard(0x442)
end end
function c33700172.splimit(e,c,tp,sumtp,sumpos) function c33700172.splimit(e,c,tp,sumtp,sumpos)
return not bit.band(sumtp,SUMMON_TYPE_PENDULUM)==SUMMON_TYPE_PENDULUM return not bit.band(sumtp,SUMMON_TYPE_PENDULUM)==SUMMON_TYPE_PENDULUM
......
...@@ -12,49 +12,49 @@ function cm.initial_effect(c) ...@@ -12,49 +12,49 @@ function cm.initial_effect(c)
local ct=g:GetClassCount(Card.GetCode) local ct=g:GetClassCount(Card.GetCode)
return ct==1 or ct==g:GetCount() return ct==1 or ct==g:GetCount()
end) end)
e1:SetTarget(c45906428.target) e1:SetTarget(cm.target)
e1:SetOperation(c45906428.activate) e1:SetOperation(cm.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c45906428.filter0(c) function cm.filter0(c)
return c:IsOnField() and c:IsAbleToDeck() return c:IsOnField() and c:IsAbleToDeck()
end end
function c45906428.filter1(c,e) function cm.filter1(c,e)
return c:IsOnField() and c:IsAbleToDeck() and not c:IsImmuneToEffect(e) return c:IsOnField() and c:IsAbleToDeck() and not c:IsImmuneToEffect(e)
end end
function c45906428.filter2(c,e,tp,m,f,chkf) function cm.filter2(c,e,tp,m,f,chkf)
return c:IsType(TYPE_FUSION) and (not f or f(c)) return c:IsType(TYPE_FUSION) and (not f or f(c))
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end end
function c45906428.filter3(c) function cm.filter3(c)
return c:IsType(TYPE_MONSTER) and c:IsCanBeFusionMaterial() and c:IsAbleToDeck() return c:IsType(TYPE_MONSTER) and c:IsCanBeFusionMaterial() and c:IsAbleToDeck()
end end
function c45906428.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local chkf=tp local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(c45906428.filter0,nil) local mg1=Duel.GetFusionMaterial(tp):Filter(cm.filter0,nil)
local mg2=Duel.GetMatchingGroup(c45906428.filter3,tp,LOCATION_GRAVE,0,nil) local mg2=Duel.GetMatchingGroup(cm.filter3,tp,LOCATION_GRAVE,0,nil)
mg1:Merge(mg2) mg1:Merge(mg2)
local res=Duel.IsExistingMatchingCard(c45906428.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf) local res=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf)
if not res then if not res then
local ce=Duel.GetChainMaterial(tp) local ce=Duel.GetChainMaterial(tp)
if ce~=nil then if ce~=nil then
local fgroup=ce:GetTarget() local fgroup=ce:GetTarget()
local mg3=fgroup(ce,e,tp) local mg3=fgroup(ce,e,tp)
local mf=ce:GetValue() local mf=ce:GetValue()
res=Duel.IsExistingMatchingCard(c45906428.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg3,mf,chkf) res=Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg3,mf,chkf)
end end
end end
return res return res
end end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
function c45906428.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp local chkf=tp
local mg1=Duel.GetFusionMaterial(tp):Filter(c45906428.filter1,nil,e) local mg1=Duel.GetFusionMaterial(tp):Filter(cm.filter1,nil,e)
local mg2=Duel.GetMatchingGroup(c45906428.filter3,tp,LOCATION_GRAVE,0,nil) local mg2=Duel.GetMatchingGroup(cm.filter3,tp,LOCATION_GRAVE,0,nil)
mg1:Merge(mg2) mg1:Merge(mg2)
local sg1=Duel.GetMatchingGroup(c45906428.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf) local sg1=Duel.GetMatchingGroup(cm.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
local mg3=nil local mg3=nil
local sg2=nil local sg2=nil
local ce=Duel.GetChainMaterial(tp) local ce=Duel.GetChainMaterial(tp)
...@@ -62,7 +62,7 @@ function c45906428.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -62,7 +62,7 @@ function c45906428.activate(e,tp,eg,ep,ev,re,r,rp)
local fgroup=ce:GetTarget() local fgroup=ce:GetTarget()
mg3=fgroup(ce,e,tp) mg3=fgroup(ce,e,tp)
local mf=ce:GetValue() local mf=ce:GetValue()
sg2=Duel.GetMatchingGroup(c45906428.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg3,mf,chkf) sg2=Duel.GetMatchingGroup(cm.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg3,mf,chkf)
end end
if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then
local sg=sg1:Clone() local sg=sg1:Clone()
......
...@@ -63,8 +63,8 @@ function cm.initial_effect(c) ...@@ -63,8 +63,8 @@ function cm.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
if not cm.check then if not cm.check then
cm.check={ cm.check={
[0]={} [0]={},
[1]={} [1]={},
} }
local ge1=Effect.GlobalEffect() local ge1=Effect.GlobalEffect()
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......
...@@ -39,7 +39,7 @@ function cm.initial_effect(c) ...@@ -39,7 +39,7 @@ function cm.initial_effect(c)
return eg:GetCount()==1 and tc:IsType(TYPE_MONSTER) and tc:IsPreviousLocation(LOCATION_DECK) and tc:GetPreviousControler()==1-tp and (not tc:IsReason(REASON_DRAW) or tc:IsPublic()) return eg:GetCount()==1 and tc:IsType(TYPE_MONSTER) and tc:IsPreviousLocation(LOCATION_DECK) and tc:GetPreviousControler()==1-tp and (not tc:IsReason(REASON_DRAW) or tc:IsPublic())
end) end)
e3:SetTarget(cm.SelfSpsummonTarget) e3:SetTarget(cm.SelfSpsummonTarget)
e3:SetOperation(cm.SelfSpsummonTarget) e3:SetOperation(cm.SelfSpsummonOperation)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0)) e2:SetDescription(aux.Stringid(m,0))
......
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