Commit a13462df authored by salix5's avatar salix5

ritual

parent 7400a5eb
...@@ -26,10 +26,10 @@ function c27383110.filter(c,e,tp,m) ...@@ -26,10 +26,10 @@ function c27383110.filter(c,e,tp,m)
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,true,false) 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,c:GetLevel(),1,99,c) result=m:CheckWithSumEqual(Card.GetRitualLevel,6,1,99,c)
m:AddCard(c) m:AddCard(c)
else else
result=m:CheckWithSumEqual(Card.GetRitualLevel,c:GetLevel(),1,99,c) result=m:CheckWithSumEqual(Card.GetRitualLevel,6,1,99,c)
end end
return result return result
end end
...@@ -48,7 +48,7 @@ function c27383110.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -48,7 +48,7 @@ function c27383110.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=tg:GetFirst() local tc=tg:GetFirst()
mg:RemoveCard(tc) mg:RemoveCard(tc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local mat=mg:SelectWithSumEqual(tp,Card.GetRitualLevel,tc:GetLevel(),1,99,tc) local mat=mg:SelectWithSumEqual(tp,Card.GetRitualLevel,6,1,99,tc)
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect() Duel.BreakEffect()
......
...@@ -21,7 +21,7 @@ function c34834619.mtfilter(c,e) ...@@ -21,7 +21,7 @@ function c34834619.mtfilter(c,e)
end end
function c34834619.spfilter(c,e,tp,m) function c34834619.spfilter(c,e,tp,m)
return c:IsCode(85346853) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false) return c:IsCode(85346853) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,true,false)
and m:CheckWithSumEqual(Card.GetRitualLevel,c:GetLevel(),1,99,c) and m:CheckWithSumEqual(Card.GetRitualLevel,4,1,99,c)
end end
function c34834619.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c34834619.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
...@@ -39,7 +39,7 @@ function c34834619.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -39,7 +39,7 @@ function c34834619.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local mat=mg:SelectWithSumEqual(tp,Card.GetRitualLevel,tc:GetLevel(),1,99,tc) local mat=mg:SelectWithSumEqual(tp,Card.GetRitualLevel,4,1,99,tc)
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect() Duel.BreakEffect()
......
--リチュアの儀水鏡 --リチュアの儀水鏡
function c46159582.initial_effect(c) function c46159582.initial_effect(c)
aux.AddRitualProcEqual(c,c46159582.ritual_filter) aux.AddRitualProcEqual2(c,c46159582.ritual_filter)
--salvage --salvage
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(46159582,0)) e1:SetDescription(aux.Stringid(46159582,0))
......
--大地讃頌 --大地讃頌
function c59820352.initial_effect(c) function c59820352.initial_effect(c)
aux.AddRitualProcEqual(c,c59820352.ritual_filter) aux.AddRitualProcEqual2(c,c59820352.ritual_filter)
end end
function c59820352.ritual_filter(c) function c59820352.ritual_filter(c)
return c:IsType(TYPE_RITUAL) and c:IsAttribute(ATTRIBUTE_EARTH) return c:IsType(TYPE_RITUAL) and c:IsAttribute(ATTRIBUTE_EARTH)
......
--奈落との契約 --奈落との契約
function c69035382.initial_effect(c) function c69035382.initial_effect(c)
aux.AddRitualProcEqual(c,c69035382.ritual_filter) aux.AddRitualProcEqual2(c,c69035382.ritual_filter)
end end
function c69035382.ritual_filter(c) function c69035382.ritual_filter(c)
return c:IsType(TYPE_RITUAL) and c:IsAttribute(ATTRIBUTE_DARK) return c:IsType(TYPE_RITUAL) and c:IsAttribute(ATTRIBUTE_DARK)
......
--エンド・オブ・ザ・ワールド --エンド・オブ・ザ・ワールド
function c8198712.initial_effect(c) function c8198712.initial_effect(c)
aux.AddRitualProcEqual(c,c8198712.ritual_filter) aux.AddRitualProcEqual2(c,c8198712.ritual_filter)
end end
function c8198712.ritual_filter(c) function c8198712.ritual_filter(c)
local code=c:GetCode() local code=c:GetCode()
......
...@@ -832,6 +832,7 @@ function Auxiliary.FOperationFunRep(f,cc,insf) ...@@ -832,6 +832,7 @@ function Auxiliary.FOperationFunRep(f,cc,insf)
Duel.SetFusionMaterial(g1) Duel.SetFusionMaterial(g1)
end end
end end
--Ritual Summon, geq fixed lv
function Auxiliary.AddRitualProcGreater(c,filter) function Auxiliary.AddRitualProcGreater(c,filter)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
...@@ -846,10 +847,10 @@ function Auxiliary.RPGFilter(c,filter,e,tp,m) ...@@ -846,10 +847,10 @@ function Auxiliary.RPGFilter(c,filter,e,tp,m)
local result=false local result=false
if m:IsContains(c) then if m:IsContains(c) then
m:RemoveCard(c) m:RemoveCard(c)
result=m:CheckWithSumGreater(Card.GetRitualLevel,c:GetLevel(),c) result=m:CheckWithSumGreater(Card.GetRitualLevel,c:GetOriginalLevel(),c)
m:AddCard(c) m:AddCard(c)
else else
result=m:CheckWithSumGreater(Card.GetRitualLevel,c:GetLevel(),c) result=m:CheckWithSumGreater(Card.GetRitualLevel,c:GetOriginalLevel(),c)
end end
return result return result
end end
...@@ -871,7 +872,7 @@ function Auxiliary.RPGOperation(filter) ...@@ -871,7 +872,7 @@ function Auxiliary.RPGOperation(filter)
local tc=tg:GetFirst() local tc=tg:GetFirst()
mg:RemoveCard(tc) mg:RemoveCard(tc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local mat=mg:SelectWithSumGreater(tp,Card.GetRitualLevel,tc:GetLevel(),tc) local mat=mg:SelectWithSumGreater(tp,Card.GetRitualLevel,tc:GetOriginalLevel(),tc)
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat) Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect() Duel.BreakEffect()
...@@ -880,6 +881,7 @@ function Auxiliary.RPGOperation(filter) ...@@ -880,6 +881,7 @@ function Auxiliary.RPGOperation(filter)
end end
end end
end end
--Ritual Summon, equal to fixed lv
function Auxiliary.AddRitualProcEqual(c,filter) function Auxiliary.AddRitualProcEqual(c,filter)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
...@@ -894,10 +896,10 @@ function Auxiliary.RPEFilter(c,filter,e,tp,m) ...@@ -894,10 +896,10 @@ function Auxiliary.RPEFilter(c,filter,e,tp,m)
local result=false local result=false
if m:IsContains(c) then if m:IsContains(c) then
m:RemoveCard(c) m:RemoveCard(c)
result=m:CheckWithSumEqual(Card.GetRitualLevel,c:GetLevel(),1,99,c) result=m:CheckWithSumEqual(Card.GetRitualLevel,c:GetOriginalLevel(),1,99,c)
m:AddCard(c) m:AddCard(c)
else else
result=m:CheckWithSumEqual(Card.GetRitualLevel,c:GetLevel(),1,99,c) result=m:CheckWithSumEqual(Card.GetRitualLevel,c:GetOriginalLevel(),1,99,c)
end end
return result return result
end end
...@@ -915,6 +917,55 @@ function Auxiliary.RPEOperation(filter) ...@@ -915,6 +917,55 @@ function Auxiliary.RPEOperation(filter)
local mg=Duel.GetRitualMaterial(tp) local mg=Duel.GetRitualMaterial(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=Duel.SelectMatchingCard(tp,Auxiliary.RPEFilter,tp,LOCATION_HAND,0,1,1,nil,filter,e,tp,mg) local tg=Duel.SelectMatchingCard(tp,Auxiliary.RPEFilter,tp,LOCATION_HAND,0,1,1,nil,filter,e,tp,mg)
if tg:GetCount()>0 then
local tc=tg:GetFirst()
mg:RemoveCard(tc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local mat=mg:SelectWithSumEqual(tp,Card.GetRitualLevel,tc:GetOriginalLevel(),1,99,tc)
tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP)
tc:CompleteProcedure()
end
end
end
--Ritual Summon, equal to monster lv
function Auxiliary.AddRitualProcEqual2(c,filter)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(Auxiliary.RPETarget2(filter))
e1:SetOperation(Auxiliary.RPEOperation2(filter))
c:RegisterEffect(e1)
end
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
local result=false
if m:IsContains(c) then
m:RemoveCard(c)
result=m:CheckWithSumEqual(Card.GetRitualLevel,c:GetLevel(),1,99,c)
m:AddCard(c)
else
result=m:CheckWithSumEqual(Card.GetRitualLevel,c:GetLevel(),1,99,c)
end
return result
end
function Auxiliary.RPETarget2(filter)
return function(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg=Duel.GetRitualMaterial(tp)
return Duel.IsExistingMatchingCard(Auxiliary.RPEFilter2,tp,LOCATION_HAND,0,1,nil,filter,e,tp,mg)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
end
function Auxiliary.RPEOperation2(filter)
return function(e,tp,eg,ep,ev,re,r,rp)
local mg=Duel.GetRitualMaterial(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=Duel.SelectMatchingCard(tp,Auxiliary.RPEFilter2,tp,LOCATION_HAND,0,1,1,nil,filter,e,tp,mg)
if tg:GetCount()>0 then if tg:GetCount()>0 then
local tc=tg:GetFirst() local tc=tg:GetFirst()
mg:RemoveCard(tc) mg:RemoveCard(tc)
......
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