Commit 6d7a62c1 authored by Tachibana's avatar Tachibana

eme

parent 6fc55d32
Pipeline #6090 passed with stages
in 22 minutes and 57 seconds
No preview for this file type
......@@ -84,8 +84,7 @@ function c12200001.ngcon(e)
end
function c12200001.filter(c,e,tp)
local bool=aux.PendulumSummonableBool(c)
return c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_PENDULUM,tp,bool,bool)
and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,c:GetCode()) and (c:IsFaceup() or not c:IsLocation(LOCATION_EXTRA))
return c:IsSetCard(0x453) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_PENDULUM,tp,bool,bool) and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,c:GetCode()) and (c:IsFaceup() or not c:IsLocation(LOCATION_EXTRA))
end
function c12200001.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
......@@ -91,8 +91,7 @@ function c12200002.ngcon(e)
end
function c12200002.filter(c,e,tp)
local bool=aux.PendulumSummonableBool(c)
return c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_PENDULUM,tp,bool,bool)
and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,c:GetCode()) and (c:IsFaceup() or not c:IsLocation(LOCATION_EXTRA))
return c:IsSetCard(0x453) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_PENDULUM,tp,bool,bool) and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,c:GetCode()) and (c:IsFaceup() or not c:IsLocation(LOCATION_EXTRA))
end
function c12200002.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
......@@ -47,9 +47,10 @@ function c12200003.initial_effect(c)
local e17=Effect.CreateEffect(c)
e17:SetCategory(CATEGORY_DISABLE)
e17:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e17:SetCode(PHASE_STANDBY)
e17:SetCode(EVENT_PHASE+PHASE_STANDBY)
e17:SetRange(LOCATION_PZONE)
e17:SetCountLimit(1)
e17:SetCondition(c12200003.damcon)
e17:SetTarget(c12200003.target)
e17:SetOperation(c12200003.operation)
c:RegisterEffect(e17)
......@@ -61,7 +62,7 @@ function c12200003.initial_effect(c)
e18:SetCondition(c12200003.condition)
e18:SetTarget(c12200003.postg)
e18:SetOperation(c12200003.posop)
c:RegisterEffect(e18)
c:RegisterEffect(e18)
end
c12200003.setcard="terraria"
function c12200003.thfilter(c)
......@@ -89,8 +90,7 @@ function c12200003.ngcon(e)
end
function c12200003.filter(c,e,tp)
local bool=aux.PendulumSummonableBool(c)
return c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_PENDULUM,tp,bool,bool)
and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,c:GetCode()) and (c:IsFaceup() or not c:IsLocation(LOCATION_EXTRA))
return c:IsSetCard(0x453) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_PENDULUM,tp,bool,bool) and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,c:GetCode()) and (c:IsFaceup() or not c:IsLocation(LOCATION_EXTRA))
end
function c12200003.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......@@ -126,6 +126,9 @@ end
function c12200003.efilter(e,te)
return te:IsActiveType(TYPE_TRAP) and te:GetOwnerPlayer()~=e:GetHandlerPlayer()
end
function c12200003.damcon(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
end
function c12200003.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CARDTYPE)
......
......@@ -46,6 +46,17 @@ function c85402330.initial_effect(c)
e5:SetTarget(c85402330.tgsk)
e5:SetOperation(c85402330.opsk)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_TODECK)
e6:SetType(EFFECT_TYPE_QUICK_O)
e6:SetCode(EVENT_FREE_CHAIN)
e6:SetRange(LOCATION_GRAVE)
e6:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e6:SetCost(c85402330.cost1)
e6:SetTarget(c85402330.sptg1)
e6:SetOperation(c85402330.spop1)
c:RegisterEffect(e6)
------墓地回卡组
end
function c85402330.op(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():AddCounter(0x1e41,1)
......@@ -53,6 +64,9 @@ end
function c85402330.f(c)
return c:IsCode(85402200,85402210)
end
function c85402330.g(c)
return c:IsCode(85402320) and c:IsAbleToHand()
end
function c85402330.fl(c)
return c:IsCode(85402200) and c:IsPosition(POS_FACEUP)
end
......@@ -62,15 +76,9 @@ end
function c85402330.flll(c)
return c:IsCode(85402320) and c:IsAbleToGrave()
end
function c85402330.fllll(c)
return c:IsCode(85402340) and c:IsAbleToGrave()
end
function c85402330.flll1(c)
return c:IsCode(85402320) and c:IsAbleToHand()
end
function c85402330.fllll1(c)
return c:IsCode(85402340) and c:IsAbleToHand()
end
function c85402330.fllll2(c)
return c:IsCode(85402200,85402210)
end
......@@ -101,7 +109,7 @@ function c85402330.costcs(e,tp,eg,ep,ev,re,r,rp,chk)
e:GetHandler():RemoveCounter(tp,0x1e41,3,REASON_COST)
end
function c85402330.tgcs(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c85402330.fll,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c85402330.flll,tp,LOCATION_DECK,0,1,nil) and Duel.IsExistingMatchingCard(c85402330.fllll,tp,LOCATION_DECK,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
if chk==0 then return Duel.IsExistingMatchingCard(c85402330.fll,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c85402330.flll,tp,LOCATION_DECK,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,2,0,0)
end
......@@ -110,10 +118,6 @@ function c85402330.opcs(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT)
end
local gg=Duel.SelectMatchingCard(tp,c85402330.fllll,tp,LOCATION_DECK,0,1,1,nil)
if gg:GetCount()>0 then
Duel.SendtoGrave(gg,REASON_EFFECT)
end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local ggg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c85402330.fll),tp,LOCATION_DECK+LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 then
......@@ -130,7 +134,7 @@ function c85402330.costsk(e,tp,eg,ep,ev,re,r,rp,chk)
e:GetHandler():RemoveCounter(tp,0x1e41,3,REASON_COST)
end
function c85402330.tgsk(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c85402330.flll1,tp,LOCATION_DECK,0,1,nil) and Duel.IsExistingMatchingCard(c85402330.fllll1,tp,LOCATION_DECK,0,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(c85402330.flll1,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,0,0)
end
function c85402330.opsk(e,tp,eg,ep,ev,re,r,rp)
......@@ -143,9 +147,30 @@ function c85402330.opsk(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()>0 then
Duel.SendtoHand(g,tp,REASON_EFFECT)
end
local gg=Duel.SelectMatchingCard(tp,c85402330.fllll1,tp,LOCATION_DECK,0,1,1,nil)
if gg:GetCount()>0 then
Duel.SendtoHand(gg,tp,REASON_EFFECT)
end
function c85402330.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeckAsCost() end
Duel.SendtoDeck(e:GetHandler(),nil,2,REASON_EFFECT)
end
function c85402330.spfilter1(c)
return c:IsCode(85402320) and c:IsAbleToDeck()
end
function c85402330.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c85402330.spfilter1,tp,LOCATION_GRAVE,0,1,nil) end
local g=Duel.GetMatchingGroup(c85402330.spfilter1,tp,LOCATION_GRAVE,0,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,0,0)
if g:GetCount()>1 then
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,0,0)
end
end
function c85402330.spop1(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c85402330.spfilter1,tp,LOCATION_GRAVE,0,nil)
if g:GetCount()>0 then
local b=Duel.SendtoDeck(g,tp,2,REASON_EFFECT)
if b>1 then
local h=Duel.SelectMatchingCard(tp,c85402330.g,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoHand(h,tp,REASON_EFFECT)
end
end
end
......@@ -161,3 +186,6 @@ 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