Commit c878671a authored by TanakaKotoha's avatar TanakaKotoha

hack fix of old cards

parent e019bf2e
......@@ -49,7 +49,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end
function cm.thfilter(c)
return c:IsSetCard(0x1701) and c:IsType(TYPE_SPELL) and c:IsAbleToHand()
return c:IsSetCard(0x17f2) and c:IsType(TYPE_SPELL) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
......
......@@ -30,7 +30,7 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_PZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x2701))
e3:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x27f2))
e3:SetValue(1)
c:RegisterEffect(e3)
--cannot be target
......@@ -72,7 +72,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function cm.filter(c,e,tp)
return c:IsSetCard(0x2701) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsSetCard(0x27f2) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
......@@ -10,7 +10,7 @@ function cm.initial_effect(c)
e1:SetRange(LOCATION_PZONE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x2701))
e1:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x27f2))
e1:SetValue(600)
c:RegisterEffect(e1)
--special summon
......@@ -38,16 +38,16 @@ function cm.initial_effect(c)
c:RegisterEffect(e4)
end
function cm.ndcfilter(c)
return c:IsFaceup() and c:IsSetCard(0x2701)
return c:IsFaceup() and c:IsSetCard(0x27f2)
end
function cm.indcon(e)
return Duel.IsExistingMatchingCard(cm.ndcfilter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,e:GetHandler())
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsSetCard(0x2701)
return re and re:GetHandler():IsSetCard(0x27f2)
end
function cm.filter(c,e,tp)
return c:IsLevelBelow(4) and c:IsSetCard(0x2701) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsLevelBelow(4) and c:IsSetCard(0x27f2) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and cm.filter(chkc,e,tp) end
......
......@@ -42,7 +42,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)==0
end
function cm.spfilter(c,e,tp)
return c:IsLevelBelow(4) and c:IsSetCard(0x2701) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsLevelBelow(4) and c:IsSetCard(0x27f2) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_DECK) and cm.spfilter(chkc,e,tp) end
......@@ -59,7 +59,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsSetCard(0x2701)
return re and re:GetHandler():IsSetCard(0x27f2)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
......@@ -85,7 +85,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.cfilter1(c)
return c:IsFaceup() and c:IsSetCard(0x2701)
return c:IsFaceup() and c:IsSetCard(0x27f2)
end
function cm.recon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter1,tp,LOCATION_MZONE,0,1,e:GetHandler())
......
......@@ -28,10 +28,10 @@ function cm.initial_effect(c)
c:RegisterEffect(e2)
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsSetCard(0x2701)
return re and re:GetHandler():IsSetCard(0x27f2)
end
function cm.thfilter(c)
return c:IsFaceup() and c:IsSetCard(0x2701) and c:IsType(TYPE_PENDULUM) and c:IsAbleToHand()
return c:IsFaceup() and c:IsSetCard(0x27f2) and c:IsType(TYPE_PENDULUM) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_EXTRA,0,1,nil) end
......@@ -47,7 +47,7 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.cfilter1(c)
return c:IsFaceup() and c:IsSetCard(0x2701)
return c:IsFaceup() and c:IsSetCard(0x27f2)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter1,tp,LOCATION_MZONE,0,1,nil)
......
......@@ -23,7 +23,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e2)
end
function cm.desfilter(c)
return c:IsFaceup() and c:IsSetCard(0x2701)
return c:IsFaceup() and c:IsSetCard(0x27f2)
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and chkc:IsControler(1-tp) end
......@@ -42,7 +42,7 @@ function cm.desop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x2701) and (c:IsFaceup() or not c:IsLocation(LOCATION_EXTRA)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsSetCard(0x27f2) and (c:IsFaceup() or not c:IsLocation(LOCATION_EXTRA)) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
......@@ -46,7 +46,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.filter(c,e,sp,zone)
return c:IsSetCard(0x2701) and c:IsCanBeSpecialSummoned(e,0,sp,false,false,zone)
return c:IsSetCard(0x27f2) and c:IsCanBeSpecialSummoned(e,0,sp,false,false,zone)
and not Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_MZONE,0,1,nil,c:GetCode())
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
......@@ -73,7 +73,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP,zone)
end
function cm.cfilter(c)
return c:IsSetCard(0x2701)
return c:IsSetCard(0x27f2)
end
function cm.atkval(e,c)
local g=e:GetHandler():GetLinkedGroup():Filter(cm.cfilter,nil)
......
......@@ -26,7 +26,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e2)
end
function cm.mfilter(c)
return c:IsSetCard(0x2701)
return c:IsSetCard(0x27f2)
end
function cm.exacon(e)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
......
......@@ -30,7 +30,7 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_PZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x2701))
e3:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x27f2))
e3:SetValue(1)
c:RegisterEffect(e3)
--cannot be target
......@@ -72,7 +72,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function cm.filter(c,e,tp)
return c:IsSetCard(0x2701) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsSetCard(0x27f2) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
......@@ -30,7 +30,7 @@ function cm.initial_effect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_PZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x2701))
e3:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x27f2))
e3:SetValue(1)
c:RegisterEffect(e3)
--cannot be target
......@@ -72,7 +72,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function cm.filter(c,e,tp)
return c:IsSetCard(0x2701) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsSetCard(0x27f2) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
......@@ -42,7 +42,7 @@ function cm.initial_effect(c)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1)
e4:SetCondition(cm.MaterialCheck(0x2700,cm.discon))
e4:SetCondition(cm.MaterialCheck(0x27f0,cm.discon))
e4:SetTarget(cm.distg)
e4:SetOperation(cm.disop)
c:RegisterEffect(e4)
......@@ -51,7 +51,7 @@ function cm.initial_effect(c)
e5:SetDescription(aux.Stringid(17060876,3))
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_EXTRA_ATTACK)
e5:SetCondition(cm.MaterialCheck(0x1700))
e5:SetCondition(cm.MaterialCheck(0x17f0))
e5:SetValue(cm.raval)
c:RegisterEffect(e5)
end
......@@ -125,10 +125,10 @@ end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=c:GetMaterial()
if g:IsExists(Card.IsSetCard,1,nil,0x1700) then
if g:IsExists(Card.IsSetCard,1,nil,0x17f0) then
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(17060876,1))
end
if g:IsExists(Card.IsSetCard,1,nil,0x2700) then
if g:IsExists(Card.IsSetCard,1,nil,0x27f0) then
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(17060876,2))
end
end
......@@ -51,7 +51,7 @@ function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.rmfilter(c)
return not c:IsSetCard(0x3701)
return not c:IsSetCard(0x47f2)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.rmfilter,tp,LOCATION_DECK,0,1,nil) end
......
......@@ -57,7 +57,7 @@ function cm.limit(e,c)
return Duel.GetFlagEffect(e:GetHandler():GetControler(),17090009)>0
end
function cm.slfilter(c)
return c:IsSetCard(0x3701) or c:IsCode(17090009)
return c:IsSetCard(0x47f2) or c:IsCode(17090009)
end
function cm.slcon(e)
return not Duel.IsExistingMatchingCard(cm.slfilter,e:GetHandlerPlayer(),LOCATION_PZONE,0,1,e:GetHandler())
......
......@@ -62,7 +62,7 @@ function cm.limit(e,c)
return Duel.GetFlagEffect(e:GetHandler():GetControler(),17090009)>0
end
function cm.slfilter(c)
return c:IsSetCard(0x3701) or c:IsCode(17090009)
return c:IsSetCard(0x47f2) or c:IsCode(17090009)
end
function cm.slcon(e)
return not Duel.IsExistingMatchingCard(cm.slfilter,e:GetHandlerPlayer(),LOCATION_PZONE,0,1,e:GetHandler())
......
......@@ -62,7 +62,7 @@ function cm.limit(e,c)
return Duel.GetFlagEffect(e:GetHandler():GetControler(),17090009)>0
end
function cm.slfilter(c)
return c:IsSetCard(0x3701) or c:IsCode(17090009)
return c:IsSetCard(0x47f2) or c:IsCode(17090009)
end
function cm.slcon(e)
return not Duel.IsExistingMatchingCard(cm.slfilter,e:GetHandlerPlayer(),LOCATION_PZONE,0,1,e:GetHandler())
......
......@@ -64,7 +64,7 @@ function cm.limit(e,c)
return Duel.GetFlagEffect(e:GetHandler():GetControler(),17090009)>0
end
function cm.slfilter(c)
return c:IsSetCard(0x3701) or c:IsCode(17090009)
return c:IsSetCard(0x47f2) or c:IsCode(17090009)
end
function cm.slcon(e)
return not Duel.IsExistingMatchingCard(cm.slfilter,e:GetHandlerPlayer(),LOCATION_PZONE,0,1,e:GetHandler())
......
......@@ -60,7 +60,7 @@ function cm.limit(e,c)
return Duel.GetFlagEffect(e:GetHandler():GetControler(),17090009)>0
end
function cm.slfilter(c)
return c:IsSetCard(0x3701) or c:IsCode(17090009)
return c:IsSetCard(0x47f2) or c:IsCode(17090009)
end
function cm.slcon(e)
return not Duel.IsExistingMatchingCard(cm.slfilter,e:GetHandlerPlayer(),LOCATION_PZONE,0,1,e:GetHandler())
......
......@@ -63,7 +63,7 @@ function cm.limit(e,c)
return Duel.GetFlagEffect(e:GetHandler():GetControler(),17090009)>0
end
function cm.slfilter(c)
return c:IsSetCard(0x3701) or c:IsCode(17090009)
return c:IsSetCard(0x47f2) or c:IsCode(17090009)
end
function cm.slcon(e)
return not Duel.IsExistingMatchingCard(cm.slfilter,e:GetHandlerPlayer(),LOCATION_PZONE,0,1,e:GetHandler())
......
......@@ -2,17 +2,54 @@
local m=33330001
local cm=_G["c"..m]
function cm.initial_effect(c)
--indes
--Indes
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetValue(1)
c:RegisterEffect(e1)
--direct atk
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DIRECT_ATTACK)
local e2=e1:Clone()
e2:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
c:RegisterEffect(e2)
--Direct Attack
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DIRECT_ATTACK)
c:RegisterEffect(e3)
--search
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330001,0))
e4:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_SUMMON_SUCCESS)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCountLimit(1,m)
e4:SetCost(c33330001.thcost)
e4:SetTarget(c33330001.thtg)
e4:SetOperation(c33330001.thop)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e5)
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end
function cm.filter2(c)
return c:IsSetCard(0x556) and c:IsType(TYPE_FIELD) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter2,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.filter2,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
\ No newline at end of file
--深界探窟者 雷古
function c33330002.initial_effect(c)
--th2
local m=33330002
local cm=_G["c"..m]
cm.search={33330026,33330015} --检 索 的 卡
function cm.initial_effect(c)
--To Hand 1
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330002,1))
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,33330102)
e1:SetCost(c33330002.cost)
e1:SetTarget(c33330002.target)
e1:SetOperation(c33330002.activate)
e1:SetCountLimit(1,m)
e1:SetCost(cm.thcost1)
e1:SetTarget(cm.thtg1)
e1:SetOperation(cm.thop1)
c:RegisterEffect(e1)
--tohand
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330002,0))
e4:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,33330002)
e4:SetCost(c33330002.thcost)
e4:SetTarget(c33330002.thtg)
e4:SetOperation(c33330002.thop)
c:RegisterEffect(e4)
--To Hand 2
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+100)
e2:SetCost(cm.thcost2)
e2:SetTarget(cm.thtg2)
e2:SetOperation(cm.thop2)
c:RegisterEffect(e2)
end
function c33330002.cost(e,tp,eg,ep,ev,re,r,rp,chk)
cm.card_code_list=cm.search
--To Hand 1
function cm.thfilter1(c)
return c:IsType(TYPE_EQUIP) and c:IsSetCard(0x556) and c:IsAbleToHand()
end
function cm.thcost1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST)
end
function cm.thtg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter1,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.thop1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter1,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
end
--To Hand 2
function cm.thfilter2(c,code)
return c:IsCode(code) and c:IsAbleToHand()
end
function cm.thcost2(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local ct=g:GetCount()
if chk==0 then return e:GetHandler():IsReleasable() and ct>0 and g:FilterCount(Card.IsAbleToRemove,nil)==ct end
Duel.Release(e:GetHandler(),REASON_COST)
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function c33330002.filter1(c)
return c:IsCode(33330026) and c:IsAbleToHand()
function cm.thtg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,cm.search[1])
and Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,cm.search[2]) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330002.filter2(c)
return c:IsCode(33330015) and c:IsAbleToHand()
end
function c33330002.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330002.filter1,tp,LOCATION_DECK,0,1,nil)
and Duel.IsExistingMatchingCard(c33330002.filter2,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK)
end
function c33330002.activate(e,tp,eg,ep,ev,re,r,rp)
local g1=Duel.GetMatchingGroup(c33330002.filter1,tp,LOCATION_DECK,0,nil)
local g2=Duel.GetMatchingGroup(c33330002.filter2,tp,LOCATION_DECK,0,nil)
function cm.thop2(e,tp,eg,ep,ev,re,r,rp)
local g1=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.thfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil,cm.search[1])
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.thfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil,cm.search[2])
if g1:GetCount()>0 and g2:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg1=g1:Select(tp,1,1,nil)
......@@ -54,23 +75,3 @@ function c33330002.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,sg1)
end
end
function c33330002.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsAbleToGraveAsCost,1,1,REASON_COST)
end
function c33330002.thfilter(c)
return c:IsType(TYPE_EQUIP) and c:IsSetCard(0x556) and c:IsAbleToHand()
end
function c33330002.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330002.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c33330002.thop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c33330002.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
\ No newline at end of file
--深界探窟者 娜娜奇
function c33330003.initial_effect(c)
--search
local m=33330003
local cm=_G["c"..m]
function cm.initial_effect(c)
--Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330003,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,33330003)
e1:SetTarget(c33330003.thtg1)
e1:SetOperation(c33330003.tgop1)
c:RegisterEffect(e1)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330003,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,33330103)
e2:SetTarget(c33330003.sptg1)
e2:SetOperation(c33330003.spop1)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e3)
--Search
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_TO_GRAVE)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e3:SetCountLimit(1,m+100)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
end
function c33330003.spfilter1(c,e,tp)
return c:IsSetCard(0x557) and c:GetLevel()<=4 and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
--Special Summon
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x557) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33330003.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c33330003.spfilter1,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMZoneCount(tp)>0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function c33330003.spop1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetMZoneCount(tp)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330003.spfilter1),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
function c33330003.thfilter1(c)
--Search
function cm.thfilter(c)
return c:IsSetCard(0x557) and c:IsAbleToHand()
end
function c33330003.thtg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330003.thfilter1,tp,LOCATION_DECK,0,1,nil) end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c33330003.tgop1(e,tp,eg,ep,ev,re,r,rp)
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c33330003.thfilter1,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
end
\ No newline at end of file
--深界探窟者 马璐璐库
function c33330004.initial_effect(c)
--spsummon
local m=33330004
local cm=_G["c"..m]
function cm.initial_effect(c)
--Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330004,0))
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,33330004)
e1:SetCost(c33330004.cost)
e1:SetTarget(c33330004.target)
e1:SetOperation(c33330004.operation)
e1:SetCountLimit(1,m)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--tog
--Return Grave
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330004,1))
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOGRAVE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e2:SetTarget(c33330004.tgtg1)
e2:SetOperation(c33330004.tgop1)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetTarget(cm.tgtg)
e2:SetOperation(cm.tgop)
c:RegisterEffect(e2)
end
function c33330004.tgtg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,0,LOCATION_REMOVED)
--Special Summon
function cm.costfilter(c,tp)
return c:IsFaceup() and c:IsSetCard(0x556) and Duel.GetMZoneCount(tp,c)>0
end
function c33330004.tgop1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT+REASON_RETURN)
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x1556) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33330004.costfilter(c,ft,tp)
return c:IsFaceup() and c:IsSetCard(0x556)
and (ft>0 or (c:IsControler(tp) and c:GetSequence()<5))
end
function c33330004.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if chk==0 then return ft>-1 and Duel.CheckReleaseGroup(tp,c33330004.costfilter,1,nil,ft,tp) end
local g=Duel.SelectReleaseGroup(tp,c33330004.costfilter,1,1,nil,ft,tp)
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,cm.costfilter,1,nil,ft,tp) end
local g=Duel.SelectReleaseGroup(tp,cm.costfilter,1,1,nil,ft,tp)
Duel.Release(g,REASON_COST)
end
function c33330004.filter(c,e,tp)
return c:IsSetCard(0x1556) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33330004.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330004.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_DECK)
end
function c33330004.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetMZoneCount(tp)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c33330004.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
--Return Grave
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,0,LOCATION_REMOVED)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT+REASON_RETURN)
end
end
--深界生骸 米蒂
function c33330005.initial_effect(c)
--search
local m=33330005
local cm=_G["c"..m]
function cm.initial_effect(c)
--Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330005,0))
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,33330003+EFFECT_COUNT_CODE_DUEL)
e1:SetCost(c33330005.spcost)
e1:SetTarget(c33330005.target)
e1:SetOperation(c33330005.operation)
c:RegisterEffect(e1)
Duel.AddCustomActivityCounter(33330005,ACTIVITY_SPSUMMON,c33330005.counterfilter)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_DUEL)
e1:SetCondition(cm.spcon)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--Cost
Duel.AddCustomActivityCounter(m,ACTIVITY_SPSUMMON,cm.counterfilter)
end
function c33330005.counterfilter(c)
--Cost
function cm.counterfilter(c)
return c:IsSetCard(0x556)
end
function c33330005.splimit(e,c,sump,sumtype,sumpos,targetp,se)
function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return not c:IsSetCard(0x556)
end
function c33330005.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCustomActivityCount(33330005,tp,ACTIVITY_SPSUMMON)==0 end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCustomActivityCount(m,tp,ACTIVITY_SPSUMMON)==0 end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetTargetRange(1,0)
e1:SetLabelObject(e)
e1:SetTarget(c33330005.splimit)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function c33330005.filter(c,e,tp)
return c:IsCode(33330005) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
--Special Summon
function cm.spfilter(c,e,tp)
return c:IsCode(m) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end
function c33330005.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c33330005.filter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMZoneCount(tp)>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330005.operation(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetMZoneCount(tp)
if ft<1 then return end
if ft>2 then ft=2 end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330005.filter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,ft,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,ft,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
......
--深界生物 血口之绳
function c33330006.initial_effect(c)
--special summon
local m=33330006
local cm=_G["c"..m]
cm.counter=0x1556 --指 示 物
cm.atk=500 --攻 击 力
function cm.initial_effect(c)
--Hand Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(c33330006.spcon)
e1:SetCondition(cm.hspcon)
c:RegisterEffect(e1)
--special summon
--Counter
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330006,0))
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e2:SetTarget(c33330006.ctg1)
e2:SetOperation(c33330006.cop1)
e2:SetTarget(cm.cttg)
e2:SetOperation(cm.ctop)
c:RegisterEffect(e2)
--
--Xyz Material
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_BE_MATERIAL)
e3:SetCondition(c33330006.atkcon)
e3:SetOperation(c33330006.atkop)
e3:SetCondition(cm.atkcon)
e3:SetOperation(cm.atkop)
c:RegisterEffect(e3)
end
function c33330006.atkcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_XYZ
--Hand Special Summon
function cm.hspfilter(c)
return c:IsFaceup() and c:IsSetCard(0x556)
end
function c33330006.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(500)
e1:SetReset(RESET_EVENT+0x1fe0000)
rc:RegisterEffect(e1)
function cm.hspcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetMZoneCount(tp)>0 and Duel.IsExistingMatchingCard(cm.hspfilter,tp,LOCATION_FZONE,0,1,nil)
end
function c33330006.ctg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
--Counter
function cm.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldCard(tp,LOCATION_SZONE,5)~=nil end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0)
end
function c33330006.cop1(e,tp,eg,ep,ev,re,r,rp)
function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and tc:IsFaceup() and tc:IsCanAddCounter(0x1009,1) then
tc:AddCounter(0x1019,1)
if tc and tc:IsFaceup() and tc:IsCanAddCounter(cm.counter,1) then
tc:AddCounter(cm.counter,1)
end
end
function c33330006.filter(c)
return c:IsFaceup() and c:IsSetCard(0x556)
--Xyz Material
function cm.atkcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_XYZ
end
function c33330006.spcon(e,c)
if c==nil then return true end
return Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0 and
Duel.IsExistingMatchingCard(c33330006.filter,c:GetControler(),LOCATION_FZONE,0,1,nil)
function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=c:GetReasonCard()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(cm.atk)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
rc:RegisterEffect(e1)
end
\ No newline at end of file
--通往深界的升降机
function c33330007.initial_effect(c)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330007,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetTarget(c33330007.destg1)
e2:SetOperation(c33330007.desop1)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e3)
local m=33330007
local cm=_G["c"..m]
function cm.initial_effect(c)
--Destroy & Draw
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
end
function c33330007.destg1(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,0,nil,TYPE_SPELL+TYPE_TRAP)
--Destroy & Draw
function cm.desfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsDestructable()
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(cm.desfilter,tp,LOCATION_ONFIELD,0,nil)
if chk==0 then return g:GetCount()>0 and Duel.IsPlayerCanDraw(tp,g:GetCount()) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,g:GetCount())
end
function c33330007.desop1(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,0,nil,TYPE_SPELL+TYPE_TRAP)
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.desfilter,tp,LOCATION_ONFIELD,0,nil)
local ct=Duel.Destroy(g,REASON_EFFECT)
if ct>0 then
Duel.Draw(tp,ct,REASON_EFFECT)
......
--深界生物 泣尸鸟
function c33330008.initial_effect(c)
--d a
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330008,0))
e4:SetCategory(CATEGORY_DESTROY)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_DAMAGE_STEP_END)
e4:SetCost(c33330008.cost)
e4:SetCondition(c33330008.condition)
e4:SetOperation(c33330008.operation)
c:RegisterEffect(e4)
--rec
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330008,1))
e3:SetCategory(CATEGORY_RECOVER)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_BATTLE_DESTROYING)
e3:SetCondition(aux.bdocon)
e3:SetTarget(c33330008.attg)
e3:SetOperation(c33330008.atop)
c:RegisterEffect(e3)
local m=33330008
local cm=_G["c"..m]
cm.counter=0x1556 --指 示 物
cm.atk=-1000 --攻 击 力
function cm.initial_effect(c)
--Atk Down
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(0,LOCATION_MZONE)
e1:SetTarget(cm.atktg)
e1:SetValue(cm.atkval)
c:RegisterEffect(e1)
--Atk Up
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_ATKCHANGE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_BATTLE_DESTROYING)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(aux.bdocon)
e2:SetOperation(cm.atop)
c:RegisterEffect(e2)
end
function c33330008.attg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCounter(tp,LOCATION_ONFIELD,0,0x1019)>0 end
Duel.SetTargetPlayer(tp)
local ct=Duel.GetCounter(tp,LOCATION_ONFIELD,0,0x1019)
Duel.SetTargetParam(ct*100)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,ct*100)
end
function c33330008.atop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Recover(p,d,REASON_EFFECT)
--Atk Down
function cm.atktg(e,tc)
local c=e:GetHandler()
local ph=Duel.GetCurrentPhase()
return (ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL) and c:IsRelateToBattle() and tc:IsFaceup() and c:GetBattleTarget()==tc
end
function c33330008.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and tc:IsCode(33330019) and tc:IsFaceup() and tc:IsCanAddCounter(0x1009,1) end
tc:AddCounter(0x1019,1)
function cm.atkval(e,c)
return Duel.GetCounter(e:GetHandlerPlayer(),LOCATION_ONFIELD,0,cm.counter)*cm.atk
end
function c33330008.condition(e,tp,eg,ep,ev,re,r,rp)
--Atk Up
function cm.atop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsChainAttackable() and not c:IsStatus(STATUS_BATTLE_DESTROYED)
end
function c33330008.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.ChainAttack()
local tc=c:GetBattleTarget()
if c:IsFaceup() and c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(tc:GetBaseAttack())
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
c:RegisterEffect(e1)
if Duel.GetCurrentPhase()>=PHASE_BATTLE_START and Duel.GetCurrentPhase()<=PHASE_BATTLE then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_EXTRA_ATTACK)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(1)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE)
c:RegisterEffect(e2)
end
end
end
\ No newline at end of file
--深界生物 龙鬃螺鸠
function c33330009.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,nil,6,2)
local m=33330009
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
--negate activate
--Xyz Summon
aux.AddXyzProcedure(c,nil,6,2)
--Negate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330009,0))
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_NEGATE)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetCondition(c33330009.condition)
e1:SetCost(c33330009.cost)
e1:SetTarget(c33330009.target)
e1:SetOperation(c33330009.operation)
e1:SetCountLimit(1)
e1:SetCondition(cm.ngcon)
e1:SetCost(cm.ngcost)
e1:SetTarget(cm.ngtg)
e1:SetOperation(cm.ngop)
c:RegisterEffect(e1)
--destroy replace
--Destroy Replace
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetTarget(c33330009.reptg)
e2:SetTarget(cm.reptg)
c:RegisterEffect(e2)
end
function c33330009.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_EFFECT) end
if Duel.SelectEffectYesNo(tp,e:GetHandler(),96) then
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_EFFECT)
return true
else return false end
--Negate
function cm.ngcon(e,tp,eg,ep,ev,re,r,rp,chk)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and rp~=tp and re:IsActiveType(TYPE_MONSTER)
and Duel.IsChainDisablable(ev) and re:GetHandler():IsAbleToChangeControler()
and not re:GetHandler():IsType(TYPE_TOKEN)
end
function c33330009.condition(e,tp,eg,ep,ev,re,r,rp,chk)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and rp~=tp and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainDisablable(ev) and re:GetHandler():IsAbleToChangeControler() and not re:GetHandler():IsType(TYPE_TOKEN)
function cm.ngcost(e,tp,eg,ep,ev,re,r,rp,chk)
--local og=e:GetHandler():GetOverlayGroup()
-- if chk==0 then return og:GetCount()>0 and og:IsExists(Card.IsSetCard,1,nil,0x556) end
-- Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
-- local g=og:FilterSelect(tp,Card.IsSetCard,1,1,nil,0x556)
-- Duel.SendtoGrave(g,REASON_COST)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c33330009.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local og=e:GetHandler():GetOverlayGroup()
if chk==0 then return og:GetCount()>0 and og:IsExists(Card.IsSetCard,1,nil,0x556) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local g=og:FilterSelect(tp,Card.IsSetCard,1,1,nil,0x556)
Duel.SendtoGrave(g,REASON_COST)
end
function c33330009.target(e,tp,eg,ep,ev,re,r,rp,chk)
function cm.ngtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsType(TYPE_XYZ) end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function c33330009.operation(e,tp,eg,ep,ev,re,r,rp)
function cm.ngop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
local c=e:GetHandler()
if Duel.NegateActivation(ev) and rc:IsRelateToEffect(re) and not rc:IsType(TYPE_TOKEN) and c:IsType(TYPE_XYZ) and c:IsRelateToEffect(e) and c:IsFaceup() then
......@@ -59,4 +57,13 @@ function c33330009.operation(e,tp,eg,ep,ev,re,r,rp)
end
Duel.Overlay(c,Group.FromCards(rc))
end
end
--Destroy Replace
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return not c:IsReason(REASON_REPLACE) and c:IsReason(REASON_EFFECT)
and e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_EFFECT) end
if Duel.SelectEffectYesNo(tp,e:GetHandler(),96) then
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_EFFECT)
return true
else return false end
end
\ No newline at end of file
--深界生物 宿鼠
function c33330010.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2)
local m=33330010
local cm=_G["c"..m]
cm.counter=0x1556 --指 示 物
cm.rec1=1000 --特 召 回 血 量
cm.rec2=500 --指 示 物 回 血
function cm.initial_effect(c)
c:EnableReviveLimit()
--seq
--Link Summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2)
--Destroy & Recover
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330010,1))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(c33330010.target)
e1:SetOperation(c33330010.activate)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_RECOVER)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1)
--d r
--Move
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330010,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_RECOVER)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,33330010)
e2:SetTarget(c33330010.destg)
e2:SetOperation(c33330010.desop)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(cm.mvtg)
e2:SetOperation(cm.mvop)
c:RegisterEffect(e2)
--rec X
--Indes
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_ADD_COUNTER+0x1019)
e3:SetOperation(c33330010.rop2)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e5:SetRange(LOCATION_MZONE)
e5:SetTargetRange(LOCATION_ONFIELD,0)
e5:SetTarget(aux.TRUE)
e5:SetLabelObject(e3)
c:RegisterEffect(e5)
--rec X
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330010,2))
e4:SetCategory(CATEGORY_RECOVER)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_CUSTOM+33330010)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_PLAYER_TARGET)
e4:SetTarget(c33330010.rtg)
e4:SetOperation(c33330010.rop)
c:RegisterEffect(e4)
e3:SetDescription(aux.Stringid(m,2))
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetCost(cm.indcost)
e3:SetOperation(cm.indop)
c:RegisterEffect(e3)
end
function c33330010.rop2(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.RaiseEvent(e:GetHandler(),EVENT_CUSTOM+33330010,e,0,tp,tp,0)
end
function c33330010.rtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(100)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,100)
--Destroy & Recover
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc~=nil end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,cm.rec1)
end
function c33330010.rop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Recover(p,d,REASON_EFFECT)
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then
Duel.Recover(tp,cm.rec1,REASON_EFFECT)
end
end
function c33330010.target(e,tp,eg,ep,ev,re,r,rp,chk)
--Move
function cm.mvtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
end
function c33330010.activate(e,tp,eg,ep,ev,re,r,rp)
function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
......@@ -71,16 +64,32 @@ function c33330010.activate(e,tp,eg,ep,ev,re,r,rp)
local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq)
end
function c33330010.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,500)
--Indes
function cm.indfilter(c,tp)
return c:IsFaceup() and c:IsCanRemoveCounter(tp,cm.counter,1,REASON_COST)
end
function c33330010.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then
Duel.Recover(tp,500,REASON_EFFECT)
function cm.indcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.indfilter,tp,LOCATION_ONFIELD,0,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectMatchingCard(tp,cm.indfilter,tp,LOCATION_ONFIELD,0,1,1,nil,tp)
local tc=g:GetFirst()
tc:RemoveCounter(tp,cm.counter,1,REASON_COST)
Duel.SetTargetCard(tc)
end
function cm.indop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(m,3))
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CLIENT_HINT)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(cm.efilter)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
end
end
function cm.efilter(e,te)
return te:GetHandlerPlayer()~=e:GetHandlerPlayer()
end
\ No newline at end of file
--深界生物 毯毯鼠
function c33330011.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),1,1)
c:EnableReviveLimit()
--d r
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330011,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_RECOVER)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,33330011)
e2:SetTarget(c33330011.destg)
e2:SetOperation(c33330011.desop)
c:RegisterEffect(e2)
--disable attack
local m=33330011
local cm=_G["c"..m]
cm.counter=0x1556 --指 示 物
cm.count=1 --放 置 数 量
function cm.initial_effect(c)
c:EnableReviveLimit()
c:EnableCounterPermit(cm.counter)
--Link Summon
aux.AddLinkProcedure(c,cm.mfilter,1,1)
--Destroy & Counter
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330011,0))
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetCost(c33330011.atkcost)
e1:SetCondition(c33330011.atkcon)
e1:SetOperation(c33330011.atkop)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1)
--Negate Attack
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m)
e2:SetCost(cm.atkcost)
e2:SetCondition(cm.atkcon)
e2:SetOperation(cm.atkop)
c:RegisterEffect(e2)
end
function c33330011.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x1019,1,REASON_COST) end
e:GetHandler():RemoveCounter(tp,0x1019,1,REASON_COST)
end
function c33330011.atkop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateAttack()
end
function c33330011.atkcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
--Link Summon
function cm.mfilter(c)
return not c:IsCode(m) and c:IsLinkSetCard(0x556)
end
function c33330011.destg(e,tp,eg,ep,ev,re,r,rp,chk)
--Destroy & Counter
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and e:GetHandler():IsCanAddCounter(0x1019,1) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0)
if chk==0 then return tc and e:GetHandler():IsCanAddCounter(cm.counter,1) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,e:GetHandler(),1,0,0)
end
function c33330011.desop(e,tp,eg,ep,ev,re,r,rp)
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 and e:GetHandler():IsRelateToEffect(e) and e:GetHandler():IsFaceup() then
e:GetHandler():AddCounter(0x1019,1)
e:GetHandler():AddCounter(cm.counter,1)
end
end
--Negate Attack
function cm.atkcon(e,tp,eg,ep,ev,re,r,rp)
return eg:GetFirst():IsControler(1-tp)
end
function cm.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,cm.counter,1,REASON_COST) end
e:GetHandler():RemoveCounter(tp,cm.counter,1,REASON_COST)
end
function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateAttack()
end
\ No newline at end of file
--生骸公主 ファプタ
function c33330012.initial_effect(c)
local m=33330012
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2)
c:EnableReviveLimit()
--seq
--Destroy & Draw
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330012,1))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(c33330012.target)
e1:SetOperation(c33330012.activate)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1)
--d r
--Move
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330012,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,33330012)
e2:SetTarget(c33330012.destg)
e2:SetOperation(c33330012.desop)
c:RegisterEffect(e2)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(cm.mvtg)
e2:SetOperation(cm.mvop)
c:RegisterEffect(e2)
--Special Summon
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330012,2))
e4:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetCode(EVENT_LEAVE_FIELD)
e4:SetCondition(c33330012.sumcon)
e4:SetTarget(c33330012.sumtg)
e4:SetOperation(c33330012.sumop)
c:RegisterEffect(e4)
end
function c33330012.sumcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function c33330012.filter(c,e,tp)
return c:IsSetCard(0x556) and c:IsRankBelow(4) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,false,true)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,2))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetTarget(cm.sptg)
e3:SetOperation(cm.spop)
c:RegisterEffect(e3)
end
function c33330012.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCountFromEx(tp)>0
and Duel.IsExistingMatchingCard(c33330012.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetTargetCard(e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
--Destroy & Draw
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and Duel.IsPlayerCanDraw(tp,1) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function c33330012.sumop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCountFromEx(tp)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c33330012.filter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc and Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)~=0 and c:IsRelateToEffect(e) then
Duel.Overlay(tc,Group.FromCards(c))
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then
Duel.Draw(tp,1,REASON_EFFECT)
end
end
function c33330012.target(e,tp,eg,ep,ev,re,r,rp,chk)
--Move
function cm.mvtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
end
function c33330012.activate(e,tp,eg,ep,ev,re,r,rp)
function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
......@@ -68,16 +61,20 @@ function c33330012.activate(e,tp,eg,ep,ev,re,r,rp)
local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq)
end
function c33330012.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and Duel.IsPlayerCanDraw(tp,1) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
--Special Summon
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x556) and c:IsRankBelow(4) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33330012.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then
Duel.Draw(tp,1,REASON_EFFECT)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCountFromEx(tp)>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCountFromEx(tp)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 and e:GetHandler():IsRelateToEffect(e) then
Duel.Overlay(g:GetFirst(),e:GetHandler())
end
end
\ No newline at end of file
--破晓之花 プルシュカ
function c33330013.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2)
local m=33330013
local cm=_G["c"..m]
cm.atk=500 --攻 击 上 升
cm.search={33330034} --检 索 的 卡
function cm.initial_effect(c)
c:EnableReviveLimit()
--seq
--Link Summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2)
--Destroy & Search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330013,1))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(c33330013.target)
e1:SetOperation(c33330013.activate)
c:RegisterEffect(e1)
--d r
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1)
--Move
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330013,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_SEARCH+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,33330013)
e2:SetTarget(c33330013.destg)
e2:SetOperation(c33330013.desop)
c:RegisterEffect(e2)
--atk/def
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(cm.mvtg)
e2:SetOperation(cm.mvop)
c:RegisterEffect(e2)
--Atk Up
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(c33330013.atktg)
e3:SetValue(500)
e3:SetTarget(cm.atktg)
e3:SetValue(cm.atk)
c:RegisterEffect(e3)
end
function c33330013.atktg(e,c)
return c:GetMutualLinkedGroupCount()>0 and c:IsSetCard(0x556)
cm.card_code_list=cm.search
--Destroy & Search
function cm.thfilter(c)
return c:IsAbleToHand() and c:IsCode(cm.search[1])
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,tc,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c33330013.target(e,tp,eg,ep,ev,re,r,rp,chk)
--Move
function cm.mvtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
end
function c33330013.activate(e,tp,eg,ep,ev,re,r,rp)
function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
......@@ -47,24 +70,7 @@ function c33330013.activate(e,tp,eg,ep,ev,re,r,rp)
local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq)
end
function c33330013.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and Duel.IsExistingMatchingCard(c33330013.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,tc,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330013.thfilter(c)
return c:IsAbleToHand() and c:IsCode(33330034)
end
function c33330013.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(c33330013.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330013.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
Duel.SendtoHand(tg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tg)
end
end
--Atk Up
function cm.atktg(e,c)
return c:GetMutualLinkedGroupCount()>0 and c:IsSetCard(0x556)
end
\ No newline at end of file
--深界的至宝 雷古
function c33330014.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),1)
local m=33330014
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
--seq
--Link Summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2)
--Destroy & Search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330014,1))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(c33330014.target)
e1:SetOperation(c33330014.activate)
c:RegisterEffect(e1)
--d r
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1)
--Move
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330014,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_SEARCH+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,33330014)
e2:SetTarget(c33330014.destg)
e2:SetOperation(c33330014.desop)
c:RegisterEffect(e2)
--special summon
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(cm.mvtg)
e2:SetOperation(cm.mvop)
c:RegisterEffect(e2)
--Special Summon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330014,2))
e3:SetDescription(aux.Stringid(m,2))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetTarget(c33330014.sptg)
e3:SetOperation(c33330014.spop)
e3:SetTarget(cm.sptg)
e3:SetOperation(cm.spop)
c:RegisterEffect(e3)
end
function c33330014.filter(c,e,tp,zone)
--Destroy & Search
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc or Duel.IsExistingMatchingCard(Card.IsType,tp,0,LOCATION_ONFIELD,1,nil,TYPE_SPELL+TYPE_TRAP) end
local g=Duel.GetMatchingGroup(Card.IsType,tp,0,LOCATION_ONFIELD,nil,TYPE_SPELL+TYPE_TRAP)
if tc then g:AddCard(tc) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,LOCATION_ONFIELD)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local g=Duel.GetMatchingGroup(Card.IsType,tp,0,LOCATION_ONFIELD,nil,TYPE_SPELL+TYPE_TRAP)
if tc then g:AddCard(tc) end
Duel.Destroy(g,REASON_EFFECT)
end
--Move
function cm.mvtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
end
function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,0)
local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq)
end
--Special Summon
function cm.spfilter(c,e,tp,zone)
return c:IsSetCard(0x556) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone)
end
function c33330014.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local zone=e:GetHandler():GetLinkedZone(tp)
return zone~=0 and Duel.IsExistingMatchingCard(c33330014.filter,tp,LOCATION_HAND,0,1,nil,e,tp,zone)
return zone~=0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp,zone)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function c33330014.spop(e,tp,eg,ep,ev,re,r,rp)
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local zone=e:GetHandler():GetLinkedZone(tp)
if zone==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c33330014.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp,zone)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp,zone)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP,zone)
end
end
function c33330014.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
end
function c33330014.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,0)
local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq)
end
function c33330014.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and Duel.IsExistingMatchingCard(Card.IsType,tp,0,LOCATION_ONFIELD,1,nil,TYPE_SPELL+TYPE_TRAP) end
local g=Duel.GetMatchingGroup(Card.IsType,tp,0,LOCATION_ONFIELD,nil,TYPE_SPELL+TYPE_TRAP)
g:AddCard(tc)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,LOCATION_ONFIELD)
end
function c33330014.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
local g=Duel.GetMatchingGroup(Card.IsType,tp,0,LOCATION_ONFIELD,nil,TYPE_SPELL+TYPE_TRAP)
if tc then g:AddCard(tc) end
Duel.Destroy(g,REASON_EFFECT)
end
\ No newline at end of file
--深界的黑暗面 雷古
function c33330015.initial_effect(c)
local m=33330015
local cm=_G["c"..m]
cm.atk=1500 --攻 击 上 升
function cm.initial_effect(c)
c:EnableReviveLimit()
--spsummon condition
--Special Summon Limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(aux.ritlimit)
c:RegisterEffect(e1)
--r d
--Destroy & Remove
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330015,0))
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_REMOVE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetTarget(c33330015.destg)
e2:SetOperation(c33330015.desop)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetTarget(cm.destg)
e2:SetOperation(cm.desop)
c:RegisterEffect(e2)
--reflect battle dam
--Reflect
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_REFLECT_BATTLE_DAMAGE)
e3:SetValue(1)
c:RegisterEffect(e3)
--atk up
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_ATKCHANGE)
e6:SetType(EFFECT_TYPE_QUICK_O)
e6:SetRange(LOCATION_MZONE)
e6:SetCode(EVENT_PRE_DAMAGE_CALCULATE)
e6:SetCondition(c33330015.atkcon)
e6:SetTarget(c33330015.atktg)
e6:SetOperation(c33330015.atkop)
c:RegisterEffect(e6)
--Atk Up
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,1))
e4:SetCategory(CATEGORY_ATKCHANGE)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_PRE_DAMAGE_CALCULATE)
e4:SetRange(LOCATION_MZONE)
e4:SetCondition(cm.atkcon)
e4:SetTarget(cm.atktg)
e4:SetOperation(cm.atkop)
c:RegisterEffect(e4)
end
function c33330015.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c==Duel.GetAttacker() or c==Duel.GetAttackTarget()
end
function c33330015.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
local ct=Duel.GetMatchingGroupCount(Card.IsType,tp,LOCATION_GRAVE,0,nil,TYPE_FIELD)
return ct>0 and c:GetFlagEffect(33330015)==0
end
c:RegisterFlagEffect(33330015,RESET_CHAIN,0,1)
end
function c33330015.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=Duel.GetMatchingGroupCount(Card.IsType,tp,LOCATION_GRAVE,0,nil,TYPE_FIELD)
if c:IsRelateToEffect(e) and c:IsFaceup() and ct>0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESET_CHAIN)
e1:SetValue(ct*1500)
c:RegisterEffect(e1)
end
end
function c33330015.destg(e,tp,eg,ep,ev,re,r,rp,chk)
--Destroy & Remove
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_MZONE,1,nil) end
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,g:GetCount(),1-tp,LOCATION_MZONE)
end
function c33330015.desop(e,tp,eg,ep,ev,re,r,rp)
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_MZONE,nil)
if g:GetCount()<=0 then return end
if Duel.Remove(g,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then
local fid=c:GetFieldID()
local rct=1
local og=Duel.GetOperatedGroup()
local oc=og:GetFirst()
while oc do
oc:RegisterFlagEffect(33330015,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1,fid)
oc=og:GetNext()
end
og:KeepAlive()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(og)
e1:SetCondition(c33330015.retcon)
e1:SetOperation(c33330015.retop)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetValue(Duel.GetTurnCount())
Duel.RegisterEffect(e1,tp)
end
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_MZONE,nil)
if g:GetCount()<1 then return end
if Duel.Remove(g,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then
local fid=c:GetFieldID()
local rct=1
local og=Duel.GetOperatedGroup()
local oc=og:GetFirst()
while oc do
oc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
oc=og:GetNext()
end
og:KeepAlive()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(og)
e1:SetCondition(cm.retcon)
e1:SetOperation(cm.retop)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetValue(Duel.GetTurnCount())
Duel.RegisterEffect(e1,tp)
end
end
end
function c33330015.retfilter(c,fid)
return c:GetFlagEffectLabel(33330015)==fid
function cm.retfilter(c,fid)
return c:GetFlagEffectLabel(m)==fid
end
function c33330015.retcon(e,tp,eg,ep,ev,re,r,rp)
function cm.retcon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnCount()==e:GetValue() then return false end
local g=e:GetLabelObject()
if not g:IsExists(c33330015.retfilter,1,nil,e:GetLabel()) then
if not g:IsExists(cm.retfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c33330015.retop(e,tp,eg,ep,ev,re,r,rp)
function cm.retop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local sg=g:Filter(c33330015.retfilter,nil,e:GetLabel())
local sg=g:Filter(cm.retfilter,nil,e:GetLabel())
g:DeleteGroup()
local ct,tg=Duel.GetLocationCount(tp,LOCATION_MZONE),Group.CreateGroup()
local ct,rg=Duel.GetLocationCount(tp,LOCATION_MZONE)
if sg:GetCount()>ct and ct>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
tg=sg:Select(tp,ct1,ct1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
rg=sg:Select(tp,ct,ct,nil)
else
rg=sg
end
sg:Sub(tg)
local tc=tg:GetFirst()
local tc=rg:GetFirst()
while tc do
Duel.ReturnToField(tc)
tc=tg:GetNext()
tc=rg:GetNext()
end
sg:Sub(rg)
tc=sg:GetFirst()
while tc do
Duel.ReturnToField(tc)
tc=sg:GetNext()
tc=sg:GetNext()
end
end
--Atk Up
function cm.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c==Duel.GetAttacker() or c==Duel.GetAttackTarget()
end
function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
local ct=Duel.GetMatchingGroupCount(Card.IsType,tp,LOCATION_GRAVE,0,nil,TYPE_FIELD)
return ct>0 and c:GetFlagEffect(m)==0
end
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
end
function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=Duel.GetMatchingGroupCount(Card.IsType,tp,LOCATION_GRAVE,0,nil,TYPE_FIELD)
if c:IsRelateToEffect(e) and c:IsFaceup() and ct>0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(ct*cm.atk)
e1:SetReset(RESET_EVENT+RESET_CHAIN)
c:RegisterEffect(e1)
end
end
--白笛 歼灭之莱莎
function c33330016.initial_effect(c)
--link summon
local m=33330016
local cm=_G["c"..m]
cm.atk=500 --攻 击 上 升
function cm.initial_effect(c)
c:EnableReviveLimit()
--Link Summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2)
c:EnableReviveLimit()
--seq
--Destroy & Search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330016,1))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(c33330016.target)
e1:SetOperation(c33330016.activate)
c:RegisterEffect(e1)
--d r
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1)
--Move
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330016,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_SEARCH+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCountLimit(1,33330016)
e2:SetTarget(c33330016.destg)
e2:SetOperation(c33330016.desop)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(cm.mvtg)
e2:SetOperation(cm.mvop)
c:RegisterEffect(e2)
--atk
--Atk Up
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(c33330016.indtg)
e3:SetValue(500)
e3:SetTarget(cm.bufftg)
e3:SetValue(cm.atk)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
--Indes
local e4=e3:Clone()
e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e4:SetTarget(c33330016.indtg)
e4:SetValue(1)
c:RegisterEffect(e4)
end
function c33330016.indtg(e,c)
return e:GetHandler():GetLinkedGroup():IsContains(c)
--Destroy & Search
function cm.thfilter(c)
return c:IsAbleToHand() and c:IsCode(cm.search[1])
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,1-tp,LOCATION_ONFIELD)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,nil)
Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT)
end
end
function c33330016.target(e,tp,eg,ep,ev,re,r,rp,chk)
--Move
function cm.mvtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
end
function c33330016.activate(e,tp,eg,ep,ev,re,r,rp)
function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
......@@ -56,20 +74,7 @@ function c33330016.activate(e,tp,eg,ep,ev,re,r,rp)
local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq)
end
function c33330016.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,2,0,LOCATION_ONFIELD)
end
function c33330016.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local tg=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,nil)
Duel.HintSelection(tg)
Duel.Destroy(tg,REASON_EFFECT)
end
end
--Atk Up
function cm.bufftg(e,c)
return e:GetHandler():GetLinkedGroup():IsContains(c)
end
\ No newline at end of file
--白笛 不动如山之奥森
function c33330017.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x556),4,3)
local m=33330017
local cm=_G["c"..m]
cm.mat={33330004} --素 材 要 求
cm.counter=0x1556 --指 示 物
function cm.initial_effect(c)
c:EnableReviveLimit()
--
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e4:SetValue(c33330017.indesval)
e4:SetCondition(c33330017.con)
c:RegisterEffect(e4)
--Xyz Summon
aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x556),4,2)
--Remove
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EXTRA_ATTACK)
e1:SetCondition(c33330017.con)
e1:SetValue(c33330017.atkval)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_DAMAGE_STEP_END)
e1:SetCondition(cm.rmcon)
e1:SetOperation(cm.rmop)
c:RegisterEffect(e1)
--to grave
--Destroy Replace
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(13893596,0))
e2:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetTarget(c33330017.ctg)
e2:SetOperation(c33330017.cop)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(2)
e2:SetTarget(cm.reptg)
e2:SetOperation(cm.repop)
e2:SetValue(cm.repval)
c:RegisterEffect(e2)
--des
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_DAMAGE_STEP_END)
e5:SetOperation(c33330017.desop)
c:RegisterEffect(e5)
end
function c33330017.desop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():GetCounter(0x1009)>=3 then
Duel.Hint(HINT_CARD,0,33330017)
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
cm.card_code_list=cm.mat
--Remove
function cm.rmcon(e)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,cm.mat[1]) and aux.bdocon(e)
end
function c33330017.ctg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x1019,1) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0)
function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetAttacker()
if tc==e:GetHandler() then tc=Duel.GetAttackTarget() end
if tc then Duel.Remove(tc,POS_FACEUP,REASON_RULE) end
end
function c33330017.cop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c and c:IsFaceup() and c:IsRelateToEffect(e) and c:IsCanAddCounter(0x1009,1) then
c:AddCounter(0x1019,1)
local g=Duel.GetMatchingGroup(c33330017.adfilter,tp,0,LOCATION_MZONE,nil)
if g:GetCount()>0 then
for tc in aux.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000)
e1:SetValue(-300)
tc:RegisterEffect(e1)
end
end
end
--Destroy Replace
function cm.repfilter(c,tp)
return c:IsFaceup() and c:IsSetCard(0x556) and c:IsControler(tp)
and c:IsReason(REASON_EFFECT+REASON_BATTLE) and not c:IsReason(REASON_REPLACE)
end
function c33330017.adfilter(c)
return c:IsFaceup() and c:IsSummonType(SUMMON_TYPE_SPECIAL)
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return eg:IsExists(cm.repfilter,1,nil,tp) and Duel.IsCanRemoveCounter(tp,1,0,cm.counter,1,REASON_COST) end
return Duel.SelectEffectYesNo(tp,e:GetHandler(),96)
end
function c33330017.atkval(e)
return e:GetHandler():GetOverlayCount()-1
function cm.repop(e,tp,eg,ep,ev,re,r,rp)
Duel.RemoveCounter(tp,1,0,cm.counter,1,REASON_COST)
end
function c33330017.indesval(e,re,rp)
return re:GetHandler()~=e:GetHandler()
end
function c33330017.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,33330004)
function cm.repval(e,c)
return cm.repfilter(c,e:GetHandlerPlayer())
end
\ No newline at end of file
--白笛 崭新之波多尔多
function c33330018.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,nil,8,2)
local m=33330018
local cm=_G["c"..m]
cm.token={33330035} --衍 生 物
cm.counter=0x1556 --指 示 物
function cm.initial_effect(c)
c:EnableReviveLimit()
--direct
--Xyz Summon
aux.AddXyzProcedure(c,nil,8,2)
--Activate Limit
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(0,1)
e1:SetCondition(cm.actcon)
e1:SetValue(cm.aclimit)
c:RegisterEffect(e1)
--Token
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330018,0))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(c33330018.condition)
e2:SetCost(c33330018.cost)
e2:SetOperation(c33330018.operation)
c:RegisterEffect(e2)
--actlimit
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_DAMAGE_STEP_END)
e2:SetCondition(aux.bdcon)
e2:SetCost(cm.tkcost)
e2:SetTarget(cm.tktg)
e2:SetOperation(cm.tkop)
c:RegisterEffect(e2)
--Direct Attack
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetDescription(aux.Stringid(m,0))
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(0,1)
e3:SetValue(c33330018.aclimit)
e3:SetCondition(c33330018.actcon)
c:RegisterEffect(e3)
--token
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(33330018,1))
e5:SetCategory(CATEGORY_TOKEN+CATEGORY_SPECIAL_SUMMON)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetCode(EVENT_DAMAGE_STEP_END)
e5:SetCost(c33330018.rcost)
e5:SetCondition(c33330018.actcon)
e5:SetTarget(c33330018.tktg)
e5:SetOperation(c33330018.tkop)
c:RegisterEffect(e5)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330018,2))
e1:SetCategory(CATEGORY_RECOVER)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_PLAYER_TARGET)
e1:SetCost(c33330018.recost)
e1:SetTarget(c33330018.retg)
e1:SetOperation(c33330018.reop)
c:RegisterEffect(e1)
e3:SetCondition(cm.drcon)
e3:SetCost(cm.drcost)
e3:SetOperation(cm.drop)
c:RegisterEffect(e3)
end
--Activate Limit
function cm.actcon(e)
return Duel.GetAttacker()==e:GetHandler()
end
function cm.aclimit(e,re,tp)
return not re:GetHandler():IsImmuneToEffect(e)
end
--Token
function cm.tkfilter(c,tp)
return Duel.GetMZoneCount(tp,c)>0
end
function cm.tkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,cm.tkfilter,1,nil,tp) end
local g=Duel.SelectReleaseGroup(tp,cm.tkfilter,1,1,nil,tp)
Duel.Release(g,REASON_COST)
end
function cm.tktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsPlayerCanSpecialSummonMonster(tp,cm.token[1],0,0x4011,2000,2000,8,RACE_ZOMBIE,ATTRIBUTE_DARK) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetMZoneCount(tp)<1 then return end
if Duel.IsPlayerCanSpecialSummonMonster(tp,cm.token[1],0,0x4011,2000,2000,8,RACE_ZOMBIE,ATTRIBUTE_DARK) then
local token=Duel.CreateToken(tp,cm.token[1])
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(m,2))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCost(cm.descost)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
token:RegisterEffect(e1)
end
end
function c33330018.recost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0x1019,1,REASON_COST) end
local ct=Duel.GetCounter(tp,1,0,0x1019)
Duel.RemoveCounter(tp,1,0,0x1019,ct,REASON_COST)
e:SetLabel(ct)
function cm.descost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,cm.counter,1,REASON_COST) end
Duel.RemoveCounter(tp,1,0,cm.counter,1,REASON_COST)
end
function c33330018.retg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=e:GetLabel()
if chk==0 then return true end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(ct*300)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,ct*300)
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDestructable() end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
end
function c33330018.reop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Recover(p,d,REASON_EFFECT)
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
end
function c33330018.condition(e,tp,eg,ep,ev,re,r,rp)
--Direct Attack
function cm.drcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsAbleToEnterBP() and not e:GetHandler():IsHasEffect(EFFECT_DIRECT_ATTACK)
end
function c33330018.cost(e,tp,eg,ep,ev,re,r,rp,chk)
function cm.drcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c33330018.operation(e,tp,eg,ep,ev,re,r,rp)
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DIRECT_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e1:SetValue(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
end
function c33330018.costfilter(c,ft,tp)
return (ft>0 or (c:IsControler(tp) and c:GetSequence()<5))
end
function c33330018.rcost(e,tp,eg,ep,ev,re,r,rp,chk)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if chk==0 then return ft>-1 and Duel.CheckReleaseGroup(tp,c33330018.costfilter,1,nil,ft,tp) end
local g=Duel.SelectReleaseGroup(tp,c33330018.costfilter,1,1,nil,ft,tp)
Duel.Release(g,REASON_COST)
end
function c33330018.tktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,33330035,0,0x4011,2000,2000,8,RACE_ZOMBIE,ATTRIBUTE_DARK) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function c33330018.tkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
if Duel.IsPlayerCanSpecialSummonMonster(tp,33330035,0,0x4011,2000,2000,8,RACE_ZOMBIE,ATTRIBUTE_DARK) then
local token=Duel.CreateToken(tp,33330035)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
end
end
function c33330018.aclimit(e,re,tp)
return not re:GetHandler():IsImmuneToEffect(e)
end
function c33330018.actcon(e)
return Duel.GetAttacker()==e:GetHandler()
end
end
\ No newline at end of file
--深界一层-阿比斯之渊
function c33330019.initial_effect(c)
local m=33330019
local cm=_G["c"..m]
cm.search={33330002,33330038,33330020} --检 索 对 象
cm.counter=0x1556 --指 示 物
cm.damage=100 --伤 害 倍 数
function cm.initial_effect(c)
c:EnableCounterPermit(cm.counter)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--indestructable
local e21=Effect.CreateEffect(c)
e21:SetType(EFFECT_TYPE_FIELD)
e21:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e21:SetRange(LOCATION_SZONE)
e21:SetTargetRange(LOCATION_MZONE,0)
e21:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556))
e21:SetValue(1)
c:RegisterEffect(e21)
--Pos Change
--Search
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SET_POSITION)
e2:SetRange(LOCATION_SZONE)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE)
e2:SetValue(POS_FACEUP_ATTACK)
c:RegisterEffect(e2)
--damage reduce
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CHANGE_DAMAGE)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetRange(LOCATION_SZONE)
e4:SetTargetRange(1,0)
e4:SetValue(c33330019.damval)
c:RegisterEffect(e4)
--search
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
e5:SetDescription(aux.Stringid(33330019,0))
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetRange(LOCATION_SZONE)
e5:SetCountLimit(1)
e5:SetCost(c33330019.cost)
e5:SetTarget(c33330019.tg)
e5:SetOperation(c33330019.op)
c:RegisterEffect(e5)
--xxxx
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_HANDES+CATEGORY_COUNTER+CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE)
e2:SetCountLimit(1)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
--Change Field
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330019,1))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_DESTROY)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330019.con2)
e3:SetTarget(c33330019.tg2)
e3:SetOperation(c33330019.op2)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(cm.ctop)
c:RegisterEffect(e3)
--count
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetCode(EVENT_LEAVE_FIELD_P)
e7:SetOperation(c33330019.contop)
c:RegisterEffect(e7)
e3:SetLabelObject(e7)
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,1))
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_LEAVE_FIELD)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e4:SetLabelObject(e3)
e4:SetCondition(cm.fdcon)
e4:SetTarget(cm.fdtg)
e4:SetOperation(cm.fdop)
c:RegisterEffect(e4)
end
function c33330019.contop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(0x1019))
cm.card_code_list=cm.search
--Activate
function cm.filter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end
function c33330019.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_EFFECT)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c33330019.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,ct*1000)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330019.op2(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabelObject():GetLabel()
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330019.filter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
Duel.Damage(tp,ct*1000,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c33330019.filter(c)
return c:IsCode(33330019) and c:IsAbleToHand()
--Search
function cm.thfilter(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end
function c33330019.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x1019,3,REASON_COST) end
e:GetHandler():RemoveCounter(tp,0x1019,3,REASON_COST)
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil)
and e:GetHandler():IsCanAddCounter(cm.counter,1)
and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c33330019.filter2(c)
return c:IsCode(33330020) and c:IsAbleToHand()
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
if Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_EFFECT+REASON_DISCARD)~=0
and e:GetHandler():AddCounter(cm.counter,1) then
local tc=Duel.GetFirstMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,nil)
if tc then
Duel.BreakEffect()
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end
end
end
function c33330019.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(c33330019.filter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,500)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
--Change Field
function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end
function c33330019.op(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) or Duel.Damage(tp,500,REASON_EFFECT)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330019.filter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
function cm.fdfilter1(c)
return c:IsCode(cm.search[2]) and c:IsAbleToHand()
end
function cm.fdfilter2(c,tp)
return c:IsCode(cm.search[3]) and c:GetActivateEffect():IsActivatable(tp)
end
function cm.fdcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.fdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
local sel=0
if Duel.IsExistingMatchingCard(cm.fdfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,tp) then
sel=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))+1
else
Duel.SelectOption(tp,aux.Stringid(m,2))
sel=1
e:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,1,tp,ct*cm.damage)
end
e:SetLabel(sel)
end
function c33330019.damval(e,re,val,r,rp,rc)
if bit.band(r,REASON_BATTLE)~=0 then
e:GetHandler():AddCounter(0x1019,1)
return 0
function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local sel=e:GetLabel()
local ct=e:GetLabelObject():GetLabel()
e:GetLabelObject():SetLabel(0)
if sel==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
Duel.Damage(tp,ct*cm.damage,REASON_EFFECT)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp)
local tc=g:GetFirst()
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local te=tc:GetActivateEffect()
local tep=tc:GetControler()
local cost=te:GetCost()
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
tc:AddCounter(cm.counter,ct)
end
return val
end
\ No newline at end of file
--深界二层-诱惑之森
function c33330020.initial_effect(c)
local m=33330020
local cm=_G["c"..m]
cm.search={33330004,33330038,33330021} --检 索 对 象
cm.counter=0x1556 --指 示 物
cm.damage=200 --伤 害 倍 数
function cm.initial_effect(c)
c:EnableCounterPermit(cm.counter)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(33330020,0))
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330020,1))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330020.tcost)
e1:SetTarget(c33330020.ttg)
e1:SetOperation(c33330020.top)
c:RegisterEffect(e1)
--search
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_COUNTER)
e5:SetDescription(aux.Stringid(33330020,3))
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetRange(LOCATION_FZONE)
e5:SetCountLimit(1)
e5:SetTarget(c33330020.tg)
e5:SetOperation(c33330020.op)
c:RegisterEffect(e5)
--xxxx
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330020,4))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330020.con2)
e3:SetTarget(c33330020.tg2)
e3:SetOperation(c33330020.op2)
c:RegisterEffect(e3)
--count
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetCode(EVENT_LEAVE_FIELD_P)
e7:SetOperation(c33330020.contop)
c:RegisterEffect(e7)
e3:SetLabelObject(e7)
--atk change
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--Search
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330020,2))
e2:SetCategory(CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_COUNTER+CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE)
e2:SetCondition(c33330020.atkcon)
e2:SetTarget(c33330020.atktg2)
e2:SetOperation(c33330020.atkop)
e2:SetCountLimit(1)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
--Change Field
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(cm.ctop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,1))
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_LEAVE_FIELD)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e4:SetLabelObject(e3)
e4:SetCondition(cm.fdcon)
e4:SetTarget(cm.fdtg)
e4:SetOperation(cm.fdop)
c:RegisterEffect(e4)
end
function c33330020.atkcon(e,tp,eg,ep,ev,re,r,rp)
return tp==Duel.GetTurnPlayer() and Duel.GetAttacker():IsSetCard(0x556)
end
function c33330020.atktg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x1019,1,REASON_EFFECT) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,0,tp,1)
end
function c33330020.atkop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) or e:GetHandler():IsFacedown() or not e:GetHandler():IsCanRemoveCounter(tp,0x1019,1,REASON_EFFECT) then return end
e:GetHandler():RemoveCounter(tp,0x1019,1,REASON_EFFECT)
end
function c33330020.contop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(0x1019))
end
function c33330020.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_EFFECT) and c:IsPreviousPosition(POS_FACEUP)
cm.card_code_list=cm.search
--Search
function cm.thfilter(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end
function c33330020.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,ct*500)
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(cm.counter,1)
and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330020.op2(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabelObject():GetLabel()
if Duel.Damage(tp,ct*500,REASON_EFFECT)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330020.filter3),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
if e:GetHandler():AddCounter(cm.counter,1) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
end
end
function c33330020.filter3(c)
return c:IsCode(33330021) and c:IsAbleToHand()
end
function c33330020.filter2(c)
return c:IsCode(33330004) and c:IsAbleToHand()
--Change Field
function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end
function c33330020.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x1019,1) and Duel.IsExistingMatchingCard(c33330020.filter2,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,tp,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
end
function c33330020.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
c:AddCounter(0x1019,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330020.filter2),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
function cm.fdfilter1(c)
return c:IsCode(cm.search[2]) and c:IsAbleToHand()
end
function c33330020.tcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
function cm.fdfilter2(c,tp)
return c:IsCode(cm.search[3]) and c:GetActivateEffect():IsActivatable(tp)
end
function c33330020.filter(c)
return c:IsCode(33330019) and c:IsAbleToHand()
function cm.fdcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function c33330020.ttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330020.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
function cm.fdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
local sel=0
if Duel.IsExistingMatchingCard(cm.fdfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,tp) then
sel=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))+1
else
Duel.SelectOption(tp,aux.Stringid(m,2))
sel=1
e:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,1,tp,ct*cm.damage)
end
e:SetLabel(sel)
end
function c33330020.top(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330020.filter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local sel=e:GetLabel()
local ct=e:GetLabelObject():GetLabel()
e:GetLabelObject():SetLabel(0)
if sel==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
Duel.Damage(tp,ct*cm.damage,REASON_EFFECT)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp)
local tc=g:GetFirst()
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local te=tc:GetActivateEffect()
local tep=tc:GetControler()
local cost=te:GetCost()
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
tc:AddCounter(cm.counter,ct)
end
end
\ No newline at end of file
--深界三层-大断层
function c33330021.initial_effect(c)
local m=33330021
local cm=_G["c"..m]
cm.search={33330006,33330038,33330022} --检 索 对 象
cm.counter=0x1556 --指 示 物
cm.damage=300 --伤 害 倍 数
function cm.initial_effect(c)
c:EnableCounterPermit(cm.counter)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(33330021,0))
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330021,1))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330021.tcost)
e1:SetTarget(c33330021.ttg)
e1:SetOperation(c33330021.top)
c:RegisterEffect(e1)
--cannot be target
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--Search
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_COUNTER+CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556))
e2:SetValue(c33330021.indesval)
c:RegisterEffect(e2)
--s c
e2:SetCountLimit(1)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
--Change Field
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(cm.ctop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330021,2))
e4:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND+CATEGORY_COUNTER)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_FZONE)
e4:SetDescription(aux.Stringid(m,1))
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_LEAVE_FIELD)
e4:SetCountLimit(1,33330021)
e4:SetTarget(c33330021.stg)
e4:SetOperation(c33330021.sop)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e4:SetLabelObject(e3)
e4:SetCondition(cm.fdcon)
e4:SetTarget(cm.fdtg)
e4:SetOperation(cm.fdop)
c:RegisterEffect(e4)
--xxxx
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330021,3))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330021.con2)
e3:SetTarget(c33330021.tg2)
e3:SetOperation(c33330021.op2)
c:RegisterEffect(e3)
--count
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetCode(EVENT_LEAVE_FIELD_P)
e7:SetOperation(c33330021.contop)
c:RegisterEffect(e7)
e3:SetLabelObject(e7)
end
function c33330021.contop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(0x1019))
cm.card_code_list=cm.search
--Search
function cm.thfilter(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end
function c33330021.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousPosition(POS_FACEUP)
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(cm.counter,1)
and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c33330021.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,ct*500)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330021.op2(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabelObject():GetLabel()
if Duel.Damage(tp,ct*500,REASON_EFFECT)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330021.filter3),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
if e:GetHandler():AddCounter(cm.counter,1) then
local tc=Duel.GetFirstMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,nil)
if tc and Duel.SendtoHand(tc,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,tc)
end
end
end
function c33330021.filter3(c)
return c:IsCode(33330022) and c:IsAbleToHand()
--Change Field
function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end
function c33330021.sfilter(c)
return c:IsAbleToHand() and c:IsCode(33330006)
function cm.fdfilter1(c)
return c:IsCode(cm.search[2]) and c:IsAbleToHand()
end
function c33330021.stg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x1019,1) and Duel.IsExistingMatchingCard(c33330021.sfilter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,tp,0)
function cm.fdfilter2(c,tp)
return c:IsCode(cm.search[3]) and c:GetActivateEffect():IsActivatable(tp)
end
function c33330021.sop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
c:AddCounter(0x1019,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330021.sfilter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
function cm.fdcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function c33330021.indesval(e,re,rp)
return re:IsActiveType(TYPE_MONSTER)
end
function c33330021.tcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end
function c33330021.filter(c)
return c:IsCode(33330019) and c:IsAbleToHand()
end
function c33330021.ttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330021.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
end
function c33330021.top(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330021.filter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
function cm.fdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
local sel=0
if Duel.IsExistingMatchingCard(cm.fdfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,tp) then
sel=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))+1
else
Duel.SelectOption(tp,aux.Stringid(m,2))
sel=1
e:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,1,tp,ct*cm.damage)
end
e:SetLabel(sel)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local sel=e:GetLabel()
local ct=e:GetLabelObject():GetLabel()
e:GetLabelObject():SetLabel(0)
if sel==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
Duel.Damage(tp,ct*cm.damage,REASON_EFFECT)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp)
local tc=g:GetFirst()
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local te=tc:GetActivateEffect()
local tep=tc:GetControler()
local cost=te:GetCost()
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
tc:AddCounter(cm.counter,ct)
end
end
\ No newline at end of file
--深界三层-大断层
function c33330022.initial_effect(c)
local m=33330022
local cm=_G["c"..m]
cm.search={33330038,33330023} --检 索 对 象
cm.counter=0x1556 --指 示 物
cm.damage=500 --伤 害 倍 数
function cm.initial_effect(c)
c:EnableCounterPermit(cm.counter)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(33330022,0))
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330022,1))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330022.tcost)
e1:SetTarget(c33330022.ttg)
e1:SetOperation(c33330022.top)
c:RegisterEffect(e1)
--cannot be target
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--Special Summon
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556))
e2:SetValue(c33330022.indesval)
c:RegisterEffect(e2)
--s c
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330022,2))
e4:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_COUNTER)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_FZONE)
e4:SetCountLimit(2)
e4:SetTarget(c33330022.stg)
e4:SetOperation(c33330022.sop)
c:RegisterEffect(e4)
--xxxx
e2:SetCountLimit(2)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
--Change Field
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330022,3))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330022.con2)
e3:SetTarget(c33330022.tg2)
e3:SetOperation(c33330022.op2)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(cm.ctop)
c:RegisterEffect(e3)
--count
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetCode(EVENT_LEAVE_FIELD_P)
e7:SetOperation(c33330022.contop)
c:RegisterEffect(e7)
e3:SetLabelObject(e7)
end
function c33330022.contop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(0x1019))
end
function c33330022.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousPosition(POS_FACEUP)
end
function c33330022.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,ct*500)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330022.op2(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabelObject():GetLabel()
if Duel.Damage(tp,ct*500,REASON_EFFECT)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330022.filter3),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c33330022.filter3(c)
return c:IsCode(33330023) and c:IsAbleToHand()
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,1))
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_LEAVE_FIELD)
e4:SetCountLimit(1,m)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e4:SetLabelObject(e3)
e4:SetCondition(cm.fdcon)
e4:SetTarget(cm.fdtg)
e4:SetOperation(cm.fdop)
c:RegisterEffect(e4)
end
function c33330022.sfilter(c,e,tp)
return c:IsSetCard(0x556) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
cm.card_code_list=cm.search
--Special Summon
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x556) and c:IsType(TYPE_MONSTER)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33330022.stg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x1019,1) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c33330022.sfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMZoneCount(tp)>0 and e:GetHandler():IsCanAddCounter(cm.counter,1)
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,tp,0)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,e:GetHandler(),1,0,0)
end
function c33330022.sop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
c:AddCounter(0x1019,1)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetMZoneCount(tp)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c33330022.sfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then
g:GetFirst():AddCounter(0x1019,1)
e:GetHandler():AddCounter(cm.counter,1)
g:GetFirst():AddCounter(cm.counter,1)
end
end
function c33330022.indesval(e,re,rp)
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP)
--Change Field
function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end
function c33330022.tcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
function cm.fdfilter1(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end
function c33330022.filter(c)
return c:IsCode(33330019) and c:IsAbleToHand()
function cm.fdfilter2(c,tp)
return c:IsCode(cm.search[2]) and c:GetActivateEffect():IsActivatable(tp)
end
function c33330022.ttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330022.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
function cm.fdcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function c33330022.top(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330022.filter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
function cm.fdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
local sel=0
if Duel.IsExistingMatchingCard(cm.fdfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,tp) then
sel=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))+1
else
Duel.SelectOption(tp,aux.Stringid(m,2))
sel=1
e:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,1,tp,ct*cm.damage)
end
e:SetLabel(sel)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local sel=e:GetLabel()
local ct=e:GetLabelObject():GetLabel()
e:GetLabelObject():SetLabel(0)
if sel==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
Duel.Damage(tp,ct*cm.damage,REASON_EFFECT)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp)
local tc=g:GetFirst()
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local te=tc:GetActivateEffect()
local tep=tc:GetControler()
local cost=te:GetCost()
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
tc:AddCounter(cm.counter,ct)
end
end
\ No newline at end of file
--深界三层-大断层
function c33330023.initial_effect(c)
local m=33330023
local cm=_G["c"..m]
cm.search={33330038,33330000} --检 索 对 象
cm.counter=0x1556 --指 示 物
cm.damage=1250 --伤 害 倍 数
function cm.initial_effect(c)
c:EnableCounterPermit(cm.counter)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(33330023,0))
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330023,1))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330023.tcost)
e1:SetTarget(c33330023.ttg)
e1:SetOperation(c33330023.top)
c:RegisterEffect(e1)
--cannot be target
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--Special Summon
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_REMOVE)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_COUNTER+CATEGORY_SPECIAL_SUMMON+CATEGORY_DAMAGE)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556))
e2:SetValue(1)
c:RegisterEffect(e2)
--s c
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330023,2))
e4:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_COUNTER)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_FZONE)
e4:SetCountLimit(1,33330023)
e4:SetTarget(c33330023.stg)
e4:SetOperation(c33330023.sop)
c:RegisterEffect(e4)
--xxxx
e2:SetCountLimit(1)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
--Change Field
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330023,3))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330023.con2)
e3:SetTarget(c33330023.tg2)
e3:SetOperation(c33330023.op2)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetOperation(cm.ctop)
c:RegisterEffect(e3)
--count
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetCode(EVENT_LEAVE_FIELD_P)
e7:SetOperation(c33330023.contop)
c:RegisterEffect(e7)
e3:SetLabelObject(e7)
end
function c33330023.contop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(0x1019))
end
function c33330023.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousPosition(POS_FACEUP)
end
function c33330023.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,ct*2000)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330023.op2(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabelObject():GetLabel()
if Duel.Damage(tp,ct*2000,REASON_EFFECT)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330023.filter3),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c33330023.filter3(c)
return c:IsCode(33330024) and c:IsAbleToHand()
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,1))
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_LEAVE_FIELD)
e4:SetCountLimit(1,m)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e4:SetLabelObject(e3)
e4:SetCondition(cm.fdcon)
e4:SetTarget(cm.fdtg)
e4:SetOperation(cm.fdop)
c:RegisterEffect(e4)
end
function c33330023.sfilter(c,e,tp)
return c:IsSetCard(0x556) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
cm.card_code_list=cm.search
--Special Summon
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x556) and c:IsType(TYPE_MONSTER)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c33330023.stg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x1019,1) and Duel.GetLocationCountFromEx(tp)>0
and Duel.IsExistingMatchingCard(c33330023.sfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCountFromEx(tp)>0 and e:GetHandler():IsCanAddCounter(cm.counter,1)
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,tp,0)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,0)
end
function c33330023.sop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
c:AddCounter(0x1019,1)
if Duel.GetLocationCountFromEx(tp)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c33330023.sfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then
g:GetFirst():AddCounter(0x1019,1)
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCountFromEx(tp)>0 and e:GetHandler():AddCounter(cm.counter,1) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.Damage(tp,g:GetFirst():GetBaseAttack(),REASON_EFFECT)
end
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function cm.splimit(e,c)
return not c:IsSetCard(0x556)
end
function c33330023.indesval(e,re,rp)
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP)
--Change Field
function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end
function c33330023.tcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
function cm.fdfilter1(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end
function c33330023.filter(c)
return c:IsCode(33330019) and c:IsAbleToHand()
function cm.fdfilter2(c,tp)
return c:IsCode(cm.search[2]) and c:GetActivateEffect():IsActivatable(tp)
end
function c33330023.ttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330023.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
function cm.fdcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function c33330023.top(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330023.filter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
function cm.fdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
local sel=0
if Duel.IsExistingMatchingCard(cm.fdfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,tp) then
sel=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))+1
else
Duel.SelectOption(tp,aux.Stringid(m,2))
sel=1
e:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,1,tp,ct*cm.damage)
end
e:SetLabel(sel)
end
function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local sel=e:GetLabel()
local ct=e:GetLabelObject():GetLabel()
e:GetLabelObject():SetLabel(0)
if sel==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
Duel.Damage(tp,ct*cm.damage,REASON_EFFECT)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp)
local tc=g:GetFirst()
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local te=tc:GetActivateEffect()
local tep=tc:GetControler()
local cost=te:GetCost()
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
tc:AddCounter(cm.counter,ct)
end
end
\ No newline at end of file
--深界三层-大断层
function c33330024.initial_effect(c)
local m=33330024
local cm=_G["c"..m]
cm.search={33330038,33330025} --检 索 对 象
cm.counter=0x1556 --指 示 物
cm.atk=500 --攻 击 上 升
cm.damage=1000 --伤 害 倍 数
function cm.initial_effect(c)
c:EnableCounterPermit(cm.counter)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(33330024,0))
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330024,1))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330024.tcost)
e1:SetTarget(c33330024.ttg)
e1:SetOperation(c33330024.top)
c:RegisterEffect(e1)
--Atk
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--Search
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556))
e2:SetValue(500)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_HAND)
e2:SetCost(cm.thcost)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
--s c
--Atk Up
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_FZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556))
e3:SetValue(cm.atk)
c:RegisterEffect(e3)
--Draw
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330024,2))
e4:SetDescription(aux.Stringid(m,2))
e4:SetCategory(CATEGORY_TOGRAVE+CATEGORY_COUNTER+CATEGORY_DRAW)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_FZONE)
e4:SetCountLimit(1,33330024)
e4:SetTarget(c33330024.stg)
e4:SetOperation(c33330024.sop)
c:RegisterEffect(e4)
--xxxx
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330024,3))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330024.con2)
e3:SetTarget(c33330024.tg2)
e3:SetOperation(c33330024.op2)
c:RegisterEffect(e3)
--count
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e7:SetCode(EVENT_LEAVE_FIELD_P)
e7:SetOperation(c33330024.contop)
c:RegisterEffect(e7)
e3:SetLabelObject(e7)
e4:SetCountLimit(1)
e4:SetTarget(cm.drtg)
e4:SetOperation(cm.drop)
c:RegisterEffect(e4)
--Count
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_LEAVE_FIELD_P)
e5:SetOperation(cm.ctop)
c:RegisterEffect(e5)
--To Hand
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(m,3))
e6:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e6:SetCode(EVENT_LEAVE_FIELD)
e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e6:SetLabelObject(e5)
e6:SetCondition(cm.sccon)
e6:SetTarget(cm.sctg)
e6:SetOperation(cm.scop)
c:RegisterEffect(e6)
end
function c33330024.contop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(0x1019))
cm.card_code_list=cm.search
--Search
function cm.thfilter(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end
function c33330024.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousPosition(POS_FACEUP)
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end
function c33330024.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,ct*1000)
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330024.op2(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabelObject():GetLabel()
if Duel.Damage(1-tp,ct*1000,REASON_EFFECT)<=0 then return end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330024.filter3),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
end
function c33330024.filter3(c)
return c:IsCode(33330025) and c:IsAbleToHand()
end
function c33330024.sfilter(c)
--Draw
function cm.drfilter(c)
return c:IsSetCard(0x556) and c:IsAbleToGrave()
end
function c33330024.stg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x1019,1) and Duel.IsPlayerCanDraw(tp,1) and Duel.IsExistingMatchingCard(c33330024.sfilter,tp,LOCATION_EXTRA,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_EXTRA)
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(cm.counter,1)
and Duel.IsExistingMatchingCard(cm.drfilter,tp,LOCATION_EXTRA,0,1,nil) and Duel.IsPlayerCanDraw(tp,1) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,tp,0)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function c33330024.sop(e,tp,eg,ep,ev,re,r,rp)
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
c:AddCounter(0x1019,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c33330024.sfilter,tp,LOCATION_EXTRA,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT) then
Duel.Draw(tp,1,REASON_EFFECT)
if not c:IsRelateToEffect(e) or c:IsFacedown() or not c:AddCounter(cm.counter,1) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.drfilter,tp,LOCATION_EXTRA,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT)~=0 then
Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT)
end
end
function c33330024.indesval(e,re,rp)
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP)
--Count
function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end
function c33330024.tcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
--To Hand
function cm.scfilter(c)
return c:IsCode(cm.search[2]) and c:IsAbleToHand()
end
function c33330024.filter(c)
return c:IsCode(33330019) and c:IsAbleToHand()
function cm.sccon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function c33330024.ttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330024.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
function cm.sctg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,ct*cm.damage)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c33330024.top(e,tp,eg,ep,ev,re,r,rp)
function cm.scop(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabelObject():GetLabel()
if Duel.Damage(tp,ct*cm.damage,REASON_EFFECT)==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330024.filter),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.scfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(tp,g)
end
end
end
\ No newline at end of file
--绝界行
function c33330025.initial_effect(c)
local m=33330025
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--extra summon
--Extra Summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_EXTRA_SUMMON_COUNT)
e2:SetRange(LOCATION_SZONE)
e2:SetTargetRange(LOCATION_HAND+LOCATION_MZONE,0)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556))
c:RegisterEffect(e2)
--lock draw
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(33330025,0))
e7:SetCategory(CATEGORY_TODECK)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e7:SetProperty(EFFECT_FLAG_DELAY)
e7:SetCode(EVENT_TO_GRAVE)
e7:SetCondition(c33330025.drcon)
e7:SetTarget(c33330025.drtg)
e7:SetOperation(c33330025.drop)
c:RegisterEffect(e7)
--Send Deck Top
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_TO_GRAVE)
e3:SetCondition(cm.tdcon)
e3:SetTarget(cm.tdtg)
e3:SetOperation(cm.tdop)
c:RegisterEffect(e3)
end
function c33330025.drcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
--Send Deck Top
function cm.tdfilter(c)
return c:IsSetCard(0x556) and c:IsType(TYPE_FIELD) and c:IsAbleToDeck()
end
function c33330025.tdfilter(c)
return c:IsType(TYPE_FIELD) and c:IsSetCard(0x556) and c:IsAbleToDeck()
function cm.tdcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end
function c33330025.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330025.tdfilter,tp,LOCATION_GRAVE,0,1,nil) end
local g=Duel.GetMatchingGroup(c33330025.tdfilter,tp,LOCATION_GRAVE,0,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,g:GetCount(),tp,LOCATION_GRAVE)
function cm.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_GRAVE,0,1,nil) end
local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,g:GetCount(),0,0)
end
function c33330025.drop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c33330025.tdfilter,tp,LOCATION_GRAVE,0,nil)
if g:GetCount()<=0 then return end
if Duel.SendtoDeck(g,1-tp,0,REASON_EFFECT)==0 then return end
local sg=Duel.GetOperatedGroup()
for tc in aux.Next(sg) do
if tc:IsLocation(LOCATION_DECK) then
tc:ReverseInDeck()
function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil)
if g:GetCount()>0 and Duel.SendtoDeck(g,1-tp,0,REASON_EFFECT)~=0 then
local sg=Duel.GetOperatedGroup()
local ct=0
for tc in aux.Next(sg) do
if tc:IsLocation(LOCATION_DECK) then
tc:ReverseInDeck()
ct=ct+1
end
end
Duel.SortDecktop(tp,1-tp,ct)
end
end
end
\ No newline at end of file
--深界的诅咒
function c33330026.initial_effect(c)
local m=33330026
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c33330026.target)
e1:SetOperation(c33330026.activate)
c:RegisterEffect(e1)
--destroy replace
local e1=aux.AddRitualProcGreater2(c,cm.ritual_filter,LOCATION_HAND+LOCATION_DECK)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
--Destroy Replace
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetRange(LOCATION_GRAVE)
e2:SetTarget(c33330026.reptg)
e2:SetValue(c33330026.repval)
e2:SetOperation(c33330026.repop)
c:RegisterEffect(e2)
end
c33330026.fit_monster={33330015}
function c33330026.repfilter(c,tp)
return c:IsFaceup() and c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsSetCard(0x556)
and c:IsReason(REASON_EFFECT+REASON_BATTLE)
end
function c33330026.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToRemove() and eg:IsExists(c33330026.repfilter,1,nil,tp) end
e2:SetTarget(cm.reptg)
e2:SetValue(cm.repval)
e2:SetOperation(cm.repop)
c:RegisterEffect(e2)
end
--Activate
function cm.ritual_filter(c)
return c:IsSetCard(0x556) and c:IsType(TYPE_RITUAL) and c:IsType(TYPE_MONSTER)
end
--Destroy Replace
function cm.repfilter(c,tp)
return c:IsFaceup() and c:IsSetCard(0x556) and c:IsLocation(LOCATION_MZONE)
and c:IsControler(tp) and c:IsReason(REASON_EFFECT+REASON_BATTLE) and not c:IsReason(REASON_REPLACE)
end
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToRemove() and eg:IsExists(cm.repfilter,1,nil,tp) end
return Duel.SelectEffectYesNo(tp,e:GetHandler(),96)
end
function c33330026.repval(e,c)
return c33330026.repfilter(c,e:GetHandlerPlayer())
function cm.repval(e,c)
return cm.repfilter(c,e:GetHandlerPlayer())
end
function c33330026.repop(e,tp,eg,ep,ev,re,r,rp)
function cm.repop(e,tp,eg,ep,ev,re,r,rp)
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_EFFECT)
end
function c33330026.filter(c,e,tp,m,ft)
if not c:IsCode(33330015) or not c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_RITUAL,tp,false,true) then return false end
local mg=m:Filter(Card.IsCanBeRitualMaterial,c,c)
if ft>0 then
return mg:CheckWithSumGreater(Card.GetRitualLevel,10,c)
else
return mg:IsExists(c33330026.mfilterf,1,nil,tp,mg,c)
end
end
function c33330026.mfilterf(c,tp,mg,rc)
if c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:GetSequence()<5 then
Duel.SetSelectedCard(c)
return mg:CheckWithSumGreater(Card.GetRitualLevel,10,rc)
else return false end
end
function c33330026.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local mg=Duel.GetRitualMaterial(tp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return ft>-1 and Duel.IsExistingMatchingCard(c33330026.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp,mg,ft)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function c33330026.activate(e,tp,eg,ep,ev,re,r,rp)
local mg=Duel.GetRitualMaterial(tp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=Duel.SelectMatchingCard(tp,c33330026.filter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,e,tp,mg,ft)
local tc=tg:GetFirst()
if tc then
mg=mg:Filter(Card.IsCanBeRitualMaterial,tc,tc)
local mat=nil
if ft>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
mat=mg:SelectWithSumGreater(tp,Card.GetRitualLevel,12,tc)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
mat=mg:FilterSelect(tp,c33330026.mfilterf,1,1,nil,tp,mg,tc)
Duel.SetSelectedCard(mat)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local mat2=mg:SelectWithSumGreater(tp,Card.GetRitualLevel,12,tc)
mat:Merge(mat2)
end
tc:SetMaterial(mat)
Duel.ReleaseRitualMaterial(mat)
Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_RITUAL,tp,tp,false,true,POS_FACEUP)
tc:CompleteProcedure()
end
end
end
\ No newline at end of file
--深界遗物-免除诅咒之笼
function c33330027.initial_effect(c)
local m=33330027
local cm=_G["c"..m]
cm.def=500 --守 备 力
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c33330027.target)
e1:SetOperation(c33330027.operation)
c:RegisterEffect(e1)
--Def up
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_UPDATE_DEFENSE)
e4:SetValue(500)
c:RegisterEffect(e4)
--Untargetable
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--Equip Limit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetValue(1)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_EQUIP_LIMIT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(cm.eqlimit)
c:RegisterEffect(e2)
--Equip limit
--Def Up
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EQUIP_LIMIT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetValue(c33330027.eqlimit)
c:RegisterEffect(e3)
--search
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(33330027,0))
e6:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_LEAVE_FIELD)
e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e6:SetCondition(c33330027.thcon)
e6:SetTarget(c33330027.thtg)
e6:SetOperation(c33330027.thop)
c:RegisterEffect(e6)
end
function c33330027.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function c33330027.thfilter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end
function c33330027.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330027.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c33330027.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c33330027.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c33330027.eqlimit(e,c)
return c:IsSetCard(0x556)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetCode(EFFECT_UPDATE_DEFENSE)
e3:SetValue(cm.def)
c:RegisterEffect(e3)
--Indes
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e4:SetValue(1)
c:RegisterEffect(e4)
--Search
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,0))
e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_LEAVE_FIELD)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e5:SetCondition(cm.thcon)
e5:SetTarget(cm.thtg)
e5:SetOperation(cm.thop)
c:RegisterEffect(e5)
end
function c33330027.filter(c)
return c:IsFaceup() and c:IsSetCard(0x556)
--Activate
function cm.filter(c,e)
return c:IsFaceup() and cm.eqlimit(e,c)
end
function c33330027.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and c33330027.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c33330027.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,e) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c33330027.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,e)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end
function c33330027.operation(e,tp,eg,ep,ev,re,r,rp)
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,e:GetHandler(),tc)
end
end
--Equip Limit
function cm.eqlimit(e,c)
return c:IsSetCard(0x556)
end
--Search
function cm.thfilter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
end
\ No newline at end of file
--深界遗物-免除诅咒之笼
function c33330028.initial_effect(c)
local m=33330028
local cm=_G["c"..m]
cm.atk=500 --攻 击 力
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c33330028.target)
e1:SetOperation(c33330028.operation)
c:RegisterEffect(e1)
--Def up
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetValue(500)
c:RegisterEffect(e4)
--Untargetable
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--Equip Limit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_UPDATE_LEVEL)
e2:SetValue(4)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_EQUIP_LIMIT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(cm.eqlimit)
c:RegisterEffect(e2)
--Equip limit
--Atk Up
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EQUIP_LIMIT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetValue(c33330028.eqlimit)
c:RegisterEffect(e3)
--search
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(33330028,0))
e6:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_LEAVE_FIELD)
e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e6:SetCondition(c33330028.thcon)
e6:SetTarget(c33330028.thtg)
e6:SetOperation(c33330028.thop)
c:RegisterEffect(e6)
end
function c33330028.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function c33330028.thfilter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end
function c33330028.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330028.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c33330028.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c33330028.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c33330028.eqlimit(e,c)
return c:IsSetCard(0x556)
e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetValue(cm.atk)
c:RegisterEffect(e3)
--Level Up
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_UPDATE_LEVEL)
e4:SetValue(4)
c:RegisterEffect(e4)
--Search
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,0))
e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_LEAVE_FIELD)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e5:SetCondition(cm.thcon)
e5:SetTarget(cm.thtg)
e5:SetOperation(cm.thop)
c:RegisterEffect(e5)
end
function c33330028.filter(c)
return c:IsFaceup() and c:IsSetCard(0x556)
--Activate
function cm.filter(c,e)
return c:IsFaceup() and cm.eqlimit(e,c)
end
function c33330028.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and c33330028.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c33330028.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,e) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c33330028.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,e)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end
function c33330028.operation(e,tp,eg,ep,ev,re,r,rp)
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,e:GetHandler(),tc)
end
end
--Equip Limit
function cm.eqlimit(e,c)
return c:IsSetCard(0x556)
end
--Search
function cm.thfilter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
end
\ No newline at end of file
--深界遗物-免除诅咒之笼
function c33330029.initial_effect(c)
local m=33330029
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c33330029.target)
e1:SetOperation(c33330029.operation)
c:RegisterEffect(e1)
--Def up
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetValue(-500)
c:RegisterEffect(e4)
--atk
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--Equip Limit
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330029,0))
e2:SetCategory(CATEGORY_ATKCHANGE)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(c33330029.ctcon)
e2:SetOperation(c33330029.ctop)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_EQUIP_LIMIT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(cm.eqlimit)
c:RegisterEffect(e2)
--Equip limit
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EQUIP_LIMIT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetValue(c33330029.eqlimit)
c:RegisterEffect(e3)
--search
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(33330029,1))
e6:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_LEAVE_FIELD)
e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e6:SetCondition(c33330029.thcon)
e6:SetTarget(c33330029.thtg)
e6:SetOperation(c33330029.thop)
c:RegisterEffect(e6)
--To Hand
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,0))
e4:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_BATTLE_DAMAGE)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetRange(LOCATION_SZONE)
e4:SetCondition(cm.sccon)
e4:SetTarget(cm.sctg)
e4:SetOperation(cm.scop)
c:RegisterEffect(e4)
--Search
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,0))
e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_LEAVE_FIELD)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e5:SetCondition(cm.thcon)
e5:SetTarget(cm.thtg)
e5:SetOperation(cm.thop)
c:RegisterEffect(e5)
end
--Activate
function cm.filter(c,e)
return c:IsFaceup() and cm.eqlimit(e,c)
end
function c33330029.ctcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetEquipTarget()
return Duel.GetAttacker()==tc and tc:GetBattleTarget() and tc:GetBattleTarget():IsControler(1-tp) and tc:GetBattleTarget():IsAttackAbove(1)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,e) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,e)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end
function c33330029.ctop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetEquipTarget()
local bc=tc:GetBattleTarget()
if e:GetHandler():IsRelateToEffect(e) and bc:IsControler(1-tp) and bc:IsRelateToBattle() then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000)
e1:SetValue(-200)
bc:RegisterEffect(e1)
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,e:GetHandler(),tc)
end
end
function c33330029.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
--Equip Limit
function cm.eqlimit(e,c)
return c:IsSetCard(0x556)
end
function c33330029.thfilter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
--To Hand
function cm.scfilter(c)
return c:IsSetCard(0x556) and c:IsAbleToHand()
end
function cm.sccon(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp and eg:GetFirst()==e:GetHandler():GetEquipTarget()
end
function c33330029.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330029.thfilter,tp,LOCATION_DECK,0,1,nil) end
function cm.sctg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.scfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c33330029.thop(e,tp,eg,ep,ev,re,r,rp)
function cm.scop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c33330029.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
local g=Duel.SelectMatchingCard(tp,cm.scfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
end
function c33330029.eqlimit(e,c)
return c:IsSetCard(0x556)
--Search
function cm.thfilter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end
function c33330029.filter(c)
return c:IsFaceup() and c:IsSetCard(0x556)
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end
function c33330029.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and c33330029.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c33330029.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c33330029.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c33330029.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,e:GetHandler(),tc)
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
end
end
\ No newline at end of file
This diff is collapsed.
--深界之怒-火葬炮
function c33330031.initial_effect(c)
local m=33330031
local cm=_G["c"..m]
cm.check={33330028} --发 动 要 求
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetHintTiming(0,TIMING_MAIN_END)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(c33330031.condition)
e1:SetTarget(c33330031.target)
e1:SetOperation(c33330031.activate)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
c:RegisterEffect(e1)
--to grave
--To Grave
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330031,0))
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_TOGRAVE)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE)
e2:SetCost(aux.bfgcost)
e2:SetTarget(c33330031.tgtg)
e2:SetOperation(c33330031.tgop)
e2:SetTarget(cm.tgtg)
e2:SetOperation(cm.tgop)
c:RegisterEffect(e2)
end
function c33330031.tgfilter(c)
return c:IsSetCard(0x556) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
function c33330031.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330031.tgfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end
function c33330031.tgop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c33330031.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT)
end
end
function c33330031.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN2 and Duel.IsExistingMatchingCard(c33330031.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
cm.card_code_list=cm.check
--Activate
function cm.cfilter(c)
return c:IsCode(cm.check[1]) and c:IsFaceup()
end
function c33330031.cfilter(c)
return c:IsCode(33330028) and c:IsFaceup()
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN2 and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function c33330031.target(e,tp,eg,ep,ev,re,r,rp,chk)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)>0 end
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,g:GetCount(),0,LOCATION_MZONE)
end
function c33330031.activate(e,tp,eg,ep,ev,re,r,rp)
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_RULE)
......@@ -56,10 +47,25 @@ function c33330031.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(0,1)
e1:SetValue(c33330031.actlimit)
e1:SetValue(cm.actlimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function c33330031.actlimit(e,re,tp)
return re:IsActiveType(TYPE_MONSTER) and not re:GetHandler():IsImmuneToEffect(e)
function cm.actlimit(e,re,tp)
return re:IsActiveType(TYPE_MONSTER)
end
--To Grave
function cm.tgfilter(c)
return c:IsSetCard(0x556) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
function cm.tgtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tgfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT)
end
end
\ No newline at end of file
--深界庇护所 娜娜奇的小屋
function c33330032.initial_effect(c)
--Activate(effect)
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_RECOVER)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL+EFFECT_FLAG_PLAYER_TARGET)
e4:SetType(EFFECT_TYPE_ACTIVATE)
e4:SetCode(EVENT_CHAINING)
e4:SetCondition(c33330032.condition)
e4:SetTarget(c33330032.target)
e4:SetOperation(c33330032.activate)
c:RegisterEffect(e4)
--tohand
local m=33330032
local cm=_G["c"..m]
cm.counter=0x1556 --指 示 物
cm.recover=500 --回 复 倍 数
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_RECOVER)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL+EFFECT_FLAG_PLAYER_TARGET)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--To Hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330032,0))
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetCondition(c33330032.thcon)
e2:SetTarget(c33330032.thtg)
e2:SetOperation(c33330032.thop)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(cm.thcon)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
end
function c33330032.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_EFFECT)
end
function c33330032.thfilter(c)
return c:IsSetCard(0x556) and c:IsAbleToHand()
--Activate
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return re:IsHasCategory(CATEGORY_DESTROY)
end
function c33330032.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330032.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCounter(tp,1,0,cm.counter)>0 end
local ct=Duel.GetCounter(tp,1,0,cm.counter)
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(ct*cm.recover)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,ct*cm.recover)
end
function c33330032.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330032.thfilter),tp,LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
local ct=Duel.GetCounter(tp,1,0,cm.counter)
if ct>0 and Duel.Recover(tp,ct*cm.recover,REASON_EFFECT)~=0 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CHANGE_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,1)
e1:SetValue(0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_NO_EFFECT_DAMAGE)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
end
function c33330032.condition(e,tp,eg,ep,ev,re,r,rp)
return re:IsHasCategory(CATEGORY_DESTROY)
--To Hand
function cm.thfilter(c)
return c:IsSetCard(0x556) and c:IsAbleToHand()
end
function c33330032.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCounter(tp,1,0,0x1019)>0 end
local ct=Duel.GetCounter(tp,1,0,0x1019)
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(ct*500)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,ct*500)
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_EFFECT)
end
function c33330032.activate(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetCounter(tp,1,0,0x1019)
if ct>0 and Duel.Recover(tp,ct*500,REASON_EFFECT)~=0 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CHANGE_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,1)
e1:SetValue(0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EFFECT_NO_EFFECT_DAMAGE)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end
end
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
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