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