Commit a13462df authored by salix5's avatar salix5

ritual

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