Commit 45278ba3 authored by nanahira's avatar nanahira

Merge branch 'master' of git.mycard.moe:alstroemeria-silentlove/ygopro-222DIY-cards

parents 74e7eaf0 6258c7c7
No preview for this file type
expansions/pics/26803002.jpg

55.2 KB | W: | H:

expansions/pics/26803002.jpg

72.9 KB | W: | H:

expansions/pics/26803002.jpg
expansions/pics/26803002.jpg
expansions/pics/26803002.jpg
expansions/pics/26803002.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/26824000.jpg

57 KB | W: | H:

expansions/pics/26824000.jpg

173 KB | W: | H:

expansions/pics/26824000.jpg
expansions/pics/26824000.jpg
expansions/pics/26824000.jpg
expansions/pics/26824000.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/81004001.jpg

62.3 KB | W: | H:

expansions/pics/81004001.jpg

70.2 KB | W: | H:

expansions/pics/81004001.jpg
expansions/pics/81004001.jpg
expansions/pics/81004001.jpg
expansions/pics/81004001.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/81012082.jpg

56.4 KB | W: | H:

expansions/pics/81012082.jpg

188 KB | W: | H:

expansions/pics/81012082.jpg
expansions/pics/81012082.jpg
expansions/pics/81012082.jpg
expansions/pics/81012082.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/81048004.jpg

66.3 KB | W: | H:

expansions/pics/81048004.jpg

160 KB | W: | H:

expansions/pics/81048004.jpg
expansions/pics/81048004.jpg
expansions/pics/81048004.jpg
expansions/pics/81048004.jpg
  • 2-up
  • Swipe
  • Onion skin
