Commit 16a07fe1 authored by fluorohydride's avatar fluorohydride

"Ritual Foregone" cannot special summon ritual monsters with spsummon condition

parent 3a7260be
...@@ -1924,7 +1924,7 @@ int32 card::is_can_be_special_summoned(effect * reason_effect, uint32 sumtype, u ...@@ -1924,7 +1924,7 @@ int32 card::is_can_be_special_summoned(effect * reason_effect, uint32 sumtype, u
if(current.location == LOCATION_REMOVED && (current.position & POS_FACEDOWN)) if(current.location == LOCATION_REMOVED && (current.position & POS_FACEDOWN))
return FALSE; return FALSE;
if(is_status(STATUS_REVIVE_LIMIT) && !is_status(STATUS_PROC_COMPLETE)) { if(is_status(STATUS_REVIVE_LIMIT) && !is_status(STATUS_PROC_COMPLETE)) {
if((!nolimit && (current.location & 0x38)) || (!nocheck && (current.location & 0x3))) if((!nolimit && (current.location & 0x38)) || (!nocheck && !nolimit && (current.location & 0x3)))
return FALSE; return FALSE;
} }
if(((sumpos & POS_FACEDOWN) == 0) && pduel->game_field->check_unique_onfield(this, toplayer)) if(((sumpos & POS_FACEDOWN) == 0) && pduel->game_field->check_unique_onfield(this, toplayer))
......
...@@ -22,7 +22,7 @@ function c14735698.initial_effect(c) ...@@ -22,7 +22,7 @@ function c14735698.initial_effect(c)
end end
function c14735698.filter(c,e,tp,m) function c14735698.filter(c,e,tp,m)
if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81 if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
if c:IsCode(21105106) then return c:ritual_custom_condition(m) end if c:IsCode(21105106) then return c:ritual_custom_condition(m) end
local mg=nil local mg=nil
if c.mat_filter then if c.mat_filter then
...@@ -68,7 +68,7 @@ function c14735698.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -68,7 +68,7 @@ function c14735698.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
end end
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end end
......
...@@ -6,6 +6,7 @@ function c21105106.initial_effect(c) ...@@ -6,6 +6,7 @@ function c21105106.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_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c21105106.splimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--cannot spsummon --cannot spsummon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -27,6 +28,9 @@ function c21105106.initial_effect(c) ...@@ -27,6 +28,9 @@ function c21105106.initial_effect(c)
e3:SetOperation(c21105106.rmop) e3:SetOperation(c21105106.rmop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c21105106.splimit(e,se,sp,st)
return e:GetHandler():IsLocation(LOCATION_HAND) and bit.band(st,SUMMON_TYPE_RITUAL)==SUMMON_TYPE_RITUAL
end
function c21105106.mat_filter(c) function c21105106.mat_filter(c)
return false return false
end end
......
...@@ -6,6 +6,7 @@ function c25857246.initial_effect(c) ...@@ -6,6 +6,7 @@ function c25857246.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_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c25857246.splimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk --atk
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -29,6 +30,9 @@ function c25857246.initial_effect(c) ...@@ -29,6 +30,9 @@ function c25857246.initial_effect(c)
e3:SetOperation(c25857246.operation) e3:SetOperation(c25857246.operation)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c25857246.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_RITUAL)==SUMMON_TYPE_RITUAL
end
function c25857246.mat_filter(c) function c25857246.mat_filter(c)
return c:GetLevel()~=8 return c:GetLevel()~=8
end end
......
...@@ -6,6 +6,7 @@ function c26674724.initial_effect(c) ...@@ -6,6 +6,7 @@ function c26674724.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_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c26674724.splimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--tohand --tohand
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -30,6 +31,9 @@ function c26674724.initial_effect(c) ...@@ -30,6 +31,9 @@ function c26674724.initial_effect(c)
e3:SetOperation(c26674724.tdop) e3:SetOperation(c26674724.tdop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c26674724.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_RITUAL)==SUMMON_TYPE_RITUAL
end
function c26674724.mat_filter(c) function c26674724.mat_filter(c)
return not c:IsCode(26674724) return not c:IsCode(26674724)
end end
......
...@@ -23,7 +23,7 @@ function c27383110.initial_effect(c) ...@@ -23,7 +23,7 @@ function c27383110.initial_effect(c)
end end
function c27383110.filter(c,e,tp,m) function c27383110.filter(c,e,tp,m)
local cd=c:GetCode() local cd=c:GetCode()
if cd~=44665365 or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end if cd~=44665365 or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
if m:IsContains(c) then if m:IsContains(c) then
m:RemoveCard(c) m:RemoveCard(c)
result=m:CheckWithSumEqual(Card.GetRitualLevel,6,1,99,c) result=m:CheckWithSumEqual(Card.GetRitualLevel,6,1,99,c)
...@@ -52,7 +52,7 @@ function c27383110.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -52,7 +52,7 @@ function c27383110.activate(e,tp,eg,ep,ev,re,r,rp)
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
e:SetLabelObject(tc) e:SetLabelObject(tc)
Duel.RaiseSingleEvent(e:GetHandler(),27383110,e,0,tp,tp,0) Duel.RaiseSingleEvent(e:GetHandler(),27383110,e,0,tp,tp,0)
......
...@@ -11,7 +11,7 @@ function c46052429.initial_effect(c) ...@@ -11,7 +11,7 @@ function c46052429.initial_effect(c)
end end
function c46052429.filter(c,e,tp,m) function c46052429.filter(c,e,tp,m)
if bit.band(c:GetType(),0x81)~=0x81 if bit.band(c:GetType(),0x81)~=0x81
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
if c.mat_filter then if c.mat_filter then
m=m:Filter(c.mat_filter,nil) m=m:Filter(c.mat_filter,nil)
end end
...@@ -43,7 +43,7 @@ function c46052429.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -43,7 +43,7 @@ function c46052429.activate(e,tp,eg,ep,ev,re,r,rp)
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.SendtoGrave(mat,REASON_EFFECT+REASON_MATERIAL+REASON_RITUAL) Duel.SendtoGrave(mat,REASON_EFFECT+REASON_MATERIAL+REASON_RITUAL)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end end
...@@ -22,7 +22,7 @@ function c51124303.initial_effect(c) ...@@ -22,7 +22,7 @@ function c51124303.initial_effect(c)
end end
function c51124303.spfilter(c,e,tp,mc) function c51124303.spfilter(c,e,tp,mc)
return c:IsSetCard(0xb4) and bit.band(c:GetType(),0x81)==0x81 and (not c.mat_filter or c.mat_filter(mc)) return c:IsSetCard(0xb4) and bit.band(c:GetType(),0x81)==0x81 and (not c.mat_filter or c.mat_filter(mc))
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true)
end end
function c51124303.rfilter(c,mc) function c51124303.rfilter(c,mc)
local mlv=mc:GetRitualLevel(c) local mlv=mc:GetRitualLevel(c)
...@@ -83,7 +83,7 @@ function c51124303.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -83,7 +83,7 @@ function c51124303.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(mat,REASON_EFFECT+REASON_MATERIAL+REASON_RITUAL) Duel.SendtoGrave(mat,REASON_EFFECT+REASON_MATERIAL+REASON_RITUAL)
end end
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
else else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
...@@ -101,7 +101,7 @@ function c51124303.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -101,7 +101,7 @@ function c51124303.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.BreakEffect() Duel.BreakEffect()
tc=tg:GetFirst() tc=tg:GetFirst()
while tc do while tc do
Duel.SpecialSummonStep(tc,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummonStep(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
tc=tg:GetNext() tc=tg:GetNext()
end end
......
...@@ -6,6 +6,7 @@ function c52068432.initial_effect(c) ...@@ -6,6 +6,7 @@ function c52068432.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_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c52068432.splimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--negate --negate
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -33,6 +34,9 @@ function c52068432.initial_effect(c) ...@@ -33,6 +34,9 @@ function c52068432.initial_effect(c)
e3:SetOperation(c52068432.remop) e3:SetOperation(c52068432.remop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c52068432.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_RITUAL)==SUMMON_TYPE_RITUAL
end
function c52068432.mat_filter(c) function c52068432.mat_filter(c)
return c:GetLevel()~=9 return c:GetLevel()~=9
end end
......
...@@ -6,6 +6,7 @@ function c52846880.initial_effect(c) ...@@ -6,6 +6,7 @@ function c52846880.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_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c52846880.splimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--spsummon --spsummon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -31,6 +32,9 @@ function c52846880.initial_effect(c) ...@@ -31,6 +32,9 @@ function c52846880.initial_effect(c)
e3:SetOperation(c52846880.operation) e3:SetOperation(c52846880.operation)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c52846880.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_RITUAL)==SUMMON_TYPE_RITUAL
end
function c52846880.mat_filter(c) function c52846880.mat_filter(c)
return not c:IsCode(52846880) return not c:IsCode(52846880)
end end
......
...@@ -10,7 +10,7 @@ function c64437633.initial_effect(c) ...@@ -10,7 +10,7 @@ function c64437633.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c64437633.filter(c,e,tp) function c64437633.filter(c,e,tp)
return c:IsSetCard(0x3a) and bit.band(c:GetType(),0x81)==0x81 and c:IsCanBeSpecialSummoned(e,0,tp,true,false) return c:IsSetCard(0x3a) and bit.band(c:GetType(),0x81)==0x81 and c:IsCanBeSpecialSummoned(e,0,tp,false,true)
end end
function c64437633.target(e,tp,eg,ep,ev,re,r,rp,chk) function c64437633.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
...@@ -23,7 +23,7 @@ function c64437633.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -23,7 +23,7 @@ function c64437633.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,c64437633.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c64437633.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc then
Duel.SpecialSummon(tc,0,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,0,tp,tp,false,true,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK) e1:SetCode(EFFECT_CANNOT_ATTACK)
......
...@@ -16,7 +16,7 @@ function c65450690.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -16,7 +16,7 @@ function c65450690.cost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.PayLPCost(tp,1000) Duel.PayLPCost(tp,1000)
end end
function c65450690.filter(c,e,tp) function c65450690.filter(c,e,tp)
return bit.band(c:GetType(),0x81)==0x81 and c:IsCanBeSpecialSummoned(e,0,tp,true,false) return bit.band(c:GetType(),0x81)==0x81 and c:IsCanBeSpecialSummoned(e,0,tp,false,true)
end end
function c65450690.target(e,tp,eg,ep,ev,re,r,rp,chk) function c65450690.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
...@@ -29,7 +29,7 @@ function c65450690.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -29,7 +29,7 @@ function c65450690.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,c65450690.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c65450690.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc then
Duel.SpecialSummon(tc,0,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,0,tp,tp,false,true,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
......
...@@ -6,6 +6,7 @@ function c74122412.initial_effect(c) ...@@ -6,6 +6,7 @@ function c74122412.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_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c74122412.splimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--indes --indes
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -31,6 +32,9 @@ function c74122412.initial_effect(c) ...@@ -31,6 +32,9 @@ function c74122412.initial_effect(c)
e3:SetOperation(c74122412.desop) e3:SetOperation(c74122412.desop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c74122412.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_RITUAL)==SUMMON_TYPE_RITUAL
end
function c74122412.mat_filter(c) function c74122412.mat_filter(c)
return c:GetLevel()~=7 return c:GetLevel()~=7
end end
......
...@@ -6,6 +6,7 @@ function c88240999.initial_effect(c) ...@@ -6,6 +6,7 @@ function c88240999.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_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c88240999.splimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--boost --boost
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -34,6 +35,9 @@ function c88240999.initial_effect(c) ...@@ -34,6 +35,9 @@ function c88240999.initial_effect(c)
e3:SetOperation(c88240999.desop) e3:SetOperation(c88240999.desop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c88240999.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_RITUAL)==SUMMON_TYPE_RITUAL
end
function c88240999.mat_filter(c) function c88240999.mat_filter(c)
return c:GetLevel()~=10 return c:GetLevel()~=10
end end
......
...@@ -6,6 +6,7 @@ function c89463537.initial_effect(c) ...@@ -6,6 +6,7 @@ function c89463537.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_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c89463537.splimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--tohand --tohand
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -28,6 +29,9 @@ function c89463537.initial_effect(c) ...@@ -28,6 +29,9 @@ function c89463537.initial_effect(c)
e3:SetTarget(c89463537.distg) e3:SetTarget(c89463537.distg)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c89463537.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_RITUAL)==SUMMON_TYPE_RITUAL
end
function c89463537.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c89463537.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDiscardable() end if chk==0 then return e:GetHandler():IsDiscardable() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD) Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
......
...@@ -22,8 +22,8 @@ function c97211663.initial_effect(c) ...@@ -22,8 +22,8 @@ function c97211663.initial_effect(c)
end end
function c97211663.filter(c,e,tp,m) function c97211663.filter(c,e,tp,m)
if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81 if not c:IsSetCard(0xb4) or bit.band(c:GetType(),0x81)~=0x81
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,true) or c:IsHasEffect(EFFECT_NECRO_VALLEY) then return false end or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) or c:IsHasEffect(EFFECT_NECRO_VALLEY) then return false end
if c:IsCode(21105106) then return c:IsLocation(LOCATION_HAND) and c:ritual_custom_condition(m) end if c:IsCode(21105106) then return c:ritual_custom_condition(m) end
local mg=nil local mg=nil
if c.mat_filter then if c.mat_filter then
mg=m:Filter(c.mat_filter,c) mg=m:Filter(c.mat_filter,c)
...@@ -61,7 +61,7 @@ function c97211663.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,7 +61,7 @@ function c97211663.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
end end
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,true,true,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end end
......
...@@ -6,6 +6,7 @@ function c99185129.initial_effect(c) ...@@ -6,6 +6,7 @@ function c99185129.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_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c99185129.splimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--tohand --tohand
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -34,6 +35,9 @@ function c99185129.initial_effect(c) ...@@ -34,6 +35,9 @@ function c99185129.initial_effect(c)
e3:SetOperation(c99185129.operation) e3:SetOperation(c99185129.operation)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c99185129.splimit(e,se,sp,st)
return bit.band(st,SUMMON_TYPE_RITUAL)==SUMMON_TYPE_RITUAL
end
function c99185129.thcost(e,tp,eg,ep,ev,re,r,rp,chk) function c99185129.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDiscardable() end if chk==0 then return e:GetHandler():IsDiscardable() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD) Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
......
...@@ -921,7 +921,7 @@ function Auxiliary.AddRitualProcGreater(c,filter) ...@@ -921,7 +921,7 @@ function Auxiliary.AddRitualProcGreater(c,filter)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function Auxiliary.RPGFilter(c,filter,e,tp,m) function Auxiliary.RPGFilter(c,filter,e,tp,m)
if (filter and not filter(c)) or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end if (filter and not filter(c)) or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
local result=false local result=false
if m:IsContains(c) then if m:IsContains(c) then
m:RemoveCard(c) m:RemoveCard(c)
...@@ -954,7 +954,7 @@ function Auxiliary.RPGOperation(filter) ...@@ -954,7 +954,7 @@ function Auxiliary.RPGOperation(filter)
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end end
...@@ -970,7 +970,7 @@ function Auxiliary.AddRitualProcEqual(c,filter) ...@@ -970,7 +970,7 @@ function Auxiliary.AddRitualProcEqual(c,filter)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function Auxiliary.RPEFilter(c,filter,e,tp,m) function Auxiliary.RPEFilter(c,filter,e,tp,m)
if (filter and not filter(c)) or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end if (filter and not filter(c)) or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
local result=false local result=false
if m:IsContains(c) then if m:IsContains(c) then
m:RemoveCard(c) m:RemoveCard(c)
...@@ -1003,7 +1003,7 @@ function Auxiliary.RPEOperation(filter) ...@@ -1003,7 +1003,7 @@ function Auxiliary.RPEOperation(filter)
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end end
...@@ -1019,7 +1019,7 @@ function Auxiliary.AddRitualProcEqual2(c,filter) ...@@ -1019,7 +1019,7 @@ function Auxiliary.AddRitualProcEqual2(c,filter)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function Auxiliary.RPEFilter2(c,filter,e,tp,m) function Auxiliary.RPEFilter2(c,filter,e,tp,m)
if (filter and not filter(c)) or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) then return false end if (filter and not filter(c)) or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
local result=false local result=false
if m:IsContains(c) then if m:IsContains(c) then
m:RemoveCard(c) m:RemoveCard(c)
...@@ -1052,7 +1052,7 @@ function Auxiliary.RPEOperation2(filter) ...@@ -1052,7 +1052,7 @@ function Auxiliary.RPEOperation2(filter)
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
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