Commit 4c25be99 authored by POLYMER's avatar POLYMER

fix

parent 627353e8
......@@ -79,9 +79,9 @@ function c67200930.cfilter(c)
end
function c67200930.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c67200931.cfilter,tp,LOCATION_PZONE,0,1,c) end
if chk==0 then return Duel.IsExistingMatchingCard(c67200930.cfilter,tp,LOCATION_PZONE,0,1,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectMatchingCard(tp,c67200931.cfilter,tp,LOCATION_PZONE,0,1,1,c)
local g=Duel.SelectMatchingCard(tp,c67200930.cfilter,tp,LOCATION_PZONE,0,1,1,c)
Duel.SendtoHand(g,nil,REASON_COST)
end
function c67200930.stcon(e)
......
......@@ -269,6 +269,12 @@ function yume.OptionalPendulum(e,c,tp)
e2:SetReset(RESET_PHASE+PHASE_MAIN1)
Duel.RegisterEffect(e2,tp)
e1:SetLabelObject(e2)
--would be sp summoned as Chain Link 2+
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_SPSUMMON)
e3:SetOperation(yume.RegOpWhenWouldBeSpSummoned)
Duel.RegisterEffect(e3,tp)
local use_oppo_pend=not self_pend_flag or oppo_pend_flag and Duel.SelectYesNo(tp,aux.Stringid(71403001,5))
if use_oppo_pend then
Duel.SpecialSummonRule(tp,oppo_lpz,SUMMON_TYPE_PENDULUM)
......@@ -285,6 +291,12 @@ function yume.ResetExtraPendulumEffect(e,tp,eg,ep,ev,re,r,rp)
e1:Reset()
e:Reset()
end
function yume.RegOpWhenWouldBeSpSummoned(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentChain()>1 then
Duel.SetChainLimit(aux.FALSE)
end
e:Reset()
end
function yume.RegPPTPuyopuyoBasicExtraFlag(c)
--Destroyed and added to Extra from Main Monster Zone
local e1=Effect.CreateEffect(c)
......
--气泡方块使 T
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403002.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c,true)
......
--气泡方块使 I
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403003.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c,true)
......@@ -95,6 +95,7 @@ function c71403003.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c_is_in_hand=c:IsLocation(LOCATION_HAND)
if not (c:IsRelateToEffect(e) and (c_is_in_hand or c:GetSequence()<5)) then return end
local op_flag=false
if c_is_in_hand then
op_flag=Duel.SendtoExtraP(c,nil,REASON_EFFECT)>0 and c:IsLocation(LOCATION_EXTRA) and c:IsFaceup()
else
......
--气泡方块使 S
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403004.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c,true)
......@@ -104,6 +104,7 @@ function c71403004.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c_is_in_hand=c:IsLocation(LOCATION_HAND)
if not (c:IsRelateToEffect(e) and (c_is_in_hand or c:GetSequence()<5)) then return end
local op_flag=false
if c_is_in_hand then
op_flag=Duel.SendtoExtraP(c,nil,REASON_EFFECT)>0 and c:IsLocation(LOCATION_EXTRA) and c:IsFaceup()
else
......
--气泡方块使 Z
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403005.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c,true)
......@@ -49,7 +49,7 @@ function c71403005.initial_effect(c)
yume.PPTCounter()
end
function c71403005.filterp2a(c)
return c:GetSequence()>4 and c:IsFaceup() and c:IsSetCard(0x715) and c:IsCanChangePosition()
return c:GetSequence()<5 and c:IsFaceup() and c:IsSetCard(0x715) and c:IsCanChangePosition()
end
function c71403005.filterp2b(c)
return c:IsSetCard(0x715) and c:IsType(TYPE_PENDULUM)
......@@ -102,6 +102,7 @@ function c71403005.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c_is_in_hand=c:IsLocation(LOCATION_HAND)
if not (c:IsRelateToEffect(e) and (c_is_in_hand or c:GetSequence()<5)) then return end
local op_flag=false
if c_is_in_hand then
op_flag=Duel.SendtoExtraP(c,nil,REASON_EFFECT)>0 and c:IsLocation(LOCATION_EXTRA) and c:IsFaceup()
else
......@@ -129,17 +130,11 @@ function c71403005.op1(e,tp,eg,ep,ev,re,r,rp)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
oc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_CANNOT_DISEFFECT)
e3:SetRange(LOCATION_MZONE)
e3:SetValue(c71403005.efilter)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
oc:RegisterEffect(e3)
oc:RegisterFlagEffect(71403005,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
end
end
function c71403005.efilter(e,ct)
local te=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT)
return te:GetHandler()==e:GetHandler()
end
\ No newline at end of file
--T旋爆裂!
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403006.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......
--TETRIS!
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403008.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......
--美学魔术!
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403009.initial_effect(c)
--Activate
local e0=Effect.CreateEffect(c)
......
--存块!旋转!
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403010.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......
--气泡方块的星舰舰长 T
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403011.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsXyzType,TYPE_PENDULUM),4,2,nil,nil,99)
......@@ -145,7 +145,7 @@ function c71403011.op2(e,tp,eg,ep,ev,re,r,rp)
result=Duel.Destroy(dg,REASON_EFFECT)
end
if result==0 then return end
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local g=Duel.GetFieldGroup(0,LOCATION_MZONE,LOCATION_MZONE)
local oppo_g=g:Filter(Card.IsControler,nil,1-tp)
local seq_pos_table={}
for tc in aux.Next(oppo_g) do
......@@ -154,7 +154,7 @@ function c71403011.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.ChangePosition(g,POS_FACEUP_DEFENSE,POS_FACEUP_DEFENSE,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK)
local changed_g=Group.CreateGroup()
local unchanged_g=Group.CreateGroup()
for seq,pos in ipairs(seq_pos_table) do
for seq,pos in pairs(seq_pos_table) do
local tc=Duel.GetFieldCard(1-tp,LOCATION_MZONE,seq)
if tc then
if tc:GetPosition()==pos then
......
......@@ -49,7 +49,7 @@ function c71403012.initial_effect(c)
yume.PPTCounter()
end
function c71403012.filterp2a(c)
return c:GetSequence()>4 and c:IsFaceup() and c:IsSetCard(0x715) and c:IsCanChangePosition()
return c:GetSequence()<5 and c:IsFaceup() and c:IsSetCard(0x715) and c:IsCanChangePosition()
end
function c71403012.filterp2b(c)
return c:IsFaceup() and yume.PPTPlacePendExceptFromFieldFilter(c)
......@@ -99,6 +99,7 @@ function c71403012.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c_is_in_hand=c:IsLocation(LOCATION_HAND)
if not (c:IsRelateToEffect(e) and (c_is_in_hand or c:GetSequence()<5)) then return end
local op_flag=false
if c_is_in_hand then
op_flag=Duel.SendtoExtraP(c,nil,REASON_EFFECT)>0 and c:IsLocation(LOCATION_EXTRA) and c:IsFaceup()
else
......
......@@ -72,7 +72,7 @@ function c71403013.opp2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,c71403013.filterp2b,tp,LOCATION_REMOVED,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoDeck(g,SEQ_DECKSHUFFLE,REASON_EFFECT)
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end
end
......@@ -104,6 +104,7 @@ function c71403013.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local c_is_in_hand=c:IsLocation(LOCATION_HAND)
if not (c:IsRelateToEffect(e) and (c_is_in_hand or c:GetSequence()<5)) then return end
local op_flag=false
if c_is_in_hand then
op_flag=Duel.SendtoExtraP(c,nil,REASON_EFFECT)>0 and c:IsLocation(LOCATION_EXTRA) and c:IsFaceup()
else
......@@ -117,5 +118,5 @@ function c71403013.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,c71403013.filter1,tp,LOCATION_GRAVE,0,1,2,nil)
if g:GetCount()==0 then return end
Duel.SendtoDeck(g,SEQ_DECKSHUFFLE,REASON_EFFECT)
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
\ No newline at end of file
--两个人在一起就是最强的!
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403014.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......
--气泡方块的淘气双子 J&L
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403015.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsXyzType,TYPE_PENDULUM),4,2,nil,nil,99)
......
--气泡方块的千金与管家 S&Z
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403016.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsXyzType,TYPE_PENDULUM),4,2,nil,nil,99)
......
--我来做你的对手。
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403017.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......
--气泡方块使 林檎
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403019.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c,true)
......@@ -78,7 +78,7 @@ function c71403019.opp2(e,tp,eg,ep,ev,re,r,rp)
end
local op_flag=false
if op==0 then
op_flag=Duel.Destroy(sg,REASON_EFFECT)>0
op_flag=Duel.Destroy(tc,REASON_EFFECT)>0
else
op_flag=Duel.ChangePosition(tc,POS_FACEUP_DEFENSE,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK)>0
end
......
--气泡方块使 亚鲁鲁
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403021.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c,true)
......@@ -87,7 +87,7 @@ function c71403021.opp2(e,tp,eg,ep,ev,re,r,rp)
end
local op_flag=false
if op==0 then
op_flag=Duel.Destroy(sg,REASON_EFFECT)>0
op_flag=Duel.Destroy(tc,REASON_EFFECT)>0
else
op_flag=Duel.ChangePosition(tc,POS_FACEUP_DEFENSE,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK)>0
end
......
--气泡方块的见习法师与搭档 亚鲁鲁·娜嘉&卡邦可
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403022.initial_effect(c)
--syn summon
aux.AddSynchroProcedure(c,aux.FilterBoolFunction(Card.IsSynchroType,TYPE_PENDULUM),aux.NonTuner(aux.FilterBoolFunction(Card.IsSynchroType,TYPE_PENDULUM)),1,1)
......
--L-J幻象!
---@param c Card
if not c71403001 then dofile("expansions/script/c71403001.lua") end
---@param c Card
function c71403023.initial_effect(c)
--destroy
local e1=Effect.CreateEffect(c)
......@@ -74,7 +74,7 @@ function c71403023.op1(e,tp,eg,ep,ev,re,r,rp)
if ct==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local spg=pg:Select(tp,ct,ct,nil)
for pc in aux.Next(pg) do
for pc in aux.Next(spg) do
Duel.MoveToField(pc,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
if Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_PZONE,0,2,nil,0x715) then
......
......@@ -2,128 +2,128 @@
local m=89387007
local cm=_G["c"..m]
function cm.initial_effect(c)
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x99),2,2,cm.lcheck)
c:EnableReviveLimit()
aux.EnablePendulumAttribute(c,false)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetRange(LOCATION_PZONE)
e1:SetTargetRange(LOCATION_ONFIELD,0)
e1:SetTarget(cm.indestg)
e1:SetValue(aux.tgoval)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetRange(LOCATION_PZONE)
e2:SetTarget(cm.reptg)
e2:SetValue(cm.repval)
e2:SetOperation(cm.repop)
c:RegisterEffect(e2)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetCountLimit(1,m)
e4:SetCondition(cm.pencon)
e4:SetOperation(cm.penop)
c:RegisterEffect(e4)
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,m+100000000)
e3:SetTarget(cm.destg)
e3:SetOperation(cm.desop)
c:RegisterEffect(e3)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e5:SetCode(EVENT_LEAVE_FIELD)
e5:SetCountLimit(1,m+200000000)
e5:SetCondition(cm.spcon)
e5:SetTarget(cm.sptg)
e5:SetOperation(cm.spop)
c:RegisterEffect(e5)
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x99),2,2,cm.lcheck)
c:EnableReviveLimit()
aux.EnablePendulumAttribute(c,false)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetRange(LOCATION_PZONE)
e1:SetTargetRange(LOCATION_ONFIELD,0)
e1:SetTarget(cm.indestg)
e1:SetValue(aux.tgoval)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetRange(LOCATION_PZONE)
e2:SetTarget(cm.reptg)
e2:SetValue(cm.repval)
e2:SetOperation(cm.repop)
c:RegisterEffect(e2)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetCondition(cm.pencon)
e4:SetOperation(cm.penop)
c:RegisterEffect(e4)
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,m+100000000)
e3:SetTarget(cm.destg)
e3:SetOperation(cm.desop)
c:RegisterEffect(e3)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e5:SetCode(EVENT_LEAVE_FIELD)
e5:SetCountLimit(1,m+200000000)
e5:SetCondition(cm.spcon)
e5:SetTarget(cm.sptg)
e5:SetOperation(cm.spop)
c:RegisterEffect(e5)
end
cm.pendulum_level=7
function cm.lfilter(c)
return c:GetSummonLocation()==LOCATION_EXTRA
return c:GetSummonLocation()==LOCATION_EXTRA
end
function cm.lcheck(g)
return g:IsExists(cm.lfilter,1,nil)
return g:IsExists(cm.lfilter,1,nil)
end
function cm.indestg(e,c)
return c:IsSetCard(0x99) and c~=e:GetHandler()
return c:IsSetCard(0x99) and c~=e:GetHandler()
end
function cm.filter(c,tp)
return c:IsFaceup() and c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsSetCard(0x99) and c:IsReason(REASON_BATTLE+REASON_EFFECT) and not c:IsReason(REASON_REPLACE)
return c:IsFaceup() and c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsSetCard(0x99) and c:IsReason(REASON_BATTLE+REASON_EFFECT) and not c:IsReason(REASON_REPLACE)
end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return eg:IsExists(cm.filter,1,c,tp) and c:IsDestructable(e) and not c:IsStatus(STATUS_DESTROY_CONFIRMED) end
return Duel.SelectEffectYesNo(tp,c,96)
local c=e:GetHandler()
if chk==0 then return eg:IsExists(cm.filter,1,c,tp) and c:IsDestructable(e) and not c:IsStatus(STATUS_DESTROY_CONFIRMED) end
return Duel.SelectEffectYesNo(tp,c,96)
end
function cm.repval(e,c)
return cm.filter(c,e:GetHandlerPlayer())
return cm.filter(c,e:GetHandlerPlayer())
end
function cm.repop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(e:GetHandler(),REASON_EFFECT+REASON_REPLACE)
Duel.Destroy(e:GetHandler(),REASON_EFFECT+REASON_REPLACE)
end
function cm.pencon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonLocation()==LOCATION_EXTRA
return e:GetHandler():GetSummonLocation()==LOCATION_EXTRA
end
function cm.penop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_EXTRA_PENDULUM_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,0)
e2:SetValue(cm.pendvalue)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
local c=e:GetHandler()
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_EXTRA_PENDULUM_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,0)
e2:SetCountLimit(1,m)
e2:SetValue(cm.pendvalue)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
function cm.pendvalue(e,c)
return c:IsSetCard(0x99)
return c:IsSetCard(0x99)
end
function cm.spfilter(c)
return c:IsSetCard(0x99) and c:IsType(TYPE_PENDULUM) and not c:IsForbidden() and (not c:IsLocation(LOCATION_EXTRA) or c:IsFaceup())
return c:IsSetCard(0x99) and c:IsType(TYPE_PENDULUM) and not c:IsForbidden() and (not c:IsLocation(LOCATION_EXTRA) or c:IsFaceup())
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_PZONE) and chkc:IsControler(tp) and chkc:IsDestructable() end
if chk==0 then return Duel.IsExistingTarget(Card.IsDestructable,tp,LOCATION_PZONE,0,1,nil) and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,Card.IsDestructable,tp,LOCATION_PZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
if chkc then return chkc:IsLocation(LOCATION_PZONE) and chkc:IsControler(tp) and chkc:IsDestructable() end
if chk==0 then return Duel.IsExistingTarget(Card.IsDestructable,tp,LOCATION_PZONE,0,1,nil) and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,Card.IsDestructable,tp,LOCATION_PZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.Destroy(tc,REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,1,nil)
local tc=g:GetFirst()
if tc then
Duel.MoveToField(tc,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.Destroy(tc,REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,1,nil)
local tc=g:GetFirst()
if tc then
Duel.MoveToField(tc,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousLocation(LOCATION_ONFIELD)
local c=e:GetHandler()
return c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousLocation(LOCATION_ONFIELD)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,1,nil) end
if chk==0 then return (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,1,nil) end
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if not (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,1,1,nil)
if g:GetCount()>0 then
Duel.MoveToField(g:GetFirst(),tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
if not (Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,1,1,nil)
if g:GetCount()>0 then
Duel.MoveToField(g:GetFirst(),tp,tp,LOCATION_PZONE,POS_FACEUP,true)
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