...@@ -23,7 +23,7 @@ function cm.filter(c,code) ...@@ -23,7 +23,7 @@ function cm.filter(c,code)
return srre.check_set_Duo(c) and c:IsCode(code) and c:IsAbleToHand() return srre.check_set_Duo(c) and c:IsCode(code) and c:IsAbleToHand()
end end
function cm.cffilter(c,tp) function cm.cffilter(c,tp)
return srre.check_set_Duo(c) and not c:IsPublic() and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,c:GetCode()) return srre.check_set_Duo(c) and not c:IsPublic() and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,c:GetOriginalCodeRule())
end end
function cm.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.IsExistingMatchingCard(cm.cffilter,tp,LOCATION_HAND,0,1,nil,tp) end if chk==0 then return Duel.IsExistingMatchingCard(cm.cffilter,tp,LOCATION_HAND,0,1,nil,tp) end
...@@ -34,7 +34,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -34,7 +34,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local tt=Duel.SelectMatchingCard(tp,cm.cffilter,tp,LOCATION_HAND,0,1,1,nil,tp) local tt=Duel.SelectMatchingCard(tp,cm.cffilter,tp,LOCATION_HAND,0,1,1,nil,tp)
Duel.ConfirmCards(1-tp,tt) Duel.ConfirmCards(1-tp,tt)
local code=tt:GetFirst():GetOriginalCode() local code=tt:GetFirst():GetOriginalCodeRule()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local th=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,63,nil,code) local th=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,63,nil,code)
Duel.SendtoHand(th,nil,REASON_EFFECT) Duel.SendtoHand(th,nil,REASON_EFFECT)
......
...@@ -64,7 +64,7 @@ function c12026000.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,7 +64,7 @@ function c12026000.operation(e,tp,eg,ep,ev,re,r,rp)
e14:SetType(EFFECT_TYPE_FIELD) e14:SetType(EFFECT_TYPE_FIELD)
e14:SetCode(EFFECT_CANNOT_SUMMON) e14:SetCode(EFFECT_CANNOT_SUMMON)
e14:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e14:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e14:SetTargetRange(0,1) e14:SetTargetRange(1,0)
e14:SetTarget(c12026000.splimit1) e14:SetTarget(c12026000.splimit1)
Duel.RegisterEffect(e14,tp) Duel.RegisterEffect(e14,tp)
local e15=e14:Clone() local e15=e14:Clone()
...@@ -72,17 +72,17 @@ function c12026000.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -72,17 +72,17 @@ function c12026000.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e15,tp) Duel.RegisterEffect(e15,tp)
end end
function c12026000.scon1(e,tp) function c12026000.scon1(e,tp)
return not Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_MZONE,0,1,nil,TYPE_MONSTER) local tp=e:GetOwnerPlayer()
return Duel.GetCustomActivityCount(12026000,tp,ACTIVITY_SUMMON)>1
end end
function c12026000.splimit1(e,c) function c12026000.splimit1(e,c)
local tp=e:GetHandler()
return not (c:IsLevelBelow(4) or Duel.IsExistingMatchingCard(Card.IsType,tp,0,LOCATION_MZONE,1,nil,TYPE_MONSTER) ) return not (c:IsLevelBelow(4) or Duel.IsExistingMatchingCard(Card.IsType,tp,0,LOCATION_MZONE,1,nil,TYPE_MONSTER) )
end end
function c12026000.splimit(e,c,sump,sumtype,sumpos,targetp,se) function c12026000.splimit(e,c,sump,sumtype,sumpos,targetp,se)
if c:IsType(TYPE_FUSION) then return not c:IsLocation(LOCATION_EXTRA) or not se:GetHandler():IsType(TYPE_SPELL) end if c:IsType(TYPE_FUSION) then return c:IsLocation(LOCATION_EXTRA) or not se:GetHandler():IsType(TYPE_SPELL) end
if c:IsType(TYPE_SYNCHRO) then return not c:IsLocation(LOCATION_EXTRA) or sumtype&SUMMON_TYPE_SYNCHRO ~=SUMMON_TYPE_SYNCHRO end if c:IsType(TYPE_SYNCHRO) then return c:IsLocation(LOCATION_EXTRA) and sumtype&SUMMON_TYPE_SYNCHRO ~=SUMMON_TYPE_SYNCHRO end
if c:IsType(TYPE_PENDULUM) then return not c:IsLocation(LOCATION_EXTRA) or sumtype&SUMMON_TYPE_PENDULUM ~=SUMMON_TYPE_PENDULUM end if c:IsType(TYPE_PENDULUM) then return c:IsLocation(LOCATION_EXTRA) and sumtype&SUMMON_TYPE_PENDULUM ~=SUMMON_TYPE_PENDULUM end
if c:IsType(TYPE_LINK) then return not c:IsLocation(LOCATION_EXTRA) or sumtype&SUMMON_TYPE_LINK ~=SUMMON_TYPE_LINK end if c:IsType(TYPE_LINK) then return c:IsLocation(LOCATION_EXTRA) and sumtype&SUMMON_TYPE_LINK ~=SUMMON_TYPE_LINK end
if c:IsType(TYPE_XYZ) then return not c:IsLocation(LOCATION_EXTRA) or sumtype&SUMMON_TYPE_XYZ ~=SUMMON_TYPE_XYZ end if c:IsType(TYPE_XYZ) then return c:IsLocation(LOCATION_EXTRA) and sumtype&SUMMON_TYPE_XYZ ~=SUMMON_TYPE_XYZ end
return false return false
end end
local m=12026024
local cm=_G["c"..m]
--化作机械的暗影 拉结尔 --化作机械的暗影 拉结尔
function c12026024.initial_effect(c) function c12026024.initial_effect(c)
--to hand --to hand
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(12026024,0)) e3:SetDescription(aux.Stringid(m,0))
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET) e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
...@@ -86,16 +88,16 @@ function c12026024.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -86,16 +88,16 @@ function c12026024.activate(e,tp,eg,ep,ev,re,r,rp)
if op then op(e,tp,eg,ep,ev,re,r,rp) end if op then op(e,tp,eg,ep,ev,re,r,rp) end
Duel.SendtoGrave(c+eg,REASON_EFFECT) Duel.SendtoGrave(c+eg,REASON_EFFECT)
end end
function c12026024.thfilter(c) function cm.thfilter(c)
return c:IsRace(RACE_MACHINE) return c:IsRace(RACE_MACHINE)
end end
function c12026024.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and cm.thfilter(chkc) end if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and cm.thfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c12026024.thfilter,tp,LOCATION_GRAVE,0,1,nil) end if chk==0 then return Duel.IsExistingTarget(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,5)) Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(m,5))
local g=Duel.SelectTarget(tp,c12026024.thfilter,tp,LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectTarget(tp,cm.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
end end
function c12026024.thop(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if c:IsFaceup() then if c:IsFaceup() then
......
...@@ -37,7 +37,7 @@ function cm.initial_effect(c) ...@@ -37,7 +37,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--cannot be target/battle indestructable --cannot be target/battle indestructable
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetOperation(cm.actop) e1:SetOperation(cm.actop)
......
...@@ -23,14 +23,9 @@ function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -23,14 +23,9 @@ function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
return b2 and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>0 return b2 and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>0
end end
end end
if c:IsLocation(LOCATION_HAND) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,Senya.PrismSpsummonFilter,tp,LOCATION_MZONE,0,1,1,nil,tp)
elseif c:IsLocation(LOCATION_MZONE) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,cm.thfilter,tp,LOCATION_MZONE,0,1,1,nil) local g=Duel.SelectTarget(tp,cm.thfilter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
end end
function cm.thop(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)==0 then return end if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)==0 then return end
......
...@@ -48,6 +48,17 @@ function cm.initial_effect(c) ...@@ -48,6 +48,17 @@ function cm.initial_effect(c)
e3:SetTarget(cm.settg) e3:SetTarget(cm.settg)
e3:SetOperation(cm.setop) e3:SetOperation(cm.setop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--Damage
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,2))
e3:SetCategory(CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetTarget(cm.settg)
e3:SetOperation(cm.setop)
c:RegisterEffect(e3)
end end
function cm.spcost(e,c,tp) function cm.spcost(e,c,tp)
return Duel.GetFlagEffect(tp,m)==0 or not c:IsLocation(LOCATION_DECK) return Duel.GetFlagEffect(tp,m)==0 or not c:IsLocation(LOCATION_DECK)
...@@ -80,7 +91,6 @@ function cm.spcon(e,c) ...@@ -80,7 +91,6 @@ function cm.spcon(e,c)
end end
function cm.settg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.settg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,0,nil)
end end
function cm.setop(e,tp,eg,ep,ev,re,r,rp) function cm.setop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
...@@ -105,18 +115,4 @@ function cm.setop(e,tp,eg,ep,ev,re,r,rp) ...@@ -105,18 +115,4 @@ function cm.setop(e,tp,eg,ep,ev,re,r,rp)
Duel.HintSelection(dg) Duel.HintSelection(dg)
Duel.CalculateDamage(dg:GetFirst(),c,true) Duel.CalculateDamage(dg:GetFirst(),c,true)
end end
Duel.BreakEffect()
local tg=Duel.GetFieldGroup(tp,LOCATION_DECK,LOCATION_DECK)
local seed=tg:RandomSelect(tp,1)
local code=seed:GetFirst():GetOriginalCode()
local ct=code%cc+1
if ct==1 then
Duel.Damage(tp,atk,REASON_EFFECT)
elseif ct==2 then
Duel.Damage(1-tp,atk,REASON_EFFECT)
else
local dg=g:RandomSelect(1-tp,1)
Duel.HintSelection(dg)
Duel.CalculateDamage(dg:GetFirst(),c,true)
end
end end
\ No newline at end of file
...@@ -2,20 +2,54 @@ ...@@ -2,20 +2,54 @@
local m=33330001 local m=33330001
local cm=_G["c"..m] local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
--indes --Indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetValue(1) e1:SetValue(1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e5=e1:Clone() local e2=e1:Clone()
e5:SetCode(EFFECT_AVOID_BATTLE_DAMAGE) e2:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
c:RegisterEffect(e5)
--direct atk
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DIRECT_ATTACK)
c:RegisterEffect(e2) 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 end
\ No newline at end of file
--深界探窟者 雷古 --深界探窟者 雷古
function c33330002.initial_effect(c) local m=33330002
--th2 local cm=_G["c"..m]
cm.search={33330026,33330015} --检 索 的 卡
function cm.initial_effect(c)
--To Hand 1
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330002,1)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,33330102) e1:SetCountLimit(1,m)
e1:SetCost(c33330002.cost) e1:SetCost(cm.thcost1)
e1:SetTarget(c33330002.target) e1:SetTarget(cm.thtg1)
e1:SetOperation(c33330002.activate) e1:SetOperation(cm.thop1)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--tohand --To Hand 2
local e4=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330002,0)) e2:SetDescription(aux.Stringid(m,1))
e4:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e4:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,33330002) e2:SetCountLimit(1,m+100)
e4:SetCost(c33330002.thcost) e2:SetCost(cm.thcost2)
e4:SetTarget(c33330002.thtg) e2:SetTarget(cm.thtg2)
e4:SetOperation(c33330002.thop) e2:SetOperation(cm.thop2)
c:RegisterEffect(e4) c:RegisterEffect(e2)
end 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 g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
local ct=g:GetCount() local ct=g:GetCount()
if chk==0 then return e:GetHandler():IsReleasable() and ct>0 and g:FilterCount(Card.IsAbleToRemove,nil)==ct end 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.Release(e:GetHandler(),REASON_COST)
Duel.Remove(g,POS_FACEUP,REASON_COST) Duel.Remove(g,POS_FACEUP,REASON_COST)
end end
function c33330002.filter1(c) function cm.thtg2(e,tp,eg,ep,ev,re,r,rp,chk)
return c:IsCode(33330026) and c:IsAbleToHand() if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,cm.search[1])
end and Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,cm.search[2]) end
function c33330002.filter2(c) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK+LOCATION_GRAVE)
return c:IsCode(33330015) and c:IsAbleToHand()
end end
function c33330002.target(e,tp,eg,ep,ev,re,r,rp,chk) function cm.thop2(e,tp,eg,ep,ev,re,r,rp)
if chk==0 then return Duel.IsExistingMatchingCard(c33330002.filter1,tp,LOCATION_DECK,0,1,nil) local g1=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.thfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil,cm.search[1])
and Duel.IsExistingMatchingCard(c33330002.filter2,tp,LOCATION_DECK,0,1,nil) end local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.thfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil,cm.search[2])
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)
if g1:GetCount()>0 and g2:GetCount()>0 then if g1:GetCount()>0 and g2:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg1=g1:Select(tp,1,1,nil) local sg1=g1:Select(tp,1,1,nil)
...@@ -54,23 +75,3 @@ function c33330002.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,23 +75,3 @@ function c33330002.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,sg1) Duel.ConfirmCards(1-tp,sg1)
end end
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) local m=33330003
--search local cm=_G["c"..m]
function cm.initial_effect(c)
--Special Summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330003,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_TO_GRAVE) e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP) e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,33330003) e1:SetCountLimit(1,m)
e1:SetTarget(c33330003.thtg1) e1:SetTarget(cm.sptg)
e1:SetOperation(c33330003.tgop1) e1:SetOperation(cm.spop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--special summon local e2=e1:Clone()
local e2=Effect.CreateEffect(c) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
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)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=e2:Clone() --Search
e3:SetCode(EVENT_SPSUMMON_SUCCESS) 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) c:RegisterEffect(e3)
end end
function c33330003.spfilter1(c,e,tp) --Special Summon
return c:IsSetCard(0x557) and c:GetLevel()<=4 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) function cm.spfilter(c,e,tp)
return c:IsSetCard(0x557) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c33330003.sptg1(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 return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetMZoneCount(tp)>0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
and Duel.IsExistingMatchingCard(c33330003.spfilter1,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end end
function c33330003.spop1(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetMZoneCount(tp)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) 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 if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
end end
function c33330003.thfilter1(c) --Search
function cm.thfilter(c)
return c:IsSetCard(0x557) and c:IsAbleToHand() return c:IsSetCard(0x557) and c:IsAbleToHand()
end end
function c33330003.thtg1(e,tp,eg,ep,ev,re,r,rp,chk) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c50720316.thfilter1,tp,LOCATION_DECK,0,1,nil) end 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) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end 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) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c33330003.thfilter1,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
\ No newline at end of file
--深界探窟者 马璐璐库 --深界探窟者 马璐璐库
function c33330004.initial_effect(c) local m=33330004
--spsummon local cm=_G["c"..m]
function cm.initial_effect(c)
--Special Summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330004,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,33330004) e1:SetCountLimit(1,m)
e1:SetCost(c33330004.cost) e1:SetCost(cm.spcost)
e1:SetTarget(c33330004.target) e1:SetTarget(cm.sptg)
e1:SetOperation(c33330004.operation) e1:SetOperation(cm.spop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--tog --Return Grave
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330004,1)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOGRAVE) e2:SetCategory(CATEGORY_TOGRAVE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_GRAVE) e2:SetCode(EVENT_TO_GRAVE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP) e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetTarget(c33330004.tgtg1) e2:SetTarget(cm.tgtg)
e2:SetOperation(c33330004.tgop1) e2:SetOperation(cm.tgop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c33330004.tgtg1(e,tp,eg,ep,ev,re,r,rp,chk) --Special Summon
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) end function cm.costfilter(c,tp)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,0,LOCATION_REMOVED) return c:IsFaceup() and c:IsSetCard(0x556) and Duel.GetMZoneCount(tp,c)>0
end end
function c33330004.tgop1(e,tp,eg,ep,ev,re,r,rp) function cm.spfilter(c,e,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) return c:IsSetCard(0x5556) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
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 end
function c33330004.costfilter(c,ft,tp) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
return c:IsFaceup() and c:IsSetCard(0x556) if chk==0 then return Duel.CheckReleaseGroup(tp,cm.costfilter,1,nil,ft,tp) end
and (ft>0 or (c:IsControler(tp) and c:GetSequence()<5)) local g=Duel.SelectReleaseGroup(tp,cm.costfilter,1,1,nil,ft,tp)
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)
Duel.Release(g,REASON_COST) Duel.Release(g,REASON_COST)
end end
function c33330004.filter(c,e,tp) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
return c:IsSetCard(0x5556) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) if chk==0 then return Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
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
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_DECK)
end end
function c33330004.operation(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetMZoneCount(tp)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) 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 if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
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) local m=33330005
--search local cm=_G["c"..m]
function cm.initial_effect(c)
--Special Summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330005,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_TO_GRAVE) e1:SetCode(EVENT_TO_GRAVE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCountLimit(1,33330003+EFFECT_COUNT_CODE_DUEL) e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_DUEL)
e1:SetCost(c33330005.spcost) e1:SetCondition(cm.spcon)
e1:SetTarget(c33330005.target) e1:SetCost(cm.spcost)
e1:SetOperation(c33330005.operation) e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
Duel.AddCustomActivityCounter(33330005,ACTIVITY_SPSUMMON,c33330005.counterfilter) --Cost
Duel.AddCustomActivityCounter(m,ACTIVITY_SPSUMMON,cm.counterfilter)
end end
function c33330005.counterfilter(c) --Cost
function cm.counterfilter(c)
return c:IsSetCard(0x556) return c:IsSetCard(0x556)
end 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) return not c:IsSetCard(0x556)
end end
function c33330005.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCustomActivityCount(33330005,tp,ACTIVITY_SPSUMMON)==0 end if chk==0 then return Duel.GetCustomActivityCount(m,tp,ACTIVITY_SPSUMMON)==0 end
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) 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:SetTargetRange(1,0)
e1:SetLabelObject(e) e1:SetTarget(cm.splimit)
e1:SetTarget(c33330005.splimit) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function c33330005.filter(c,e,tp) --Special Summon
return c:IsCode(33330005) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) 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 end
function c33330005.target(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 return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetMZoneCount(tp)>0
and Duel.IsExistingMatchingCard(c33330005.filter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) end 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) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end end
function c33330005.operation(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetMZoneCount(tp)
if ft<=0 then return end if ft<1 then return end
if ft>2 then ft=2 end if ft>2 then ft=2 end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end if Duel.IsPlayerAffectedByEffect(tp,59822133) then ft=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) 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 if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
......
--深界生物 血口之绳 --深界生物 血口之绳
function c33330006.initial_effect(c) local m=33330006
--special summon local cm=_G["c"..m]
cm.counter=0x1556 --指 示 物
cm.atk=500 --攻 击 力
function cm.initial_effect(c)
--Hand Special Summon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SPSUMMON_PROC) e1:SetCode(EFFECT_SPSUMMON_PROC)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetCondition(c33330006.spcon) e1:SetCondition(cm.hspcon)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--special summon --Counter
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330006,0)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_COUNTER) e2:SetCategory(CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP) e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e2:SetTarget(c33330006.ctg1) e2:SetTarget(cm.cttg)
e2:SetOperation(c33330006.cop1) e2:SetOperation(cm.ctop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
-- --Xyz Material
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_BE_MATERIAL) e3:SetCode(EVENT_BE_MATERIAL)
e3:SetCondition(c33330006.atkcon) e3:SetCondition(cm.atkcon)
e3:SetOperation(c33330006.atkop) e3:SetOperation(cm.atkop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c33330006.atkcon(e,tp,eg,ep,ev,re,r,rp) --Hand Special Summon
return r==REASON_XYZ function cm.hspfilter(c)
return c:IsFaceup() and c:IsSetCard(0x556)
end end
function c33330006.atkop(e,tp,eg,ep,ev,re,r,rp) function cm.hspcon(e,c)
local c=e:GetHandler() if c==nil then return true end
local rc=c:GetReasonCard() local tp=c:GetControler()
local e1=Effect.CreateEffect(c) return Duel.GetMZoneCount(tp)>0 and Duel.IsExistingMatchingCard(cm.hspfilter,tp,LOCATION_FZONE,0,1,nil)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(500)
e1:SetReset(RESET_EVENT+0x1fe0000)
rc:RegisterEffect(e1)
end end
function c33330006.ctg1(e,tp,eg,ep,ev,re,r,rp,chk) --Counter
if chk==0 then return true end 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) Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0)
end 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) local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and tc:IsFaceup() and tc:IsCanAddCounter(0x1009,1) then if tc and tc:IsFaceup() and tc:IsCanAddCounter(cm.counter,1) then
tc:AddCounter(0x1019,1) tc:AddCounter(cm.counter,1)
end end
end end
function c33330006.filter(c) --Xyz Material
return c:IsFaceup() and c:IsSetCard(0x556) function cm.atkcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_XYZ
end end
function c33330006.spcon(e,c) function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
if c==nil then return true end local c=e:GetHandler()
return Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0 and local rc=c:GetReasonCard()
Duel.IsExistingMatchingCard(c33330006.filter,c:GetControler(),LOCATION_FZONE,0,1,nil) 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 end
\ No newline at end of file
--通往深界的升降机 --通往深界的升降机
function c33330007.initial_effect(c) local m=33330007
--special summon local cm=_G["c"..m]
local e2=Effect.CreateEffect(c) function cm.initial_effect(c)
e2:SetDescription(aux.Stringid(33330007,0)) --Destroy & Draw
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW) local e1=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetDescription(aux.Stringid(m,0))
e2:SetCode(EVENT_SUMMON_SUCCESS) e1:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetTarget(c33330007.destg1) e1:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetOperation(c33330007.desop1) 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) c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e3)
end end
function c33330007.destg1(e,tp,eg,ep,ev,re,r,rp,chk) --Destroy & Draw
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,0,nil,TYPE_SPELL+TYPE_TRAP) 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 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_DESTROY,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,g:GetCount()) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,g:GetCount())
end end
function c33330007.desop1(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,0,nil,TYPE_SPELL+TYPE_TRAP) local g=Duel.GetMatchingGroup(cm.desfilter,tp,LOCATION_ONFIELD,0,nil)
local ct=Duel.Destroy(g,REASON_EFFECT) local ct=Duel.Destroy(g,REASON_EFFECT)
if ct>0 then if ct>0 then
Duel.Draw(tp,ct,REASON_EFFECT) Duel.Draw(tp,ct,REASON_EFFECT)
......
--深界生物 泣尸鸟 --深界生物 泣尸鸟
function c33330008.initial_effect(c) local m=33330008
--d a local cm=_G["c"..m]
local e4=Effect.CreateEffect(c) cm.counter=0x1556 --指 示 物
e4:SetDescription(aux.Stringid(33330008,0)) cm.atk=-1000 --攻 击 力
e4:SetCategory(CATEGORY_DESTROY) function cm.initial_effect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) --Atk Down
e4:SetCode(EVENT_DAMAGE_STEP_END) local e1=Effect.CreateEffect(c)
e4:SetCost(c33330008.cost) e1:SetType(EFFECT_TYPE_FIELD)
e4:SetCondition(c33330008.condition) e1:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetOperation(c33330008.operation) e1:SetRange(LOCATION_MZONE)
c:RegisterEffect(e4) e1:SetTargetRange(0,LOCATION_MZONE)
--rec e1:SetTarget(cm.atktg)
local e3=Effect.CreateEffect(c) e1:SetValue(cm.atkval)
e3:SetDescription(aux.Stringid(33330008,1)) c:RegisterEffect(e1)
e3:SetCategory(CATEGORY_RECOVER) --Atk Up
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) local e2=Effect.CreateEffect(c)
e3:SetCode(EVENT_BATTLE_DESTROYING) e2:SetDescription(aux.Stringid(m,0))
e3:SetCondition(aux.bdocon) e2:SetCategory(CATEGORY_ATKCHANGE)
e3:SetTarget(c33330008.attg) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetOperation(c33330008.atop) e2:SetCode(EVENT_BATTLE_DESTROYING)
c:RegisterEffect(e3) e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(aux.bdocon)
e2:SetOperation(cm.atop)
c:RegisterEffect(e2)
end end
function c33330008.attg(e,tp,eg,ep,ev,re,r,rp,chk) --Atk Down
if chk==0 then return Duel.GetCounter(tp,LOCATION_ONFIELD,0,0x1019)>0 end function cm.atktg(e,tc)
Duel.SetTargetPlayer(tp) local c=e:GetHandler()
local ct=Duel.GetCounter(tp,LOCATION_ONFIELD,0,0x1019) local ph=Duel.GetCurrentPhase()
Duel.SetTargetParam(ct*100) return (ph==PHASE_DAMAGE or ph==PHASE_DAMAGE_CAL) and c:IsRelateToBattle() and tc:IsFaceup() and c:GetBattleTarget()==tc
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)
end end
function c33330008.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.atkval(e,c)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) return Duel.GetCounter(e:GetHandlerPlayer(),LOCATION_ONFIELD,0,cm.counter)*cm.atk
if chk==0 then return tc and tc:IsCode(33330019) and tc:IsFaceup() and tc:IsCanAddCounter(0x1009,1) end
tc:AddCounter(0x1019,1)
end 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() local c=e:GetHandler()
return c:IsChainAttackable() and not c:IsStatus(STATUS_BATTLE_DESTROYED) local tc=c:GetBattleTarget()
end if c:IsFaceup() and c:IsRelateToEffect(e) then
function c33330008.operation(e,tp,eg,ep,ev,re,r,rp) local e1=Effect.CreateEffect(c)
Duel.ChainAttack() 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 end
\ No newline at end of file
--深界生物 龙鬃螺鸠 --深界生物 龙鬃螺鸠
function c33330009.initial_effect(c) local m=33330009
--xyz summon local cm=_G["c"..m]
aux.AddXyzProcedure(c,nil,6,2) function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
--negate activate --Xyz Summon
aux.AddXyzProcedure(c,nil,6,2)
--Negate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330009,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_NEGATE) e1:SetCategory(CATEGORY_NEGATE)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_CHAINING) e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL) e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCondition(c33330009.condition) e1:SetCondition(cm.ngcon)
e1:SetCost(c33330009.cost) e1:SetCost(cm.ngcost)
e1:SetTarget(c33330009.target) e1:SetTarget(cm.ngtg)
e1:SetOperation(c33330009.operation) e1:SetOperation(cm.ngop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--destroy replace --Destroy Replace
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_DESTROY_REPLACE) e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetTarget(c33330009.reptg) e2:SetTarget(cm.reptg)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c33330009.reptg(e,tp,eg,ep,ev,re,r,rp,chk) --Negate
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_EFFECT) end function cm.ngcon(e,tp,eg,ep,ev,re,r,rp,chk)
if Duel.SelectEffectYesNo(tp,e:GetHandler(),96) then return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and rp~=tp and re:IsActiveType(TYPE_MONSTER)
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_EFFECT) and Duel.IsChainDisablable(ev) and re:GetHandler():IsAbleToChangeControler()
return true and not re:GetHandler():IsType(TYPE_TOKEN)
else return false end
end end
function c33330009.condition(e,tp,eg,ep,ev,re,r,rp,chk) function cm.ngcost(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.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local og=e:GetHandler():GetOverlayGroup() local og=e:GetHandler():GetOverlayGroup()
if chk==0 then return og:GetCount()>0 and og:IsExists(Card.IsSetCard,1,nil,0x556) end if chk==0 then return og:GetCount()>0 and og:IsExists(Card.IsSetCard,1,nil,0x556) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVEXYZ)
local g=og:FilterSelect(tp,Card.IsSetCard,1,1,nil,0x556) local g=og:FilterSelect(tp,Card.IsSetCard,1,1,nil,0x556)
Duel.SendtoGrave(g,REASON_COST) Duel.SendtoGrave(g,REASON_COST)
end 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 if chk==0 then return e:GetHandler():IsType(TYPE_XYZ) end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0) 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 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 rc=re:GetHandler()
local c=e: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 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
...@@ -61,3 +56,12 @@ function c33330009.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,3 +56,12 @@ function c33330009.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Overlay(c,Group.FromCards(rc)) Duel.Overlay(c,Group.FromCards(rc))
end end
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) local m=33330010
--link summon local cm=_G["c"..m]
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2) cm.counter=0x1556 --指 示 物
cm.rec1=1000 --特 召 回 血 量
cm.rec2=500 --指 示 物 回 血
function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
--seq --Link Summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2)
--Destroy & Recover
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330010,1)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetCategory(CATEGORY_DESTROY+CATEGORY_RECOVER)
e1:SetRange(LOCATION_MZONE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCountLimit(1) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetTarget(c33330010.target) e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetOperation(c33330010.activate) e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--d r --Move
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330010,0)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_RECOVER) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCountLimit(1)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e2:SetTarget(cm.mvtg)
e2:SetCountLimit(1,33330010) e2:SetOperation(cm.mvop)
e2:SetTarget(c33330010.destg)
e2:SetOperation(c33330010.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--rec X --Indes
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330010,2)) e3:SetDescription(aux.Stringid(m,2))
e3:SetCategory(CATEGORY_DESTROY+CATEGORY_RECOVER) e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e3:SetCode(EVENT_FREE_CHAIN)
e3:SetCode(EVENT_ADD_COUNTER+0x1019)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_PLAYER_TARGET) e3:SetCountLimit(1)
e3:SetTarget(c33330010.rtg) e3:SetCost(cm.indcost)
e3:SetOperation(c33330010.rop) e3:SetOperation(cm.indop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c33330010.rtg(e,tp,eg,ep,ev,re,r,rp,chk) --Destroy & Recover
if chk==0 then return true end function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetTargetPlayer(tp) local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
Duel.SetTargetParam(100) if chk==0 then return tc~=nil end
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,100) Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,cm.rec1)
end end
function c33330010.rop(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM) local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
Duel.Recover(p,d,REASON_EFFECT) if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then
Duel.Recover(tp,cm.rec1,REASON_EFFECT)
end
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 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
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() local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
...@@ -56,16 +64,32 @@ function c33330010.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,16 +64,32 @@ function c33330010.activate(e,tp,eg,ep,ev,re,r,rp)
local nseq=math.log(s,2) local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
end end
function c33330010.destg(e,tp,eg,ep,ev,re,r,rp,chk) --Indes
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) function cm.indfilter(c,tp)
if chk==0 then return tc end return c:IsFaceup() and c:IsCanRemoveCounter(tp,cm.counter,1,REASON_COST)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,500)
end end
function c33330010.desop(e,tp,eg,ep,ev,re,r,rp) function cm.indcost(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) if chk==0 then return Duel.IsExistingMatchingCard(cm.indfilter,tp,LOCATION_ONFIELD,0,1,nil,tp) end
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.Recover(tp,500,REASON_EFFECT) 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
end end
function cm.efilter(e,te)
return te:GetHandlerPlayer()~=e:GetHandlerPlayer()
end
\ No newline at end of file
--深界生物 毯毯鼠 --深界生物 毯毯鼠
function c33330011.initial_effect(c) local m=33330011
--link summon local cm=_G["c"..m]
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),1,1) cm.counter=0x1556 --指 示 物
cm.count=1 --放 置 数 量
function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
--d r c:EnableCounterPermit(cm.counter)
local e2=Effect.CreateEffect(c) --Link Summon
e2:SetDescription(aux.Stringid(33330011,0)) aux.AddLinkProcedure(c,cm.mfilter,1,1)
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_RECOVER) --Destroy & Counter
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(c33330011.destg)
e2:SetOperation(c33330011.desop)
c:RegisterEffect(e2)
--disable attack
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330011,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e1:SetCategory(CATEGORY_DESTROY+CATEGORY_COUNTER)
e1:SetRange(LOCATION_MZONE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_ATTACK_ANNOUNCE) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCountLimit(1,33330011) e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCost(c33330011.atkcost) e1:SetTarget(cm.destg)
e1:SetCondition(c33330011.atkcon) e1:SetOperation(cm.desop)
e1:SetOperation(c33330011.atkop)
c:RegisterEffect(e1) 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 end
function c33330011.atkcost(e,tp,eg,ep,ev,re,r,rp,chk) --Link Summon
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x1019,1,REASON_COST) end function cm.mfilter(c)
e:GetHandler():RemoveCounter(tp,0x1019,1,REASON_COST) return not c:IsCode(m) and c:IsLinkSetCard(0x556)
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
end 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) local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if chk==0 then return tc and e:GetHandler():IsCanAddCounter(0x1019,1) end if chk==0 then return tc and e:GetHandler():IsCanAddCounter(cm.counter,1) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE) Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_COUNTER,e:GetHandler(),1,0,0)
end 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) 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 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
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 --link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2) aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2)
c:EnableReviveLimit() --Destroy & Draw
--seq
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330012,1)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW)
e1:SetRange(LOCATION_MZONE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCountLimit(1) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetTarget(c33330012.target) e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetOperation(c33330012.activate) e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--d r --Move
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330012,0)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCountLimit(1)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e2:SetTarget(cm.mvtg)
e2:SetCountLimit(1,33330012) e2:SetOperation(cm.mvop)
e2:SetTarget(c33330012.destg)
e2:SetOperation(c33330012.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--Special Summon --Special Summon
local e4=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330012,2)) e3:SetDescription(aux.Stringid(m,2))
e4:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e4:SetCode(EVENT_LEAVE_FIELD) e3:SetCode(EVENT_LEAVE_FIELD)
e4:SetCondition(c33330012.sumcon) e3:SetTarget(cm.sptg)
e4:SetTarget(c33330012.sumtg) e3:SetOperation(cm.spop)
e4:SetOperation(c33330012.sumop) c:RegisterEffect(e3)
c:RegisterEffect(e4)
end
function c33330012.sumcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end end
function c33330012.filter(c,e,tp) --Destroy & Draw
return c:IsSetCard(0x556) and c:IsRankBelow(4) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,false,true) function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
end local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
function c33330012.sumtg(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return tc and Duel.IsPlayerCanDraw(tp,1) end
if chk==0 then return Duel.GetLocationCountFromEx(tp)>0 Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,0,0)
and Duel.IsExistingMatchingCard(c33330012.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
Duel.SetTargetCard(e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
function c33330012.sumop(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if Duel.GetLocationCountFromEx(tp)<=0 then return end if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Draw(tp,1,REASON_EFFECT)
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))
end end
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 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
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() local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
...@@ -68,16 +61,20 @@ function c33330012.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -68,16 +61,20 @@ function c33330012.activate(e,tp,eg,ep,ev,re,r,rp)
local nseq=math.log(s,2) local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
end end
function c33330012.destg(e,tp,eg,ep,ev,re,r,rp,chk) --Special Summon
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) function cm.spfilter(c,e,tp)
if chk==0 then return tc and Duel.IsPlayerCanDraw(tp,1) end return c:IsSetCard(0x556) and c:IsRankBelow(4) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,tp,LOCATION_FZONE)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end end
function c33330012.desop(e,tp,eg,ep,ev,re,r,rp) function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) if chk==0 then return Duel.GetLocationCountFromEx(tp)>0
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.Draw(tp,1,REASON_EFFECT) 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
end end
\ No newline at end of file
--破晓之花 プルシュカ --破晓之花 プルシュカ
function c33330013.initial_effect(c) local m=33330013
--link summon local cm=_G["c"..m]
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2) cm.atk=500 --攻 击 上 升
cm.search={33330034} --检 索 的 卡
function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
--seq --Link Summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2,2)
--Destroy & Search
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330013,1)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetCategory(CATEGORY_DESTROY+CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetRange(LOCATION_MZONE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCountLimit(1) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetTarget(c33330013.target) e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetOperation(c33330013.activate) e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--d r --Move
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330013,0)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_SEARCH+CATEGORY_TOHAND) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCountLimit(1)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e2:SetTarget(cm.mvtg)
e2:SetCountLimit(1,33330013) e2:SetOperation(cm.mvop)
e2:SetTarget(c33330013.destg)
e2:SetOperation(c33330013.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--atk/def --Atk Up
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_UPDATE_ATTACK) e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,0) e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(c33330013.atktg) e3:SetTarget(cm.atktg)
e3:SetValue(500) e3:SetValue(cm.atk)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c33330013.atktg(e,c) cm.card_code_list=cm.search
return c:GetMutualLinkedGroupCount()>0 and c:IsSetCard(0x556) --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 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 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
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() local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
...@@ -47,24 +70,7 @@ function c33330013.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -47,24 +70,7 @@ function c33330013.activate(e,tp,eg,ep,ev,re,r,rp)
local nseq=math.log(s,2) local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
end end
function c33330013.destg(e,tp,eg,ep,ev,re,r,rp,chk) --Atk Up
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) function cm.atktg(e,c)
if chk==0 then return tc and Duel.IsExistingMatchingCard(c33330013.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end return c:GetMutualLinkedGroupCount()>0 and c:IsSetCard(0x556)
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 end
\ No newline at end of file
--深界的至宝 雷古 --深界的至宝 雷古
function c33330014.initial_effect(c) local m=33330014
--link summon local cm=_G["c"..m]
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),1) function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
--seq --Link Summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2)
--Destroy & Search
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330014,1)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetCategory(CATEGORY_DESTROY)
e1:SetRange(LOCATION_MZONE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCountLimit(1) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetTarget(c33330014.target) e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetOperation(c33330014.activate) e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--d r --Move
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330014,0)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_SEARCH+CATEGORY_TOHAND) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCountLimit(1)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e2:SetTarget(cm.mvtg)
e2:SetCountLimit(1,33330014) e2:SetOperation(cm.mvop)
e2:SetTarget(c33330014.destg)
e2:SetOperation(c33330014.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--special summon --Special Summon
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330014,2)) e3:SetDescription(aux.Stringid(m,2))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1) e3:SetCountLimit(1)
e3:SetTarget(c33330014.sptg) e3:SetTarget(cm.sptg)
e3:SetOperation(c33330014.spop) e3:SetOperation(cm.spop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end 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) return c:IsSetCard(0x556) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone)
end 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 if chk==0 then
local zone=e:GetHandler():GetLinkedZone(tp) 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 end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end 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) local zone=e:GetHandler():GetLinkedZone(tp)
if zone==0 then return end if zone==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) 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 if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP,zone) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP,zone)
end end
end end
\ No newline at end of file
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() c:EnableReviveLimit()
--spsummon condition --Special Summon Limit
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION) e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(aux.ritlimit) e1:SetValue(aux.ritlimit)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--r d --Destroy & Remove
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330015,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_REMOVE) e2:SetCategory(CATEGORY_DESTROY+CATEGORY_REMOVE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e2:SetTarget(c33330015.destg) e2:SetTarget(cm.destg)
e2:SetOperation(c33330015.desop) e2:SetOperation(cm.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--reflect battle dam --Reflect
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_REFLECT_BATTLE_DAMAGE) e3:SetCode(EFFECT_REFLECT_BATTLE_DAMAGE)
e3:SetValue(1) e3:SetValue(1)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--atk up --Atk Up
local e6=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_ATKCHANGE) e4:SetDescription(aux.Stringid(m,1))
e6:SetType(EFFECT_TYPE_QUICK_O) e4:SetCategory(CATEGORY_ATKCHANGE)
e6:SetRange(LOCATION_MZONE) e4:SetType(EFFECT_TYPE_QUICK_O)
e6:SetCode(EVENT_PRE_DAMAGE_CALCULATE) e4:SetCode(EVENT_PRE_DAMAGE_CALCULATE)
e6:SetCondition(c33330015.atkcon) e4:SetRange(LOCATION_MZONE)
e6:SetTarget(c33330015.atktg) e4:SetCondition(cm.atkcon)
e6:SetOperation(c33330015.atkop) e4:SetTarget(cm.atktg)
c:RegisterEffect(e6) e4:SetOperation(cm.atkop)
c:RegisterEffect(e4)
end end
function c33330015.atkcon(e,tp,eg,ep,ev,re,r,rp) --Destroy & Remove
local c=e:GetHandler() function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
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)
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) 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 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) 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) Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,g:GetCount(),1-tp,LOCATION_MZONE)
end 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) local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then if tc and Duel.Destroy(tc,REASON_EFFECT)~=0 then
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_MZONE,nil) local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_MZONE,nil)
if g:GetCount()<=0 then return end if g:GetCount()<1 then return end
if Duel.Remove(g,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then if Duel.Remove(g,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then
local fid=c:GetFieldID() local fid=c:GetFieldID()
local rct=1 local rct=1
local og=Duel.GetOperatedGroup() local og=Duel.GetOperatedGroup()
local oc=og:GetFirst() local oc=og:GetFirst()
while oc do while oc do
oc:RegisterFlagEffect(33330015,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1,fid) oc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
oc=og:GetNext() oc=og:GetNext()
end end
og:KeepAlive() og:KeepAlive()
...@@ -88,45 +69,73 @@ function c33330015.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -88,45 +69,73 @@ function c33330015.desop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetLabel(fid) e1:SetLabel(fid)
e1:SetLabelObject(og) e1:SetLabelObject(og)
e1:SetCondition(c33330015.retcon) e1:SetCondition(cm.retcon)
e1:SetOperation(c33330015.retop) e1:SetOperation(cm.retop)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetValue(Duel.GetTurnCount()) e1:SetValue(Duel.GetTurnCount())
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
end end
end end
function c33330015.retfilter(c,fid) function cm.retfilter(c,fid)
return c:GetFlagEffectLabel(33330015)==fid return c:GetFlagEffectLabel(m)==fid
end 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 if Duel.GetTurnCount()==e:GetValue() then return false end
local g=e:GetLabelObject() 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() g:DeleteGroup()
e:Reset() e:Reset()
return false return false
else return true end else return true end
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 g=e:GetLabelObject()
local sg=g:Filter(c33330015.retfilter,nil,e:GetLabel()) local sg=g:Filter(cm.retfilter,nil,e:GetLabel())
g:DeleteGroup() 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 if sg:GetCount()>ct and ct>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
tg=sg:Select(tp,ct1,ct1,nil) rg=sg:Select(tp,ct,ct,nil)
else
rg=sg
end end
sg:Sub(tg) local tc=rg:GetFirst()
local tc=tg:GetFirst()
while tc do while tc do
Duel.ReturnToField(tc) Duel.ReturnToField(tc)
tc=tg:GetNext() tc=rg:GetNext()
end end
sg:Sub(rg)
tc=sg:GetFirst() tc=sg:GetFirst()
while tc do while tc do
Duel.ReturnToField(tc) Duel.ReturnToField(tc)
tc=sg:GetNext() tc=sg:GetNext()
end end
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) local m=33330016
--link summon local cm=_G["c"..m]
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2) cm.atk=500 --攻 击 上 升
function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
--seq --Link Summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkSetCard,0x556),2)
--Destroy & Search
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330016,1)) e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetCategory(CATEGORY_DESTROY)
e1:SetRange(LOCATION_MZONE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCountLimit(1) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetTarget(c33330016.target) e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetOperation(c33330016.activate) e1:SetCountLimit(1,m)
e1:SetTarget(cm.destg)
e1:SetOperation(cm.desop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--d r --Move
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330016,0)) e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_SEARCH+CATEGORY_TOHAND) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCountLimit(1)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e2:SetTarget(cm.mvtg)
e2:SetCountLimit(1,33330016) e2:SetOperation(cm.mvop)
e2:SetTarget(c33330016.destg)
e2:SetOperation(c33330016.desop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--atk --Atk Up
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_UPDATE_ATTACK) e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE) e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetTarget(c33330016.indtg) e3:SetTarget(cm.bufftg)
e3:SetValue(500) e3:SetValue(cm.atk)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c) --Indes
e4:SetType(EFFECT_TYPE_FIELD) local e4=e3:Clone()
e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE) e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e4:SetTarget(c33330016.indtg)
e4:SetValue(1) e4:SetValue(1)
c:RegisterEffect(e4) c:RegisterEffect(e4)
end end
function c33330016.indtg(e,c) --Destroy & Search
return e:GetHandler():GetLinkedGroup():IsContains(c) 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 end
function c33330016.target(e,tp,eg,ep,ev,re,r,rp,chk) 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
--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 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
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() local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
...@@ -56,20 +74,7 @@ function c33330016.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,20 +74,7 @@ function c33330016.activate(e,tp,eg,ep,ev,re,r,rp)
local nseq=math.log(s,2) local nseq=math.log(s,2)
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
end end
function c33330016.destg(e,tp,eg,ep,ev,re,r,rp,chk) --Atk Up
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) function cm.bufftg(e,c)
if chk==0 then return tc and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end return e:GetHandler():GetLinkedGroup():IsContains(c)
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 end
\ No newline at end of file
--白笛 不动如山之奥森 --白笛 不动如山之奥森
function c33330017.initial_effect(c) local m=33330017
--xyz summon local cm=_G["c"..m]
aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x556),4,3) cm.mat={33330004} --素 材 要 求
cm.counter=0x1556 --指 示 物
function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
-- --Xyz Summon
local e4=Effect.CreateEffect(c) aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x556),4,2)
e4:SetType(EFFECT_TYPE_SINGLE) --Remove
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)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EFFECT_EXTRA_ATTACK) e1:SetCode(EVENT_DAMAGE_STEP_END)
e1:SetCondition(c33330017.con) e1:SetCondition(cm.rmcon)
e1:SetValue(c33330017.atkval) e1:SetOperation(cm.rmop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--to grave --Destroy Replace
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(13893596,0)) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_COUNTER) e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_ATTACK_ANNOUNCE) e2:SetCountLimit(2)
e2:SetTarget(c33330017.ctg) e2:SetTarget(cm.reptg)
e2:SetOperation(c33330017.cop) e2:SetOperation(cm.repop)
e2:SetValue(cm.repval)
c:RegisterEffect(e2) 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 end
function c33330017.desop(e,tp,eg,ep,ev,re,r,rp) cm.card_code_list=cm.mat
if e:GetHandler():GetCounter(0x1009)>=3 then --Remove
Duel.Hint(HINT_CARD,0,33330017) function cm.rmcon(e)
Duel.Destroy(e:GetHandler(),REASON_EFFECT) return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,cm.mat[1]) and aux.bdocon(e)
end
end end
function c33330017.ctg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x1019,1) end local tc=Duel.GetAttacker()
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0) if tc==e:GetHandler() then tc=Duel.GetAttackTarget() end
if tc then Duel.Remove(tc,POS_FACEUP,REASON_RULE) end
end end
function c33330017.cop(e,tp,eg,ep,ev,re,r,rp) --Destroy Replace
local c=e:GetHandler() function cm.repfilter(c,tp)
if c and c:IsFaceup() and c:IsRelateToEffect(e) and c:IsCanAddCounter(0x1009,1) then return c:IsFaceup() and c:IsSetCard(0x556) and c:IsControler(tp)
c:AddCounter(0x1019,1) and c:IsReason(REASON_EFFECT+REASON_BATTLE) and not c:IsReason(REASON_REPLACE)
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
end
function c33330017.adfilter(c)
return c:IsFaceup() and c:IsSummonType(SUMMON_TYPE_SPECIAL)
end end
function c33330017.atkval(e) function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
return e:GetHandler():GetOverlayCount()-1 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 end
function c33330017.indesval(e,re,rp) function cm.repop(e,tp,eg,ep,ev,re,r,rp)
return re:GetHandler()~=e:GetHandler() Duel.RemoveCounter(tp,1,0,cm.counter,1,REASON_COST)
end end
function c33330017.con(e,tp,eg,ep,ev,re,r,rp) function cm.repval(e,c)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,33330004) return cm.repfilter(c,e:GetHandlerPlayer())
end end
\ No newline at end of file
--白笛 崭新之波多尔多 --白笛 崭新之波多尔多
function c33330018.initial_effect(c) local m=33330018
--xyz summon local cm=_G["c"..m]
aux.AddXyzProcedure(c,nil,8,2) cm.token={33330035} --衍 生 物
cm.counter=0x1556 --指 示 物
function cm.initial_effect(c)
c:EnableReviveLimit() 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) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330018,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_MZONE) e2:SetCode(EVENT_DAMAGE_STEP_END)
e2:SetCondition(c33330018.condition) e2:SetCondition(aux.bdcon)
e2:SetCost(c33330018.cost) e2:SetCost(cm.tkcost)
e2:SetOperation(c33330018.operation) e2:SetTarget(cm.tktg)
e2:SetOperation(cm.tkop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--actlimit --Direct Attack
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetDescription(aux.Stringid(m,0))
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CANNOT_DISABLE) e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(0,1) e3:SetCondition(cm.drcon)
e3:SetValue(c33330018.aclimit) e3:SetCost(cm.drcost)
e3:SetCondition(c33330018.actcon) e3:SetOperation(cm.drop)
c:RegisterEffect(e3) 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)
end end
function c33330018.recost(e,tp,eg,ep,ev,re,r,rp,chk) --Activate Limit
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0x1019,1,REASON_COST) end function cm.actcon(e)
local ct=Duel.GetCounter(tp,1,0,0x1019) return Duel.GetAttacker()==e:GetHandler()
Duel.RemoveCounter(tp,1,0,0x1019,ct,REASON_COST) end
e:SetLabel(ct) 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 end
function c33330018.retg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.tktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local ct=e:GetLabel() if chk==0 then return Duel.IsPlayerCanSpecialSummonMonster(tp,cm.token[1],0,0x4011,2000,2000,8,RACE_ZOMBIE,ATTRIBUTE_DARK) end
if chk==0 then return true end Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetTargetPlayer(tp) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
Duel.SetTargetParam(ct*300) end
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,ct*300) 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 end
function c33330018.reop(e,tp,eg,ep,ev,re,r,rp) function cm.descost(e,tp,eg,ep,ev,re,r,rp,chk)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM) if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,cm.counter,1,REASON_COST) end
Duel.Recover(p,d,REASON_EFFECT) Duel.RemoveCounter(tp,1,0,cm.counter,1,REASON_COST)
end end
function c33330018.condition(e,tp,eg,ep,ev,re,r,rp) 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 cm.desop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
end
--Direct Attack
function cm.drcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsAbleToEnterBP() and not e:GetHandler():IsHasEffect(EFFECT_DIRECT_ATTACK) return Duel.IsAbleToEnterBP() and not e:GetHandler():IsHasEffect(EFFECT_DIRECT_ATTACK)
end 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 if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end 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() local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then if c:IsFaceup() and c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DIRECT_ATTACK) 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) c:RegisterEffect(e1)
end end
end end
\ No newline at end of file
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
--深界一层-阿比斯之渊 --深界一层-阿比斯之渊
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 --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--indestructable --Search
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
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetDescription(aux.Stringid(m,0))
e2:SetCode(EFFECT_SET_POSITION) e2:SetCategory(CATEGORY_HANDES+CATEGORY_COUNTER+CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetRange(LOCATION_SZONE) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE) e2:SetRange(LOCATION_FZONE)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE) e2:SetCountLimit(1)
e2:SetValue(POS_FACEUP_ATTACK) e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--damage reduce --Change Field
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)
local e6=e4:Clone()
e6:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
c:RegisterEffect(e6)
--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
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330019,1)) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE) e3:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EVENT_DESTROY) e3:SetOperation(cm.ctop)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330019.con2)
e3:SetTarget(c33330019.tg2)
e3:SetOperation(c33330019.op2)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--count local e4=Effect.CreateEffect(c)
local e7=Effect.CreateEffect(c) e4:SetDescription(aux.Stringid(m,1))
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e7:SetCode(EVENT_LEAVE_FIELD_P) e4:SetCode(EVENT_LEAVE_FIELD)
e7:SetOperation(c33330019.contop) e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
c:RegisterEffect(e7) e4:SetLabelObject(e3)
e3:SetLabelObject(e7) e4:SetCondition(cm.fdcon)
e4:SetTarget(cm.fdtg)
e4:SetOperation(cm.fdop)
c:RegisterEffect(e4)
end end
function c33330019.contop(e,tp,eg,ep,ev,re,r,rp) cm.card_code_list=cm.search
e:SetLabel(e:GetHandler():GetCounter(0x1019)) --Activate
function cm.filter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end end
function c33330019.con2(e,tp,eg,ep,ev,re,r,rp) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil) end
return c:IsReason(REASON_EFFECT) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
function c33330019.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if chk==0 then return true end if not e:GetHandler():IsRelateToEffect(e) then return 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()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) 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 if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
Duel.Damage(tp,ct*1000,REASON_EFFECT)
end end
end end
function c33330019.filter(c) --Search
return c:IsCode(33330019) and c:IsAbleToHand() function cm.thfilter(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end end
function c33330019.cost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x1019,3,REASON_COST) end if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil)
e:GetHandler():RemoveCounter(tp,0x1019,3,REASON_COST) 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 end
function c33330019.filter2(c) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
return IsCode(33330020) and c:IsAbleToHand() 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 end
function c33330019.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) --Change Field
if chk==0 then return Duel.IsExistingMatchingCard(c33330019.filter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,500) e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end
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_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,1,tp,ct*cm.damage)
end
e:SetLabel(sel)
end end
function c33330019.op(e,tp,eg,ep,ev,re,r,rp) function cm.fdop(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 local sel=e:GetLabel()
local ct=e:GetLabelObject():GetLabel()
e:GetLabelObject():SetLabel(0)
if sel==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) 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) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end Duel.Damage(tp,ct*cm.damage,REASON_EFFECT)
function c33330019.damval(e,re,val,r,rp,rc) else
if bit.band(r,REASON_BATTLE)~=0 then Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
e:GetHandler():AddCounter(0x1019,1) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp)
return 0 local tc=g:GetFirst()
Duel.MoveToField(tc,tp,tp,LOCATION_FZONE,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
if ct>0 then tc:AddCounter(cm.counter,ct) end
end end
return val
end 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 --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) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330020,1)) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330020.tcost)
e1:SetTarget(c33330020.ttg)
e1:SetOperation(c33330020.top)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--search --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
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330020,2)) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_COUNTER) e2:SetCategory(CATEGORY_COUNTER+CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_FZONE) e2:SetRange(LOCATION_FZONE)
e2:SetCondition(c33330020.atkcon) e2:SetCountLimit(1)
e2:SetTarget(c33330020.atktg2) e2:SetTarget(cm.thtg)
e2:SetOperation(c33330020.atkop) e2:SetOperation(cm.thop)
c:RegisterEffect(e2) 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
cm.card_code_list=cm.search
--Search
function cm.thfilter(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end
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 end
function c33330020.atkcon(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
return tp==Duel.GetTurnPlayer() and Duel.GetAttacker():IsSetCard(0x556) 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 end
function c33330020.atktg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) --Change Field
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x1019,1,REASON_EFFECT) end function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,0,tp,1) e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end end
function c33330020.atkop(e,tp,eg,ep,ev,re,r,rp) function cm.fdfilter1(c)
if not c:IsRelateToEffect(e) or c:IsFacedown() or not e:GetHandler():IsCanRemoveCounter(tp,0x1019,1,REASON_EFFECT) then return end return c:IsCode(cm.search[2]) and c:IsAbleToHand()
e:GetHandler():RemoveCounter(tp,0x1019,1,REASON_EFFECT)
end end
function c33330020.contop(e,tp,eg,ep,ev,re,r,rp) function cm.fdfilter2(c,tp)
e:SetLabel(e:GetHandler():GetCounter(0x1019)) return c:IsCode(cm.search[3]) and c:GetActivateEffect():IsActivatable(tp)
end end
function c33330020.con2(e,tp,eg,ep,ev,re,r,rp) function cm.fdcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() return e:GetHandler():IsPreviousPosition(POS_FACEUP)
return c:IsReason(REASON_EFFECT) and c:IsPreviousPosition(POS_FACEUP)
end end
function c33330020.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.fdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local ct=e:GetLabelObject():GetLabel() local ct=e:GetLabelObject():GetLabel()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,ct*500) 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_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,1,tp,ct*cm.damage)
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(c33330019.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
e:SetLabel(sel)
end end
function c33330020.filter3(c) function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
return c:IsCode(33330021) and c:IsAbleToHand() local sel=e:GetLabel()
end local ct=e:GetLabelObject():GetLabel()
function c33330020.filter2(c) e:GetLabelObject():SetLabel(0)
return c:IsCode(33330004) and c:IsAbleToHand() if sel==1 then
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) 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) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end Duel.Damage(tp,ct*cm.damage,REASON_EFFECT)
function c33330020.tcost(e,tp,eg,ep,ev,re,r,rp,chk) else
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
Duel.SendtoGrave(e:GetHandler(),REASON_COST) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp)
end local tc=g:GetFirst()
function c33330020.filter(c) Duel.MoveToField(tc,tp,tp,LOCATION_FZONE,POS_FACEUP,true)
return c:IsCode(33330019) and c:IsAbleToHand() local te=tc:GetActivateEffect()
end local tep=tc:GetControler()
function c33330020.ttg(e,tp,eg,ep,ev,re,r,rp,chk) local cost=te:GetCost()
if chk==0 then return Duel.IsExistingMatchingCard(c33330020.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK) if ct>0 then tc:AddCounter(cm.counter,ct) end
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)
end end
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 --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) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330021,1)) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330021.tcost)
e1:SetTarget(c33330021.ttg)
e1:SetOperation(c33330021.top)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--cannot be target --Search
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetDescription(aux.Stringid(m,0))
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) e2:SetCategory(CATEGORY_COUNTER+CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE) e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_MZONE,0) e2:SetCountLimit(1)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556)) e2:SetTarget(cm.thtg)
e2:SetValue(c33330021.indesval) e2:SetOperation(cm.thop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--s c --Change Field
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:SetCountLimit(1)
e4:SetTarget(c33330021.stg)
e4:SetOperation(c33330021.sop)
c:RegisterEffect(e4)
--xxxx
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330021,3)) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE) e3:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EVENT_LEAVE_FIELD) e3:SetOperation(cm.ctop)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330021.con2)
e3:SetTarget(c33330021.tg2)
e3:SetOperation(c33330021.op2)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--count local e4=Effect.CreateEffect(c)
local e7=Effect.CreateEffect(c) e4:SetDescription(aux.Stringid(m,1))
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e7:SetCode(EVENT_LEAVE_FIELD_P) e4:SetCode(EVENT_LEAVE_FIELD)
e7:SetOperation(c33330021.contop) e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
c:RegisterEffect(e7) e4:SetLabelObject(e3)
e3:SetLabelObject(e7) e4:SetCondition(cm.fdcon)
e4:SetTarget(cm.fdtg)
e4:SetOperation(cm.fdop)
c:RegisterEffect(e4)
end end
function c33330021.contop(e,tp,eg,ep,ev,re,r,rp) cm.card_code_list=cm.search
e:SetLabel(e:GetHandler():GetCounter(0x1019)) --Search
function cm.thfilter(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end end
function c33330021.con2(e,tp,eg,ep,ev,re,r,rp) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() if chk==0 then return e:GetHandler():IsCanAddCounter(cm.counter,1)
return c:IsPreviousPosition(POS_FACEUP) 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 end
function c33330021.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if chk==0 then return true end if not e:GetHandler():IsRelateToEffect(e) then return end
local ct=e:GetLabelObject():GetLabel() if e:GetHandler():AddCounter(cm.counter,1) then
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,ct*500) local tc=Duel.GetFirstMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE) if tc and Duel.SendtoHand(tc,nil,REASON_EFFECT)~=0 then
end Duel.ConfirmCards(1-tp,tc)
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)
end end
end
function c33330021.filter3(c)
return c:IsCode(33330022) and c:IsAbleToHand()
end
function c33330021.sfilter(c)
return c:IsAbleToHand() and c:IsCode(33330006)
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)
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 end
end end
function c33330021.indesval(e,re,rp) --Change Field
return re:IsActiveType(TYPE_MONSTER) function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end
function cm.fdfilter1(c)
return c:IsCode(cm.search[2]) and c:IsAbleToHand()
end end
function c33330021.tcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.fdfilter2(c,tp)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end return c:IsCode(cm.search[3]) and c:GetActivateEffect():IsActivatable(tp)
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end end
function c33330021.filter(c) function cm.fdcon(e,tp,eg,ep,ev,re,r,rp)
return c:IsCode(33330019) and c:IsAbleToHand() return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end end
function c33330021.ttg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.fdtg(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 if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK) 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 end
function c33330021.top(e,tp,eg,ep,ev,re,r,rp) 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) 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) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end 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_FZONE,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
if ct>0 then tc:AddCounter(cm.counter,ct) end
end
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 --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) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330022,1)) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330022.tcost)
e1:SetTarget(c33330022.ttg)
e1:SetOperation(c33330022.top)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--cannot be target --Special Summon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetDescription(aux.Stringid(m,0))
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE) e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_MZONE,0) e2:SetCountLimit(2)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556)) e2:SetTarget(cm.sptg)
e2:SetValue(c33330022.indesval) e2:SetOperation(cm.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--s c --Change Field
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
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330022,3)) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE) e3:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EVENT_LEAVE_FIELD) e3:SetOperation(cm.ctop)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330022.con2)
e3:SetTarget(c33330022.tg2)
e3:SetOperation(c33330022.op2)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--count local e4=Effect.CreateEffect(c)
local e7=Effect.CreateEffect(c) e4:SetDescription(aux.Stringid(m,1))
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e7:SetCode(EVENT_LEAVE_FIELD_P) e4:SetCode(EVENT_LEAVE_FIELD)
e7:SetOperation(c33330022.contop) e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
c:RegisterEffect(e7) e4:SetLabelObject(e3)
e3:SetLabelObject(e7) e4:SetCondition(cm.fdcon)
end e4:SetTarget(cm.fdtg)
function c33330022.contop(e,tp,eg,ep,ev,re,r,rp) e4:SetOperation(cm.fdop)
e:SetLabel(e:GetHandler():GetCounter(0x1019)) c:RegisterEffect(e4)
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()
end end
function c33330022.sfilter(c,e,tp) cm.card_code_list=cm.search
return c:IsSetCard(0x556) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) --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 end
function c33330022.stg(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 return e:GetHandler():IsCanAddCounter(0x1019,1) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetMZoneCount(tp)>0 and e:GetHandler():IsCanAddCounter(cm.counter,1)
and Duel.IsExistingMatchingCard(c33330022.sfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end 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_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 end
function c33330022.sop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() if Duel.GetMZoneCount(tp)<1 then return end
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
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) 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 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
end end
function c33330022.indesval(e,re,rp) --Change Field
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP) function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end end
function c33330022.tcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.fdfilter1(c)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end return c:IsCode(cm.search[1]) and c:IsAbleToHand()
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end end
function c33330022.filter(c) function cm.fdfilter2(c,tp)
return c:IsCode(33330019) and c:IsAbleToHand() return c:IsCode(cm.search[2]) and c:GetActivateEffect():IsActivatable(tp)
end end
function c33330022.ttg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.fdcon(e,tp,eg,ep,ev,re,r,rp)
if chk==0 then return Duel.IsExistingMatchingCard(c33330022.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end return e:GetHandler():IsPreviousPosition(POS_FACEUP)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
end end
function c33330022.top(e,tp,eg,ep,ev,re,r,rp) 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) 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) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end 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_FZONE,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
if ct>0 then tc:AddCounter(cm.counter,ct) end
end
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 --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) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330023,1)) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330023.tcost)
e1:SetTarget(c33330023.ttg)
e1:SetOperation(c33330023.top)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--cannot be target --Special Summon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetDescription(aux.Stringid(m,0))
e2:SetCode(EFFECT_CANNOT_REMOVE) e2:SetCategory(CATEGORY_COUNTER+CATEGORY_SPECIAL_SUMMON+CATEGORY_DAMAGE)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE) e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_MZONE,0) e2:SetCountLimit(1)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556)) e2:SetTarget(cm.sptg)
e2:SetValue(1) e2:SetOperation(cm.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--s c --Change Field
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)
e4:SetTarget(c33330023.stg)
e4:SetOperation(c33330023.sop)
c:RegisterEffect(e4)
--xxxx
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330023,3)) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE) e3:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EVENT_LEAVE_FIELD) e3:SetOperation(cm.ctop)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(c33330023.con2)
e3:SetTarget(c33330023.tg2)
e3:SetOperation(c33330023.op2)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--count local e4=Effect.CreateEffect(c)
local e7=Effect.CreateEffect(c) e4:SetDescription(aux.Stringid(m,1))
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e7:SetCode(EVENT_LEAVE_FIELD_P) e4:SetCode(EVENT_LEAVE_FIELD)
e7:SetOperation(c33330023.contop) e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
c:RegisterEffect(e7) e4:SetLabelObject(e3)
e3:SetLabelObject(e7) e4:SetCondition(cm.fdcon)
end e4:SetTarget(cm.fdtg)
function c33330023.contop(e,tp,eg,ep,ev,re,r,rp) e4:SetOperation(cm.fdop)
e:SetLabel(e:GetHandler():GetCounter(0x1019)) c:RegisterEffect(e4)
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()
end end
function c33330023.sfilter(c,e,tp) cm.card_code_list=cm.search
return c:IsSetCard(0x556) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) --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 end
function c33330023.stg(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 return e:GetHandler():IsCanAddCounter(0x1019,1) and Duel.GetLocationCountFromEx(tp)>0 if chk==0 then return Duel.GetLocationCountFromEx(tp)>0 and e:GetHandler():IsCanAddCounter(cm.counter,1)
and Duel.IsExistingMatchingCard(c33330023.sfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end 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_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 end
function c33330023.sop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() if Duel.GetLocationCountFromEx(tp)>0 and e:GetHandler():AddCounter(cm.counter,1) then
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) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c33330023.sfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp) 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 if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 then
g:GetFirst():AddCounter(0x1019,1) Duel.Damage(tp,g:GetFirst():GetBaseAttack(),REASON_EFFECT)
end 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
--Change Field
function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end end
function c33330023.indesval(e,re,rp) function cm.fdfilter1(c)
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP) return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end end
function c33330023.tcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.fdfilter2(c,tp)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end return c:IsCode(cm.search[2]) and c:GetActivateEffect():IsActivatable(tp)
Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end end
function c33330023.filter(c) function cm.fdcon(e,tp,eg,ep,ev,re,r,rp)
return c:IsCode(33330019) and c:IsAbleToHand() return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end end
function c33330023.ttg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.fdtg(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 if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK) 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 end
function c33330023.top(e,tp,eg,ep,ev,re,r,rp) 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) 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) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.fdfilter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end 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_FZONE,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
if ct>0 then tc:AddCounter(cm.counter,ct) end
end
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 --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) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330024,1)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c33330024.tcost)
e1:SetTarget(c33330024.ttg)
e1:SetOperation(c33330024.top)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--Atk --Search
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetDescription(aux.Stringid(m,1))
e2:SetCode(EFFECT_UPDATE_ATTACK) e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetRange(LOCATION_FZONE) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetTargetRange(LOCATION_MZONE,0) e2:SetRange(LOCATION_HAND)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556)) e2:SetCost(cm.thcost)
e2:SetValue(500) e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2) 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) 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:SetCategory(CATEGORY_TOGRAVE+CATEGORY_COUNTER+CATEGORY_DRAW)
e4:SetType(EFFECT_TYPE_IGNITION) e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_FZONE) e4:SetRange(LOCATION_FZONE)
e4:SetCountLimit(1) e4:SetCountLimit(1)
e4:SetTarget(c33330024.stg) e4:SetTarget(cm.drtg)
e4:SetOperation(c33330024.sop) e4:SetOperation(cm.drop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
--xxxx --Count
local e3=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(33330024,3)) e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE) e5:SetCode(EVENT_LEAVE_FIELD_P)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e5:SetOperation(cm.ctop)
e3:SetCode(EVENT_LEAVE_FIELD) c:RegisterEffect(e5)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP) --To Hand
e3:SetCondition(c33330024.con2) local e6=Effect.CreateEffect(c)
e3:SetTarget(c33330024.tg2) e6:SetDescription(aux.Stringid(m,3))
e3:SetOperation(c33330024.op2) e6:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_DAMAGE)
c:RegisterEffect(e3) e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
--count e6:SetCode(EVENT_LEAVE_FIELD)
local e7=Effect.CreateEffect(c) e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e6:SetLabelObject(e5)
e7:SetCode(EVENT_LEAVE_FIELD_P) e6:SetCondition(cm.sccon)
e7:SetOperation(c33330024.contop) e6:SetTarget(cm.sctg)
c:RegisterEffect(e7) e6:SetOperation(cm.scop)
e3:SetLabelObject(e7) c:RegisterEffect(e6)
end end
function c33330024.contop(e,tp,eg,ep,ev,re,r,rp) cm.card_code_list=cm.search
e:SetLabel(e:GetHandler():GetCounter(0x1019)) --Search
function cm.thfilter(c)
return c:IsCode(cm.search[1]) and c:IsAbleToHand()
end end
function c33330024.con2(e,tp,eg,ep,ev,re,r,rp) function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
return c:IsPreviousPosition(POS_FACEUP) Duel.SendtoGrave(e:GetHandler(),REASON_COST)
end end
function c33330024.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) 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) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end end
function c33330024.op2(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabelObject():GetLabel()
if Duel.Damage(tp,ct*1000,REASON_EFFECT)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) 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) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
function c33330024.filter3(c) --Draw
return c:IsCode(33330025) and c:IsAbleToHand() function cm.drfilter(c)
end
function c33330024.sfilter(c)
return c:IsSetCard(0x556) and c:IsAbleToGrave() return c:IsSetCard(0x556) and c:IsAbleToGrave()
end end
function c33330024.stg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.drtg(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 if chk==0 then return e:GetHandler():IsCanAddCounter(cm.counter,1)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_EXTRA) 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_COUNTER,nil,1,tp,0)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end 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() local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end if not c:IsRelateToEffect(e) or c:IsFacedown() or not c:AddCounter(cm.counter,1) then return end
c:AddCounter(0x1019,1) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) local g=Duel.SelectMatchingCard(tp,cm.drfilter,tp,LOCATION_EXTRA,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,c33330024.sfilter,tp,LOCATION_EXTRA,0,1,1,nil) if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT)~=0 then
if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT) then Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT) Duel.Draw(tp,1,REASON_EFFECT)
end end
end end
function c33330024.indesval(e,re,rp) --Count
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP) function cm.ctop(e,tp,eg,ep,ev,re,r,rp)
e:SetLabel(e:GetHandler():GetCounter(cm.counter))
end end
function c33330024.tcost(e,tp,eg,ep,ev,re,r,rp,chk) --To Hand
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end function cm.scfilter(c)
Duel.SendtoGrave(e:GetHandler(),REASON_COST) return c:IsCode(cm.search[2]) and c:IsAbleToHand()
end end
function c33330024.filter(c) function cm.sccon(e,tp,eg,ep,ev,re,r,rp)
return c:IsCode(33330036) and c:IsAbleToHand() return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end end
function c33330024.ttg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sctg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(c33330024.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK) 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 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) 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) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.scfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end 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 --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--extra summon --Extra Summon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_EXTRA_SUMMON_COUNT) e2:SetCode(EFFECT_EXTRA_SUMMON_COUNT)
e2:SetRange(LOCATION_FZONE) e2:SetRange(LOCATION_SZONE)
e2:SetTargetRange(LOCATION_HAND+LOCATION_MZONE,0) e2:SetTargetRange(LOCATION_HAND+LOCATION_MZONE,0)
e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556)) e2:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x556))
c:RegisterEffect(e2) c:RegisterEffect(e2)
--lock draw --Send Deck Top
local e7=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(33330025,0)) e3:SetDescription(aux.Stringid(m,1))
e7:SetCategory(CATEGORY_TODECK) e3:SetCategory(CATEGORY_TODECK)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e7:SetProperty(EFFECT_FLAG_DELAY) e3:SetCode(EVENT_TO_GRAVE)
e7:SetCode(EVENT_TO_GRAVE) e3:SetCondition(cm.tdcon)
e7:SetCondition(c33330025.drcon) e3:SetTarget(cm.tdtg)
e7:SetTarget(c33330025.drtg) e3:SetOperation(cm.tdop)
e7:SetOperation(c33330025.drop) c:RegisterEffect(e3)
c:RegisterEffect(e7)
end end
function c33330025.drcon(e,tp,eg,ep,ev,re,r,rp) --Send Deck Top
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) function cm.tdfilter(c)
return c:IsSetCard(0x556) and c:IsType(TYPE_FIELD) and c:IsAbleToDeck()
end end
function c33330025.tdfilter(c) function cm.tdcon(e,tp,eg,ep,ev,re,r,rp)
return c:IsType(TYPE_FIELD) and c:IsSetCard(0x556) and c:IsAbleToDeck() return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end end
function c33330025.drtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.tdtg(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 if chk==0 then return Duel.IsExistingMatchingCard(cm.tdfilter,tp,LOCATION_GRAVE,0,1,nil) end
local g=Duel.GetMatchingGroup(c33330025.tdfilter,tp,LOCATION_GRAVE,0,nil) local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,g:GetCount(),tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_TODECK,g,g:GetCount(),0,0)
end end
function c33330025.drop(e,tp,eg,ep,ev,re,r,rp) function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c33330025.tdfilter,tp,LOCATION_GRAVE,0,nil) local g=Duel.GetMatchingGroup(cm.tdfilter,tp,LOCATION_GRAVE,0,nil)
if g:GetCount()<=0 then return end if g:GetCount()>0 and Duel.SendtoDeck(g,1-tp,0,REASON_EFFECT)~=0 then
if Duel.SendtoDeck(g,1-tp,0,REASON_EFFECT)==0 then return end
local sg=Duel.GetOperatedGroup() local sg=Duel.GetOperatedGroup()
local ct=0
for tc in aux.Next(sg) do for tc in aux.Next(sg) do
if tc:IsLocation(LOCATION_DECK) then if tc:IsLocation(LOCATION_DECK) then
tc:ReverseInDeck() tc:ReverseInDeck()
ct=ct+1
end
end end
Duel.SortDecktop(tp,1-tp,ct)
end 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 --Activate
local e1=Effect.CreateEffect(c) local e1=aux.AddRitualProcGreater2(c,cm.ritual_filter,LOCATION_HAND+LOCATION_DECK)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetType(EFFECT_TYPE_ACTIVATE) --Destroy Replace
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c33330026.target)
e1:SetOperation(c33330026.activate)
c:RegisterEffect(e1)
--destroy replace
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EFFECT_DESTROY_REPLACE) e2:SetCode(EFFECT_DESTROY_REPLACE)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetTarget(c33330026.reptg) e2:SetTarget(cm.reptg)
e2:SetValue(c33330026.repval) e2:SetValue(cm.repval)
e2:SetOperation(c33330026.repop) e2:SetOperation(cm.repop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
c33330026.fit_monster={33330015} --Activate
function c33330026.repfilter(c,tp) function cm.ritual_filter(c)
return c:IsFaceup() and c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsSetCard(0x556) return c:IsSetCard(0x556) and c:IsType(TYPE_RITUAL) and c:IsType(TYPE_MONSTER)
and c:IsReason(REASON_EFFECT+REASON_BATTLE)
end end
function c33330026.reptg(e,tp,eg,ep,ev,re,r,rp,chk) --Destroy Replace
if chk==0 then return e:GetHandler():IsAbleToRemove() and eg:IsExists(c33330026.repfilter,1,nil,tp) end 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) return Duel.SelectEffectYesNo(tp,e:GetHandler(),96)
end end
function c33330026.repval(e,c) function cm.repval(e,c)
return c33330026.repfilter(c,e:GetHandlerPlayer()) return cm.repfilter(c,e:GetHandlerPlayer())
end 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) Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_EFFECT)
end end
\ No newline at end of file
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
--深界遗物-免除诅咒之笼 --深界遗物-免除诅咒之笼
function c33330027.initial_effect(c) local m=33330027
local cm=_G["c"..m]
cm.def=500 --守 备 力
function cm.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP) e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c33330027.target) e1:SetTarget(cm.target)
e1:SetOperation(c33330027.operation) e1:SetOperation(cm.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--Def up --Equip Limit
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_UPDATE_DEFENSE)
e4:SetValue(500)
c:RegisterEffect(e4)
--Untargetable
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) e2:SetCode(EFFECT_EQUIP_LIMIT)
e2:SetValue(1) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(cm.eqlimit)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--Equip limit --Def Up
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetCode(EFFECT_EQUIP_LIMIT) e3:SetCode(EFFECT_UPDATE_DEFENSE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e3:SetValue(cm.def)
e3:SetValue(c33330027.eqlimit)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--search --Indes
local e6=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(33330027,0)) e4:SetType(EFFECT_TYPE_EQUIP)
e6:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e4:SetValue(1)
e6:SetCode(EVENT_LEAVE_FIELD) c:RegisterEffect(e4)
e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) --Search
e6:SetCondition(c33330027.thcon) local e5=Effect.CreateEffect(c)
e6:SetTarget(c33330027.thtg) e5:SetDescription(aux.Stringid(m,0))
e6:SetOperation(c33330027.thop) e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
c:RegisterEffect(e6) 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 end
function c33330027.thcon(e,tp,eg,ep,ev,re,r,rp) --Activate
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) function cm.filter(c,e)
return c:IsFaceup() and cm.eqlimit(e,c)
end end
function c33330027.thfilter(c) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
return c:IsSetCard(0x3556) and c:IsAbleToHand() if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.filter(chkc) end
end if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,e) end
function c33330027.thtg(e,tp,eg,ep,ev,re,r,rp,chk) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
if chk==0 then return Duel.IsExistingMatchingCard(c33330027.thfilter,tp,LOCATION_DECK,0,1,nil) end Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,e)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end end
function c33330027.thop(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) local tc=Duel.GetFirstTarget()
local g=Duel.SelectMatchingCard(tp,c33330027.thfilter,tp,LOCATION_DECK,0,1,1,nil) if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
if g:GetCount()>0 then Duel.Equip(tp,e:GetHandler(),tc)
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end end
end end
function c33330027.eqlimit(e,c) --Equip Limit
function cm.eqlimit(e,c)
return c:IsSetCard(0x556) return c:IsSetCard(0x556)
end end
function c33330027.filter(c) --Search
return c:IsFaceup() and c:IsSetCard(0x556) function cm.thfilter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end end
function c33330027.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and c33330027.filter(chkc) end return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
if chk==0 then return Duel.IsExistingTarget(c33330027.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c33330027.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end end
function c33330027.operation(e,tp,eg,ep,ev,re,r,rp) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFirstTarget() if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Equip(tp,e:GetHandler(),tc) 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
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 --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP) e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c33330028.target) e1:SetTarget(cm.target)
e1:SetOperation(c33330028.operation) e1:SetOperation(cm.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--Def up --Equip Limit
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetValue(500)
c:RegisterEffect(e4)
--Untargetable
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LEVEL) e2:SetCode(EFFECT_EQUIP_LIMIT)
e2:SetValue(4) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetValue(cm.eqlimit)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--Equip limit --Atk Up
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_EQUIP)
e3:SetCode(EFFECT_EQUIP_LIMIT) e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e3:SetValue(cm.atk)
e3:SetValue(c33330028.eqlimit)
c:RegisterEffect(e3) c:RegisterEffect(e3)
--search --Level Up
local e6=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(33330028,0)) e4:SetType(EFFECT_TYPE_EQUIP)
e6:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e4:SetCode(EFFECT_UPDATE_LEVEL)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e4:SetValue(4)
e6:SetCode(EVENT_LEAVE_FIELD) c:RegisterEffect(e4)
e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) --Search
e6:SetCondition(c33330028.thcon) local e5=Effect.CreateEffect(c)
e6:SetTarget(c33330028.thtg) e5:SetDescription(aux.Stringid(m,0))
e6:SetOperation(c33330028.thop) e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
c:RegisterEffect(e6) 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 end
function c33330028.thcon(e,tp,eg,ep,ev,re,r,rp) --Activate
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) function cm.filter(c,e)
return c:IsFaceup() and cm.eqlimit(e,c)
end end
function c33330028.thfilter(c) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
return c:IsSetCard(0x3556) and c:IsAbleToHand() if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.filter(chkc) end
end if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,e) end
function c33330028.thtg(e,tp,eg,ep,ev,re,r,rp,chk) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
if chk==0 then return Duel.IsExistingMatchingCard(c33330028.thfilter,tp,LOCATION_DECK,0,1,nil) end Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,e)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end end
function c33330028.thop(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) local tc=Duel.GetFirstTarget()
local g=Duel.SelectMatchingCard(tp,c33330028.thfilter,tp,LOCATION_DECK,0,1,1,nil) if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
if g:GetCount()>0 then Duel.Equip(tp,e:GetHandler(),tc)
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end end
end end
function c33330028.eqlimit(e,c) --Equip Limit
function cm.eqlimit(e,c)
return c:IsSetCard(0x556) return c:IsSetCard(0x556)
end end
function c33330028.filter(c) --Search
return c:IsFaceup() and c:IsSetCard(0x556) function cm.thfilter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end end
function c33330028.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and c33330028.filter(chkc) end return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
if chk==0 then return Duel.IsExistingTarget(c33330028.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c33330028.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end end
function c33330028.operation(e,tp,eg,ep,ev,re,r,rp) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=Duel.GetFirstTarget() if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Equip(tp,e:GetHandler(),tc) 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
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 --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP) e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c33330029.target) e1:SetTarget(cm.target)
e1:SetOperation(c33330029.operation) e1:SetOperation(cm.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--Def up --Equip Limit
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_EQUIP)
e4:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetValue(-500)
c:RegisterEffect(e4)
--atk
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330029,0)) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCategory(CATEGORY_ATKCHANGE) e2:SetCode(EFFECT_EQUIP_LIMIT)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EVENT_ATTACK_ANNOUNCE) e2:SetValue(cm.eqlimit)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(c33330029.ctcon)
e2:SetOperation(c33330029.ctop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--Equip limit --To Hand
local e3=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e4:SetDescription(aux.Stringid(m,0))
e3:SetCode(EFFECT_EQUIP_LIMIT) e4:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetValue(c33330029.eqlimit) e4:SetCode(EVENT_BATTLE_DAMAGE)
c:RegisterEffect(e3) e4:SetProperty(EFFECT_FLAG_DELAY)
--search e4:SetRange(LOCATION_SZONE)
local e6=Effect.CreateEffect(c) e4:SetCondition(cm.sccon)
e6:SetDescription(aux.Stringid(33330029,1)) e4:SetTarget(cm.sctg)
e6:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e4:SetOperation(cm.scop)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) c:RegisterEffect(e4)
e6:SetCode(EVENT_LEAVE_FIELD) --Search
e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) local e5=Effect.CreateEffect(c)
e6:SetCondition(c33330029.thcon) e5:SetDescription(aux.Stringid(m,0))
e6:SetTarget(c33330029.thtg) e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e6:SetOperation(c33330029.thop) e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
c:RegisterEffect(e6) 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 end
function c33330029.ctcon(e,tp,eg,ep,ev,re,r,rp) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local tc=e:GetHandler():GetEquipTarget() if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.filter(chkc) end
return Duel.GetAttacker()==tc and tc:GetBattleTarget() and tc:GetBattleTarget():IsControler(1-tp) and tc:GetBattleTarget():IsAttackAbove(1) 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 end
function c33330029.ctop(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetEquipTarget() local tc=Duel.GetFirstTarget()
local bc=tc:GetBattleTarget() if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
if e:GetHandler():IsRelateToEffect(e) and bc:IsControler(1-tp) and bc:IsRelateToBattle() then Duel.Equip(tp,e:GetHandler(),tc)
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)
end end
end end
function c33330029.thcon(e,tp,eg,ep,ev,re,r,rp) --Equip Limit
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) function cm.eqlimit(e,c)
return c:IsSetCard(0x556)
end end
function c33330029.thfilter(c) --To Hand
return c:IsSetCard(0x3556) and c:IsAbleToHand() function cm.scfilter(c)
return c:IsSetCard(0x556) and c:IsAbleToHand()
end end
function c33330029.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.sccon(e,tp,eg,ep,ev,re,r,rp)
if chk==0 then return Duel.IsExistingMatchingCard(c33330029.thfilter,tp,LOCATION_DECK,0,1,nil) end return ep~=tp and eg:GetFirst()==e:GetHandler():GetEquipTarget()
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) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end 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) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c33330029.thfilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,cm.scfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
end end
end end
function c33330029.eqlimit(e,c) --Search
return c:IsSetCard(0x556) function cm.thfilter(c)
return c:IsSetCard(0x3556) and c:IsAbleToHand()
end end
function c33330029.filter(c) function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return c:IsFaceup() and c:IsSetCard(0x556) return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end end
function c33330029.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and c33330029.filter(chkc) end if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
if chk==0 then return Duel.IsExistingTarget(c33330029.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
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)
end end
function c33330029.operation(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.Equip(tp,e:GetHandler(),tc) if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end end
end end
\ No newline at end of file
--深界探窟者 黎明卿 --深界探窟者 黎明卿
function c33330030.initial_effect(c) local m=33330030
--pendulum summon local cm=_G["c"..m]
function cm.initial_effect(c)
--Pendulum Summon
aux.EnablePendulumAttribute(c) aux.EnablePendulumAttribute(c)
--xyzlimit --Destroy
local eb=Effect.CreateEffect(c)
eb:SetType(EFFECT_TYPE_SINGLE)
eb:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
eb:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
eb:SetValue(c33330030.xyzval)
c:RegisterEffect(eb)
--destroy
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(33330030,0))
e5:SetCategory(CATEGORY_DESTROY+CATEGORY_TOHAND+CATEGORY_SEARCH)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetRange(LOCATION_PZONE)
e5:SetCountLimit(1)
e5:SetTarget(c33330030.destg)
e5:SetOperation(c33330030.desop)
c:RegisterEffect(e5)
--special
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(33330030,2))
e6:SetCategory(CATEGORY_SPECIAL_SUMMON)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_DESTROYED)
e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetTarget(c33330030.pentg)
e6:SetOperation(c33330030.penop)
c:RegisterEffect(e6)
--lv
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330030,3)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_PZONE)
e1:SetCountLimit(1) e1:SetCountLimit(1)
e1:SetCost(c33330030.lvcost) e1:SetTarget(cm.destg)
e1:SetTarget(c33330030.lvtg) e1:SetOperation(cm.desop)
e1:SetOperation(c33330030.lvop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--zxczxcvzxvzxvzxvzxvzvxzxvzxv --Self Destroy
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_DESTROY)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_PHASE+PHASE_STANDBY)
e2:SetRange(LOCATION_PZONE)
e2:SetCountLimit(1)
e2:SetTarget(cm.sdtg)
e2:SetOperation(cm.sdop)
c:RegisterEffect(e2)
--Xyz Limit
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetValue(cm.xyzval)
c:RegisterEffect(e3)
--Level 8
local e4=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e4:SetDescription(aux.Stringid(m,2))
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE) e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_PZONE) e4:SetRange(LOCATION_MZONE)
e4:SetCode(EVENT_ADJUST) e4:SetCountLimit(1)
e4:SetOperation(c33330030.check) e4:SetCost(cm.lvcost)
--c:RegisterEffect(e4) e4:SetTarget(cm.lvtg)
--self destroy e4:SetOperation(cm.lvop)
local evb2=Effect.CreateEffect(c) c:RegisterEffect(e4)
evb2:SetDescription(aux.Stringid(33330030,1)) --Special Summon
evb2:SetCategory(CATEGORY_DESTROY) local e5=Effect.CreateEffect(c)
evb2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e5:SetDescription(aux.Stringid(m,3))
evb2:SetCode(EVENT_PHASE+PHASE_STANDBY) e5:SetCategory(CATEGORY_SPECIAL_SUMMON)
evb2:SetRange(LOCATION_PZONE) e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
evb2:SetCountLimit(1) e5:SetCode(EVENT_DESTROYED)
evb2:SetTarget(c33330030.destg2) e5:SetProperty(EFFECT_FLAG_DELAY)
evb2:SetOperation(c33330030.desop2) e5:SetTarget(cm.sptg)
c:RegisterEffect(evb2) e5:SetOperation(cm.spop)
Duel.AddCustomActivityCounter(33330030,ACTIVITY_SPSUMMON,c33330030.counterfilter) c:RegisterEffect(e5)
end Duel.AddCustomActivityCounter(m,ACTIVITY_SPSUMMON,cm.counterfilter)
function c33330030.gfilter(c,g) end
return not g:IsContains(c) --Destroy
end function cm.thfilter(c)
function c33330030.check(e,tp,eg,ep,ev,re,r,rp) return c:IsCode(m) and c:IsAbleToHand() and (c:IsFaceup() or c:IsLocation(LOCATION_DECK))
local c=e:GetHandler() end
local cg=Duel.GetMatchingGroup(nil,tp,LOCATION_PZONE,0,c) function cm.desfilter(c)
local fid=c:GetFieldID() return c:IsFaceup() and c:IsType(TYPE_SPELL) and c:IsType(TYPE_CONTINUOUS)
if cg:GetCount()<=0 then return end end
for tc in aux.Next(cg) do function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local rfid=tc:GetFieldID() if chk==0 then return Duel.IsExistingMatchingCard(cm.desfilter,tp,LOCATION_ONFIELD,0,1,nil)
if rfid>fid then and Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil) end
Debug.Message("111") Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,tp,LOCATION_ONFIELD)
Duel.RaiseSingleEvent(c,EVENT_CUSTOM+33330030,e,0,0,0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_EXTRA)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,cm.desfilter,tp,LOCATION_ONFIELD,0,1,1,nil)
if g:GetCount()>0 and Duel.Destroy(g,REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK+LOCATION_EXTRA,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 end
end end
function c33330030.xyzval(e,c) --Self Destroy
function cm.sdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDestructable(e) and Duel.GetTurnPlayer()==tp end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
end
function cm.sdop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
end
--Xyz Limit
function cm.xyzval(e,c)
if not c then return false end if not c then return false end
return not c:IsSetCard(0x556) return not c:IsSetCard(0x556)
end end
function c33330030.counterfilter(c) --Level 8
if not c:IsSummonType(SUMMON_TYPE_XYZ) then return true end function cm.counterfilter(c)
return c:IsSetCard(0x556) return not c:IsSummonType(SUMMON_TYPE_XYZ) or c:IsSetCard(0x556)
end end
function c33330030.lvcost(e,tp,eg,ep,ev,re,r,rp,chk) function cm.lvcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetCustomActivityCount(33330030,tp,ACTIVITY_SPSUMMON)==0 end if chk==0 then return Duel.GetCustomActivityCount(m,tp,ACTIVITY_SPSUMMON)==0 end
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) 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:SetTargetRange(1,0)
e1:SetTarget(c33330030.splimit) e1:SetTarget(cm.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function c33330030.splimit(e,c,sump,sumtype,sumpos,targetp,se) function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se)
if sumtype~=SUMMON_TYPE_XYZ then return false end return sumtype==SUMMON_TYPE_XYZ and c:IsSetCard(0x556)
return c:IsSetCard(0x556)
end end
function c33330030.lvtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.lvfilter(c)
if chk==0 then return Duel.IsExistingMatchingCard(c33330030.lvfilter,tp,LOCATION_MZONE,0,1,nil) end return c:IsFaceup() and c:IsLevelAbove(1) and not c:IsLevel(8)
end end
function c33330030.lvfilter(c) function cm.lvtg(e,tp,eg,ep,ev,re,r,rp,chk)
return c:IsFaceup() and c:GetLevel()>0 and c:GetLevel()~=8 if chk==0 then return Duel.IsExistingMatchingCard(cm.lvfilter,tp,LOCATION_MZONE,0,1,nil) end
end end
function c33330030.lvop(e,tp,eg,ep,ev,re,r,rp) function cm.lvop(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.GetMatchingGroup(c33330030.lvfilter,tp,LOCATION_MZONE,0,nil) local sg=Duel.GetMatchingGroup(cm.lvfilter,tp,LOCATION_MZONE,0,nil)
if sg:GetCount()<=0 then return end local tc=sg:GetFirst()
for tc in aux.Next(sg) do while tc do
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_LEVEL) e1:SetCode(EFFECT_CHANGE_LEVEL)
e1:SetValue(8) e1:SetValue(8)
e1:SetReset(RESET_EVENT+0x1ff0000) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1) c:RegisterEffect(e1)
tc=sg:GetNext()
end end
end end
function c33330030.destg2(e,tp,eg,ep,ev,re,r,rp,chk) --Special Summon
if chk==0 then return e:GetHandler():IsDestructable(e) and Duel.GetTurnPlayer()==tp end function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0) if chk==0 then return Duel.GetMZoneCount(tp)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
end
function c33330030.desop2(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
end
function c33330030.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end end
function c33330030.penop(e,tp,eg,ep,ev,re,r,rp) function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() if not e:GetHandler():IsRelateToEffect(e) then return end
if not c:IsRelateToEffect(e) then return end Duel.SpecialSummon(e:GetHandler(),0,tp,tp,false,false,POS_FACEUP)
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function c33330030.thfilter(c)
return c:IsCode(33330030) and c:IsAbleToHand() and (c:IsFaceup() or not c:IsLocation(LOCATION_REMOVED))
end
function c33330030.desfilter(c)
return c:IsFaceup() and c:IsType(TYPE_SPELL) and c:IsType(TYPE_CONTINUOUS)
end
function c33330030.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c33330030.desfilter,tp,LOCATION_ONFIELD,0,1,nil)
and Duel.IsExistingMatchingCard(c33330030.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,tp,LOCATION_ONFIELD)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE+LOCATION_REMOVED)
end
function c33330030.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,c33330030.desfilter,tp,LOCATION_ONFIELD,0,1,1,nil)
if g:GetCount()>0 and Duel.Destroy(g,REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c33330030.thfilter),tp,LOCATION_DECK+LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
end end
\ No newline at end of file
--深界之怒-火葬炮 --深界之怒-火葬炮
function c33330031.initial_effect(c) local m=33330031
local cm=_G["c"..m]
cm.check={33330028} --发 动 要 求
function cm.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE) e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetHintTiming(0,TIMING_MAIN_END)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(c33330031.condition) e1:SetCondition(cm.condition)
e1:SetTarget(c33330031.target) e1:SetTarget(cm.target)
e1:SetOperation(c33330031.activate) e1:SetOperation(cm.activate)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--to grave --To Grave
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330031,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_TOGRAVE) e2:SetCategory(CATEGORY_TOGRAVE)
e2:SetType(EFFECT_TYPE_IGNITION) e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE) e2:SetRange(LOCATION_GRAVE)
e2:SetCost(aux.bfgcost) e2:SetCost(aux.bfgcost)
e2:SetTarget(c33330031.tgtg) e2:SetTarget(cm.tgtg)
e2:SetOperation(c33330031.tgop) e2:SetOperation(cm.tgop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c33330031.tgfilter(c) cm.card_code_list=cm.check
return c:IsSetCard(0x556) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave() --Activate
end function cm.cfilter(c)
function c33330031.tgtg(e,tp,eg,ep,ev,re,r,rp,chk) return c:IsCode(cm.check[1]) and c:IsFaceup()
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)
end end
function c33330031.cfilter(c) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return c:IsCode(33330028) and c:IsFaceup() return Duel.GetCurrentPhase()==PHASE_MAIN2 and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
end 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 if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)>0 end
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE) local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,g:GetCount(),0,LOCATION_MZONE) Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,g:GetCount(),0,LOCATION_MZONE)
end 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) local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_RULE) Duel.SendtoGrave(g,REASON_RULE)
...@@ -56,10 +47,25 @@ function c33330031.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,10 +47,25 @@ function c33330031.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CANNOT_ACTIVATE) e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(0,1) e1:SetTargetRange(0,1)
e1:SetValue(c33330031.actlimit) e1:SetValue(cm.actlimit)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
end end
function c33330031.actlimit(e,re,tp) function cm.actlimit(e,re,tp)
return re:IsActiveType(TYPE_MONSTER) and not re:GetHandler():IsImmuneToEffect(e) 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 end
\ No newline at end of file
--深界庇护所 娜娜奇的小屋 --深界庇护所 娜娜奇的小屋
function c33330032.initial_effect(c) local m=33330032
--Activate(effect) local cm=_G["c"..m]
local e4=Effect.CreateEffect(c) cm.counter=0x1556 --指 示 物
e4:SetCategory(CATEGORY_RECOVER) cm.recover=500 --回 复 倍 数
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL+EFFECT_FLAG_PLAYER_TARGET) function cm.initial_effect(c)
e4:SetType(EFFECT_TYPE_ACTIVATE) --Activate
e4:SetCode(EVENT_CHAINING) local e1=Effect.CreateEffect(c)
e4:SetCondition(c33330032.condition) e1:SetCategory(CATEGORY_RECOVER)
e4:SetTarget(c33330032.target) e1:SetType(EFFECT_TYPE_ACTIVATE)
e4:SetOperation(c33330032.activate) e1:SetCode(EVENT_CHAINING)
c:RegisterEffect(e4) e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL+EFFECT_FLAG_PLAYER_TARGET)
--tohand e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--To Hand
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330032,0)) e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_TOHAND) e2:SetCategory(CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_TO_GRAVE) e2:SetCode(EVENT_TO_GRAVE)
e2:SetCondition(c33330032.thcon) e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetTarget(c33330032.thtg) e2:SetCondition(cm.thcon)
e2:SetOperation(c33330032.thop) e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c33330032.thcon(e,tp,eg,ep,ev,re,r,rp) --Activate
return e:GetHandler():IsReason(REASON_EFFECT) function cm.condition(e,tp,eg,ep,ev,re,r,rp)
end
function c33330032.thfilter(c)
return c:IsSetCard(0x556) and c:IsAbleToHand()
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)
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_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
function c33330032.condition(e,tp,eg,ep,ev,re,r,rp)
return re:IsHasCategory(CATEGORY_DESTROY) return re:IsHasCategory(CATEGORY_DESTROY)
end end
function c33330032.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.GetCounter(tp,1,0,0x1019)>0 end if chk==0 then return Duel.GetCounter(tp,1,0,cm.counter)>0 end
local ct=Duel.GetCounter(tp,1,0,0x1019) local ct=Duel.GetCounter(tp,1,0,cm.counter)
Duel.SetTargetPlayer(tp) Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(ct*500) Duel.SetTargetParam(ct*cm.recover)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,ct*500) Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,ct*cm.recover)
end end
function c33330032.activate(e,tp,eg,ep,ev,re,r,rp) function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetCounter(tp,1,0,0x1019) local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
if ct>0 and Duel.Recover(tp,ct*500,REASON_EFFECT)~=0 then 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()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CHANGE_DAMAGE) e1:SetCode(EFFECT_CHANGE_DAMAGE)
...@@ -66,3 +55,21 @@ function c33330032.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -66,3 +55,21 @@ function c33330032.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.RegisterEffect(e2,tp) Duel.RegisterEffect(e2,tp)
end end
end end
--To Hand
function cm.thfilter(c)
return c:IsSetCard(0x556) and c:IsAbleToHand()
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_EFFECT)
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
--深界の生骸 米蒂 --深界の生骸 米蒂
function c33330033.initial_effect(c) local m=33330033
--xyz summon local cm=_G["c"..m]
aux.AddXyzProcedure(c,nil,4,2) cm.counter=0x1556 --指 示 物
cm.atk=700 --攻 击 力
function cm.initial_effect(c)
c:EnableReviveLimit() c:EnableReviveLimit()
--remove --Xyz Summon
aux.AddXyzProcedure(c,nil,4,2)
--Destroy
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(33330033,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_COUNTER) e1:SetCategory(CATEGORY_DESTROY+CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetTarget(c33330033.dtg) e1:SetTarget(cm.destg)
e1:SetOperation(c33330033.dop) e1:SetOperation(cm.desop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--attackup --Atk Up
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_UPDATE_ATTACK) e2:SetCondition(cm.atkcon)
e2:SetCondition(c33330033.acon) e2:SetValue(cm.atkval)
e2:SetValue(c33330033.attackup)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--Special Summon --Special Summon
local e4=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(33330033,1)) e3:SetDescription(aux.Stringid(m,1))
e4:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetCode(EVENT_LEAVE_FIELD)
e4:SetCode(EVENT_LEAVE_FIELD) e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e4:SetCondition(c33330033.sumcon) e3:SetCondition(cm.spcon)
e4:SetTarget(c33330033.sumtg) e3:SetTarget(cm.sptg)
e4:SetOperation(c33330033.sumop) e3:SetOperation(cm.spop)
c:RegisterEffect(e4) c:RegisterEffect(e3)
end
function c33330033.sumcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function c33330033.filter(c,e,tp)
return c:IsSetCard(0x556) and c:IsRankBelow(6) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,false,true)
end
function c33330033.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCountFromEx(tp)>0
and Duel.IsExistingMatchingCard(c33330033.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)
end
function c33330033.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,c33330033.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))
end
end
function c33330033.acon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsSetCard,1,nil,0x557)
end end
function c33330033.attackup(e,c) --Destroy
return c:GetCounter(0x1019)*700 function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function c33330033.dtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,0,nil,TYPE_SPELL+TYPE_TRAP) local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,0,nil,TYPE_SPELL+TYPE_TRAP)
if chk==0 then return g:GetCount()>0 and e:GetHandler():IsCanAddCounter(0x1019,g:GetCount()) end if chk==0 then return g:GetCount()>0 and e:GetHandler():IsCanAddCounter(cm.counter,g:GetCount()) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,g:GetCount(),tp,0) Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,g:GetCount(),tp,0)
end end
function c33330033.dop(e,tp,eg,ep,ev,re,r,rp) function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,0,nil,TYPE_SPELL+TYPE_TRAP) local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,0,nil,TYPE_SPELL+TYPE_TRAP)
if g:GetCount()>0 then if g:GetCount()>0 then
local ct=Duel.Destroy(g,REASON_EFFECT) local ct=Duel.Destroy(g,REASON_EFFECT)
local c=e:GetHandler()
if ct>0 and c:IsRelateToEffect(e) and c:IsFaceup() then if ct>0 and c:IsRelateToEffect(e) and c:IsFaceup() then
c:AddCounter(0x1019,ct) c:AddCounter(cm.counter,ct)
end end
end end
end end
--Atk Up
function cm.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsSetCard,1,nil,0x557)
end
function cm.atkval(e,c)
return c:GetCounter(cm.counter)*cm.atk
end
--Special Summon
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x556) and c:IsRankBelow(6) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP)
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)
local c=e:GetHandler()
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,c)
end
end
\ No newline at end of file
--深界遗物 探窟者的白笛 --深界遗物 探窟者的白笛
function c33330034.initial_effect(c) local m=33330034
local cm=_G["c"..m]
cm.counter=0x1019 --指 示 物
cm.atk=500 --攻 击 力
function cm.initial_effect(c)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP) e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c33330034.target) e1:SetTarget(cm.target)
e1:SetOperation(c33330034.operation) e1:SetOperation(cm.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--Equip limit --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(c33330034.eqlimit)
c:RegisterEffect(e3)
--atk
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(33330034,0)) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCategory(CATEGORY_COUNTER+CATEGORY_SEARCH+CATEGORY_TOHAND) e2:SetCode(EFFECT_EQUIP_LIMIT)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EVENT_ATTACK_ANNOUNCE) e2:SetValue(cm.eqlimit)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(c33330034.ctcon)
e2:SetTarget(c33330034.cttg)
e2:SetOperation(c33330034.ctop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--search --Atk Up
local e6=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(33330034,1)) e3:SetType(EFFECT_TYPE_EQUIP)
e6:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e3:SetCode(EFFECT_UPDATE_ATTACK)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetValue(cm.atkval)
e6:SetCode(EVENT_LEAVE_FIELD) c:RegisterEffect(e3)
e6:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) --Immune
e6:SetCondition(c33330034.thcon) local e4=Effect.CreateEffect(c)
e6:SetTarget(c33330034.thtg) e4:SetType(EFFECT_TYPE_EQUIP)
e6:SetOperation(c33330034.thop) e4:SetCode(EFFECT_IMMUNE_EFFECT)
c:RegisterEffect(e6) e4:SetValue(cm.efilter)
end c:RegisterEffect(e4)
function c33330034.thcon(e,tp,eg,ep,ev,re,r,rp) --Search
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) and e:GetHandler():IsPreviousPosition(POS_FACEUP) 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 end
function c33330034.thfilter(c) --Activate
return c:IsSetCard(0x3556) and c:IsAbleToHand() function cm.filter(c,e)
return c:IsFaceup() and cm.eqlimit(e,c)
end end
function c33330034.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(c33330034.thfilter,tp,LOCATION_DECK,0,1,nil) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.filter(chkc) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) 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 end
function c33330034.thop(e,tp,eg,ep,ev,re,r,rp) function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) local tc=Duel.GetFirstTarget()
local g=Duel.SelectMatchingCard(tp,c33330034.thfilter,tp,LOCATION_DECK,0,1,1,nil) if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
if g:GetCount()>0 then Duel.Equip(tp,e:GetHandler(),tc)
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end end
end end
function c33330034.ctcon(e,tp,eg,ep,ev,re,r,rp) --Equip Limit
local tc=e:GetHandler():GetEquipTarget() function cm.eqlimit(e,c)
return Duel.GetAttacker()==tc return c:IsSetCard(0x556)
end end
function c33330034.thfilter2(c) --Atk Up
return c:IsSetCard(0x556) and c:IsType(TYPE_EQUIP) and c:IsAbleToHand() function cm.atkval(e,c)
return Duel.GetCounter(e:GetHandlerPlayer(),1,0,cm.counter)*cm.atk
end end
function c33330034.cttg(e,tp,eg,ep,ev,re,r,rp,chk) --Immune
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) function cm.efilter(e,te)
if chk==0 then return tc and tc:IsCanAddCounter(0x1019,2) and Duel.IsExistingMatchingCard(c33330034.thfilter2,tp,LOCATION_DECK,0,1,nil) end return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:GetOwner()~=e:GetOwner() and te:IsActiveType(TYPE_SPELL+TYPE_TRAP)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,tc,2,tp,0)
end end
function c33330034.ctop(e,tp,eg,ep,ev,re,r,rp) --Search
local tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5) function cm.thfilter(c)
if tc and tc:IsFaceup() and tc:IsCanAddCounter(0x1019,2) then return c:IsSetCard(0x3556) and c:IsAbleToHand()
tc:AddCounter(0x1019,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c33330034.thfilter2,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
end
function c33330034.eqlimit(e,c)
return c:IsSetCard(0x556)
end end
function c33330034.filter(c) function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return c:IsFaceup() and c:IsSetCard(0x556) return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end end
function c33330034.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chkc then return chkc:GetLocation()==LOCATION_MZONE and c33330034.filter(chkc) end if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
if chk==0 then return Duel.IsExistingTarget(c33330034.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c33330034.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end end
function c33330034.operation(e,tp,eg,ep,ev,re,r,rp) function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
if e:GetHandler():IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.Equip(tp,e:GetHandler(),tc) if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,g)
end end
end end
\ No newline at end of file
...@@ -76,11 +76,11 @@ end ...@@ -76,11 +76,11 @@ end
function cm.indtg(e,c) function cm.indtg(e,c)
return c:IsFaceup() and c:IsSetCard(0x556) return c:IsFaceup() and c:IsSetCard(0x556)
end end
function cm.indval1(e,re,rp) function cm.indval1(e,re)
return aux.indoval(e,re,rp) and re:IsActiveType(TYPE_SPELL) return aux.indoval(e,re) and re:IsActiveType(TYPE_SPELL)
end end
function cm.indval2(e,re,rp) function cm.indval2(e,re)
return aux.indoval(e,re,rp) and re:IsActiveType(TYPE_MONSTER) return aux.indoval(e,re) and re:IsActiveType(TYPE_MONSTER)
end end
function cm.efilter(e,te) function cm.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:IsActiveType(TYPE_TRAP) return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:IsActiveType(TYPE_TRAP)
......
...@@ -58,7 +58,7 @@ function cm.initial_effect(c) ...@@ -58,7 +58,7 @@ function cm.initial_effect(c)
.e("SetCode",EFFECT_DIRECT_ATTACK) .e("SetCode",EFFECT_DIRECT_ATTACK)
.Return()).c("RegisterEffect",iFunc(c) .Return()).c("RegisterEffect",iFunc(c)
.e("SetDescription",aux.Stringid(m,1)) .e("SetDescription",aux.Stringid(m,1))
.e("SetCategory",CATEGORY_SPECIAL_SUMMON) .e("SetCategory",CATEGORY_TOHAND)
.e("SetType",EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) .e("SetType",EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
.e("SetCode",EVENT_BATTLE_DAMAGE) .e("SetCode",EVENT_BATTLE_DAMAGE)
.e("SetCountLimit",1,m) .e("SetCountLimit",1,m)
...@@ -71,14 +71,15 @@ function cm.initial_effect(c) ...@@ -71,14 +71,15 @@ function cm.initial_effect(c)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk) .e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp) end and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE) end) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE) end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp) .e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SendtoHand(g,tp,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end end) end end)
.Return()) .Return())
end end
...@@ -90,7 +91,7 @@ function cm.disfilter(c,g) ...@@ -90,7 +91,7 @@ function cm.disfilter(c,g)
return g:IsContains(c) return g:IsContains(c)
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsCode(m+1) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsCode(m+1) and c:IsAbleToHand()
end end
function iFunc(c,x) function iFunc(c,x)
local __this = (aux.GetValueType(c) == "Card" and {(x == nil and {Effect.CreateEffect(c)} or {x})[1]} or {x})[1] local __this = (aux.GetValueType(c) == "Card" and {(x == nil and {Effect.CreateEffect(c)} or {x})[1]} or {x})[1]
......
...@@ -53,7 +53,7 @@ function cm.initial_effect(c) ...@@ -53,7 +53,7 @@ function cm.initial_effect(c)
.e("SetCode",EFFECT_DIRECT_ATTACK) .e("SetCode",EFFECT_DIRECT_ATTACK)
.Return()).c("RegisterEffect",iFunc(c) .Return()).c("RegisterEffect",iFunc(c)
.e("SetDescription",aux.Stringid(m,1)) .e("SetDescription",aux.Stringid(m,1))
.e("SetCategory",CATEGORY_SPECIAL_SUMMON) .e("SetCategory",CATEGORY_TOHAND)
.e("SetType",EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) .e("SetType",EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
.e("SetCode",EVENT_BATTLE_DAMAGE) .e("SetCode",EVENT_BATTLE_DAMAGE)
.e("SetCountLimit",1,m) .e("SetCountLimit",1,m)
...@@ -63,17 +63,18 @@ function cm.initial_effect(c) ...@@ -63,17 +63,18 @@ function cm.initial_effect(c)
Duel.SendtoHand(c,nil,REASON_COST) end) Duel.SendtoHand(c,nil,REASON_COST) end)
.e("SetCondition",function(e,tp,eg,ep,ev,re,r,rp) .e("SetCondition",function(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp end) return ep~=tp end)
.e("SetTarget",function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk) .e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp) end and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE) end) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE) end)
.e("SetOperation",(e,tp,eg,ep,ev,re,r,rp) .e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SendtoHand(g,tp,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end end) end end)
.Return()) .Return())
end end
...@@ -85,7 +86,7 @@ function cm.disfilter(c,g) ...@@ -85,7 +86,7 @@ function cm.disfilter(c,g)
return g:IsContains(c) return g:IsContains(c)
end end
function cm.spfilter(c,e,tp) function cm.spfilter(c,e,tp)
return c:IsCode(m-1) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsCode(m-1) and c:IsAbleToHand()
end end
function iFunc(c,x) function iFunc(c,x)
local __this = (aux.GetValueType(c) == "Card" and {(x == nil and {Effect.CreateEffect(c)} or {x})[1]} or {x})[1] local __this = (aux.GetValueType(c) == "Card" and {(x == nil and {Effect.CreateEffect(c)} or {x})[1]} or {x})[1]
......
...@@ -2,18 +2,18 @@ ...@@ -2,18 +2,18 @@
local m=69696918 local m=69696918
local cm=_G["c"..m] local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddLinkProcedure(c,nil,2,99,cm.lcheck)
c:EnableReviveLimit() c:EnableReviveLimit()
--extra link local e01=Effect.CreateEffect(c)
local e0=Effect.CreateEffect(c) e01:SetDescription(1166)
e0:SetType(EFFECT_TYPE_FIELD) e01:SetType(EFFECT_TYPE_FIELD)
e0:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE) e01:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetRange(LOCATION_EXTRA) e01:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e0:SetTarget(cm.mattg) e01:SetRange(LOCATION_EXTRA)
e0:SetCode(EFFECT_EXTRA_LINK_MATERIAL) e01:SetCondition(cm.LinkCondition(aux.TRUE,2,3,cm.gf))
e0:SetTargetRange(LOCATION_EXTRA,0) e01:SetTarget(cm.LinkTarget(aux.TRUE,2,3,cm.gf))
e0:SetValue(cm.matval) e01:SetOperation(aux.LinkOperation(aux.TRUE,2,3,cm.gf))
c:RegisterEffect(e0) e01:SetValue(SUMMON_TYPE_LINK)
c:RegisterEffect(e01)
--destroy --destroy
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
...@@ -38,15 +38,86 @@ function cm.initial_effect(c) ...@@ -38,15 +38,86 @@ function cm.initial_effect(c)
e2:SetOperation(cm.spop) e2:SetOperation(cm.spop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function cm.mattg(e,c) function cm.gf(g,lc)
return c:IsRace(RACE_SPELLCASTER) and c:IsFaceup() return g:IsExists(Card.IsRace,1,nil,RACE_SPELLCASTER)
end end
function cm.matval(e,c,mg) function cm.LConditionFilter(c,f,lc)
return c:IsCode(69696918) if c:IsLocation(LOCATION_EXTRA) then return c:IsCanBeLinkMaterial(lc) and (not f or f(c)) and c:IsFaceup() end
return c:IsCanBeLinkMaterial(lc) and (not f or f(c))
end end
function cm.lcheck(g,lc) function cm.GetLinkMaterials(tp,f,lc)
return g:IsExists(Card.IsRace,1,nil,RACE_SPELLCASTER) local mg=Duel.GetMatchingGroup(cm.LConditionFilter,tp,LOCATION_MZONE+LOCATION_EXTRA,0,nil,f,lc)
local mg2=Duel.GetMatchingGroup(aux.LExtraFilter,tp,LOCATION_HAND+LOCATION_SZONE,LOCATION_ONFIELD,nil,f,lc)
if mg2:GetCount()>0 then mg:Merge(mg2) end
return mg
end
function cm.LinkCondition(f,minc,maxc,gf)
return
function(e,c)
if c==nil then return true end
if c:IsType(TYPE_PENDULUM) and c:IsFaceup() then return false end
local tp=c:GetControler()
local mg=cm.GetLinkMaterials(tp,f,c)
local sg=aux.GetMustMaterialGroup(tp,EFFECT_MUST_BE_LMATERIAL)
if sg:IsExists(aux.MustMaterialCounterFilter,1,nil,mg) then return false end
local ct=sg:GetCount()
if ct>maxc then return false end
return cm.LCheckGoal(tp,sg,c,minc,ct,gf)
or mg:IsExists(cm.LCheckRecursive,1,sg,tp,sg,mg,c,ct,minc,maxc,gf)
end
end end
--
function cm.LCheckGoal(tp,sg,lc,minc,ct,gf)
return ct>=minc and sg:CheckWithSumEqual(aux.GetLinkCount,lc:GetLink(),ct,ct) and Duel.GetLocationCountFromEx(tp,tp,sg,lc)>0 and (not gf or gf(sg))
end
function cm.LCheckRecursive(c,tp,sg,mg,lc,ct,minc,maxc,gf)
sg:AddCard(c)
ct=ct+1
local res=cm.LCheckGoal(tp,sg,lc,minc,ct,gf)
or (ct<maxc and mg:IsExists(cm.LCheckRecursive,1,sg,tp,sg,mg,lc,ct,minc,maxc,gf))
sg:RemoveCard(c)
ct=ct-1
return res
end
function cm.LinkTarget(f,minc,maxc,gf)
return
function(e,tp,eg,ep,ev,re,r,rp,chk,c)
local mg=cm.GetLinkMaterials(tp,f,c)
local bg=aux.GetMustMaterialGroup(tp,EFFECT_MUST_BE_LMATERIAL)
if #bg>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LMATERIAL)
bg:Select(tp,#bg,#bg,nil)
end
local sg=Group.CreateGroup()
sg:Merge(bg)
local finish=false
while #sg<maxc do
finish=cm.LCheckGoal(tp,sg,c,minc,#sg,gf)
local cg=mg:Filter(cm.LCheckRecursive,sg,tp,sg,mg,c,#sg,minc,maxc,gf)
if #cg==0 then break end
local cancel=not finish
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_LMATERIAL)
local tc=cg:SelectUnselect(sg,tp,finish,cancel,minc,maxc)
if not tc then break end
if not bg:IsContains(tc) then
if not sg:IsContains(tc) then
sg:AddCard(tc)
if #sg==maxc then finish=true end
else
sg:RemoveCard(tc)
end
elseif #bg>0 and #sg<=#bg then
return false
end
end
if finish then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end if chkc then return false end
if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_ONFIELD,0,1,nil) if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_ONFIELD,0,1,nil)
...@@ -65,10 +136,13 @@ function cm.desop(e,tp,eg,ep,ev,re,r,rp) ...@@ -65,10 +136,13 @@ function cm.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(tg,REASON_EFFECT) Duel.Destroy(tg,REASON_EFFECT)
end end
end end
function cm.filter22(c,tp)
return c:GetPreviousControler()==tp and c:IsReason(REASON_BATTLE+REASON_EFFECT) and c:IsPreviousLocation(LOCATION_ONFIELD)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp) function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local sg=eg:Filter(Card.IsControler,e:GetHandler(),tp) local sg=eg:Filter(cm.filter22,e:GetHandler(),tp)
local tc=sg:GetFirst() local tc=sg:GetFirst()
if sg:GetCount()==1 and tc:IsReason(REASON_BATTLE+REASON_EFFECT) and tc:IsPreviousLocation(LOCATION_MZONE) and tc:GetControler()==tp then if sg:GetCount()==1 then
e:SetLabel(tc:GetPreviousRaceOnField()) e:SetLabel(tc:GetPreviousRaceOnField())
return true return true
else return false end else return false end
......
...@@ -6,11 +6,11 @@ function cm.initial_effect(c) ...@@ -6,11 +6,11 @@ function cm.initial_effect(c)
--spsummon --spsummon
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DISABLE) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND) e1:SetRange(LOCATION_HAND)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END) e1:SetHintTiming(0,TIMING_MAIN_END)
e1:SetCountLimit(1,m) e1:SetCountLimit(1,m)
e1:SetCondition(Tenka.EinMainCon) e1:SetCondition(Tenka.EinMainCon)
e1:SetTarget(cm.sptg) e1:SetTarget(cm.sptg)
......
...@@ -4,7 +4,7 @@ local cm=_G["c"..m] ...@@ -4,7 +4,7 @@ local cm=_G["c"..m]
function cm.initial_effect(c) function cm.initial_effect(c)
--fusion material --fusion material
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddFusionProcCodeFunRep(c,81006008,aux.FilterBoolFunction(Card.IsFusionType,TYPE_PENDULUM),1,63,true,true) aux.AddFusionProcCodeFunRep(c,81011026,aux.FilterBoolFunction(Card.IsFusionType,TYPE_PENDULUM),1,63,true,true)
--atk --atk
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
......
...@@ -4,8 +4,9 @@ function c9910214.initial_effect(c) ...@@ -4,8 +4,9 @@ function c9910214.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_ATKCHANGE) e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP+TIMINGS_CHECK_MONSTER)
e1:SetCondition(c9910214.condition) e1:SetCondition(c9910214.condition)
e1:SetTarget(c9910214.target) e1:SetTarget(c9910214.target)
e1:SetOperation(c9910214.activate) e1:SetOperation(c9910214.activate)
......
...@@ -41,9 +41,9 @@ end ...@@ -41,9 +41,9 @@ end
function c9910220.lktg(e,tp,eg,ep,ev,re,r,rp,chk) function c9910220.lktg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c9910220.lkfilter(chkc) and chkc~=c end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c9910220.lkfilter(chkc) and chkc~=c end
if chk==0 then return Duel.IsExistingTarget(c9910220.lkfilter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingTarget(c9910220.lkfilter,tp,LOCATION_MZONE,0,1,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c9910220.lkfilter,tp,LOCATION_MZONE,0,1,1,nil) Duel.SelectTarget(tp,c9910220.lkfilter,tp,LOCATION_MZONE,0,1,1,c)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
function c9910220.lkop(e,tp,eg,ep,ev,re,r,rp) function c9910220.lkop(e,tp,eg,ep,ev,re,r,rp)
......
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