Commit c628acfd authored by Tachibana's avatar Tachibana

1145141919810

parent a19de193
Pipeline #13869 passed with stages
in 33 minutes and 34 seconds
......@@ -2,7 +2,7 @@
local m=30005016
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
c:EnableReviveLimit()
--link summon
aux.AddLinkProcedure(c,cm.matfilter,2,4)
--cannot remove
......@@ -21,15 +21,12 @@ c:EnableReviveLimit()
e1:SetValue(cm.desrepval)
e1:SetOperation(cm.desrepop)
c:RegisterEffect(e1)
--activate
--activate
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,2))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetRange(LOCATION_GRAVE)
e3:SetCost(cm.thcost)
e3:SetTarget(cm.acttg)
e3:SetOperation(cm.actop)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EVENT_TO_GRAVE)
e3:SetOperation(cm.regop)
c:RegisterEffect(e3)
end
function cm.matfilter(c)
......@@ -46,7 +43,7 @@ end
function cm.desreptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return eg:IsExists(cm.repfilter,1,nil,tp)
and Duel.IsExistingMatchingCard(cm.desfilter,tp,LOCATION_GRAVE,0,3,nil,e,tp) end
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
if Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,cm.desfilter,tp,LOCATION_GRAVE,0,3,3,nil,e,tp)
g:KeepAlive()
......@@ -60,12 +57,27 @@ function cm.desrepval(e,c)
end
function cm.desrepop(e,tp,eg,ep,ev,re,r,rp)
local tg=e:GetLabelObject()
Duel.SendtoDeck(tg,nil,2,REASON_EFFECT+REASON_REPLACE)
Duel.SendtoDeck(tg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsPreviousLocation(LOCATION_ONFIELD) then
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetRange(LOCATION_GRAVE)
--e1:SetCountLimit(1,m)
e1:SetCost(cm.thcost)
e1:SetTarget(cm.acttg)
e1:SetOperation(cm.actop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToExtraAsCost() end
Duel.SendtoDeck(e:GetHandler(),nil,2,REASON_COST)
Duel.SendtoDeck(e:GetHandler(),nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
function cm.actfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
......@@ -75,10 +87,11 @@ function cm.acttg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function cm.actop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.actfilter,tp,LOCATION_GRAVE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.actfilter),tp,LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.BreakEffect()
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
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