Commit f87e616d authored by salix5's avatar salix5 Committed by GitHub

update aux.AddRitualProc* (#1723)

add new param pause
pause:
The function will NOT register the effect and only return it.
The script should register the effect after modifying it.
parent a00e53ab
--影霊衣の降魔鏡
function c14735698.initial_effect(c)
--Activate
local e1=aux.AddRitualProcEqual2(c,c14735698.filter,nil,c14735698.filter)
local e1=aux.AddRitualProcEqual2(c,c14735698.filter,nil,c14735698.filter,nil,true)
e1:SetCountLimit(1,14735698)
c:RegisterEffect(e1)
--search
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
......
......@@ -28,11 +28,12 @@ function c23160024.initial_effect(c)
e4:SetOperation(c23160024.drop)
c:RegisterEffect(e4)
--ritural
local e5=aux.AddRitualProcEqualCode(c,98287529,nil,nil,c23160024.mfilter)
local e5=aux.AddRitualProcEqualCode(c,98287529,nil,nil,c23160024.mfilter,true)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetCode(0)
e5:SetRange(LOCATION_GRAVE)
e5:SetCost(aux.bfgcost)
c:RegisterEffect(e5)
end
function c23160024.cfilter(c,tp)
return c:IsPreviousSetCard(0xe0) and c:IsReason(REASON_RELEASE) and c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousControler(tp)
......
......@@ -2,7 +2,7 @@
function c25726386.initial_effect(c)
c:EnableReviveLimit()
--ritual summon
local e1=aux.AddRitualProcGreater2(c,c25726386.filter,nil,nil,c25726386.matfilter)
local e1=aux.AddRitualProcGreater2(c,c25726386.filter,nil,nil,c25726386.matfilter,true)
e1:SetDescription(aux.Stringid(25726386,0))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_HAND)
......@@ -10,6 +10,7 @@ function c25726386.initial_effect(c)
e1:SetCountLimit(1,25726386)
e1:SetCondition(c25726386.rscon)
e1:SetCost(c25726386.rscost)
c:RegisterEffect(e1)
--negate
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(25726386,1))
......
......@@ -2,13 +2,14 @@
function c63233638.initial_effect(c)
c:EnableReviveLimit()
--ritual summon
local e1=aux.AddRitualProcGreater2(c,c63233638.filter,nil,nil,c63233638.matfilter)
local e1=aux.AddRitualProcGreater2(c,c63233638.filter,nil,nil,c63233638.matfilter,true)
e1:SetDescription(aux.Stringid(63233638,0))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetCode(0)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,63233638)
e1:SetCost(c63233638.rscost)
c:RegisterEffect(e1)
--atk/def up
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
......
......@@ -14,13 +14,14 @@ function c78990927.initial_effect(c)
e1:SetOperation(c78990927.thop)
c:RegisterEffect(e1)
--ritual summon
local e2=aux.AddRitualProcGreater2(c,c78990927.filter,LOCATION_HAND+LOCATION_DECK)
local e2=aux.AddRitualProcGreater2(c,c78990927.filter,LOCATION_HAND+LOCATION_DECK,nil,nil,true)
e2:SetDescription(aux.Stringid(78990927,1))
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_MZONE)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e2:SetCountLimit(1,78990928)
e2:SetCondition(c78990927.rscon)
c:RegisterEffect(e2)
end
function c78990927.thfilter(c,lv)
return c:IsType(TYPE_RITUAL) and c:IsType(TYPE_MONSTER) and not c:IsLevel(lv) and c:IsAbleToHand()
......
......@@ -12,13 +12,14 @@ function c84388461.initial_effect(c)
e2:SetTarget(c84388461.splimit)
c:RegisterEffect(e2)
--spsummon
local e3=aux.AddRitualProcEqual2(c,c84388461.filter,nil,nil,c84388461.mfilter)
local e3=aux.AddRitualProcEqual2(c,c84388461.filter,nil,nil,c84388461.mfilter,true)
e3:SetDescription(aux.Stringid(84388461,1))
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetCode(0)
e3:SetCountLimit(1,84388461)
e3:SetRange(LOCATION_MZONE+LOCATION_HAND)
e3:SetCost(c84388461.cost)
c:RegisterEffect(e3)
end
function c84388461.splimit(e,c,sump,sumtype,sumpos,targetp)
if c:IsSetCard(0xb4,0xc4) then return false end
......
--魔神儀の祝誕
function c86758915.initial_effect(c)
--Activate
local e1=aux.AddRitualProcGreater2(c,nil,nil,nil,c86758915.mfilter)
local e1=aux.AddRitualProcGreater2(c,nil,nil,nil,c86758915.mfilter,true)
e1:SetDescription(aux.Stringid(86758915,0))
c:RegisterEffect(e1)
--to hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(86758915,1))
......
--リバース・オブ・ザ・ワールド
function c95612049.initial_effect(c)
--Activate
local e1=aux.AddRitualProcGreater2Code2(c,46427957,72426662,LOCATION_HAND+LOCATION_DECK,nil,c95612049.mfilter)
local e1=aux.AddRitualProcGreater2Code2(c,46427957,72426662,LOCATION_HAND+LOCATION_DECK,nil,c95612049.mfilter,true)
e1:SetCountLimit(1,95612049+EFFECT_COUNT_CODE_OATH)
c:RegisterEffect(e1)
end
function c95612049.mfilter(c)
return not c:IsOnField() and c:IsType(TYPE_RITUAL)
......
--影霊衣の反魂術
function c97211663.initial_effect(c)
--Activate
local e1=aux.AddRitualProcEqual2(c,c97211663.filter,LOCATION_HAND+LOCATION_GRAVE)
local e1=aux.AddRitualProcEqual2(c,c97211663.filter,LOCATION_HAND+LOCATION_GRAVE,nil,nil,true)
e1:SetCountLimit(1,97211663)
c:RegisterEffect(e1)
--search
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
......
......@@ -2,13 +2,14 @@
function c99628747.initial_effect(c)
c:EnableReviveLimit()
--ritual summon
local e1=aux.AddRitualProcGreater2(c,c99628747.filter,nil,nil,c99628747.matfilter)
local e1=aux.AddRitualProcGreater2(c,c99628747.filter,nil,nil,c99628747.matfilter,true)
e1:SetDescription(aux.Stringid(99628747,0))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetCode(0)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,99628747)
e1:SetCost(c99628747.rscost)
c:RegisterEffect(e1)
--destroy
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(99628747,1))
......
......@@ -1576,7 +1576,7 @@ function Auxiliary.ContactFusionOperation(filter,self_location,opponent_location
mat_operation(g,table.unpack(operation_params))
end
end
function Auxiliary.AddRitualProcUltimate(c,filter,level_function,greater_or_equal,summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcUltimate(c,filter,level_function,greater_or_equal,summon_location,grave_filter,mat_filter,pause)
summon_location=summon_location or LOCATION_HAND
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
......@@ -1584,7 +1584,9 @@ function Auxiliary.AddRitualProcUltimate(c,filter,level_function,greater_or_equa
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(Auxiliary.RitualUltimateTarget(filter,level_function,greater_or_equal,summon_location,grave_filter,mat_filter))
e1:SetOperation(Auxiliary.RitualUltimateOperation(filter,level_function,greater_or_equal,summon_location,grave_filter,mat_filter))
c:RegisterEffect(e1)
if not pause then
c:RegisterEffect(e1)
end
return e1
end
function Auxiliary.RitualCheckGreater(g,c,lv)
......@@ -1697,44 +1699,44 @@ function Auxiliary.RitualUltimateOperation(filter,level_function,greater_or_equa
end
end
--Ritual Summon, geq fixed lv
function Auxiliary.AddRitualProcGreater(c,filter,summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcUltimate(c,filter,Card.GetOriginalLevel,"Greater",summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcGreater(c,filter,summon_location,grave_filter,mat_filter,pause)
return Auxiliary.AddRitualProcUltimate(c,filter,Card.GetOriginalLevel,"Greater",summon_location,grave_filter,mat_filter,pause)
end
function Auxiliary.AddRitualProcGreaterCode(c,code1,summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcGreaterCode(c,code1,summon_location,grave_filter,mat_filter,pause)
Auxiliary.AddCodeList(c,code1)
return Auxiliary.AddRitualProcGreater(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1),summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcGreater(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1),summon_location,grave_filter,mat_filter,pause)
end
--Ritual Summon, equal to fixed lv
function Auxiliary.AddRitualProcEqual(c,filter,summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcUltimate(c,filter,Card.GetOriginalLevel,"Equal",summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcEqual(c,filter,summon_location,grave_filter,mat_filter,pause)
return Auxiliary.AddRitualProcUltimate(c,filter,Card.GetOriginalLevel,"Equal",summon_location,grave_filter,mat_filter,pause)
end
function Auxiliary.AddRitualProcEqualCode(c,code1,summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcEqualCode(c,code1,summon_location,grave_filter,mat_filter,pause)
Auxiliary.AddCodeList(c,code1)
return Auxiliary.AddRitualProcEqual(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1),summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcEqual(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1),summon_location,grave_filter,mat_filter,pause)
end
--Ritual Summon, equal to monster lv
function Auxiliary.AddRitualProcEqual2(c,filter,summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcUltimate(c,filter,Card.GetLevel,"Equal",summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcEqual2(c,filter,summon_location,grave_filter,mat_filter,pause)
return Auxiliary.AddRitualProcUltimate(c,filter,Card.GetLevel,"Equal",summon_location,grave_filter,mat_filter,pause)
end
function Auxiliary.AddRitualProcEqual2Code(c,code1,summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcEqual2Code(c,code1,summon_location,grave_filter,mat_filter,pause)
Auxiliary.AddCodeList(c,code1)
return Auxiliary.AddRitualProcEqual2(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1),summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcEqual2(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1),summon_location,grave_filter,mat_filter,pause)
end
function Auxiliary.AddRitualProcEqual2Code2(c,code1,code2,summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcEqual2Code2(c,code1,code2,summon_location,grave_filter,mat_filter,pause)
Auxiliary.AddCodeList(c,code1,code2)
return Auxiliary.AddRitualProcEqual2(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1,code2),summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcEqual2(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1,code2),summon_location,grave_filter,mat_filter,pause)
end
--Ritual Summon, geq monster lv
function Auxiliary.AddRitualProcGreater2(c,filter,summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcUltimate(c,filter,Card.GetLevel,"Greater",summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcGreater2(c,filter,summon_location,grave_filter,mat_filter,pause)
return Auxiliary.AddRitualProcUltimate(c,filter,Card.GetLevel,"Greater",summon_location,grave_filter,mat_filter,pause)
end
function Auxiliary.AddRitualProcGreater2Code(c,code1,summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcGreater2Code(c,code1,summon_location,grave_filter,mat_filter,pause)
Auxiliary.AddCodeList(c,code1)
return Auxiliary.AddRitualProcGreater2(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1),summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcGreater2(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1),summon_location,grave_filter,mat_filter,pause)
end
function Auxiliary.AddRitualProcGreater2Code2(c,code1,code2,summon_location,grave_filter,mat_filter)
function Auxiliary.AddRitualProcGreater2Code2(c,code1,code2,summon_location,grave_filter,mat_filter,pause)
Auxiliary.AddCodeList(c,code1,code2)
return Auxiliary.AddRitualProcGreater2(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1,code2),summon_location,grave_filter,mat_filter)
return Auxiliary.AddRitualProcGreater2(c,Auxiliary.FilterBoolFunction(Card.IsCode,code1,code2),summon_location,grave_filter,mat_filter,pause)
end
--add procedure to Pendulum monster, also allows registeration of activation effect
function Auxiliary.EnablePendulumAttribute(c,reg)
......
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