Commit fd4fd064 authored by Tachibana's avatar Tachibana

ybb

parent 82f17d0f
......@@ -65,6 +65,9 @@ function c33200601.srop(e,tp,eg,ep,ev,re,r,rp)
end
--e2
function c33200601.rfilter(c,e,tp)
return c:IsSetCard(0x5329)
end
function c33200601.rcheck(gc)
return function(tp,g,c)
return g:IsContains(gc)
......@@ -75,7 +78,7 @@ function c33200601.rstg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg=Duel.GetRitualMaterial(tp)
aux.RCheckAdditional=c33200601.rcheck(c)
local res=mg:IsContains(c) and Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,nil,aux.TRUE,e,tp,mg,nil,Card.GetLevel,"Greater")
local res=mg:IsContains(c) and Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,nil,c33200601.rfilter,e,tp,mg,nil,Card.GetLevel,"Greater")
aux.RCheckAdditional=nil
return res
end
......@@ -87,7 +90,7 @@ function c33200601.rsop(e,tp,eg,ep,ev,re,r,rp)
if c:GetControler()~=tp or not c:IsRelateToEffect(e) or not mg:IsContains(c) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
aux.RCheckAdditional=c33200601.rcheck(c)
local tg=Duel.SelectMatchingCard(tp,aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,1,nil,aux.TRUE,e,tp,mg,nil,Card.GetLevel,"Greater")
local tg=Duel.SelectMatchingCard(tp,aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,1,nil,c33200601.rfilter,e,tp,mg,nil,Card.GetLevel,"Greater")
local tc=tg:GetFirst()
if tc then
mg=mg:Filter(Card.IsCanBeRitualMaterial,tc,tc)
......
......@@ -10,6 +10,7 @@ function c33200605.initial_effect(c)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,33200605)
e1:SetCondition(c33200605.spcon)
e1:SetTarget(c33200605.sptg)
e1:SetOperation(c33200605.spop)
c:RegisterEffect(e1)
......@@ -17,9 +18,9 @@ function c33200605.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33200605,1))
e2:SetCategory(CATEGORY_TOHAND)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1,33200606)
e2:SetTarget(c33200605.thtg)
e2:SetOperation(c33200605.thop)
......@@ -27,6 +28,9 @@ function c33200605.initial_effect(c)
end
--e1
function c33200605.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2
end
function c33200605.RitualUltimateFilter(c,filter,e,tp,m1,m2,level_function,greater_or_equal,chk)
if bit.band(c:GetType(),0x81)~=0x81 or (filter and not filter(c,e,tp,chk))
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true,POS_FACEUP) then return false end
......
......@@ -74,6 +74,9 @@ function c33200609.disop(e,tp,eg,ep,ev,re,r,rp)
end
--e2
function c33200609.rfilter(c,e,tp)
return c:IsSetCard(0x5329)
end
function c33200609.rcheck(gc)
return function(tp,g,c)
return g:IsContains(gc)
......@@ -84,7 +87,7 @@ function c33200609.rstg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg=Duel.GetRitualMaterial(tp)
aux.RCheckAdditional=c33200609.rcheck(c)
local res=mg:IsContains(c) and Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,nil,aux.TRUE,e,tp,mg,nil,Card.GetLevel,"Greater")
local res=mg:IsContains(c) and Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,nil,c33200609.rfilter,e,tp,mg,nil,Card.GetLevel,"Greater")
aux.RCheckAdditional=nil
return res
end
......@@ -96,7 +99,7 @@ function c33200609.rsop(e,tp,eg,ep,ev,re,r,rp)
if c:GetControler()~=tp or not c:IsRelateToEffect(e) or not mg:IsContains(c) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
aux.RCheckAdditional=c33200609.rcheck(c)
local tg=Duel.SelectMatchingCard(tp,aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,1,nil,aux.TRUE,e,tp,mg,nil,Card.GetLevel,"Greater")
local tg=Duel.SelectMatchingCard(tp,aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,1,nil,c33200609.rfilter,e,tp,mg,nil,Card.GetLevel,"Greater")
local tc=tg:GetFirst()
if tc then
mg=mg:Filter(Card.IsCanBeRitualMaterial,tc,tc)
......
......@@ -10,6 +10,7 @@ function c33200615.initial_effect(c)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,33200615)
e1:SetCondition(c33200615.spcon)
e1:SetTarget(c33200615.sptg)
e1:SetOperation(c33200615.spop)
c:RegisterEffect(e1)
......@@ -56,6 +57,9 @@ function c33200615.actcon(e,tp,eg,ep,ev,re,r,rp)
end
--e1
function c33200615.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2
end
function c33200615.RitualUltimateFilter(c,filter,e,tp,m1,m2,level_function,greater_or_equal,chk)
if bit.band(c:GetType(),0x81)~=0x81 or (filter and not filter(c,e,tp,chk))
or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true,POS_FACEUP) then return false end
......
......@@ -65,6 +65,9 @@ function c33200617.srop(e,tp,eg,ep,ev,re,r,rp)
end
--e4
function c33200617.rfilter(c,e,tp)
return c:IsSetCard(0x5329)
end
function c33200617.rcheck(gc)
return function(tp,g,c)
return g:IsContains(gc)
......@@ -75,7 +78,7 @@ function c33200617.rstg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg=Duel.GetRitualMaterial(tp)
aux.RCheckAdditional=c33200617.rcheck(c)
local res=mg:IsContains(c) and Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,nil,aux.TRUE,e,tp,mg,nil,Card.GetLevel,"Greater")
local res=mg:IsContains(c) and Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,nil,c33200617.rfilter,e,tp,mg,nil,Card.GetLevel,"Greater")
aux.RCheckAdditional=nil
return res
end
......@@ -87,7 +90,7 @@ function c33200617.rsop(e,tp,eg,ep,ev,re,r,rp)
if c:GetControler()~=tp or not c:IsRelateToEffect(e) or not mg:IsContains(c) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
aux.RCheckAdditional=c33200617.rcheck(c)
local tg=Duel.SelectMatchingCard(tp,aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,1,nil,aux.TRUE,e,tp,mg,nil,Card.GetLevel,"Greater")
local tg=Duel.SelectMatchingCard(tp,aux.RitualUltimateFilter,tp,LOCATION_HAND,0,1,1,nil,c33200617.rfilter,e,tp,mg,nil,Card.GetLevel,"Greater")
local tc=tg:GetFirst()
if tc then
mg=mg:Filter(Card.IsCanBeRitualMaterial,tc,tc)
......
......@@ -30,10 +30,10 @@ function cm.initial_effect(c)
end
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
if eg:FilterCount(cm.filter,nil,tp,rp)==1 and Duel.GetMatchingGroupCount(nil,tp,LOCATION_SZONE,0,nil)==0 then
if eg:FilterCount(cm.filter,nil,tp,rp)==1 and Duel.GetMatchingGroupCount(cm.confilter,tp,LOCATION_SZONE,0,nil)==0 then
Duel.RaiseEvent(eg,EVENT_CUSTOM+m,re,r,rp,tp,ev)
end
if eg:FilterCount(cm.filter,nil,1-tp,rp)==1 and Duel.GetMatchingGroupCount(nil,1-tp,LOCATION_SZONE,0,nil)==0 then
if eg:FilterCount(cm.filter,nil,1-tp,rp)==1 and Duel.GetMatchingGroupCount(cm.confilter,1-tp,LOCATION_SZONE,0,nil)==0 then
Duel.RaiseEvent(eg,EVENT_CUSTOM+m,re,r,rp,1-tp,ev)
end
end
......@@ -41,9 +41,9 @@ function cm.splimit(e,se,sp,st)
return se:IsHasType(EFFECT_TYPE_ACTIONS)
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and not Duel.IsExistingMatchingCard(cm.cfilter,1-tp,0,LOCATION_SZONE,1,nil) and Duel.GetMatchingGroupCount(nil,tp,LOCATION_MZONE,0,nil)==0
return ep==tp and Duel.GetMatchingGroupCount(cm.confilter,tp,LOCATION_SZONE,0,nil)==0 and Duel.GetMatchingGroupCount(nil,tp,LOCATION_MZONE,0,nil)==0
end
function cm.cfilter(c)
function cm.confilter(c)
return c:GetSequence()<5
end
function cm.filter(c,tp,rp)
......
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