Commit 58708185 authored by Nemo Ma's avatar Nemo Ma

240505 wd

parent 567b8b83
No preview for this file type
......@@ -17,7 +17,7 @@ function c11560304.initial_effect(c)
--c:RegisterEffect(e1)
--SpecialSummon
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_REMOVE+CATEGORY_DRAW+CATEGORY_TOGRAVE)
e2:SetCategory(CATEGORY_REMOVE+CATEGORY_DRAW+CATEGORY_HANDES)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
......@@ -50,9 +50,9 @@ function c11560304.spop(e,tp,eg,ep,ev,re,r,rp)
local oc=Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
if oc>0 then
Duel.Draw(tp,oc,REASON_EFFECT)
local xg=Duel.GetMatchingGroup(Card.IsAbleToGrave,tp,0,LOCATION_HAND,nil)
local xg=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
if Duel.IsExistingMatchingCard(nil,tp,LOCATION_REMOVED,0,10,nil) and xg:GetCount()>0 and Duel.IsPlayerCanDraw(1-tp) then
local x=Duel.SendtoGrave(xg,REASON_EFFECT)
local x=Duel.SendtoGrave(xg,REASON_EFFECT+REASON_DISCARD)
Duel.Draw(1-tp,x,REASON_EFFECT)
end
end
......
......@@ -55,7 +55,7 @@ function c11560309.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
aux.RCheckAdditional=c11560309.rcheck
aux.RGCheckAdditional=c11560309.rgcheck
local res=Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_REMOVED,0,1,nil,c11560309.filter,e,tp,mg,dg,Card.GetLevel,"Equal")
local res=Duel.IsExistingMatchingCard(aux.RitualUltimateFilter,tp,LOCATION_HAND+LOCATION_REMOVED,0,1,nil,c11560309.filter,e,tp,mg,dg,Card.GetLevel,"Greater")
aux.RCheckAdditional=nil
aux.RGCheckAdditional=nil
return res
......@@ -74,7 +74,7 @@ function c11560309.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
aux.RCheckAdditional=c11560309.rcheck
aux.RGCheckAdditional=c11560309.rgcheck
local tg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(aux.RitualUltimateFilter),tp,LOCATION_HAND+LOCATION_REMOVED,0,1,1,nil,c11560309.filter,e,tp,m,dg,Card.GetLevel,"Equal")
local tg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(aux.RitualUltimateFilter),tp,LOCATION_HAND+LOCATION_REMOVED,0,1,1,nil,c11560309.filter,e,tp,m,dg,Card.GetLevel,"Greater")
local tc=tg:GetFirst()
if tc then
local mg=m:Filter(Card.IsCanBeRitualMaterial,tc,tc)
......@@ -85,8 +85,8 @@ function c11560309.activate(e,tp,eg,ep,ev,re,r,rp)
mg:RemoveCard(tc)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
aux.GCheckAdditional=aux.RitualCheckAdditional(tc,tc:GetLevel(),"Equal")
local mat=mg:SelectSubGroup(tp,aux.RitualCheck,false,1,tc:GetLevel(),tp,tc,tc:GetLevel(),"Equal")
aux.GCheckAdditional=aux.RitualCheckAdditional(tc,tc:GetLevel(),"Greater")
local mat=mg:SelectSubGroup(tp,aux.RitualCheck,false,1,tc:GetLevel(),tp,tc,tc:GetLevel(),"Greater")
aux.GCheckAdditional=nil
if not mat or mat:GetCount()==0 then
aux.RCheckAdditional=nil
......
......@@ -35,6 +35,9 @@ function c11560314.initial_effect(c)
e2:SetTarget(c11560314.thtg)
e2:SetOperation(c11560314.thop)
c:RegisterEffect(e2)
local e4=e2:Clone()
e4:SetCode(EVENT_REMOVE)
c:RegisterEffect(e4)
--atk up
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_REMOVE)
......
......@@ -24,7 +24,7 @@ function c11560316.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_DAMAGE+CATEGORY_DESTROY)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetCode(EVENT_REMOVE)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetCountLimit(1,21560316)
e2:SetTarget(c11560316.ddtg)
......
......@@ -45,14 +45,23 @@ function c11560318.initial_effect(c)
e2:SetCode(EFFECT_CANNOT_DIRECT_ATTACK)
c:RegisterEffect(e2)
--special summon
--local e3=Effect.CreateEffect(c)
--e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_GRAVE_SPSUMMON)
--e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
--e3:SetProperty(EFFECT_FLAG_DELAY)
--e3:SetCode(EVENT_REMOVE)
--e3:SetCountLimit(1,21560318)
--e3:SetCondition(c11560318.regcon)
--e3:SetOperation(c11560318.regop)
--c:RegisterEffect(e3)
--special summon
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_GRAVE_SPSUMMON)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_REMOVE)
e3:SetCountLimit(1,21560318)
--e3:SetCondition(c11560318.regcon)
e3:SetOperation(c11560318.regop)
e3:SetOperation(c11560318.regop2)
c:RegisterEffect(e3)
if not c11560318.global_check then
c11560318.global_check=true
......@@ -64,6 +73,41 @@ function c11560318.initial_effect(c)
end
end
c11560318.SetCard_XdMcy=true
function c11560318.regop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
e1:SetCountLimit(1)
if Duel.GetCurrentPhase()==PHASE_STANDBY then
e1:SetLabel(Duel.GetTurnCount())
e1:SetCondition(c11560318.retcon)
e1:SetReset(RESET_PHASE+PHASE_STANDBY,2)
else
e1:SetReset(RESET_PHASE+PHASE_STANDBY)
end
e1:SetOperation(c11560318.spop2)
Duel.RegisterEffect(e1,tp)
end
function c11560318.retcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnCount()~=e:GetLabel()
end
function c11560318.spfilter2(c,e,tp)
return c:IsCode(11560318) and c:IsCanBeSpecialSummoned(e,0,tp,false,true) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function c11560318.spop2(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsExistingMatchingCard(c11560318.spfilter2,tp,LOCATION_EXTRA,0,1,nil,e,tp) then
Duel.Hint(HINT_CARD,0,11560318)
local g=Duel.SelectMatchingCard(tp,c11560318.spfilter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst()
Duel.SpecialSummon(tc,0,tp,tp,false,true,POS_FACEUP)
e:Reset()
end
end
function c11560318.mfilter(c)
return c.SetCard_XdMcy
end
......
......@@ -32,18 +32,70 @@ function c11560323.xxop(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,c)
Duel.Hint(HINT_CARD,0,11560323)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_REMOVE)
e1:SetRange(LOCATION_MZONE)
e1:SetOperation(c11560323.imop)
e1:SetDescription(aux.Stringid(11560323,1))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET)
e1:SetRange(LOCATION_HAND)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetCost(c11560323.yspcost)
e1:SetTarget(c11560323.ysptg)
e1:SetOperation(c11560323.yspop)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTargetRange(LOCATION_HAND,0)
e2:SetTarget(function(e,c)
return c:IsType(TYPE_MONSTER) and c.SetCard_XdMcy end)
return c:IsType(TYPE_TRAP+TYPE_SPELL) and c.SetCard_XdMcy end)
e2:SetLabelObject(e1)
Duel.RegisterEffect(e2,tp)
end
function c11560323.yspcost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(1)
return true
end
function c11560323.ysfilter1(c,e,tp)
local lv=c:GetLevel()
return c.SetCard_XdMcy and lv>0 and c:IsAbleToRemoveAsCost() and Duel.IsExistingMatchingCard(c11560323.ysfilter2,tp,LOCATION_DECK,0,1,c,e,tp,c:GetLevel())
end
function c11560323.ysfilter2(c,e,tp,lv)
return c.SetCard_XdMcy and c:IsType(TYPE_RITUAL) and c:IsLevelBelow(lv) and c:IsLevelAbove(1) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true)
end
function c11560323.ysptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
if e:GetLabel()~=1 then return false end
e:SetLabel(0)
return c:IsAbleToRemoveAsCost() and Duel.IsExistingMatchingCard(c11560323.ysfilter1,tp,LOCATION_DECK,0,1,nil,e,tp)
and Duel.GetFlagEffect(tp,11560323)==0
end
e:SetLabel(0)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c11560323.ysfilter1,tp,LOCATION_DECK,0,1,1,nil,e,tp)
e:SetLabel(g:GetFirst():GetLevel())
g:AddCard(c)
Duel.Remove(g,POS_FACEUP,REASON_COST)
Duel.RegisterFlagEffect(tp,11560323,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function c11560323.yspop(e,tp,eg,ep,ev,re,r,rp)
local lv=e:GetLabel()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c11560323.ysfilter2,tp,LOCATION_DECK,0,1,1,nil,e,tp,lv)
local tc=g:GetFirst()
if tc then
tc:SetMaterial(nil)
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure()
end
end
function c11560323.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_MZONE,nil)
if chk==0 then return g:GetCount()>0 end
......
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