Commit d525b981 authored by REIKAI's avatar REIKAI 💬

update 01.08

parent dcf69eca
No preview for this file type
expansions/pics/20000050.jpg

39.4 KB | W: | H:

expansions/pics/20000050.jpg

76.2 KB | W: | H:

expansions/pics/20000050.jpg
expansions/pics/20000050.jpg
expansions/pics/20000050.jpg
expansions/pics/20000050.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700410.jpg

14.7 KB | W: | H:

expansions/pics/35700410.jpg

52.6 KB | W: | H:

expansions/pics/35700410.jpg
expansions/pics/35700410.jpg
expansions/pics/35700410.jpg
expansions/pics/35700410.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700411.jpg

14.5 KB | W: | H:

expansions/pics/35700411.jpg

52.4 KB | W: | H:

expansions/pics/35700411.jpg
expansions/pics/35700411.jpg
expansions/pics/35700411.jpg
expansions/pics/35700411.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700412.jpg

13.3 KB | W: | H:

expansions/pics/35700412.jpg

48.4 KB | W: | H:

expansions/pics/35700412.jpg
expansions/pics/35700412.jpg
expansions/pics/35700412.jpg
expansions/pics/35700412.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700413.jpg

13.7 KB | W: | H:

expansions/pics/35700413.jpg

49.4 KB | W: | H:

expansions/pics/35700413.jpg
expansions/pics/35700413.jpg
expansions/pics/35700413.jpg
expansions/pics/35700413.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700414.jpg

13.9 KB | W: | H:

expansions/pics/35700414.jpg

50.1 KB | W: | H:

expansions/pics/35700414.jpg
expansions/pics/35700414.jpg
expansions/pics/35700414.jpg
expansions/pics/35700414.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700415.jpg

14.1 KB | W: | H:

expansions/pics/35700415.jpg

50.2 KB | W: | H:

expansions/pics/35700415.jpg
expansions/pics/35700415.jpg
expansions/pics/35700415.jpg
expansions/pics/35700415.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700416.jpg

11.9 KB | W: | H:

expansions/pics/35700416.jpg

45.1 KB | W: | H:

expansions/pics/35700416.jpg
expansions/pics/35700416.jpg
expansions/pics/35700416.jpg
expansions/pics/35700416.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700417.jpg

13.9 KB | W: | H:

expansions/pics/35700417.jpg

52.7 KB | W: | H:

expansions/pics/35700417.jpg
expansions/pics/35700417.jpg
expansions/pics/35700417.jpg
expansions/pics/35700417.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700418.jpg

14 KB | W: | H:

expansions/pics/35700418.jpg

50.6 KB | W: | H:

expansions/pics/35700418.jpg
expansions/pics/35700418.jpg
expansions/pics/35700418.jpg
expansions/pics/35700418.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700419.jpg

13.6 KB | W: | H:

expansions/pics/35700419.jpg

50.2 KB | W: | H:

expansions/pics/35700419.jpg
expansions/pics/35700419.jpg
expansions/pics/35700419.jpg
expansions/pics/35700419.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/35700420.jpg

12 KB | W: | H:

expansions/pics/35700420.jpg

44.5 KB | W: | H:

expansions/pics/35700420.jpg
expansions/pics/35700420.jpg
expansions/pics/35700420.jpg
expansions/pics/35700420.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/50218149.jpg

15.4 KB | W: | H:

expansions/pics/50218149.jpg

79 KB | W: | H:

expansions/pics/50218149.jpg
expansions/pics/50218149.jpg
expansions/pics/50218149.jpg
expansions/pics/50218149.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/50218150.jpg

17.6 KB | W: | H:

expansions/pics/50218150.jpg

75 KB | W: | H:

expansions/pics/50218150.jpg
expansions/pics/50218150.jpg
expansions/pics/50218150.jpg
expansions/pics/50218150.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/50221200.jpg

91.3 KB | W: | H:

expansions/pics/50221200.jpg

91.3 KB | W: | H:

expansions/pics/50221200.jpg
expansions/pics/50221200.jpg
expansions/pics/50221200.jpg
expansions/pics/50221200.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/50221220.jpg

60.1 KB | W: | H:

expansions/pics/50221220.jpg

60.2 KB | W: | H:

expansions/pics/50221220.jpg
expansions/pics/50221220.jpg
expansions/pics/50221220.jpg
expansions/pics/50221220.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/50221225.jpg

68.8 KB | W: | H:

expansions/pics/50221225.jpg

68.9 KB | W: | H:

expansions/pics/50221225.jpg
expansions/pics/50221225.jpg
expansions/pics/50221225.jpg
expansions/pics/50221225.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/67200403.jpg

48.3 KB | W: | H:

expansions/pics/67200403.jpg

51.5 KB | W: | H:

expansions/pics/67200403.jpg
expansions/pics/67200403.jpg
expansions/pics/67200403.jpg
expansions/pics/67200403.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/71400058.jpg

49.4 KB | W: | H:

expansions/pics/71400058.jpg

41.6 KB | W: | H:

expansions/pics/71400058.jpg
expansions/pics/71400058.jpg
expansions/pics/71400058.jpg
expansions/pics/71400058.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/9310000.jpg

49 KB | W: | H:

expansions/pics/9310000.jpg

41.5 KB | W: | H:

expansions/pics/9310000.jpg
expansions/pics/9310000.jpg
expansions/pics/9310000.jpg
expansions/pics/9310000.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/9310033.jpg

42.2 KB | W: | H:

expansions/pics/9310033.jpg

42.4 KB | W: | H:

expansions/pics/9310033.jpg
expansions/pics/9310033.jpg
expansions/pics/9310033.jpg
expansions/pics/9310033.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/96010105.jpg

114 KB | W: | H:

expansions/pics/96010105.jpg

34.9 KB | W: | H:

expansions/pics/96010105.jpg
expansions/pics/96010105.jpg
expansions/pics/96010105.jpg
expansions/pics/96010105.jpg
  • 2-up
  • Swipe
  • Onion skin
expansions/pics/field/35700417.jpg

39.2 KB | W: | H:

expansions/pics/field/35700417.jpg

47.1 KB | W: | H:

expansions/pics/field/35700417.jpg
expansions/pics/field/35700417.jpg
expansions/pics/field/35700417.jpg
expansions/pics/field/35700417.jpg
  • 2-up
  • Swipe
  • Onion skin
--藏于心之Chein
function c20000050.initial_effect(c)
--幻梦帝无亘龙
local cm,m,o=GetID()
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c20000050.co1)
e1:SetTarget(c20000050.tg1)
e1:SetOperation(c20000050.op1)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(aux.FALSE)
c:RegisterEffect(e1)
if not c20000050.global_check then
c20000050.global_check=true
c20000050[0]=9
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAINING)
ge1:SetOperation(c20000050.checkop)
Duel.RegisterEffect(ge1,0)
end
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_HAND)
e2:SetCondition(cm.con2)
e2:SetOperation(cm.op2)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_IMMUNE_EFFECT)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetValue(cm.val3)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_PHASE+PHASE_BATTLE_START)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1)
e4:SetCondition(cm.con4)
e4:SetOperation(cm.op4)
c:RegisterEffect(e4)
end
function c20000050.checkop(e,tp,eg,ep,ev,re,r,rp)
c20000050[0] = c20000050[0] + 1
--e2
function cm.con2(e,tp)
return (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2) and e:GetHandler():IsSummonable(true,nil,1)
end
function c20000050.co1(e,tp,eg,ep,ev,re,r,rp,chk)
function cm.opf2(g,rc,minc,maxc)
return Duel.CheckTribute(rc,minc,maxc,g) and (g:GetCount()==minc or g:GetCount()==maxc)
end
function cm.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeckAsCost() and not c:IsPublic() end
Duel.SendtoDeck(c,tp,1,REASON_COST)
local g=Duel.GetTributeGroup(c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
g=g:SelectSubGroup(tp,cm.opf2,true,1,#g,c,c:GetTributeRequirement())
if not g then return end
g:KeepAlive()
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SUMMON_PROC)
e1:SetLabelObject(g)
e1:SetOperation(function (ce,ctp,ceg,cep,cev,cre,cr,crp,cc)
cc:SetMaterial(g)
Duel.Release(g,REASON_SUMMON+REASON_MATERIAL)
e1:Reset()
end)
e1:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e1)
Duel.Summon(tp,c,true,e1,0)
end
function c20000050.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
--e3
function cm.val3(e,te)
return te:GetOwner():IsType(TYPE_MONSTER) and te:GetOwner():IsLevelBelow(5) and te:GetOwner():IsLevelAbove(1)
end
function c20000050.optg1(c)
return c:IsCode(20000050)
--e4
function cm.con4(e)
return Duel.GetTurnPlayer()==e:GetHandlerPlayer()
end
function c20000050.op1(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)==0 then return end
local g=c20000050[0]
Duel.ConfirmDecktop(tp,g)
local g1=Duel.GetDecktopGroup(tp,g)
local ct=g1:FilterCount(Card.IsCode,c20000050.optg1,20000050)
if ct~=0 then
Duel.SetLP(tp,0)
end
function cm.op4(e,tp,eg,ep,ev,re,r,rp)
local n=Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EXTRA_ATTACK)
e1:SetValue(n-1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE)
e:GetHandler():RegisterEffect(e1)
end
\ No newline at end of file
......@@ -9,27 +9,44 @@ function cm.initial_effect(c)
--cannot special summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetRange(LOCATION_DECK+LOCATION_HAND)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
c:RegisterEffect(e1)
--summon with s/t
--summon with 3 tribute
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetCode(EFFECT_ADD_EXTRA_TRIBUTE)
e4:SetTargetRange(LOCATION_HAND,0)
e4:SetTarget(cm.refilter)
e4:SetValue(POS_FACEUP_ATTACK)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_LIMIT_SUMMON_PROC)
e4:SetCondition(cm.ttcon)
e4:SetOperation(cm.ttop)
e4:SetValue(SUMMON_TYPE_ADVANCE)
c:RegisterEffect(e4)
--tribute limit
local e5=e4:Clone()
e5:SetCode(EFFECT_LIMIT_SET_PROC)
c:RegisterEffect(e5)
--
mh.hunters(c,m)
mh.lives(c,m,2)
mh.battle(c,m,800)
--indes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_TRIBUTE_LIMIT)
e2:SetValue(cm.tlimit)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(mh.ctcon)
e2:SetValue(cm.efilter)
c:RegisterEffect(e2)
mh.hunters(c,m)
mh.lives(c,m,3)
mh.battle(c,m,800)
--cannot remove
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_CANNOT_REMOVE)
e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e6:SetRange(LOCATION_MZONE)
e6:SetCondition(mh.ctcon)
e6:SetValue(cm.rmlimit)
--c:RegisterEffect(e6)
--atk
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
......@@ -41,33 +58,48 @@ function cm.initial_effect(c)
e3:SetOperation(cm.atkop)
c:RegisterEffect(e3)
end
function cm.refilter(e,c)
return c:IsSetCard(0x5b76) and c:IsType(TYPE_MONSTER) and c~=e:GetHandler()
--summon
function cm.cfilter(c,ct)
return c:IsCode(35700410) and c:IsReleasable() and (ct>0 or c:IsLocation(LOCATION_MZONE))
end
function cm.ttcon(e,c,minc)
if c==nil then return true end
local tp=c:GetControler()
local ct=Duel.GetLocationCount(tp,LOCATION_MZONE)
return minc<=1 and Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,c,ct)
end
function cm.tlimit(e,c)
return not c:IsSetCard(0x5b76)
function cm.ttop(e,tp,eg,ep,ev,re,r,rp,c)
local ct=Duel.GetLocationCount(tp,LOCATION_MZONE)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,1,c,ct)
c:SetMaterial(g)
Duel.Release(g,REASON_SUMMON+REASON_MATERIAL)
end
--indes
function cm.efilter(e,re)
return re:GetHandler():IsType(TYPE_SPELL)
end
--cannot remove
function cm.rmcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetCounter(0xb76)>0 and re and re:GetHandler():IsType(TYPE_MONSTER+TYPE_SPELL)
end
function cm.rmlimit(e,re)
return re:IsActiveType(TYPE_MONSTER+TYPE_SPELL)
end
--atk
function cm.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local bc=c:GetBattleTarget()
if not bc then return bc end
if not bc:IsLocation(LOCATION_MZONE) then
return (bc:IsPosition(POS_ATTACK) and bc:GetPreviousAttackOnField()>c:GetAttack())
or (bc:IsPosition(POS_DEFENSE) and bc:GetPreviousDefenseOnField()>c:GetAttack())
end
return (bc:IsPosition(POS_ATTACK) and bc:GetAttack()>c:GetAttack())
or (bc:IsPosition(POS_DEFENSE) and bc:GetDefense()>c:GetAttack())
e:SetLabelObject(bc)
return c==Duel.GetAttacker() and aux.dsercon(e)
and bc and c:IsStatus(STATUS_OPPO_BATTLE) and bc:IsOnField() and bc:IsRelateToBattle()
end
function cm.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local bc=c:GetBattleTarget()
if chk==0 then return c:IsStatus(STATUS_OPPO_BATTLE) and bc~=nil and c:GetCounter(0xb76)>0 end
if chk==0 then return c:GetCounter(0xb76)>0 end
end
function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local bc=c:GetBattleTarget()
local bc=e:GetHandler():GetBattleTarget()
local bc=e:GetLabelObject()
if bc:IsRelateToBattle() then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
......
......@@ -11,7 +11,6 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m+m)
e2:SetCondition(cm.condition)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
......@@ -29,33 +28,35 @@ function cm.setfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil)
or Duel.IsExistingMatchingCard(cm.setfilter,tp,0,LOCATION_GRAVE,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil)
local b=Duel.IsExistingMatchingCard(cm.setfilter,tp,0,LOCATION_GRAVE,1,nil)
local op=-1
if a and b then op=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))
elseif a then op=Duel.SelectOption(tp,aux.Stringid(m,2))
elseif b then op=Duel.SelectOption(tp,aux.Stringid(m,3))+1
else return end
if op==0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local tc=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,nil):GetFirst()
if tc then
local e1=Effect.CreateEffect(e:GetHandler())
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TRIGGER)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
end
end
if op==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.setfilter),tp,0,LOCATION_GRAVE,1,1,nil):GetFirst()
if tc then
Duel.SSet(tp,tc)
if tc:IsType(TYPE_MONSTER) then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetValue(-500)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e3)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
tc:RegisterEffect(e2)
--cannot announce
local e8=Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_SINGLE)
e8:SetRange(LOCATION_MZONE)
e8:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e8:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e8)
end
end
end
......
......@@ -25,21 +25,16 @@ function cm.setfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_MZONE,1,nil)
or Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>0 end
if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>0 end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_MZONE,1,nil)
local b=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>0
local op=-1
if a and b then op=Duel.SelectOption(tp,aux.Stringid(m,2),aux.Stringid(m,3))
elseif a then op=Duel.SelectOption(tp,aux.Stringid(m,2))
elseif b then op=Duel.SelectOption(tp,aux.Stringid(m,3))+1
else return end
if op==0 then
local g=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
if g:GetCount()>0 then
Duel.ConfirmCards(tp,g)
Duel.ShuffleHand(1-tp)
if Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_MZONE,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(m,3)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local tc=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_MZONE,1,1,nil):GetFirst()
if tc then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
......@@ -51,9 +46,4 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e2)
end
end
if op==1 then
local g=Duel.GetFieldGroup(tp,0,LOCATION_HAND)
Duel.ConfirmCards(tp,g)
Duel.ShuffleHand(1-tp)
end
end
\ No newline at end of file
......@@ -26,7 +26,6 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e2:SetCountLimit(1,m+m)
e2:SetCondition(cm.condition)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
......
......@@ -40,16 +40,6 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
if e:IsHasType(EFFECT_TYPE_ACTIVATE) then
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,0)
e2:SetTarget(cm.splimit)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
end
function cm.splimit(e,c)
return not c:IsRace(RACE_WARRIOR)
......
......@@ -40,6 +40,15 @@ function cm.initial_effect(c)
e5:SetTarget(cm.target)
e5:SetOperation(cm.operation)
c:RegisterEffect(e5)
--indes
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e6:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e6:SetRange(LOCATION_SZONE)
e6:SetCondition(cm.indcon)
e6:SetValue(cm.efilter)
c:RegisterEffect(e6)
end
function cm.efilter(e,re)
return e:GetOwnerPlayer()~=re:GetOwnerPlayer() and re:IsActiveType(TYPE_TRAP)
......@@ -77,6 +86,13 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end
end
end
--indes
function cm.indcon(e)
return Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,35700422)
end
function cm.efilter(e,re,rp)
return re:IsActiveType(TYPE_EFFECT) and aux.indoval(e,re,rp)
end
--怪物猎人的集团狩猎
local m=35700421
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x5b76) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>1
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK,0,2,nil,e,tp)
and not Duel.IsPlayerAffectedByEffect(tp,59822133) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,2,tp,LOCATION_DECK)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=1 or Duel.IsPlayerAffectedByEffect(tp,59822133) then
Duel.RegisterEffect(e1,tp)
return
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_DECK,0,2,2,nil,e,tp)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)==2 then
local sg=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.spfilter2),tp,LOCATION_HAND+LOCATION_GRAVE,0,nil,e,tp)
if g:IsExists(Card.IsRace,1,nil,RACE_BEASTWARRIOR) and g:IsExists(Card.IsRace,1,nil,RACE_WARRIOR)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and sg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sc=sg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummon(sc,0,tp,tp,false,false,POS_FACEUP)
end
end
Duel.RegisterEffect(e1,tp)
end
function cm.spfilter2(c,e,tp)
return c:IsSetCard(0x5b76) and c:IsRace(RACE_BEASTWARRIOR) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.splimit(e,c)
return c:IsLocation(LOCATION_EXTRA)
end
--怪物猎人的营地
local m=35700422
local cm=_G["c"..m]
xpcall(function() require("expansions/script/c35700420") end,function() require("script/c35700420") end)
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetLabel(800)
e1:SetOperation(mh.atkop)
c:RegisterEffect(e1)
--tohand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_SZONE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(1)
e2:SetCondition(cm.thcon)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
--indes
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_SZONE)
e5:SetCondition(cm.indcon)
e5:SetValue(cm.efilter)
c:RegisterEffect(e5)
end
--tohand
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
if Duel.GetTurnPlayer()==tp then
return ph==PHASE_MAIN1 or ph==PHASE_MAIN2
else
return ph>=PHASE_END
end
end
function cm.thfilter(c)
return c:IsSetCard(0x5b76) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_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>0 then
local tc=g:GetFirst()
if tc:IsCanBeSpecialSummoned(e,0,tp,false,false) and tc:IsRace(RACE_BEASTWARRIOR)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,35700422)
and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
else
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
end
--indes
function cm.indcon(e)
return Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,35700422)
end
function cm.efilter(e,re,rp)
return re:IsActiveType(TYPE_EFFECT) and aux.indoval(e,re,rp)
end
......@@ -36,7 +36,8 @@ Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
.e("SetType",EFFECT_TYPE_IGNITION)
.e("SetRange",LOCATION_HAND)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) end
if chk==0 then return iCount(0,tp,m,2)
and Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_GRAVE,0,1,nil,4231006)
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
......
......@@ -36,7 +36,8 @@ Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
.e("SetType",EFFECT_TYPE_IGNITION)
.e("SetRange",LOCATION_HAND)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) end
if chk==0 then return iCount(0,tp,m,2)
and Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_GRAVE,0,1,nil,4231007)
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false)
......
......@@ -77,7 +77,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc and tc:IsRelateToEffect(e) and tc:IsFaceup() then
if Duel.Equip(tp,c,tc)~=0
and Duel.IsExistingMatchingCard(Card.IsFaceUp,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) then
and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) then
if e:GetLabel()==0 then return end
if Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
local g = Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
......
--星辰姬宫想要变得可爱
local m=4231013
local cm=_G["c"..m]
function cm.initial_effect(c)
aux.EnableDualAttribute(c)
aux.EnablePendulumAttribute(c)
iFunc(c).c("RegisterEffect",iFunc(c)
.e("SetCategory",CATEGORY_SPECIAL_SUMMON)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetHintTiming",0,TIMING_MAIN_END)
.e("SetRange",LOCATION_PZONE)
.e("SetCountLimit",1,m)
.e("SetCondition",function(e,tp,eg,ep,ev,re,r,rp)
return ((Duel.GetCurrentPhase()==PHASE_MAIN1) or (Duel.GetCurrentPhase()==PHASE_MAIN2))
and Duel.IsExistingMatchingCard(function(c) return c:IsFaceup() and c:IsType(TYPE_NORMAL) end,tp,LOCATION_MZONE,0,1,nil)
end)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_ONFIELD,0,1,nil) then
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
local g = Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.Destroy(g,REASON_EFFECT)
end
end
end
end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetCategory",CATEGORY_SPECIAL_SUMMON)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetRange",LOCATION_MZONE)
.e("SetCountLimit",1)
.e("SetCondition",aux.IsDualState)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local g=Duel.GetMatchingGroup(cm.eqfilter,tp,LOCATION_GRAVE,0,nil,e,tp)
if chk==0 then
return g:GetClassCount(Card.GetCode)>=3 and Duel.IsExistingMatchingCard(aux.NegateEffectMonsterFilter,tp,0,LOCATION_MZONE,1,e:GetHandler()) and Duel.IsExistingTarget(cm.eqfilter,tp,LOCATION_GRAVE,0,3,nil)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g1=g:SelectSubGroup(tp,aux.dncheck,false,3,3)
Duel.SetTargetCard(g1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g1,3,0,0)
end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local sg=g:Filter(Card.IsRelateToEffect,nil,e)
if sg:GetCount()==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
if Duel.SendtoDeck(sg,tp,2,REASON_EFFECT) and Duel.IsExistingMatchingCard(aux.NegateEffectMonsterFilter,tp,0,LOCATION_MZONE,1,e:GetHandler()) then
local tg = Duel.SelectMatchingCard(tp,aux.NegateEffectMonsterFilter,tp,0,LOCATION_MZONE,1,1,e:GetHandler())
local tc = tg:GetFirst()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+ PHASE_END)
tc:RegisterEffect(e2)
end
end
end)
.Return())
end
function cm.eqfilter(c)
return c:IsType(TYPE_SPELL) and c:IsType(TYPE_EQUIP) and c:IsAbleToDeck()
end
function iFunc(c,x)
local __this = (aux.GetValueType(c) == "Card" and {(x == nil and {Effect.CreateEffect(c)} or {x})[1]} or {x})[1]
local fe = function(name,...) if name =="RegisterEffect" then c:RegisterEffect(__this:Clone()) else (type(__this[name])=="function" and {__this[name]} or {""})[1](__this,...) end return iFunc(c,__this) end
local fc = function(name,...) this = (type(c[name])=="function" and {c[name]} or {""})[1](c,...) return iFunc(c,c) end
local func ={e = fe,Clone = fe,c = fc,g = fc,v = function() return this end,Return = function() return __this:Clone() end}
return func
end
\ No newline at end of file
--回礼请用轻吻结账
local m = 4231020
local cm=_G["c"..m]
function cm.initial_effect(c)
iFunc(c).c("RegisterEffect",iFunc(c)
.e("SetType",EFFECT_TYPE_ACTIVATE)
.e("SetCode",EVENT_FREE_CHAIN)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_CONTINUOUS_TARGET)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and cm.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0) end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
Duel.Equip(tp,c,tc)
end end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetType",EFFECT_TYPE_SINGLE)
.e("SetCode",EFFECT_EQUIP_LIMIT)
.e("SetProperty",EFFECT_FLAG_CANNOT_DISABLE)
.e("SetValue",function(e,c) return c:IsRace(RACE_SPELLCASTER) end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetType",EFFECT_TYPE_EQUIP)
.e("SetCode",EFFECT_ADD_TYPE)
.e("SetValue",TYPE_TUNER)
.e("SetCondition",function(e,c) return not e:GetHandler():GetEquipTarget():IsType(TYPE_DUAL) end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetType",EFFECT_TYPE_EQUIP)
.e("SetCode",EFFECT_DUAL_STATUS)
.e("SetCondition",function(e,c) return e:GetHandler():GetEquipTarget():IsType(TYPE_DUAL) end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetCategory",CATEGORY_SPECIAL_SUMMON)
.e("SetType",EFFECT_TYPE_IGNITION)
.e("SetRange",LOCATION_SZONE)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetCountLimit",1)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsCanBeSpecialSummoned(e,SUMMON_VALUE_MONSTER_REBORN,tp,false,false) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,cm.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,tp,LOCATION_GRAVE)
end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and aux.NecroValleyFilter()(tc) then
Duel.SpecialSummon(tc,SUMMON_VALUE_MONSTER_REBORN,tp,tp,false,false,POS_FACEUP)
end
end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetDescription",aux.Stringid(m,0))
.e("SetCategory",CATEGORY_EQUIP)
.e("SetProperty",EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
.e("SetType",EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
.e("SetCode",EVENT_TO_GRAVE)
.e("SetCondition",function (e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousPosition(POS_FACEUP) and c:IsReason(REASON_DESTROY) and c:CheckUniqueOnField(tp)end)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,1,nil,nil) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,nil,nil)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
Duel.SynchroSummon(tp,sg:GetFirst(),nil)
end
end)
.Return())
end
function cm.filter(c)
return c:IsFaceup() and c:IsRace(RACE_SPELLCASTER) and c:IsType(TYPE_MONSTER)
end
function cm.spfilter(c,e,tp)
return c:IsLevelBelow(4) and c:IsType(TYPE_MONSTER) and c:IsRace(RACE_SPELLCASTER) and c:IsCanBeSpecialSummoned(e,SUMMON_VALUE_MONSTER_REBORN,tp,false,false)
end
function iFunc(c,x)
local __this = (aux.GetValueType(c) == "Card" and {(x == nil and {Effect.CreateEffect(c)} or {x})[1]} or {x})[1]
local fe = function(name,...) if name =="RegisterEffect" then c:RegisterEffect(__this:Clone()) else (type(__this[name])=="function" and {__this[name]} or {""})[1](__this,...) end return iFunc(c,__this) end
local fc = function(name,...) this = (type(c[name])=="function" and {c[name]} or {""})[1](c,...) return iFunc(c,c) end
local func ={e = fe,Clone = fe,c = fc,g = fc,v = function() return this end,Return = function() return __this:Clone() end}
return func
end
\ No newline at end of file
--巧克力天使
local m = 4231025
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
--synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(Card.IsType,TYPE_SYNCHRO),1)
iFunc(c).c("RegisterEffect",iFunc(c)
.e("SetType",EFFECT_TYPE_SINGLE)
.e("SetCode",EFFECT_DIRECT_ATTACK)
.e("SetCondition",function(e)
local tp = e:GetHandler()
return Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE) < Duel.GetMatchingGroupCount(function(c) return c:IsType(TYPE_EQUIP) and c:IsType(TYPE_SPELL) end,tp,LOCATION_SZONE,0,nil)
end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetDescription",aux.Stringid(m,1))
.e("SetCategory",CATEGORY_NEGATE+CATEGORY_DESTROY)
.e("SetType",EFFECT_TYPE_QUICK_O)
.e("SetCode",EVENT_CHAINING)
.e("SetRange",LOCATION_MZONE)
.e("SetCountLimit",1)
.e("SetProperty",EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
.e("SetCondition",function(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev) end)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_SZONE) and chkc:IsControler(tp) end
if chk==0 then return Duel.IsExistingTarget(cm.eqfilter,tp,LOCATION_SZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELECT)
local g = Duel.SelectTarget(tp,cm.eqfilter,tp,LOCATION_SZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,Group.__add(g,eg),2,0,0)
else
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
local tc=Duel.GetFirstTarget()
Duel.Destroy(tc,REASON_EFFECT)
end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetDescription",aux.Stringid(m,2))
.e("SetCategory",CATEGORY_REMOVE)
.e("SetType",EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
.e("SetCode",EVENT_EQUIP)
.e("SetProperty",EFFECT_FLAG_DELAY)
.e("SetRange",LOCATION_MZONE)
.e("SetCondition",function(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSequence()>4 end)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then local tc = re:GetHandler():GetEquipTarget() return tc:IsRace(RACE_SPELLCASTER) and Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_GRAVE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,0,LOCATION_GRAVE)
end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
e1:SetValue(500)
c:RegisterEffect(e1)
end
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_GRAVE,nil)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg=g:Select(tp,1,1,nil)
Duel.Remove(sg,POS_FACEUP,REASON_EFFECT)
end
end)
.Return())
end
function cm.eqfilter(c)
return c:IsType(TYPE_SPELL) and c:IsType(TYPE_EQUIP) and c:IsFaceup()
end
function iFunc(c,x)
local __this = (aux.GetValueType(c) == "Card" and {(x == nil and {Effect.CreateEffect(c)} or {x})[1]} or {x})[1]
local fe = function(name,...) if name =="RegisterEffect" then c:RegisterEffect(__this:Clone()) else (type(__this[name])=="function" and {__this[name]} or {""})[1](__this,...) end return iFunc(c,__this) end
local fc = function(name,...) this = (type(c[name])=="function" and {c[name]} or {""})[1](c,...) return iFunc(c,c) end
local func ={e = fe,Clone = fe,c = fc,g = fc,v = function() return this end,Return = function() return __this:Clone() end}
return func
end
--盛夏的伊莉雅/喷洒模式
local m = 4231026
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkRace,RACE_SPELLCASTER),2,2)
iFunc(c).c("RegisterEffect",iFunc(c)
.e("SetDescription",aux.Stringid(m,0))
.e("SetCountLimit",1,m)
.e("SetRange",LOCATION_MZONE)
.e("SetCategory",CATEGORY_TOHAND+CATEGORY_SEARCH)
.e("SetType",EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
.e("SetCode",EVENT_SPSUMMON_SUCCESS)
.e("SetProperty",EFFECT_FLAG_DELAY)
.e("SetCondition",function(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(function(c,ec)
if c:IsLocation(LOCATION_MZONE) then
return ec:GetLinkedGroup():IsContains(c)
else
return bit.extract(ec:GetLinkedZone(c:GetPreviousControler()),c:GetPreviousSequence())~=0
end
end,1,nil,e:GetHandler())end)
.e("SetCost",function(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST) end)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter1,tp,LOCATION_DECK,0,1,nil,tp) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,tp,LOCATION_DECK) end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=Duel.SelectMatchingCard(tp,cm.thfilter1,tp,LOCATION_DECK,0,1,1,nil,tp)
if g1:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=Duel.SelectMatchingCard(tp,cmthfilter2,tp,LOCATION_DECK,0,1,1,g1:GetFirst())
g1:Merge(g2)
Duel.SendtoHand(g1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g1)
end
end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetDescription",aux.Stringid(m,1))
.e("SetCategory",CATEGORY_SPECIAL_SUMMON+CATEGORY_DESTROY)
.e("SetType",EFFECT_TYPE_IGNITION)
.e("SetProperty",EFFECT_FLAG_CARD_TARGET)
.e("SetCountLimit",1)
.e("SetRange",LOCATION_MZONE)
.e("SetCost",function(e,tp,eg,ep,ev,re,r,rp,chk)
local spcost = function(c) return c:IsType(TYPE_SPELL) and c:IsDiscardable()end
if chk==0 then return Duel.IsExistingMatchingCard(spcost,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.DiscardHand(tp,spcost,1,1,REASON_COST+REASON_DISCARD) end)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_SZONE) and chkc:IsControler(tp) end
if chk==0 then return Duel.IsExistingTarget(cm.eqfilter,tp,LOCATION_SZONE,0,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SELECT)
local g = Duel.SelectTarget(tp,cm.eqfilter,tp,LOCATION_SZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE) end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
local tg=g:GetFirst()
if tg then
if Duel.SpecialSummon(tg,0,tp,tp,false,false,POS_FACEUP) then Duel.Destroy(tc,REASON_EFFECT) end
end
end)
.Return())
end
function cm.cfilter(c)
return c:IsType(TYPE_SPELL) and c:IsAbleToRemoveAsCost()
end
function cm.thfilter1(c,tp)
return c:IsCode(4231004) and c:IsAbleToHand()
and Duel.IsExistingMatchingCard(cm.thfilter2,tp,LOCATION_DECK,0,1,c)
end
function cm.thfilter2(c)
return c:IsCode(4231005) and c:IsAbleToHand()
end
function cm.eqfilter(c)
return c:IsType(TYPE_SPELL) and c:IsType(TYPE_EQUIP) and c:IsFaceup()
end
function cm.spfilter(c,e,tp)
return c:IsLevel(4) and c:IsType(TYPE_NORMAL) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function iFunc(c,x)
local __this = (aux.GetValueType(c) == "Card" and {(x == nil and {Effect.CreateEffect(c)} or {x})[1]} or {x})[1]
local fe = function(name,...) if name =="RegisterEffect" then c:RegisterEffect(__this:Clone()) else (type(__this[name])=="function" and {__this[name]} or {""})[1](__this,...) end return iFunc(c,__this) end
local fc = function(name,...) this = (type(c[name])=="function" and {c[name]} or {""})[1](c,...) return iFunc(c,c) end
local func ={e = fe,Clone = fe,c = fc,g = fc,v = function() return this end,Return = function() return __this:Clone() end}
return func
end
\ No newline at end of file
......@@ -36,7 +36,8 @@ function cm.initial_effect(c)
.e("SetCode",EFFECT_DISABLE)
.e("SetTarget",function(e,c)
local seq=c:GetSequence()
return seq<5 and (math.abs(e:GetHandler():GetSequence()-seq)<=1) and (bit.band(0x1,c:GetOriginalType())==0x1) end)
return (bit.band(0x1,c:GetOriginalType())==0x1)
and seq<5 and (math.abs(e:GetHandler():GetSequence()-seq)<=1) end)
.Return()).c("RegisterEffect",iFunc(c)
.e("SetType",EFFECT_TYPE_SINGLE)
.e("SetProperty",EFFECT_FLAG_SINGLE_RANGE)
......@@ -62,10 +63,10 @@ function cm.initial_effect(c)
.e("SetCondition",function(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousPosition(POS_FACEUP) and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) end)
.e("SetTarget",function(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c3m.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) end)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK) end)
.e("SetOperation",function(e,tp,eg,ep,ev,re,r,rp)
local tg=Duel.GetFirstMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,nil,e,tp)
local tg=Duel.GetFirstMatchingCard(cm.filter,tp,LOCATION_GRAVE+LOCATION_DECK,0,nil,e,tp)
if tg then
Duel.SpecialSummon(tg,0,tp,tp,false,true,POS_FACEUP)
end
......
......@@ -31,15 +31,15 @@ function c50218149.initial_effect(c)
e4:SetCode(EFFECT_SET_BASE_DEFENSE)
e4:SetValue(c50218149.value)
c:RegisterEffect(e4)
--to deck
--copy
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_TODECK)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetRange(LOCATION_MZONE)
e5:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e5:SetCountLimit(1)
e5:SetCost(c50218149.cost)
e5:SetTarget(c50218149.target)
e5:SetOperation(c50218149.activate)
e5:SetTarget(c50218149.cptg)
e5:SetOperation(c50218149.cpop)
c:RegisterEffect(e5)
--to deck
local e6=Effect.CreateEffect(c)
......@@ -79,27 +79,59 @@ end
function c50218149.value(e,c)
return Duel.GetMatchingGroupCount(c50218149.afilter,c:GetControler(),LOCATION_REMOVED,0,nil)*500
end
function c50218149.rfilter(c)
return c:IsSetCard(0xcb1) and c:IsType(TYPE_MONSTER) and c:IsAbleToRemoveAsCost()
function c50218149.cpfilter(c)
return c:IsSetCard(0xcb1) and c:IsType(TYPE_MONSTER)
and not c:IsForbidden() and c:IsAbleToRemove()
end
function c50218149.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c50218149.rfilter,tp,LOCATION_GRAVE,0,1,nil) end
function c50218149.cptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c50218149.cpfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c50218149.cpfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c50218149.rfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
local g=Duel.SelectTarget(tp,c50218149.filter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,tp,LOCATION_GRAVE)
end
function c50218149.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,e:GetHandler()) end
local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,0,0)
function c50218149.cpop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsRelateToEffect(e) then
if Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)~=1 then return end
local code=tc:GetOriginalCodeRule()
local cid=0
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_CHANGE_CODE)
e1:SetValue(code)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
if not tc:IsType(TYPE_TRAPMONSTER) then
cid=c:CopyEffect(code,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,1)
end
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(50218149,0))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetLabelObject(e1)
e2:SetLabel(cid)
e2:SetOperation(c50218149.rstop)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e2)
end
end
function c50218149.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,aux.ExceptThisCard(e))
if g:GetCount()>0 then
Duel.HintSelection(g)
Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
function c50218149.rstop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local cid=e:GetLabel()
if cid~=0 then
c:ResetEffect(cid,RESET_COPY)
c:ResetEffect(RESET_DISABLE,RESET_EVENT)
end
local e1=e:GetLabelObject()
e1:Reset()
Duel.HintSelection(Group.FromCards(c))
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c50218149.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
......@@ -17,83 +17,96 @@ function c50218150.initial_effect(c)
e2:SetCondition(c50218150.spcon)
e2:SetOperation(c50218150.spop)
c:RegisterEffect(e2)
--indes
--disable
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetValue(1)
e3:SetCode(EFFECT_DISABLE)
e3:SetTargetRange(0,LOCATION_MZONE)
e3:SetTarget(c50218150.distg)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
--negate
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_CHAINING)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1)
e4:SetCondition(c50218150.negcon)
e4:SetTarget(c50218150.negtg)
e4:SetOperation(c50218150.negop)
c:RegisterEffect(e4)
local e5=e3:Clone()
e5:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
c:RegisterEffect(e5)
--to hand
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_TOHAND)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_BATTLE_START)
e6:SetCountLimit(1)
e6:SetTarget(c50218150.thtg)
e6:SetOperation(c50218150.thop)
c:RegisterEffect(e6)
--to hand
local e7=Effect.CreateEffect(c)
e7:SetCategory(CATEGORY_TOHAND)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e7:SetCode(EVENT_LEAVE_FIELD)
e7:SetTarget(c50218150.target)
e7:SetOperation(c50218150.activate)
e7:SetTarget(c50218150.thtg)
e7:SetOperation(c50218150.thop)
c:RegisterEffect(e7)
end
function c50218150.spfilter(c)
return c:IsCode(50218139,50218140) and c:IsAbleToRemoveAsCost()
function c50218150.spcostfilter(c)
return c:IsAbleToRemoveAsCost() and c:IsCode(50218139,50218150)
end
function c50218150.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c50218150.spfilter,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,2,nil)
if Duel.GetMZoneCount(tp)<=0 then return false end
local g=Duel.GetMatchingGroup(c50218150.spcostfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,nil)
return g:CheckSubGroup(aux.gfcheck,2,2,Card.IsCode,50218139,50218150)
end
function c50218150.spop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.GetMatchingGroup(c50218150.spcostfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c50218150.spfilter,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,2,2,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
local sg=g:SelectSubGroup(tp,aux.gfcheck,false,2,2,Card.IsCode,50218139,50218150)
Duel.Remove(sg,POS_FACEUP,REASON_COST)
end
function c50218150.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local tc=c:GetBattleTarget()
if chk==0 then return tc and tc:IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,tc,1,0,0)
function c50218150.distg(e,c)
return (c:IsType(TYPE_EFFECT) or c:GetOriginalType()&TYPE_EFFECT~=0)
and c:IsStatus(STATUS_SUMMON_TURN+STATUS_FLIP_SUMMON_TURN+STATUS_SPSUMMON_TURN)
end
function c50218150.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetAttacker()
if c==tc then tc=Duel.GetAttackTarget() end
if tc and tc:IsRelateToBattle() then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
function c50218150.negcon(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED)
and re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and Duel.IsChainNegatable(ev)
end
function c50218150.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function c50218150.setfilter(c,tp)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsSSetable(true) and (c:IsType(TYPE_FIELD) or Duel.GetLocationCount(tp,LOCATION_SZONE)>0)
end
function c50218150.negop(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) and Duel.Destroy(eg,REASON_EFFECT)>0 then
if Duel.IsExistingMatchingCard(c50218150.setfilter,tp,0,LOCATION_GRAVE,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(50218150,0)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,c50218150.setfilter,tp,0,LOCATION_GRAVE,1,1,nil)
Duel.HintSelection(g)
Duel.SSet(tp,g)
end
end
end
function c50218150.thfilter(c)
return c:IsCode(50218139,50218140) and c:IsFaceup() and c:IsAbleToHand()
return c:IsCode(50218139,50218150) and c:IsFaceup() and c:IsAbleToHand()
end
function c50218150.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_REMOVED) and chkc:IsControler(tp) and c50218150.thfilter(chkc) end
function c50218150.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,2,0,0)
end
function c50218150.thop(e,tp,eg,ep,ev,re,r,rp)
if Duel.IsExistingTarget(c50218150.thfilter,tp,LOCATION_REMOVED,0,2,nil)
then Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,c50218150.thfilter,tp,LOCATION_REMOVED,0,2,2,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,2,0,0)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c50218150.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local sg=g:Filter(Card.IsRelateToEffect,nil,e)
if sg:GetCount()>0 then
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
end
end
\ No newline at end of file
......@@ -96,7 +96,7 @@ function c50221205.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg5=g5:Select(tp,1,1,nil)
Duel.SpecialSummon(sg5,0,tp,tp,false,false,POS_FACEUP)
Duel.SpecialSummon(sg5,0,tp,tp,true,false,POS_FACEUP)
end
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if ct==6 then
......
--塔幻星集 愚者
function c66660000.initial_effect(c)
aux.EnablePendulumAttribute(c)
--Search
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,66660000)
e4:SetTarget(c66660000.thtg)
e4:SetOperation(c66660000.thop)
c:RegisterEffect(e4)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660000.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660000.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--p
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_PZONE)
e3:SetCountLimit(1,66650000)
e3:SetTarget(c66660000.pentg)
e3:SetOperation(c66660000.penop)
c:RegisterEffect(e3)
--tuner
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e6:SetCode(EVENT_SUMMON_SUCCESS)
e6:SetRange(LOCATION_MZONE)
e6:SetProperty(EFFECT_FLAG_CARD_TARGET)
e6:SetTarget(c66660000.tntg)
e6:SetOperation(c66660000.tnop)
c:RegisterEffect(e6)
local e7=e6:Clone()
e7:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660000.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660000.penfilter(c)
return c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM) and not c:IsCode(66660000) and not c:IsForbidden()
end
function c66660000.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDestructable()
and Duel.IsExistingMatchingCard(c66660000.penfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
end
function c66660000.penop(e,tp,eg,ep,ev,re,r,rp)
if Duel.Destroy(e:GetHandler(),REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,c66660000.penfilter,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst()
if tc then
Duel.MoveToField(tc,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
end
function c66660000.thfilter(c)
return c:IsSetCard(0x666) and not c:IsCode(66660000) and c:IsType(TYPE_PENDULUM) and c:IsAbleToHand()
end
function c66660000.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660000.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c66660000.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c66660000.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c66660000.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660000.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660000.tnfilter(c)
return c:IsFaceup() and c:IsSetCard(0x666) and c:IsLevelAbove(0) and not c:IsType(TYPE_TUNER)
end
function c66660000.tntg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c66660000.tnfilter(chkc) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c66660000.tnfilter,tp,LOCATION_MZONE,0,1,1,nil)
end
function c66660000.tnop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_ADD_TYPE)
e2:SetValue(TYPE_TUNER)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
end end
function c66660000.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
--幻星集 魔术师
function c66660001.initial_effect(c)
c:EnableReviveLimit()
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660001.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660001.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--spsummon condition
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_SPSUMMON_CONDITION)
e3:SetValue(c66660001.splimit)
c:RegisterEffect(e3)
--pendulum
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_DESTROYED)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCountLimit(1,66660001)
e4:SetCondition(c66660001.pencon)
e4:SetTarget(c66660001.pentg)
e4:SetOperation(c66660001.penop)
c:RegisterEffect(e4)
--spsummon
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_SPECIAL_SUMMON)
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetRange(LOCATION_MZONE)
e5:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e5:SetCountLimit(1,66660004)
e5:SetCondition(c66660001.condition)
e5:SetTarget(c66660001.target)
e5:SetOperation(c66660001.operation)
c:RegisterEffect(e5)
--p
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_DESTROY+CATEGORY_SPECIAL_SUMMON)
e6:SetType(EFFECT_TYPE_IGNITION)
e6:SetRange(LOCATION_PZONE)
e6:SetCountLimit(1,66650001)
e6:SetTarget(c66660001.target1)
e6:SetOperation(c66660001.operation1)
c:RegisterEffect(e6)
--tuner
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e7:SetCode(EVENT_SPSUMMON_SUCCESS)
e7:SetRange(LOCATION_MZONE)
e7:SetProperty(EFFECT_FLAG_CARD_TARGET)
e7:SetTarget(c66660001.tntg)
e7:SetOperation(c66660001.tnop)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660001.splimit1)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660001.splimit(e,se,sp,st)
return se:GetHandler():IsSetCard(0x666)
end
function c66660001.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660001.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1) end
function c66660001.cfilter0(c)
return c:IsSetCard(0x666) and c:IsFaceup()
end
function c66660001.condition(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(c66660001.cfilter0,tp,0,LOCATION_MZONE,1,nil)
end
function c66660001.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>4 and Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0 end
end
function c66660001.filter(c,e,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c66660001.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=4 then return end
Duel.ConfirmDecktop(tp,5)
local g=Duel.GetDecktopGroup(tp,5)
local ct=g:GetCount()
if ct>0 and g:FilterCount(c66660001.filter,nil,e,tp)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:FilterSelect(tp,c66660001.filter,1,1,nil,e,tp)
local tc=sg:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,1-tp,false,false,POS_FACEUP)
end
end
end
function c66660001.pencon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup()
end
function c66660001.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
end
function c66660001.penop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
function c66660001.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>2 end
end
function c66660001.operation1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=2 then return end
Duel.ConfirmDecktop(tp,3)
local g=Duel.GetDecktopGroup(tp,3)
local ct=g:GetCount()
if ct>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and g:FilterCount(c66660001.filter,nil,e,tp)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:FilterSelect(tp,c66660001.filter,1,1,nil,e,tp)
local tc=sg:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end
end
end
function c66660001.tnfilter(c)
return c:IsFaceup() and c:IsSetCard(0x666) and c:IsLevelAbove(0) and not c:IsType(TYPE_TUNER)
end
function c66660001.tntg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c66660001.tnfilter(chkc) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c66660001.tnfilter,tp,LOCATION_MZONE,0,1,1,nil)
end
function c66660001.tnop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_ADD_TYPE)
e2:SetValue(TYPE_TUNER)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
end end
function c66660001.splimit1(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
--幻星集 女祭司
function c66660002.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660002.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660002.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--add to hand
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TOHAND)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_PZONE)
e3:SetCondition(c66660002.sccon2)
e3:SetTarget(c66660002.target)
e3:SetOperation(c66660002.activate)
c:RegisterEffect(e3)
--Remove
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetCode(EFFECT_TO_GRAVE_REDIRECT)
e4:SetRange(LOCATION_PZONE)
e4:SetTargetRange(1,0)
e4:SetCondition(c66660002.sccon1)
e4:SetValue(LOCATION_REMOVED)
e4:SetTarget(c66660002.rmtg)
c:RegisterEffect(e4)
--throw
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_HANDES)
e5:SetType(EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_SINGLE)
e5:SetCode(EVENT_SUMMON_SUCCESS)
e5:SetRange(LOCATION_MZONE)
e5:SetTarget(c66660002.twtg)
e5:SetOperation(c66660002.throw)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e6)
--spsummon
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(66660002,2))
e7:SetCategory(CATEGORY_SPECIAL_SUMMON)
e7:SetType(EFFECT_TYPE_IGNITION)
e7:SetRange(LOCATION_GRAVE)
e7:SetCountLimit(1,66660002)
e7:SetTarget(c66660002.sptg)
e7:SetOperation(c66660002.spop)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660002.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660002.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660002.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660002.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660002.filter(c)
return c:IsSetCard(0x666) and not c:IsCode(66660002) and c:IsAbleToHand()
end
function c66660002.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c66660002.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c66660002.filter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,c66660002.filter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function c66660002.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
function c66660002.rmtg(e,c)
return c:GetOwner()==e:GetHandlerPlayer()
end
function c66660002.twtg(e,tp,eg,ep,ev,re,r,rp,chk)
local g1=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_HANDES,g1,1,0,0)
end
function c66660002.throw(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if g:GetCount()==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISCARD)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoGrave(sg,REASON_EFFECT+REASON_DISCARD)
Duel.ShuffleHand(tp)
end
function c66660002.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c66660002.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
--幻星集 女皇
function c66660003.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660003.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660003.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--special summon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(66660003,0))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_HAND)
e3:SetCountLimit(1,66660003)
e3:SetCondition(c66660003.spcon)
e3:SetTarget(c66660003.sptg)
e3:SetOperation(c66660003.spop)
c:RegisterEffect(e3)
--tohand
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_TOHAND)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_SUMMON_SUCCESS)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,66650018)
e4:SetTarget(c66660003.thtg)
e4:SetOperation(c66660003.thop)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e5)
--to extra
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_TOEXTRA)
e6:SetType(EFFECT_TYPE_IGNITION)
e6:SetRange(LOCATION_PZONE)
e6:SetCountLimit(1,66650003)
e6:SetCondition(c66660003.sccon2)
e6:SetTarget(c66660003.tetg)
e6:SetOperation(c66660003.teop)
c:RegisterEffect(e6)
--remove
local e7=Effect.CreateEffect(c)
e7:SetCategory(CATEGORY_CONTROL)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e7:SetRange(LOCATION_PZONE)
e7:SetCode(EVENT_PHASE+PHASE_END)
e7:SetCountLimit(1)
e7:SetCondition(c66660003.sccon3)
e7:SetTarget(c66660003.rmtg)
e7:SetOperation(c66660003.rmop)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660003.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660003.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660003.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660003.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660003.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x666)
end
function c66660003.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c66660003.cfilter,tp,LOCATION_MZONE,0,1,nil)
end
function c66660003.sptg(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,POS_FACEUP_DEFENSE) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c66660003.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
end
function c66660003.thfilter(c)
return c:IsFaceup() and c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM) and c:IsAbleToHand()
end
function c66660003.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_EXTRA)
end
function c66660003.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c66660003.thfilter,tp,LOCATION_EXTRA,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c66660003.tefilter(c)
return c:IsSetCard(0x666) and not c:IsCode(66660003) and c:IsType(TYPE_PENDULUM)
end
function c66660003.tetg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660003.tefilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,nil,1,tp,LOCATION_DECK)
end
function c66660003.teop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(66660003,1))
local g=Duel.SelectMatchingCard(tp,c66660003.tefilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoExtraP(g,nil,REASON_EFFECT)
end
end
function c66660003.sccon3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660003.rmfilter(c,e,tp)
return c:IsFaceup() and c:IsType(TYPE_PENDULUM) and c:IsSetCard(0x666)
and not c:IsCode(66660003) and c:IsAbleToRemove() and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function c66660003.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c66660003.rmop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c66660003.rmfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
if g:GetCount()>0 then Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end end
\ No newline at end of file
--塔幻星集 皇帝
function c66660004.initial_effect(c)
aux.EnablePendulumAttribute(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660004.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660004.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_CONTROL)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetRange(LOCATION_PZONE)
e3:SetCountLimit(1)
e3:SetCondition(c66660004.sccon2)
e3:SetTarget(c66660004.cttg)
e3:SetOperation(c66660004.ctop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_CONTROL)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e4:SetRange(LOCATION_PZONE)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetCountLimit(1)
e4:SetCondition(c66660004.sccon3)
e4:SetTarget(c66660004.cttg1)
e4:SetOperation(c66660004.ctop1)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
e5:SetRange(LOCATION_MZONE)
e5:SetTarget(c66660004.distg)
e5:SetOperation(c66660004.disop)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e6)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660004.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660004.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660004.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660004.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660004.filter(c)
return c:IsFaceup() and c:IsControlerCanBeChanged()
end
function c66660004.cttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsControlerCanBeChanged() end
if chk==0 then return Duel.IsExistingTarget(c66660004.filter,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectTarget(tp,c66660004.filter,tp,0,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end
function c66660004.ctop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.GetControl(tc,tp,PHASE_STANDBY,1)
end
end
function c66660004.sccon3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660004.cttg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and chkc:IsControlerCanBeChanged() end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectTarget(tp,c66660004.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end
function c66660004.ctop1(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.GetControl(tc,1-tp,PHASE_STANDBY,2)
end
end
function c66660004.filter1(c)
return c:IsType(TYPE_MONSTER) and c:IsFaceup()
end
function c66660004.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and c66660004.filter1(chkc)end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectTarget(tp,c66660004.filter1,tp,LOCATION_ONFIELD,0,1,1,hill)
end
function c66660004.disfilter(c,e)
return c:IsRelateToEffect(e)
end
function c66660004.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc1=Duel.GetFirstTarget()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_CHANGE_CONTROL)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_SELF_TURN)
tc1:RegisterEffect(e1)
end
--幻星集 教皇
function c66660005.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660005.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660005.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--set
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_PZONE)
e3:SetCountLimit(1,66660005)
e3:SetTarget(c66660005.stg)
e3:SetOperation(c66660005.sop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_LEAVE_GRAVE)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_EXTRA)
e4:SetCountLimit(1,66650005)
e4:SetCondition(c66660005.setcon)
e4:SetTarget(c66660005.settg)
e4:SetOperation(c66660005.setop)
c:RegisterEffect(e4)
--draw
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_DRAW+CATEGORY_LEAVE_GRAVE+CATEGORY_REMOVE)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetRange(LOCATION_GRAVE)
e5:SetCountLimit(1,66660007)
e5:SetCondition(c66660005.drcon)
e5:SetTarget(c66660005.drtg)
e5:SetOperation(c66660005.drop)
c:RegisterEffect(e5)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660005.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660005.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660005.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660005.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660005.stfilter(c,tp)
return c:IsSetCard(0x666) and c:GetType()==TYPE_SPELL and not c:IsForbidden() and c:CheckUniqueOnField(tp)
end
function c66660005.stg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660005.stfilter,tp,LOCATION_DECK,0,1,1,nil,tp) end
end
function c66660005.sop(e,tp,eg,ep,ev,re,r,rp)
if Duel.Destroy(e:GetHandler(),REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,c66660005.stfilter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc then
local loc=LOCATION_SZONE
Duel.MoveToField(tc,tp,tp,loc,POS_FACEDOWN,true)
end end
end
function c66660005.setfilter(c,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_SPELL) and not c:IsForbidden() and c:CheckUniqueOnField(tp)
end
function c66660005.setcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsFaceup() end
function c66660005.settg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660005.setfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nill,1,tp,0)
end
function c66660005.setop(e,tp,eg,ep,ev,re,r,rp)
if Duel.SendtoGrave(e:GetHandler(),REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,c66660005.setfilter,tp,LOCATION_GRAVE,0,1,1,nil,tp):GetFirst()
if tc then
local loc1=tc:IsType(TYPE_FIELD) and LOCATION_FZONE or LOCATION_SZONE
Duel.MoveToField(tc,tp,tp,loc1,POS_FACEDOWN,true)
end end
end
function c66660005.drfilter(c,e,tp)
return c:IsSetCard(0x666) and c:IsAbleToRemoveAsCost() and not c:IsCode(66660005)
end
function c66660005.drcon(e,c)
if tc1==nil then return Duel.IsPlayerCanDraw(tp,2) and Duel.IsExistingMatchingCard(c66660005.drfilter,tp,LOCATION_GRAVE,0,1,1,nil) end
local tp=tc1:GetControler()
end
function c66660005.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(2)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end
function c66660005.drop(e,tp,eg,ep,ev,re,r,rp,c)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c66660005.drfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
\ No newline at end of file
--幻星集 恋人
function c66660006.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660006.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660006.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--copy effect
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetCountLimit(1,66660006)
e3:SetCost(c66660006.copycost)
e3:SetTarget(c66660006.copytg)
e3:SetOperation(c66660006.copyop)
c:RegisterEffect(e3)
--p
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_PZONE)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET)
e4:SetCountLimit(1)
e4:SetCondition(c66660006.sccon3)
e4:SetTarget(c66660006.eqtg)
e4:SetOperation(c66660006.eqop)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_CONTROL)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e5:SetRange(LOCATION_PZONE)
e5:SetCode(EVENT_PHASE+PHASE_END)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET)
e5:SetCountLimit(1)
e5:SetCondition(c66660006.sccon4)
e5:SetTarget(c66660006.eqtg1)
e5:SetOperation(c66660006.eqop1)
c:RegisterEffect(e5)
--Tuner
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e6:SetCode(EVENT_SUMMON_SUCCESS)
e6:SetRange(LOCATION_MZONE)
e6:SetProperty(EFFECT_FLAG_CARD_TARGET)
e6:SetTarget(c66660006.tntg)
e6:SetOperation(c66660006.tnop)
c:RegisterEffect(e6)
local e7=e6:Clone()
e7:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660006.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660006.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660006.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660006.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660006.copycost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():GetFlagEffect(66660006)==0 end
e:GetHandler():RegisterFlagEffect(66660006,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
function c66660006.copyfilter(c)
return c:IsType(TYPE_PENDULUM) and not c:IsType(TYPE_TOKEN) and (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE))
end
function c66660006.copytg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE+LOCATION_GRAVE) and c66660006.copyfilter(chkc) and chkc~=c end
if chk==0 then return Duel.IsExistingTarget(c66660006.copyfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,LOCATION_MZONE+LOCATION_GRAVE,1,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c66660006.copyfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,LOCATION_MZONE+LOCATION_GRAVE,1,1,c)
end
function c66660006.copyop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc and c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsRelateToEffect(e) and (tc:IsFaceup() or tc:IsLocation(LOCATION_GRAVE)) then
local code=tc:GetOriginalCodeRule()
local cid=0
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_CHANGE_CODE)
e1:SetValue(code)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
if not tc:IsType(TYPE_TRAPMONSTER) then
cid=c:CopyEffect(code,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,1)
end
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCountLimit(1)
e3:SetRange(LOCATION_MZONE)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e3:SetLabelObject(e1)
e3:SetLabel(cid)
e3:SetOperation(c66660006.rstop)
c:RegisterEffect(e3)
end
end
function c66660006.rstop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local cid=e:GetLabel()
if cid~=0 then
c:ResetEffect(cid,RESET_COPY)
c:ResetEffect(RESET_DISABLE,RESET_EVENT)
end
local e1=e:GetLabelObject()
e1:Reset()
Duel.HintSelection(Group.FromCards(c))
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end
function c66660006.sccon3(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():CheckUniqueOnField(tp) and e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660006.eqfilter(c)
return c:IsFaceup()
end
function c66660006.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c66660006.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c66660006.eqfilter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c66660006.filter,tp,LOCATION_MZONE,0,1,1,nil)
end
function c66660006.eqop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if c:IsLocation(LOCATION_MZONE) and c:IsFacedown() then return end
local tc=Duel.GetFirstTarget()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or not c:CheckUniqueOnField(tp) then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
return
end
c66660006.zw_equip_monster(c,tp,tc)
end
function c66660006.zw_equip_monster(c,tp,tc)
if not Duel.Equip(tp,c,tc) then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(c66660006.eqlimit)
e1:SetLabelObject(tc)
c:RegisterEffect(e1)
--Gains ATK
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetValue(1000)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e2)
end
function c66660006.eqlimit(e,c)
return c==e:GetLabelObject()
end
function c66660006.sccon4(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and e:GetHandler():CheckUniqueOnField(1-tp) and e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660006.eqfilter1(c)
return c:IsFaceup()
end
function c66660006.eqtg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c66660006.filter(chkc) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c66660006.filter,tp,0,LOCATION_MZONE,1,1,nil)
end
function c66660006.eqop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if c:IsLocation(LOCATION_MZONE) and c:IsFacedown() then return end
local tc1=Duel.GetFirstTarget()
if tc1:IsFacedown() or not tc1:IsRelateToEffect(e) or not c:CheckUniqueOnField(tp) then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
return
end
c66660006.zw_equip_monster1(c,tp,tc1)
end
function c66660006.zw_equip_monster1(c,tp,tc1)
if not Duel.Equip(tp,c,tc1) then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(c66660006.eqlimit1)
e1:SetLabelObject(tc1)
c:RegisterEffect(e1)
--Gains ATK
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetValue(1000)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e2)
end
function c66660006.eqlimit1(e,c)
return c==e:GetLabelObject()
end
function c66660006.tnfilter(c)
return c:IsFaceup() and c:IsSetCard(0x666) and c:IsLevelAbove(0) and not c:IsType(TYPE_TUNER)
end
function c66660006.tntg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c66660006.tnfilter(chkc) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c66660006.tnfilter,tp,LOCATION_MZONE,0,1,1,nil)
end
function c66660006.tnop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_ADD_TYPE)
e2:SetValue(TYPE_TUNER)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
end end
\ No newline at end of file
--塔幻星集 战车
function c66660007.initial_effect(c)
aux.EnablePendulumAttribute(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660007.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660007.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_PZONE)
e3:SetCode(EFFECT_UPDATE_ATTACK)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetCondition(c66660007.sccon1)
e3:SetValue(-500)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetRange(LOCATION_PZONE)
e4:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetTargetRange(LOCATION_MZONE,0)
e4:SetCondition(c66660007.sccon2)
e4:SetValue(c66660007.val)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e5:SetValue(1)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_ATKCHANGE)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e6:SetCode(EVENT_PRE_DAMAGE_CALCULATE)
e6:SetTarget(c66660007.target)
e6:SetOperation(c66660007.operation)
c:RegisterEffect(e6)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e7:SetProperty(EFFECT_FLAG_CARD_TARGET)
e7:SetCode(EVENT_SPSUMMON_SUCCESS)
e7:SetRange(LOCATION_MZONE)
e7:SetTarget(c66660007.distg)
e7:SetOperation(c66660007.disop)
c:RegisterEffect(e7)
local e10=e7:Clone()
e10:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e10)
--cannot be material
local e14=Effect.CreateEffect(c)
e14:SetType(EFFECT_TYPE_SINGLE)
e14:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e14:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e14:SetValue(c66660007.splimit)
c:RegisterEffect(e14)
local e11=e14:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e14:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e14:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660007.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660007.filter(c)
return c:IsFaceup()
end
function c66660007.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c66660007.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c66660007.filter,tp,LOCATION_MZONE,0,nil)
local tc=g:GetFirst()
while tc do
local e7=Effect.CreateEffect(e:GetHandler())
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetCode(EFFECT_UPDATE_ATTACK)
e7:SetValue(500)
e7:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE)
tc:RegisterEffect(e7)
tc=g:GetNext()
end
end
function c66660007.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660007.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660007.atkfilter(c)
return c:IsFaceup() end
function c66660007.val(e)
return Duel.GetMatchingGroupCount(c66660007.atkfilter,0,LOCATION_ONFIELD,0,c)*100
end
function c66660007.filter(c)
return c:IsType(TYPE_MONSTER) and c:IsFaceup() and c:IsAttackPos()
end
function c66660007.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and c66660007.filter(chkc)end
if chk==0 then return true end
end
function c66660007.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(c66660007.filter,tp,LOCATION_MZONE,0,nil)
if g:GetCount()==0 then return end
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUPATTACK)
local sg=g:Select(tp,1,1,nil)
Duel.HintSelection(sg)
local tc1=sg:GetFirst()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_MUST_ATTACK)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc1:RegisterEffect(e1)
end
--幻星集 力量
function c66660008.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660008.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660008.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--Special Summon
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e3:SetCode(EVENT_DESTROYED)
e3:SetCountLimit(1,66660008)
e3:SetCondition(c66660008.spcon)
e3:SetTarget(c66660008.sptg)
e3:SetOperation(c66660008.spop)
c:RegisterEffect(e3)
--p
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_PZONE)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET)
e4:SetCountLimit(1)
e4:SetCondition(c66660008.sccon3)
e4:SetTarget(c66660008.eqtg1)
e4:SetOperation(c66660008.eqop1)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_CONTROL)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e5:SetRange(LOCATION_PZONE)
e5:SetCode(EVENT_PHASE+PHASE_END)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET)
e5:SetCountLimit(1)
e5:SetCondition(c66660008.sccon4)
e5:SetTarget(c66660008.eqtg)
e5:SetOperation(c66660008.eqop)
c:RegisterEffect(e5)
--Destroy
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_DESTROY)
e6:SetType(EFFECT_TYPE_IGNITION)
e6:SetRange(LOCATION_MZONE)
e6:SetCountLimit(1,66650008)
e6:SetCondition(c66660008.dscon)
e6:SetTarget(c66660008.dstg)
e6:SetOperation(c66660008.dsop)
c:RegisterEffect(e6)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660008.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660008.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660008.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660008.sccon3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and e:GetHandler():CheckUniqueOnField(1-tp) and e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660008.sccon4(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and e:GetHandler():CheckUniqueOnField(1-tp) and e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660008.eqfilter(c)
return c:IsFaceup()
end
function c66660008.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c66660008.filter(chkc) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c66660008.filter,tp,LOCATION_MZONE,0,1,1,nil)
end
function c66660008.eqop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if c:IsLocation(LOCATION_MZONE) and c:IsFacedown() then return end
local tc=Duel.GetFirstTarget()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or not c:CheckUniqueOnField(tp) then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
return
end
c66660008.zw_equip_monster(c,tp,tc)
end
function c66660008.zw_equip_monster(c,tp,tc1)
if not Duel.Equip(tp,c,tc1) then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(c66660008.eqlimit1)
e1:SetLabelObject(tc1)
c:RegisterEffect(e1)
--cannot attack/disable
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_CANNOT_ATTACK)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_DISABLE)
c:RegisterEffect(e3)
end
function c66660008.eqlimit(e,c)
return c==e:GetLabelObject()
end
function c66660008.eqfilter1(c)
return c:IsFaceup()
end
function c66660008.eqtg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c66660008.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c66660008.eqfilter1,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c66660008.filter,tp,0,LOCATION_MZONE,1,1,nil)
end
function c66660008.eqop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if c:IsLocation(LOCATION_MZONE) and c:IsFacedown() then return end
local tc=Duel.GetFirstTarget()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or not c:CheckUniqueOnField(tp) then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
return
end
c66660008.zw_equip_monster1(c,tp,tc)
end
function c66660008.zw_equip_monster1(c,tp,tc)
if not Duel.Equip(tp,c,tc) then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(c66660008.eqlimit1)
e1:SetLabelObject(tc)
c:RegisterEffect(e1)
--cannot attack/disable
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_CANNOT_ATTACK)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_DISABLE)
c:RegisterEffect(e3)
end
function c66660008.eqlimit1(e,c)
return c==e:GetLabelObject()
end
function c66660008.spcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(r,REASON_DESTROY)~=0
end
function c66660008.spfilter(c,e,tp)
return c:IsFaceup() and c:IsSetCard(0x666) and not c:IsCode(66660008) and c:IsType(TYPE_PENDULUM)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function c66660008.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660008.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c66660008.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c66660008.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
function c66660008.dscon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)>0
end
function c66660008.dstg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
end
function c66660008.dsop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.Destroy(c,REASON_EFFECT)
end
end
function c66660008.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
--幻星集 隐者
function c66660009.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660009.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660009.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--Remove
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_REMOVE)
e3:SetCountLimit(1,66650014)
e3:SetTarget(c66660009.sptg)
e3:SetOperation(c66660009.spop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_REMOVE)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,66660009)
e4:SetTarget(c66660009.rmtg)
e4:SetOperation(c66660009.rmop)
c:RegisterEffect(e4)
--p
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_REMOVE)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetCountLimit(1,66650009)
e5:SetRange(LOCATION_PZONE)
e5:SetTarget(c66660009.pentg)
e5:SetOperation(c66660009.penop)
c:RegisterEffect(e5)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660009.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660009.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660009.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660009.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660009.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c66660009.spfilter(c,e,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c66660009.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=2 then return end
Duel.ConfirmDecktop(tp,3)
local g=Duel.GetDecktopGroup(tp,3)
local ct=g:GetCount()
if ct>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and g:FilterCount(c66660009.spfilter,nil,e,tp)>0
and Duel.SelectYesNo(tp,aux.Stringid(66660009,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:FilterSelect(tp,c66660009.spfilter,1,1,nil,e,tp)
local tc=sg:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
end
function c66660009.rmfilter(c)
return c:IsPosition(POS_FACEUP) and c:IsAbleToRemove()
end
function c66660009.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c66660009.rmfilter(chkc) end
if chk==0 then return e:GetHandler():IsAbleToRemove()
and Duel.IsExistingTarget(c66660009.rmfilter,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectTarget(tp,c66660009.rmfilter,tp,0,LOCATION_MZONE,1,1,nil)
g:AddCard(e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,2,0,0)
end
function c66660009.rmop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if not c:IsRelateToEffect(e) or not tc:IsRelateToEffect(e) then return end
local g=Group.FromCards(c,tc)
if Duel.Remove(g,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then
local fid=c:GetFieldID()
local rct=1
if Duel.GetTurnPlayer()==tp and Duel.GetCurrentPhase()==PHASE_STANDBY then rct=2 end
local og=Duel.GetOperatedGroup()
local oc=og:GetFirst()
while oc do
oc:RegisterFlagEffect(66660009,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,0,rct,fid)
oc=og:GetNext()
end
og:KeepAlive()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(og)
e1:SetCondition(c66660009.retcon)
e1:SetOperation(c66660009.retop)
if Duel.GetTurnPlayer()==tp and Duel.GetCurrentPhase()==PHASE_STANDBY then
e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN,2)
e1:SetValue(Duel.GetTurnCount())
else
e1:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN)
e1:SetValue(0)
end
Duel.RegisterEffect(e1,tp)
end
end
function c66660009.retfilter(c,fid)
return c:GetFlagEffectLabel(66660009)==fid
end
function c66660009.retcon(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetTurnPlayer()~=tp or Duel.GetTurnCount()==e:GetValue() then return false end
local g=e:GetLabelObject()
if not g:IsExists(c66660009.retfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function c66660009.retop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local sg=g:Filter(c66660009.retfilter,nil,e:GetLabel())
g:DeleteGroup()
local tc=sg:GetFirst()
while tc do
Duel.ReturnToField(tc)
tc=sg:GetNext()
end
end
function c66660009.penfilter(c)
return c:IsFaceup() and c:IsCanAddCounter(0x666,1)
end
function c66660009.pentg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and c66660009.penfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c66660009.penfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c66660009.penfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0x666)
end
function c66660009.penop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and tc:IsFaceup() and tc:IsRelateToEffect(e) then
if tc:IsCanAddCounter(0x666,1) and Duel.Remove(e:GetHandler(),0,REASON_EFFECT+REASON_TEMPORARY)~=0 then
tc:AddCounter(0x666,1) end
end
end
\ No newline at end of file
--幻星集 命运之轮
function c66660010.initial_effect(c)
c:EnableReviveLimit()
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660010.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660010.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--spsummon condition
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_SPSUMMON_CONDITION)
e3:SetValue(c66660010.splimit)
c:RegisterEffect(e3)
--pendulum
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_DESTROYED)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCountLimit(1,66660010)
e4:SetCondition(c66660010.pencon)
e4:SetTarget(c66660010.pentg)
e4:SetOperation(c66660010.penop)
c:RegisterEffect(e4)
--roof
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCode(EVENT_CHAINING)
e5:SetRange(LOCATION_MZONE)
e5:SetCountLimit(1,66650010)
e5:SetCondition(c66660010.condition)
e5:SetTarget(c66660010.target)
e5:SetOperation(c66660010.operation)
c:RegisterEffect(e5)
--draw
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_DRAW)
e6:SetType(EFFECT_TYPE_IGNITION)
e6:SetRange(LOCATION_PZONE)
e6:SetCountLimit(1,66650013)
e6:SetTarget(c66660010.drawtg)
e6:SetOperation(c66660010.drawop)
c:RegisterEffect(e6)
--set
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_QUICK_O)
--e7:SetType(EFFECT_TYPE_IGNITION)
e7:SetCode(EVENT_FREE_CHAIN)
e7:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e7:SetRange(LOCATION_MZONE)
e7:SetCountLimit(1,66650014)
e7:SetCondition(c66660010.scon)
e7:SetTarget(c66660010.stg)
e7:SetOperation(c66660010.sop)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660010.splimit1)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660010.splimit1(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660010.splimit(e,se,sp,st)
return se:GetHandler():IsSetCard(0x666)
end
function c66660010.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660010.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660010.pencon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup()
end
function c66660010.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
end
function c66660010.penop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
function c66660010.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp and re:GetHandler():IsCode(66660030)
end
function c66660010.filter(c)
return c:IsType(TYPE_PENDULUM+TYPE_FIELD+TYPE_SPELL) and c:IsSetCard(0x666) and c:IsAbleToHand()
end
function c66660010.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>5 end
end
function c66660010.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<6 then return end
local g=Duel.GetDecktopGroup(tp,6)
Duel.ConfirmCards(tp,g)
if g:IsExists(c66660010.filter,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(66660010,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:FilterSelect(tp,c66660010.filter,1,1,nil)
Duel.DisableShuffleCheck()
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp)
Duel.SortDecktop(tp,tp,5)
else Duel.SortDecktop(tp,tp,6) end
end
function c66660010.condition1(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and re:GetHandler():IsCode(66660030) and not re:IsHasType(EFFECT_TYPE_ACTIVATE)
end
function c66660010.scon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp and Duel.GetFieldCard(tp,LOCATION_FZONE,0)==nil
end
function c66660010.stfilter(c,tp)
return c:IsCode(66660030) and not c:IsForbidden()
end
function c66660010.stg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660010.stfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,tp)
end
end
function c66660010.sop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,c66660010.stfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc then
local loc=tc:IsType(TYPE_FIELD) and LOCATION_FZONE or LOCATION_SZONE
Duel.MoveToField(tc,tp,tp,loc,POS_FACEUP,true)
end
end
function c66660010.drawtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function c66660010.drawop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if Duel.Destroy(e:GetHandler(),REASON_EFFECT)~=0 then
if Duel.Draw(p,d,REASON_EFFECT)>0 then
Duel.BreakEffect()
end
end
end
\ No newline at end of file
--幻星集 正义
function c66660011.initial_effect(c)
c:EnableReviveLimit()
aux.AddSynchroProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x666),aux.NonTuner(Card.IsSetCard,0x666),1)
--add
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,66660011)
e1:SetCondition(c66660011.condition)
e1:SetTarget(c66660011.target)
e1:SetOperation(c66660011.operation)
c:RegisterEffect(e1)
--set
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_LEAVE_GRAVE)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,66650011)
e2:SetTarget(c66660011.settg)
e2:SetOperation(c66660011.setop)
c:RegisterEffect(e2)
end
function c66660011.setfilter(c,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_CONTINUOUS) and not c:IsForbidden() and c:CheckUniqueOnField(tp)
end
function c66660011.settg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c66660011.setfilter(chkc,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and Duel.IsExistingTarget(c66660011.setfilter,tp,LOCATION_GRAVE,0,1,nil,tp) end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
local ct=math.min((Duel.GetLocationCount(tp,LOCATION_SZONE)),2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectTarget(tp,c66660011.setfilter,tp,LOCATION_GRAVE,0,1,ct,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,g:GetCount(),0,0)
end
function c66660011.setop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if g:GetCount()<=0 then return end
local ct=math.min(2,(Duel.GetLocationCount(tp,LOCATION_SZONE)))
if ct<1 then return end
if g:GetCount()>ct then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
g=g:Select(tp,1,ct,nil)
end
for tc in aux.Next(g) do
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEDOWN,true)
end
end
function c66660011.condition(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsSetCard(0x666) and not eg:IsContains(e:GetHandler()) end
function c66660011.filter(c)
return c:IsFaceup() and c:IsCanAddCounter(0x666,1)
end
function c66660011.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and c66660011.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c66660011.filter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0x666)
end
function c66660011.operation(e,tp,eg,ep,ev,re,r,rp)
local ct=2
if ct>0 and Duel.GetMatchingGroupCount(Card.IsCanAddCounter,tp,LOCATION_ONFIELD,0,nil,0x666,1)>0 then
while ct>0 do
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_COUNTER)
local tc=Duel.SelectMatchingCard(tp,Card.IsCanAddCounter,tp,LOCATION_ONFIELD,0,1,1,nil,0x666,1):GetFirst()
if not tc then break end
tc:AddCounter(0x666,1)
ct=ct-1
end
end
end
\ No newline at end of file
--幻星集 倒吊人
function c66660012.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660012.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660012.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--destory
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_DESTROY_REPLACE)
e3:SetRange(LOCATION_PZONE)
e3:SetCondition(c66660012.sccon2)
e3:SetTarget(c66660012.reptg)
e3:SetValue(c66660012.repval)
e3:SetOperation(c66660012.repop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_DESTROY)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetRange(LOCATION_PZONE)
e4:SetCondition(c66660012.sccon1)
e4:SetTarget(c66660012.destg)
e4:SetOperation(c66660012.desop)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_DESTROY)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
e5:SetCode(EVENT_SUMMON_SUCCESS)
e5:SetTarget(c66660012.target)
e5:SetOperation(c66660012.activate)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e6)
--cannot destroy
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetRange(LOCATION_MZONE)
e7:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e7:SetValue(1)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660012.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660012.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660012.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660012.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660012.filter(c,tp)
return c:IsFaceup() and c:IsControler(tp) and c:IsOnField() and c:IsSetCard(0x666) and c:IsReason(REASON_BATTLE) or c:IsReason(REASON_EFFECT) and not c:IsReason(REASON_REPLACE)
end
function c66660012.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return eg:IsExists(c66660012.filter,1,c,tp)
and c:IsDestructable(e) and not c:IsStatus(STATUS_DESTROY_CONFIRMED) end
return Duel.SelectEffectYesNo(tp,c,96)
end
function c66660012.repval(e,c)
return c66660012.filter(c,e:GetHandlerPlayer())
end
function c66660012.repop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(e:GetHandler(),REASON_EFFECT+REASON_REPLACE)
end
function c66660012.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
end
function c66660012.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.Destroy(c,REASON_EFFECT)
end
end
function c66660012.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) end
if chk==0 then return true end
end
function c66660012.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_ONFIELD,0,1,1,e:GetHandler())
if g:GetCount()>0 then
Duel.Destroy(g,REASON_EFFECT)
end
end
\ No newline at end of file
--塔幻星集 死神
function c66660013.initial_effect(c)
aux.EnablePendulumAttribute(c)
--debuff
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_DAMAGE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_SUMMON_SUCCESS)
e3:SetOperation(c66660013.damop)
c:RegisterEffect(e3)
local e7=e3:Clone()
e7:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e7)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660013.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660013.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e4:SetRange(LOCATION_PZONE)
e4:SetCountLimit(1,66660013)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetCondition(c66660013.sccon3)
e4:SetOperation(c66660013.desop)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_SPECIAL_SUMMON)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
e5:SetRange(LOCATION_PZONE)
e5:SetCountLimit(1)
e5:SetCondition(c66660013.sccon1)
e5:SetTarget(c66660013.target)
e5:SetOperation(c66660013.activate)
c:RegisterEffect(e5)
--grave
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_TOGRAVE)
e6:SetType(EFFECT_TYPE_IGNITION)
e6:SetRange(LOCATION_MZONE)
e6:SetCountLimit(1,66660013)
e6:SetTarget(c66660013.target1)
e6:SetOperation(c66660013.activate1)
c:RegisterEffect(e6)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660013.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660013.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660013.filter1(c)
return c:IsSetCard(0x666)
end
function c66660013.tgfilter(c)
return c66660013.filter1(c) and not c:IsCode(66660013) and c:IsType(TYPE_PENDULUM) and c:IsAbleToGrave()
end
function c66660013.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660013.tgfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
end
function c66660013.activate1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c66660013.tgfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g,REASON_EFFECT)
end
end
--Release
function c66660013.sccon3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660013.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.HintSelection(Group.FromCards(c))
if Duel.CheckReleaseGroup(tp,nil,1,c) then
local g=Duel.SelectReleaseGroup(tp,nil,1,1,c)
Duel.Release(g,REASON_EFFECT) end
end
--pscale
function c66660013.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660013.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
--damage
function c66660013.damop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,66660013)
Duel.Damage(tp,1000,REASON_EFFECT)
end
--alive
function c66660013.filter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,SUMMON_VALUE_MONSTER_REBORN,tp,true,false) and c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM)
end
function c66660013.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and c66660013.filter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c66660013.filter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c66660013.filter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function c66660013.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2)
end
Duel.SpecialSummonComplete()
end
\ No newline at end of file
--幻星集 节制
function c66660014.initial_effect(c)
--fusion material
c:EnableReviveLimit()
aux.AddFusionProcFun2(c,c66660014.ffilter,c66660014.ffilter1,true)
aux.AddContactFusionProcedure(c,Card.IsReleasable,LOCATION_MZONE,0,Duel.Release,REASON_COST+REASON_MATERIAL)
--to hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(66660014,0))
e1:SetCategory(CATEGORY_TOHAND)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(2,66660014)
e1:SetTarget(c66660014.target)
e1:SetOperation(c66660014.operation)
c:RegisterEffect(e1)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660000.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660014.ffilter(c)
return c:IsSetCard(0x666) and c:IsFusionType(TYPE_PENDULUM)
end
function c66660014.ffilter1(c)
return c:IsSetCard(0x666) and c:IsFusionType(TYPE_LINK)
end
function c66660014.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660014.filter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsFaceup()
end
function c66660014.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and c66660014.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c66660014.filter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,c66660014.filter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function c66660014.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SendtoHand(tc,nill,REASON_EFFECT)
end
end
--幻星集 恶魔
function c66660015.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660015.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660015.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--Summon
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_NEGATE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_MZONE)
e3:SetTarget(c66660015.ngtg)
e3:SetOperation(c66660015.ngop)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e4)
--Draw
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_DRAW)
e5:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_FIELD)
e5:SetCode(EVENT_CHAIN_DISABLED)
e5:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e5:SetRange(LOCATION_MZONE)
e5:SetCountLimit(2,66650015)
e5:SetTarget(c66660015.drawtg)
e5:SetOperation(c66660015.drawop)
c:RegisterEffect(e5)
--negative
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_DISABLE)
e6:SetType(EFFECT_TYPE_IGNITION)
e6:SetProperty(EFFECT_FLAG_CARD_TARGET)
e6:SetRange(LOCATION_PZONE)
e6:SetCountLimit(1,66660015)
e6:SetTarget(c66660015.distg)
e6:SetOperation(c66660015.disop)
c:RegisterEffect(e6)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660015.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660015.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660015.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660015.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660015.ngtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
end
function c66660015.ngop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,e:GetHandler())
if g:GetCount()==0 then return end
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local sg=g:Select(tp,1,1,nil)
Duel.HintSelection(sg)
local tc=sg:GetFirst()
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
end
function c66660015.drawtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function c66660015.drawop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if Duel.Draw(p,d,REASON_EFFECT)>0 then
Duel.BreakEffect()
end
end
function c66660015.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and aux.NegateAnyFilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectTarget(tp,aux.NegateAnyFilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,#g,0,0)
end
function c66660015.disfilter(c,e)
return c:IsRelateToEffect(e) and aux.NegateAnyFilter(c)
end
function c66660015.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(c66660015.disfilter,nil,e)
local tc1=g:GetFirst()
while tc1 do
Duel.NegateRelatedChain(tc1,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
tc1:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
tc1:RegisterEffect(e2)
if tc1:IsType(TYPE_TRAPMONSTER) then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
tc1:RegisterEffect(e3)
end
tc1=g:GetNext()
end
end
\ No newline at end of file
--幻星集 高塔
function c66660016.initial_effect(c)
c:EnableReviveLimit()
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660016.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660016.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--spsummon condition
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_SPSUMMON_CONDITION)
e3:SetValue(c66660016.splimit)
c:RegisterEffect(e3)
--destroy
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(66660016,0))
e4:SetCategory(CATEGORY_DESTROY)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetRange(LOCATION_MZONE)
e4:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e4:SetCountLimit(1,66660016)
e4:SetCondition(c66660016.descon)
e4:SetTarget(c66660016.destg)
e4:SetOperation(c66660016.desop)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_DESTROY)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e5:SetCode(EVENT_PHASE+PHASE_END)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
e5:SetRange(LOCATION_MZONE)
e5:SetCountLimit(1,66660016)
e5:SetCondition(c66660016.descon1)
e5:SetTarget(c66660016.destg1)
e5:SetOperation(c66660016.desop1)
c:RegisterEffect(e5)
--pendulum
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_DESTROYED)
e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetCountLimit(1,66650016)
e6:SetCondition(c66660016.pencon)
e6:SetTarget(c66660016.pentg)
e6:SetOperation(c66660016.penop)
c:RegisterEffect(e6)
--p
local e7=Effect.CreateEffect(c)
e7:SetCategory(CATEGORY_DESTROY)
e7:SetType(EFFECT_TYPE_IGNITION)
e7:SetRange(LOCATION_PZONE)
e7:SetCountLimit(1,66660016)
e7:SetTarget(c66660016.pentg1)
e7:SetOperation(c66660016.penop1)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660016.splimit1)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660016.splimit1(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660016.splimit(e,se,sp,st)
return se:GetHandler():IsSetCard(0x666)
end
function c66660016.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660016.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660016.descon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp end
function c66660016.desfilter(c)
return c:IsFaceup() and c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM)
end
function c66660016.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g1=Duel.SelectTarget(tp,c66660016.desfilter,tp,LOCATION_MZONE+LOCATION_PZONE,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g2=Duel.SelectTarget(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil)
g1:Merge(g2)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g1,2,0,0)
end
function c66660016.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if Duel.Destroy(g,REASON_EFFECT)~=2 then
local g2=Duel.GetFieldGroup(tp,LOCATION_ONFIELD,LOCATION_ONFIELD)end
end
function c66660016.descon1(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp end
function c66660016.destg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsControler(tp) end
if chk==0 then return Duel.IsExistingTarget(nill,tp,LOCATION_ONFIELD,0,1,nil)end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,nill,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function c66660016.desop1(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.Destroy(tc,REASON_EFFECT)
end
end
function c66660016.pencon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup()
end
function c66660016.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
end
function c66660016.penop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
function c66660016.pentg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and c5318639.filter(chkc) and chkc~=e:GetHandler() end
if chk==0 then return Duel.IsExistingTarget(nill,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,nill,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function c66660016.penop1(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if Duel.Destroy(e:GetHandler(),REASON_EFFECT)~=0 then
if tc:IsRelateToEffect(e) then
Duel.Destroy(tc,REASON_EFFECT)
end end
end
--幻星集星星
function c66660017.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660017.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660017.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--break
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_PZONE)
e3:SetTargetRange(1,0)
e3:SetCountLimit(1)
e3:SetCondition(c66660017.sccon1)
e3:SetTarget(c66660017.target1)
e3:SetOperation(c66660017.activate1)
c:RegisterEffect(e3)
--spsummon
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_PZONE)
e4:SetCountLimit(1)
e4:SetCondition(c66660017.sccon2)
e4:SetTarget(c66660017.target)
e4:SetOperation(c66660017.activate)
c:RegisterEffect(e4)
--flip
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_TOHAND)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP+EFFECT_TYPE_IGNITION)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetCountLimit(1,66660017)
e5:SetTarget(c66660017.target2)
e5:SetOperation(c66660017.operation2)
c:RegisterEffect(e5)
--tuner
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(66660017,0))
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e6:SetCode(EVENT_SUMMON_SUCCESS)
e6:SetRange(LOCATION_MZONE)
e6:SetProperty(EFFECT_FLAG_CARD_TARGET)
e6:SetTarget(c66660017.tntg)
e6:SetOperation(c66660017.tnop)
c:RegisterEffect(e6)
local e7=e6:Clone()
e7:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660017.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660017.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660017.filter2(c,e,tp)
return c:IsSetCard(0x666) and not c:IsCode(66660017) and c:IsType(TYPE_PENDULUM) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c66660017.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c66660017.filter2,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_DECK)
end
function c66660017.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local c=e:GetHandler()
local fid=c:GetFieldID()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=Duel.SelectMatchingCard(tp,c66660017.filter2,tp,LOCATION_DECK,0,1,1,nil,e,tp)
local tc1=g1:GetFirst()
if tc1 then
Duel.SpecialSummon(tc1,0,tp,tp,false,false,POS_FACEUP)
tc1:RegisterFlagEffect(66660017,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(tc1)
e1:SetCondition(c66660017.dscon)
e1:SetOperation(c66660017.dsop)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function c66660017.dscon(e,tp,eg,ep,ev,re,r,rp)
local tc1=e:GetLabelObject()
return tc1:GetFlagEffectLabel(66660017)==e:GetLabel()
end
function c66660017.dsop(e,tp,eg,ep,ev,re,r,rp)
local tc1=e:GetLabelObject()
Duel.Destroy(tc1,POS_FACEUP,REASON_EFFECT)
end
function c66660017.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660017.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660017.filter(c,tp)
return c:IsLocation(LOCATION_MZONE) and c:IsSummonPlayer(tp)
end
function c66660017.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local g=eg:Filter(c66660017.filter,nil,tp)
Duel.SetTargetCard(eg)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function c66660017.filter1(c,e,tp)
return c:IsSummonPlayer(tp)
and c:IsRelateToEffect(e) and c:IsLocation(LOCATION_MZONE)
end
function c66660017.activate1(e,tp,eg,ep,ev,re,r,rp)
local g=eg:Filter(c66660017.filter1,nil,e,tp)
if g:GetCount()>0 then
Duel.Destroy(g,REASON_EFFECT,LOCATION_GRAVE)
end end
--1
function c66660017.target2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c66660017.filter3(c,e,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM+TYPE_SPELL+TYPE_FIELD) and c:IsAbleToHand()
end
function c66660017.operation2(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=2 then return end
Duel.ConfirmDecktop(tp,3)
local g=Duel.GetDecktopGroup(tp,3)
local ct=g:GetCount()
if ct>0 and g:FilterCount(c66660017.filter3,nil,e,tp)>0
and Duel.SelectYesNo(tp,aux.Stringid(66660017,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:FilterSelect(tp,c66660017.filter3,1,1,nil,e,tp)
local tc=sg:GetFirst()
if tc then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp)
g:Sub(sg)
end
end
end
function c66660017.tnfilter(c)
return c:IsFaceup() and c:IsSetCard(0x666) and c:IsLevelAbove(0) and not c:IsType(TYPE_TUNER)
end
function c66660017.tntg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c66660017.tnfilter(chkc) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c66660017.tnfilter,tp,LOCATION_MZONE,0,1,1,nil)
end
function c66660017.tnop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_ADD_TYPE)
e2:SetValue(TYPE_TUNER)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
end end
\ No newline at end of file
--幻星集月亮
function c66660018.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660018.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660018.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--p
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_POSITION)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(TIMING_BATTLE_PHASE,TIMINGS_CHECK_MONSTER+TIMING_BATTLE_PHASE)
e3:SetRange(LOCATION_PZONE)
e3:SetCountLimit(1)
e3:SetCondition(c66660018.sccon1)
e3:SetTarget(c66660018.postg)
e3:SetOperation(c66660018.posop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_SSET)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetCondition(c66660018.sccon2)
e4:SetRange(LOCATION_PZONE)
e4:SetTargetRange(1,0)
e4:SetTarget(aux.TRUE)
c:RegisterEffect(e4)
--summon
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_POSITION)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
e5:SetCode(EVENT_SUMMON_SUCCESS)
e5:SetOperation(c66660018.activate)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e6)
local e7=Effect.CreateEffect(c)
e7:SetCategory(CATEGORY_DECKDES)
e7:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP+EFFECT_TYPE_IGNITION)
e7:SetProperty(EFFECT_FLAG_DELAY)
e7:SetCountLimit(1,66660018)
e7:SetTarget(c66660018.grave)
e7:SetOperation(c66660018.tograve)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660018.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660018.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660018.filter(c)
return c:IsFaceup() and c:IsCanTurnSet()
end
function c66660018.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
end
function c66660018.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g=Duel.SelectMatchingCard(tp,c66660018.filter,tp,LOCATION_MZONE,0,1,1,e:GetHandler())
if g:GetCount()>0 then
Duel.ChangePosition(g,POS_FACEDOWN_DEFENSE)
end
end
function c66660018.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660018.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660018.posfilter(c)
return c:IsType(TYPE_PENDULUM) and c:IsFaceup() and c:IsCanChangePosition()
end
function c66660018.postg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660018.posfilter,tp,LOCATION_MZONE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_POSITION,nil,1,tp,LOCATION_MZONE)
end
function c66660018.posop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
local tc1=Duel.SelectMatchingCard(tp,c66660018.posfilter,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
if tc1 then
Duel.ChangePosition(tc1,POS_FACEDOWN_DEFENSE)
end
end
function c66660018.grave(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c66660018.gravefilter(c,e,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM) and not c:IsType(TYPE_RITUAL) and c:IsAbleToGrave()
end
function c66660018.tograve(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=2 then return end
Duel.ConfirmDecktop(tp,3)
local g=Duel.GetDecktopGroup(tp,3)
local ct=g:GetCount()
if ct>0 and g:FilterCount(c66660018.gravefilter,nil,e,tp)>0
and Duel.SelectYesNo(tp,aux.Stringid(66660018,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local sg=g:FilterSelect(tp,c66660018.gravefilter,1,1,nil,e,tp)
local tc2=sg:GetFirst()
if tc2 then
Duel.SendtoGrave(tc2,REASON_EFFECT)
end
end
end
--幻星集太阳
function c66660019.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660019.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660019.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--p
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(TIMING_BATTLE_PHASE,TIMINGS_CHECK_MONSTER+TIMING_BATTLE_PHASE)
e3:SetCategory(CATEGORY_POSITION)
e3:SetRange(LOCATION_PZONE)
e3:SetCountLimit(1)
e3:SetCondition(c66660019.sccon2)
e3:SetTarget(c66660019.postg)
e3:SetOperation(c66660019.posop)
c:RegisterEffect(e3)
--facedown
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_POSITION)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetRange(LOCATION_PZONE)
e4:SetTargetRange(1,0)
e4:SetCountLimit(1)
e4:SetCondition(c66660019.sccon1)
e4:SetTarget(c66660019.target1)
e4:SetOperation(c66660019.activate)
c:RegisterEffect(e4)
--flip
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_SPECIAL_SUMMON)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP+EFFECT_TYPE_IGNITION)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetCountLimit(1,c66660019)
e5:SetTarget(c66660019.target)
e5:SetOperation(c66660019.operation)
c:RegisterEffect(e5)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660019.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660019.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660019.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660019.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660019.posfilter(c)
return c:IsType(TYPE_PENDULUM) and c:IsFacedown() and c:IsCanChangePosition()
end
function c66660019.postg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660019.posfilter,tp,LOCATION_MZONE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_POSITION,nil,1,tp,LOCATION_MZONE)
end
function c66660019.posop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
local tc1=Duel.SelectMatchingCard(tp,c66660019.posfilter,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
if tc1 then
Duel.ChangePosition(tc1,POS_FACEUP_ATTACK)
end
end
function c66660019.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function c66660019.filter(c,e,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c66660019.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=2 then return end
Duel.ConfirmDecktop(tp,3)
local g=Duel.GetDecktopGroup(tp,3)
local ct=g:GetCount()
if ct>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and g:FilterCount(c66660019.filter,nil,e,tp)>0
and Duel.SelectYesNo(tp,aux.Stringid(66660019,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:FilterSelect(tp,c66660019.filter,1,1,nil,e,tp)
local tc=sg:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
end
function c66660019.filter1(c,tp)
return c:IsFaceup() and c:IsSummonPlayer(tp) and c:IsCanTurnSet()
end
function c66660019.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local g=eg:Filter(c66660019.filter1,nil,tp)
Duel.SetTargetCard(g)
end
function c66660019.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if Duel.ChangePosition(g,POS_FACEDOWN_DEFENSE)~=0 then
local og=Duel.GetOperatedGroup()
local tc=og:GetFirst()
while tc do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
tc=og:GetNext()
end
end
end
\ No newline at end of file
--幻星集 审判
function c66660020.initial_effect(c)
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660020.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660020.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--special summon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(66660020,0))
e3:SetCategory(CATEGORY_REMOVE+CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetRange(LOCATION_HAND)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetCountLimit(1,66660020)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e3:SetTarget(c66660020.sptg)
e3:SetOperation(c66660020.spop)
c:RegisterEffect(e3)
--tohand
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_TOHAND)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_PZONE)
e4:SetCondition(c66660020.sccon2)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetCountLimit(1,66650020)
e4:SetTarget(c66660020.thtg)
e4:SetOperation(c66660020.thop)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_CONTROL)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e5:SetRange(LOCATION_PZONE)
e5:SetCode(EVENT_PHASE+PHASE_END)
e5:SetCountLimit(1,66650019)
e5:SetCondition(c66660020.sccon3)
e5:SetTarget(c66660020.thtg1)
e5:SetOperation(c66660020.thop1)
c:RegisterEffect(e5)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660020.splimit)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660020.splimit(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660020.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660020.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1)
end
function c66660020.sccon3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660020.cfilter(c)
return c:IsAttribute(ATTRIBUTE_FIRE+ATTRIBUTE_WATER+ATTRIBUTE_EARTH+ATTRIBUTE_WIND) and c:IsAbleToRemove()
end
function c66660020.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and c66660020.cfilter(chkc) end
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingTarget(c66660020.cfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectTarget(tp,c66660020.cfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c66660020.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)>0 and c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
function c66660020.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_PZONE) end
if chk==0 then return Duel.IsExistingTarget(nil,tp,LOCATION_PZONE,LOCATION_PZONE,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,nil,tp,LOCATION_PZONE,LOCATION_PZONE,1,1,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function c66660020.thop(e,tp,eg,ep,ev,re,r,rp)
local tc1=Duel.GetFirstTarget()
if tc1:IsRelateToEffect(e) then
Duel.SendtoHand(tc1,nill,REASON_EFFECT)
Duel.SendtoHand(e:GetHandler(),nill,REASON_EFFECT)
end
end
function c66660020.thtg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsControler(tp) end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectTarget(tp,nil,tp,LOCATION_ONFIELD,0,1,1,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function c66660020.thop1(e,tp,eg,ep,ev,re,r,rp)
local tc2=Duel.GetFirstTarget()
if tc2:IsRelateToEffect(e) then
Duel.SendtoHand(tc2,nill,REASON_EFFECT)
end
end
--幻星集 世界
function c66660021.initial_effect(c)
c:EnableReviveLimit()
aux.EnablePendulumAttribute(c)
--pscale
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LSCALE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_PZONE)
e1:SetCondition(c66660021.sccon1)
e1:SetValue(-3)
c:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e8)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_LSCALE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_PZONE)
e2:SetCondition(c66660021.sccon2)
e2:SetValue(4)
c:RegisterEffect(e2)
local e9=e2:Clone()
e9:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e9)
--spsummon condition
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_SPSUMMON_CONDITION)
e3:SetValue(c66660021.splimit)
c:RegisterEffect(e3)
--pendulum
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_DESTROYED)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCountLimit(1,66650021)
e4:SetCondition(c66660021.pencon)
e4:SetTarget(c66660021.pentg)
e4:SetOperation(c66660021.penop)
c:RegisterEffect(e4)
--material
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(66660021,0))
e5:SetCountLimit(1,66660021)
e5:SetType(EFFECT_TYPE_IGNITION)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetRange(LOCATION_MZONE)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
e5:SetTarget(c66660021.oltg)
e5:SetOperation(c66660021.olop)
c:RegisterEffect(e5)
--negate
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(66660021,1))
e6:SetCategory(CATEGORY_DISABLE)
e6:SetProperty(EFFECT_FLAG_CARD_TARGET)
e6:SetType(EFFECT_TYPE_QUICK_O)
e6:SetCode(EVENT_FREE_CHAIN)
e6:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e6:SetRange(LOCATION_MZONE)
e6:SetCost(c66660021.cost)
e6:SetTarget(c66660021.target)
e6:SetOperation(c66660021.operation)
c:RegisterEffect(e6)
--set
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_IGNITION)
e7:SetRange(LOCATION_PZONE)
e7:SetCountLimit(1,66650004)
e7:SetTarget(c66660021.stg)
e7:SetOperation(c66660021.sop)
c:RegisterEffect(e7)
--cannot be material
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_SINGLE)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
e10:SetValue(c66660021.splimit1)
c:RegisterEffect(e10)
local e11=e10:Clone()
e11:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(e11)
local e12=e10:Clone()
e12:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(e12)
local e13=e10:Clone()
e13:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
c:RegisterEffect(e13)
end
function c66660021.splimit(e,se,sp,st)
return se:GetHandler():IsSetCard(0x666)
end
function c66660021.sccon1(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,0)
end
function c66660021.sccon2(e)
return e:GetHandler()==Duel.GetFieldCard(e:GetHandlerPlayer(),LOCATION_PZONE,1) end
function c66660021.splimit1(e,c)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660021.pencon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup()
end
function c66660021.pentg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) end
end
function c66660021.penop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
function c66660021.matfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x666) and c:IsCanOverlay()
end
function c66660021.oltg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c66660021.matfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c66660021.matfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local g=Duel.SelectTarget(tp,c66660021.matfilter,tp,LOCATION_GRAVE,0,1,1,nil)
end
function c66660021.olop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if g:GetCount()>0 then
Duel.Overlay(c,g)
end
end
end
function c66660021.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c66660021.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(1-tp) and chkc:IsLocation(LOCATION_SZONE+LOCATION_FZONE) and aux.NegateAnyFilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(aux.NegateAnyFilter,tp,0,LOCATION_SZONE+LOCATION_FZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectTarget(tp,aux.NegateAnyFilter,tp,0,LOCATION_SZONE+LOCATION_FZONE,1,1,nil)
Duel.SetOperationInfo(0,LOCATION_SZONE+LOCATION_FZONE,g,1,0,0)
end
function c66660021.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
local tc=Duel.GetFirstTarget()
if ((tc:IsFaceup() and not tc:IsDisabled()) or tc:IsType(TYPE_TRAPMONSTER)) and tc:IsRelateToEffect(e) then
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
tc:RegisterEffect(e1)
end
end
function c66660021.stfilter(c,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_FIELD+TYPE_CONTINUOUS) and not c:IsForbidden() and c:CheckUniqueOnField(tp)
end
function c66660021.stg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660021.stfilter,tp,LOCATION_DECK,0,1,1,nil,tp) end
end
function c66660021.sop(e,tp,eg,ep,ev,re,r,rp)
if Duel.Destroy(e:GetHandler(),REASON_EFFECT)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,c66660021.stfilter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc then
local loc=tc:IsType(TYPE_FIELD) and LOCATION_FZONE or LOCATION_SZONE
Duel.MoveToField(tc,tp,tp,loc,POS_FACEUP,true)
end end
end
--幻星集 圣杯国王
function c66660022.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,2,c66660022.lcheck)
c:EnableReviveLimit()
--Search
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,66660022)
e1:SetTarget(c66660022.thtg)
e1:SetOperation(c66660022.thop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TOEXTRA)
e2:SetCountLimit(1,66650022)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetTarget(c66660022.tetg)
e2:SetOperation(c66660022.teop)
c:RegisterEffect(e2)
--cannot be material
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e3:SetValue(c66660022.splimit)
c:RegisterEffect(e3)
end
function c66660022.splimit(e,se,sp,st)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660022.lcheck(g)
return g:IsExists(Card.IsLinkSetCard,1,nil,0x666)
end
function c66660022.lcheck(g)
return g:IsExists(Card.IsLinkSetCard,1,nil,0x666) end
function c66660022.thfilter(c)
return c:IsCode(66660030) or c:IsCode(66660026) and c:IsAbleToHand()
end
function c66660022.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660022.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c66660022.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c66660022.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c66660022.tetg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,e:GetHandler(),1,0,0)
end
function c66660022.teop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end
--幻星集 权杖国王
function c66660023.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,2,c66660023.lcheck)
c:EnableReviveLimit()
--Search
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,66660023)
e1:SetTarget(c66660023.thtg)
e1:SetOperation(c66660023.thop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TOEXTRA)
e2:SetCountLimit(1,66650023)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetTarget(c66660023.tetg)
e2:SetOperation(c66660023.teop)
c:RegisterEffect(e2)
--cannot be material
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e3:SetValue(c66660023.splimit)
c:RegisterEffect(e3)
end
function c66660023.splimit(e,se,sp,st)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660023.lcheck(g)
return g:IsExists(Card.IsLinkSetCard,1,nil,0x666) end
function c66660023.tetg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,e:GetHandler(),1,0,0)
end
function c66660023.teop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end
function c66660023.thfilter(c)
return c:IsCode(66660030) or c:IsCode(66660027) and c:IsAbleToHand()
end
function c66660023.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660023.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c66660023.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c66660023.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 c66660024.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,2,c66660024.lcheck)
c:EnableReviveLimit()
--Search
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,66660024)
e1:SetTarget(c66660024.thtg)
e1:SetOperation(c66660024.thop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TOEXTRA)
e2:SetCountLimit(1,66650024)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetTarget(c66660024.tetg)
e2:SetOperation(c66660024.teop)
c:RegisterEffect(e2)
--cannot be material
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e3:SetValue(c66660024.splimit)
c:RegisterEffect(e3)
end
function c66660024.splimit(e,se,sp,st)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660024.lcheck(g)
return g:IsExists(Card.IsLinkSetCard,1,nil,0x666) end
function c66660024.tetg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,e:GetHandler(),1,0,0)
end
function c66660024.teop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end
function c66660024.thfilter(c)
return c:IsCode(66660030) or c:IsCode(66660028) and c:IsAbleToHand()
end
function c66660024.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660024.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c66660024.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c66660024.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 c66660025.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,2,c66660025.lcheck)
c:EnableReviveLimit()
--Search
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,66660025)
e1:SetTarget(c66660025.thtg)
e1:SetOperation(c66660025.thop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TOEXTRA)
e2:SetCountLimit(1,66650025)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetTarget(c66660025.tetg)
e2:SetOperation(c66660025.teop)
c:RegisterEffect(e2)
--cannot be material
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e3:SetValue(c66660025.splimit)
c:RegisterEffect(e3)
end
function c66660025.splimit(e,se,sp,st)
if not c then return false end
return not c:IsSetCard(0x666)
end
function c66660025.lcheck(g)
return g:IsExists(Card.IsLinkSetCard,1,nil,0x666) end
function c66660025.tetg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOEXTRA,e:GetHandler(),1,0,0)
end
function c66660025.teop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
end
function c66660025.thfilter(c)
return c:IsCode(66660030) or c:IsCode(66660029) and c:IsAbleToHand()
end
function c66660025.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660025.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c66660025.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c66660025.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c66660025.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660025.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c66660025.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c66660025.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 c66660026.initial_effect(c)
c:EnableCounterPermit(0x666)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(c66660026.ctcon)
e2:SetOperation(c66660026.ctop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e3:SetCountLimit(1,66660026)
e3:SetCost(c66660026.cost)
e3:SetTarget(c66660026.target)
e3:SetOperation(c66660026.activate)
c:RegisterEffect(e3)
end
function c66660026.ctcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsSetCard(0x666) and not re:IsHasType(EFFECT_TYPE_ACTIVATE) and not re:GetHandler():IsCode(66660027) and not re:GetHandler():IsCode(66660028) and not re:GetHandler():IsCode(66660029)
end
function c66660026.ctop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():AddCounter(0x666,1)
end
function c66660026.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x666,10,REASON_COST) end
e:GetHandler():RemoveCounter(tp,0x666,10,REASON_COST)
end
function c66660026.filter(c,e,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_RITUAL) and c:IsCanBeSpecialSummoned(e,0,tp,true,true)
end
function c66660026.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c66660026.filter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_DECK+LOCATION_EXTRA)
end
function c66660026.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local c=e:GetHandler()
local fid=c:GetFieldID()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c66660026.filter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,true,true,POS_FACEUP_ATTACK)
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end end
\ No newline at end of file
--幻星集 权杖
function c66660027.initial_effect(c)
c:EnableCounterPermit(0x666)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(c66660027.ctcon)
e2:SetOperation(c66660027.ctop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e3:SetCountLimit(1,66660027)
e3:SetCost(c66660027.cost)
e3:SetTarget(c66660027.target)
e3:SetOperation(c66660027.activate)
c:RegisterEffect(e3)
end
function c66660027.ctcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsSetCard(0x666) and not re:IsHasType(EFFECT_TYPE_ACTIVATE) and not re:GetHandler():IsCode(66660026) and not re:GetHandler():IsCode(66660028) and not re:GetHandler():IsCode(66660029)
end
function c66660027.ctop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():AddCounter(0x666,1)
end
function c66660027.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x666,10,REASON_COST) end
e:GetHandler():RemoveCounter(tp,0x666,10,REASON_COST)
end
function c66660027.filter(c,e,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_FUSION) and c:IsCanBeSpecialSummoned(e,0,tp,true,true) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function c66660027.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660027.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_EXTRA)
end
function c66660027.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local fid=c:GetFieldID()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c66660027.filter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,true,true,POS_FACEUP_ATTACK)
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end end
\ No newline at end of file
--幻星集 星币
function c66660028.initial_effect(c)
c:EnableCounterPermit(0x666)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(c66660028.ctcon)
e2:SetOperation(c66660028.ctop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e3:SetCountLimit(1,66660028)
e3:SetCost(c66660028.cost)
e3:SetTarget(c66660028.target)
e3:SetOperation(c66660028.activate)
c:RegisterEffect(e3)
end
function c66660028.ctcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsSetCard(0x666) and not re:IsHasType(EFFECT_TYPE_ACTIVATE) and not re:GetHandler():IsCode(66660027) and not re:GetHandler():IsCode(66660026) and not re:GetHandler():IsCode(66660029)
end
function c66660028.ctop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():AddCounter(0x666,1)
end
function c66660028.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x666,10,REASON_COST) end
e:GetHandler():RemoveCounter(tp,0x666,10,REASON_COST)
end
function c66660028.filter(c,e,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,true,true) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function c66660028.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660028.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_EXTRA)
end
function c66660028.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local fid=c:GetFieldID()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c66660028.filter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,true,true,POS_FACEUP_ATTACK)
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end end
\ No newline at end of file
--幻星集 宝剑
function c66660029.initial_effect(c)
c:EnableCounterPermit(0x666)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCondition(c66660029.ctcon)
e2:SetOperation(c66660029.ctop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e3:SetCountLimit(1,66660029)
e3:SetCost(c66660029.cost)
e3:SetTarget(c66660029.target)
e3:SetOperation(c66660029.activate)
c:RegisterEffect(e3)
end
function c66660029.ctcon(e,tp,eg,ep,ev,re,r,rp)
return re and re:GetHandler():IsSetCard(0x666) and not re:IsHasType(EFFECT_TYPE_ACTIVATE) and not re:GetHandler():IsCode(66660027) and not re:GetHandler():IsCode(66660028) and not re:GetHandler():IsCode(66660026)
end
function c66660029.ctop(e,tp,eg,ep,ev,re,r,rp)
e:GetHandler():AddCounter(0x666,1)
end
function c66660029.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanRemoveCounter(tp,0x666,10,REASON_COST) end
e:GetHandler():RemoveCounter(tp,0x666,10,REASON_COST)
end
function c66660029.filter(c,e,tp)
return c:IsSetCard(0x666) and c:IsType(TYPE_SYNCHRO) and c:IsCanBeSpecialSummoned(e,0,tp,true,true) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function c66660029.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c66660029.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_EXTRA)
end
function c66660029.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local fid=c:GetFieldID()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c66660029.filter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,true,true,POS_FACEUP_ATTACK)
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end end
\ No newline at end of file
--幻星集 命运之占卜
function c66660030.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_QUICK_F)
e3:SetCode(EVENT_CHAINING)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e3:SetRange(LOCATION_FZONE)
e3:SetCondition(c66660030.condition)
e3:SetCountLimit(1)
e3:SetOperation(c66660030.chop)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCondition(c66660030.condition1)
e4:SetOperation(c66660030.chop1)
c:RegisterEffect(e4)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(1,0)
e2:SetTarget(c66660030.splimit)
c:RegisterEffect(e2)
end
function c66660030.chop(e,tp,eg,ep,ev,re,r,rp)
local g=Group.CreateGroup()
Duel.ChangeTargetCard(ev,g)
return Duel.ChangeChainOperation(ev,c66660030.repop)
end
function c66660030.condition(e,tp,eg,ep,ev,re,r,rp)
return rp==tp and Duel.GetTurnPlayer()==tp and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev)
end
function c66660030.penfilter(c)
return c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM)
end
function c66660030.repop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=2 then return end
Duel.ConfirmDecktop(tp,3)
local g=Duel.GetDecktopGroup(tp,3)
local ct=g:GetCount()
if ct>0 and Duel.GetLocationCount(tp,LOCATION_PZONE)<2 and g:FilterCount(c66660030.penfilter,nil,e,tp)>0
and Duel.SelectYesNo(tp,aux.Stringid(66660030,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local sg=g:FilterSelect(tp,c66660030.penfilter,1,1,nil,e,tp)
local tc=sg:GetFirst()
if tc then
Duel.MoveToField(tc,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
end
function c66660030.condition1(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp and Duel.GetTurnPlayer()==1-tp and re:IsActiveType(TYPE_MONSTER) and Duel.IsChainNegatable(ev)
end
function c66660030.chop1(e,tp,eg,ep,ev,re,r,rp)
local g=Group.CreateGroup()
Duel.ChangeTargetCard(ev,g)
return Duel.ChangeChainOperation(ev,c66660030.repop1)
end
function c66660030.repop1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(1-tp,LOCATION_DECK,0)<=2 then return end
Duel.ConfirmDecktop(1-tp,3)
local g=Duel.GetDecktopGroup(1-tp,3)
local ct=g:GetCount()
if ct>0 and Duel.GetLocationCount(1-tp,LOCATION_PZONE)<2 and g:FilterCount(c66660030.penfilter,nil,e,1-tp)>0
and Duel.SelectYesNo(tp,aux.Stringid(66660030,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local sg=g:FilterSelect(tp,c66660030.penfilter,1,1,nil,e,tp)
local tc=sg:GetFirst()
if tc then
Duel.MoveToField(tc,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
end
end
end
function c66660030.splimit(e,c,tp,sumtp,sumpos)
return not c:IsSetCard(0x666) end
\ No newline at end of file
--幻星集 命运之抽卡
function c66660031.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,66660031+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(c66660031.target)
e1:SetOperation(c66660031.activate)
c:RegisterEffect(e1)
end
function c66660031.filter(c,e,tp,check)
return c:IsSetCard(0x666) and c:IsType(TYPE_PENDULUM) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c66660031.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>4 end
end
function c66660031.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<=4 then return end
Duel.ConfirmDecktop(tp,5)
local g=Duel.GetDecktopGroup(tp,5)
local ct=g:GetCount()
if ct>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and g:FilterCount(c66660031.filter,nil,e,tp)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:FilterSelect(tp,c66660031.filter,1,1,nil,e,tp)
local tc=sg:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
end
\ No newline at end of file
--术结天缘 库娜
function c67200403.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
c:EnableCounterPermit(0x671,LOCATION_MZONE+LOCATION_PZONE)
--add counter
--link summon
c:EnableReviveLimit()
c:SetSPSummonOnce(67200403)
aux.AddLinkProcedure(c,c67200403.mfilter,1,1)
--tohand
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_COUNTER)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetDescription(aux.Stringid(67200403,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_PZONE)
e1:SetCode(EVENT_TO_HAND)
e1:SetCountLimit(1,67200403)
e1:SetCondition(c67200403.sp1con)
e1:SetTarget(c67200403.sp1tg)
e1:SetOperation(c67200403.sp1op)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c67200403.thcon1)
e1:SetTarget(c67200403.thtg1)
e1:SetOperation(c67200403.thop1)
c:RegisterEffect(e1)
--spsummon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(67200403,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_BATTLE_START+TIMING_END_PHASE)
e2:SetCost(c67200403.spcost)
e2:SetTarget(c67200403.sptg)
e2:SetOperation(c67200403.spop)
c:RegisterEffect(e2)
--to hand
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(94243005,0))
e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetTarget(c67200403.thtg)
e3:SetOperation(c67200403.thop)
c:RegisterEffect(e3)
end
function c67200403.sp1filter(c,tp)
return c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousControler(tp)
and c:IsType(TYPE_PENDULUM) and c:IsPreviousSetCard(0x5671)
function c67200403.mfilter(c)
return c:IsLinkRace(RACE_SPELLCASTER) and c:IsLinkType(TYPE_PENDULUM)
end
function c67200403.sp1con(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c67200403.sp1filter,1,nil,tp)
--
function c67200403.thcon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function c67200403.actfilter(c)
return c:IsSetCard(0x5671) and not c:IsForbidden()
function c67200403.thfilter1(c)
return c:IsCode(67200429) and c:IsAbleToHand()
end
function c67200403.sp1tg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_COUNTER,nil,1,0,0x671)
function c67200403.thtg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c67200403.thfilter1,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c67200403.sp1op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
e:GetHandler():AddCounter(0x671,1)
function c67200403.thop1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c67200403.thfilter1,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
--
function c67200403.spfilter(c,e,tp)
return c:IsSetCard(0x5671) and c:IsType(TYPE_PENDULUM) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and not c:IsCode(67200403) and c:IsCanHaveCounter(0x671) and Duel.IsCanAddCounter(tp,0x671,1,c)
function c67200403.thfilter11(c,tp)
local lv=c:GetLevel()
return c:IsFaceup() and c:IsType(TYPE_PENDULUM) and lv>0 and c:IsCanHaveCounter(0x671)
and Duel.IsCanRemoveCounter(tp,1,0,0x671,lv,REASON_COST) and c:IsAbleToHand()
end
function c67200403.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetCounter(0x671)>0 and e:GetHandler():IsAbleToHandAsCost() end
Duel.SendtoHand(e:GetHandler(),nil,REASON_COST)
function c67200403.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c67200403.thfilter11,tp,LOCATION_EXTRA,0,1,nil,tp) end
local g=Duel.GetMatchingGroup(c67200403.thfilter11,tp,LOCATION_EXTRA,0,nil,tp)
local lvt={}
local tc=g:GetFirst()
while tc do
local tlv=tc:GetLevel()
lvt[tlv]=tlv
tc=g:GetNext()
end
local pc=1
for i=1,12 do
if lvt[i] then lvt[i]=nil lvt[pc]=i pc=pc+1 end
end
lvt[pc]=nil
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(67200403,1))
local lv=Duel.AnnounceNumber(tp,table.unpack(lvt))
Duel.RemoveCounter(tp,1,0,0x671,lv,REASON_COST)
e:SetLabel(lv)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_EXTRA)
end
function c67200403.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c67200403.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
function c67200403.thfilter2(c,lv)
return c:IsFaceup() and c:IsType(TYPE_PENDULUM) and c:IsCanHaveCounter(0x671)
and c:IsLevel(lv) and c:IsAbleToHand()
end
function c67200403.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c67200403.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if #g>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
local tc=g:GetFirst()
tc:AddCounter(0x671,1)
function c67200403.thop(e,tp,eg,ep,ev,re,r,rp)
local lv=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c67200403.thfilter2,tp,LOCATION_EXTRA,0,1,1,nil,lv)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
--术结天缘 波波伦
function c67200455.initial_effect(c)
--pendulum summon
aux.EnablePendulumAttribute(c)
c:EnableCounterPermit(0x671,LOCATION_PZONE+LOCATION_MZONE)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(67200455,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetCountLimit(1,67200455)
e1:SetCost(c67200455.excost)
e1:SetTarget(c67200455.sptg)
e1:SetOperation(c67200455.spop)
c:RegisterEffect(e1)
--add counter
local e2=Effect.CreateEffect(c)
--e2:SetCategory(CATEGORY_COUNTER)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_PZONE)
e2:SetCode(EVENT_TO_HAND)
e2:SetCondition(c67200455.ctcon)
--e2:SetTarget(c67200455.cttg)
e2:SetOperation(c67200455.ctop)
c:RegisterEffect(e2)
--pendulum scale up
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetCode(EFFECT_UPDATE_LSCALE)
e3:SetRange(LOCATION_PZONE)
e3:SetValue(c67200455.scaledown)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_UPDATE_RSCALE)
c:RegisterEffect(e4)
end
--
function c67200455.excostfilter(c)
return c:IsSetCard(0x5671) and c:IsAbleToHandAsCost() and bit.band(c:GetOriginalType(),TYPE_PENDULUM)==TYPE_PENDULUM
end
function c67200455.mfilter(c,tp)
--local tp=c:GetControler()
return c:GetSequence()<5 and c:IsLocation(LOCATION_MZONE)
end
function c67200455.excost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c67200455.excostfilter,tp,LOCATION_ONFIELD,0,1,nil) end
local rg=Duel.GetMatchingGroup(c67200455.excostfilter,tp,LOCATION_ONFIELD,0,nil,tp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g=nil
if ft>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
g=rg:Select(tp,1,1,nil)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
g=rg:FilterSelect(tp,c67200455.mfilter,1,1,nil,tp)
end
Duel.SendtoHand(g,nil,REASON_COST)
e:SetLabel(g:GetFirst():GetBaseAttack())
end
function c67200455.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c67200455.acfilter(c)
return c:IsSetCard(0x5671) and not c:IsForbidden()
end
function c67200455.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.BreakEffect()
if Duel.IsExistingMatchingCard(c67200455.actfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.SelectYesNo(tp,aux.Stringid(67200455,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local sg=Duel.SelectMatchingCard(tp,c67200455.actfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
Duel.HintSelection(sg)
if Duel.SendtoGrave(sg,REASON_EFFECT)~=0 then
local tc=sg:GetFirst()
local lv=tc:GetOriginalLevel()
e:GetHandler():AddCounter(0x671,lv)
end
end
end
end
--
function c67200455.ctfilter(c,tp)
return c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousControler(tp)
and c:IsType(TYPE_PENDULUM) and c:IsPreviousSetCard(0x5671)
end
function c67200455.ctcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c67200455.ctfilter,1,nil,tp)
end
function c67200455.actfilter(c,e,tp)
return c:IsSetCard(0x5671) and c:IsType(TYPE_PENDULUM) and c:IsAbleToGrave()
end
function c67200455.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
e:GetHandler():AddCounter(0x671,2)
if Duel.IsExistingMatchingCard(c67200455.actfilter,tp,LOCATION_DECK,0,1,nil,e,tp) and c:GetCounter(0x671)>5 and c:IsAbleToHand() and Duel.SelectYesNo(tp,aux.Stringid(67200455,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c67200455.actfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if Duel.SendtoGrave(g,REASON_EFFECT)~=0 then
Duel.SendtoHand(c,nil,REASON_EFFECT)
end
end
end
--
function c67200455.scaledown(e,c)
local count=c:GetCounter(0x671)
local a=0
if count>6 then
a=6
else
a=count
end
return -a
end
--
--忘却之剑
function c67220003.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(c67220003.condition)
e1:SetTarget(c67220003.target)
e1:SetOperation(c67220003.activate)
c:RegisterEffect(e1)
end
function c67220003.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentPhase()==PHASE_MAIN1 and not Duel.CheckPhaseActivity()
end
function c67220003.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_EXTRA,1,nil,tp,POS_FACEDOWN) end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,1-tp,LOCATION_EXTRA)
end
function c67220003.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetFieldGroup(tp,0,LOCATION_EXTRA)
Duel.ConfirmCards(tp,g)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg=g:FilterSelect(tp,Card.IsAbleToRemove,1,1,nil,tp,POS_FACEDOWN)
if Duel.Remove(sg,POS_FACEUP,REASON_EFFECT)~=0 then
Duel.ShuffleExtra(1-tp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetTargetRange(0,1)
e1:SetValue(c67220003.aclimit)
e1:SetLabelObject(tc)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
end
end
function c67220003.aclimit(e,re,tp)
local c=re:GetHandler()
local tc=e:GetLabelObject()
return c:IsOriginalCodeRule(tc:GetOriginalCodeRule())
end
......@@ -19,7 +19,6 @@ function c71400058.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71400058,1))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetRange(LOCATION_FZONE)
e2:SetCountLimit(1)
......@@ -94,16 +93,14 @@ end
function c71400058.filter2a(c)
return c:IsSetCard(0xb714) and c:IsType(TYPE_FIELD) and c:IsCanOverlay()
end
function c71400058.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c71400058.filter2(chkc) end
if chk==0 then return Duel.IsExistingTarget(c71400058.filter2,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(c71400058.filter2a,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.SelectTarget(tp,c71400058.filter2,tp,LOCATION_MZONE,0,1,1,nil)
function c71400058.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71400058.filter2,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(c71400058.filter2a,tp,LOCATION_GRAVE,0,1,nil) end
local g=Duel.GetMatchingGroup(c71400058.filter2a,tp,LOCATION_GRAVE,0,nil)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,1,tp,LOCATION_GRAVE)
end
function c71400058.op2(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local tc=Duel.SelectMatchingCard(tp,c71400058.filter2,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
local g=Duel.SelectMatchingCard(tp,c71400058.filter2a,tp,LOCATION_GRAVE,0,1,1,nil)
if tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then
Duel.Overlay(tc,g)
......
--风来之国的旅者 约翰与珊
function c71402004.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,2,c71402004.lcheck)
--atk
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(c71402004.atkval)
c:RegisterEffect(e1)
--activate field
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71402004,0))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,71402004)
e2:SetCondition(c71402004.con2)
e2:SetCost(c71402004.cost2)
e2:SetTarget(c71402004.tg2)
e2:SetOperation(c71402004.op2)
c:RegisterEffect(e2)
end
function c71402004.lcheck(g)
return g:GetClassCount(Card.GetLinkRace)==g:GetCount() and g:GetClassCount(Card.GetLinkAttribute)==g:GetCount()
end
function c71402004.atkval(e,c)
local g=Duel.GetMatchingGroup(Card.IsType,0,LOCATION_FZONE+LOCATION_GRAVE,LOCATION_FZONE+LOCATION_GRAVE,nil,TYPE_FIELD)
return g:GetClassCount(Card.GetCode)*500
end
function c71402004.con2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_FZONE,LOCATION_FZONE,1,nil)
end
function c71402004.cost2(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 c71402004.filter2a(c,tp)
return c:IsType(TYPE_FIELD) and c:GetActivateEffect():IsActivatable(tp,true,true)
and not Duel.IsExistingMatchingCard(c71402004.filter2b,tp,LOCATION_FZONE+LOCATION_GRAVE,LOCATION_FZONE+LOCATION_GRAVE,1,nil,c:GetCode())
end
function c71402004.filter2b(c,code)
return c:IsCode(code) and (c:IsFaceup() or not c:IsOnField())
end
function c71402004.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71402004.filter2a,tp,LOCATION_DECK,0,1,nil,tp) end
end
function c71402004.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(71402004,0))
local tc=Duel.SelectMatchingCard(tp,c71402004.filter2a,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc then
local fc=Duel.GetFieldCard(tp,LOCATION_FZONE,0)
if fc then
Duel.SendtoGrave(fc,REASON_RULE)
Duel.BreakEffect()
end
Duel.MoveToField(tc,tp,tp,LOCATION_FZONE,POS_FACEUP,true)
local te=tc:GetActivateEffect()
te:UseCountLimit(tp,1,true)
local tep=tc:GetControler()
local cost=te:GetCost()
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
Duel.RaiseEvent(tc,4179255,te,0,tp,tp,Duel.GetCurrentChain())
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_DRAW)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
\ No newline at end of file
--独属于圣诞夜的奇迹
local m=81004206
local cm=_G["c"..m]
Duel.LoadScript("c81000000.lua")
function cm.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(cm.actcon)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
cm.Attack_Defense_Listed=1
function cm.cfilter(c)
return c:IsFaceup() and c:IsAttack(1550) and c:IsDefense(1050)
end
function cm.actcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,0,2,nil)
end
function cm.filter(c)
return c:IsCode(81004100) or c:IsCode(81004203) or c:IsCode(81004205)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil) end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst()
if tc then
if tc:IsAbleToHand() and (not tc:IsAbleToGrave() or Duel.SelectOption(tp,1190,aux.Stringid(m,1))==0)then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
else
Duel.SendtoGrave(tc,REASON_EFFECT)
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.sslimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function cm.sslimit(e,c)
return not ((c:IsAttack(1550) and c:IsDefense(1050)) or (c:IsType(TYPE_RITUAL) and c:IsType(TYPE_PENDULUM)))
end
\ No newline at end of file
--永坠星域 星魔
local m = 88888211
local cm = _G["c"..m]
function cm.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedureLevelFree(c,cm.mfilter,nil,2,2)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetCondition(cm.adcon)
e1:SetValue(1500)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e2:SetCondition(cm.adcon)
e2:SetValue(aux.tgoval)
c:RegisterEffect(e2)
--attach
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,0))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_PHASE+PHASE_STANDBY)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,m)
e3:SetCost(cm.drcost)
e3:SetTarget(cm.drtg)
e3:SetOperation(cm.drop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetRange(LOCATION_MZONE)
e4:SetCondition(cm.con)
e4:SetOperation(cm.op)
c:RegisterEffect(e4)
end
function cm.mfilter(c,xyzc)
return c:IsXyzLevel(xyzc,4) or c:IsLink(4)
end
function cm.adcon(e)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsType,1,nil,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK)
end
function cm.drcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(1-tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,1-tp,1)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if Duel.Draw(p,d,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect()
if tc:IsType(TYPE_SPELL+TYPE_TRAP) then
Duel.Overlay(c,tc)
end
if tc:IsType(TYPE_MONSTER) then
Duel.SendtoDeck(tc,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
Duel.ShuffleHand(1-tp)
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and tc:IsCode(m)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,1)) and Duel.SelectOption(1-tp,aux.Stringid(m,1)) then
Duel.SelectOption(tp,aux.Stringid(m,2))
Duel.SelectOption(1-tp,aux.Stringid(m,2))
end
end
\ No newline at end of file
--永坠星域 星魔
local m = 88888211
local cm = _G["c"..m]
function cm.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedureLevelFree(c,cm.mfilter,nil,2,2)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetCondition(cm.adcon)
e1:SetValue(1500)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e2:SetCondition(cm.adcon)
e2:SetValue(aux.tgoval)
c:RegisterEffect(e2)
--attach
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,0))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_PHASE+PHASE_STANDBY)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1,m)
e3:SetCost(cm.drcost)
e3:SetTarget(cm.drtg)
e3:SetOperation(cm.drop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetRange(LOCATION_MZONE)
e4:SetCondition(cm.con)
e4:SetOperation(cm.op)
c:RegisterEffect(e4)
end
function cm.mfilter(c,xyzc)
return c:IsXyzLevel(xyzc,4) or c:IsLink(4)
end
function cm.adcon(e)
return e:GetHandler():GetOverlayGroup():IsExists(Card.IsType,1,nil,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK)
end
function cm.drcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(1-tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,1-tp,1)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
if Duel.Draw(p,d,REASON_EFFECT)~=0 then
local tc=Duel.GetOperatedGroup():GetFirst()
Duel.ConfirmCards(1-tp,tc)
Duel.BreakEffect()
if tc:IsType(TYPE_SPELL+TYPE_TRAP) then
Duel.Overlay(c,tc)
end
if tc:IsType(TYPE_MONSTER) then
Duel.SendtoDeck(tc,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
end
Duel.ShuffleHand(1-tp)
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and tc:IsCode(m)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,1)) and Duel.SelectOption(1-tp,aux.Stringid(m,1)) then
Duel.SelectOption(tp,aux.Stringid(m,2))
Duel.SelectOption(1-tp,aux.Stringid(m,2))
end
end
\ No newline at end of file
--轮回崩坏 梅比乌斯
local m = 88888244
local cm = _G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,3,3,cm.lcheck)
c:EnableReviveLimit()
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetRange(LOCATION_EXTRA)
e0:SetCondition(cm.linkcon)
e0:SetOperation(cm.linkop)
e0:SetValue(SUMMON_TYPE_LINK)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_TOHAND)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCategory(CATEGORY_DISABLE)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m)
e2:SetCost(cm.discost)
e2:SetTarget(cm.distg)
e2:SetOperation(cm.disop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.con)
e3:SetOperation(cm.op)
c:RegisterEffect(e3)
end
function cm.lcheck(g,lc)
return g:GetClassCount(Card.GetLinkCode)==g:GetCount()
end
function cm.mfilter(c)
return c:IsRank(3)
end
function cm.linkcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return ft>-1 and Duel.CheckReleaseGroup(tp,cm.mfilter,1,nil,ft,tp)
end
function cm.linkop(e,tp,eg,ep,ev,re,r,rp,c)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g=Duel.SelectReleaseGroup(tp,cm.mfilter,1,1,nil,ft,tp)
Duel.Release(g,REASON_COST+REASON_LINK)
end
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.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,cm.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
if Duel.SendtoHand(tc,nil,REASON_EFFECT)>0 then
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_EFFECT+REASON_DISCARD)
end
end
end
function cm.thfilter(c)
return c:IsAbleToHand() and (c:IsLevel(3) or c:IsRank(3) or c:IsLink(3))
end
function cm.refilter(c)
return c:IsAbleToRemoveAsCost() and (c:IsLevel(3) or c:IsRank(3) or c:IsLink(3))
end
function cm.discost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.refilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.refilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.Remove(g,nil,POS_FACEDOWN,REASON_COST)
end
function cm.disfilter(c)
return c:IsFaceup() and not c:IsDisabled()
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(1-tp) and chkc:IsOnField() and aux.NegateAnyFilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.disfilter,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectTarget(tp,cm.disfilter,tp,0,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if ((tc:IsFaceup() and not tc:IsDisabled()) or tc:IsType(TYPE_TRAPMONSTER)) and tc:IsRelateToEffect(e) then
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
if tc:IsType(TYPE_TRAPMONSTER) then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e3)
end
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and tc:IsCode(m)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,3)) and Duel.SelectOption(1-tp,aux.Stringid(m,3)) then
Duel.SelectOption(tp,aux.Stringid(m,4))
Duel.SelectOption(1-tp,aux.Stringid(m,4))
end
end
\ No newline at end of file
--轮回崩坏 梅比乌斯
local m = 88888244
local cm = _G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,3,3,cm.lcheck)
c:EnableReviveLimit()
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetRange(LOCATION_EXTRA)
e0:SetCondition(cm.linkcon)
e0:SetOperation(cm.linkop)
e0:SetValue(SUMMON_TYPE_LINK)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCategory(CATEGORY_TOHAND)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCategory(CATEGORY_DISABLE)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,m)
e2:SetCost(cm.discost)
e2:SetTarget(cm.distg)
e2:SetOperation(cm.disop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.con)
e3:SetOperation(cm.op)
c:RegisterEffect(e3)
end
function cm.lcheck(g,lc)
return g:GetClassCount(Card.GetLinkCode)==g:GetCount()
end
function cm.mfilter(c)
return c:IsRank(3)
end
function cm.linkcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return ft>-1 and Duel.CheckReleaseGroup(tp,cm.mfilter,1,nil,ft,tp)
end
function cm.linkop(e,tp,eg,ep,ev,re,r,rp,c)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g=Duel.SelectReleaseGroup(tp,cm.mfilter,1,1,nil,ft,tp)
Duel.Release(g,REASON_COST+REASON_LINK)
end
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.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,cm.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
if Duel.SendtoHand(tc,nil,REASON_EFFECT)>0 then
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_EFFECT+REASON_DISCARD)
end
end
end
function cm.thfilter(c)
return c:IsAbleToHand() and (c:IsLevel(3) or c:IsRank(3) or c:IsLink(3))
end
function cm.refilter(c)
return c:IsAbleToRemoveAsCost() and (c:IsLevel(3) or c:IsRank(3) or c:IsLink(3))
end
function cm.discost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.refilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.refilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.Remove(g,nil,POS_FACEDOWN,REASON_COST)
end
function cm.disfilter(c)
return c:IsFaceup() and not c:IsDisabled()
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(1-tp) and chkc:IsOnField() and aux.NegateAnyFilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.disfilter,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectTarget(tp,cm.disfilter,tp,0,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,1,0,0)
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if ((tc:IsFaceup() and not tc:IsDisabled()) or tc:IsType(TYPE_TRAPMONSTER)) and tc:IsRelateToEffect(e) then
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
if tc:IsType(TYPE_TRAPMONSTER) then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EFFECT_DISABLE_TRAPMONSTER)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e3)
end
end
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and tc:IsCode(m)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,3)) and Duel.SelectOption(1-tp,aux.Stringid(m,3)) then
Duel.SelectOption(tp,aux.Stringid(m,4))
Duel.SelectOption(1-tp,aux.Stringid(m,4))
end
end
\ No newline at end of file
--妖相百斩 SP洪荒无极
local m = 88888255
local cm = _G["c"..m]
function cm.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedureLevelFree(c,cm.mfilter,cm.xyzcheck,2,2)
--cannot be target
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.econ)
e1:SetValue(cm.efilter)
c:RegisterEffect(e1)
--destroy
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1)
e2:SetCost(cm.tscost)
e2:SetTarget(cm.tstg)
e2:SetOperation(cm.tsop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.con)
e3:SetOperation(cm.op)
c:RegisterEffect(e3)
end
function cm.mfilter(c,xyzc)
return c:IsXyzType(TYPE_MONSTER) and c:IsXyzLevel(xyzc,4)
end
function cm.xyzcheck(g)
return g:GetClassCount(Card.GetAttribute)==#g
end
function cm.econ(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ)
end
function cm.efilter(e,re,rp)
return re:GetHandler()~=e:GetHandler() and re:IsActiveType(TYPE_MONSTER)
end
function cm.tscost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function cm.tsfilter(c)
return c:IsType(TYPE_MONSTER) and (c:IsAbleToHand() or c:IsCanBeSpecialSummoned(e,0,tp,false,false))
end
function cm.tstg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_REMOVED) and chkc:IsAbleToDeck() end
if chk==0 then return Duel.IsExistingTarget(cm.tsfilter,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,cm.tsfilter,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function cm.tsop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if Duel.GetTurnPlayer()==tp and tc:IsRelateToEffect(e) and tc:IsAbleToHand() then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
if Duel.GetTurnPlayer()~=tp and tc:IsRelateToEffect(e) and tc:IsAbleToHand() then tc:IsCanBeSpecialSummoned(e,0,tp,false,false)
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
local fid=e:GetHandler():GetFieldID()
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,fid)
tc:RegisterFlagEffect(tc:GetOriginalCode(),RESET_EVENT+RESETS_STANDARD+RESET_DISABLE,0,0)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(tc)
e1:SetCondition(cm.retcon)
e1:SetOperation(cm.retop)
Duel.RegisterEffect(e1,tp)
end
end
function cm.retcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetFlagEffectLabel(m)~=e:GetLabel() then
e:Reset()
return false
else return true end
end
function cm.retop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
Duel.Remove(tc,POS_FACEDOWN,REASON_EFFECT)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and tc:IsCode(m)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,1)) and Duel.SelectOption(1-tp,aux.Stringid(m,1)) then
Duel.SelectOption(tp,aux.Stringid(m,2))
Duel.SelectOption(1-tp,aux.Stringid(m,2))
end
end
\ No newline at end of file
--妖相百斩 SP洪荒无极
local m = 88888255
local cm = _G["c"..m]
function cm.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedureLevelFree(c,cm.mfilter,cm.xyzcheck,2,2)
--cannot be target
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.econ)
e1:SetValue(cm.efilter)
c:RegisterEffect(e1)
--destroy
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,0))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1)
e2:SetCost(cm.tscost)
e2:SetTarget(cm.tstg)
e2:SetOperation(cm.tsop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.con)
e3:SetOperation(cm.op)
c:RegisterEffect(e3)
end
function cm.mfilter(c,xyzc)
return c:IsXyzType(TYPE_MONSTER) and c:IsXyzLevel(xyzc,4)
end
function cm.xyzcheck(g)
return g:GetClassCount(Card.GetAttribute)==#g
end
function cm.econ(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ)
end
function cm.efilter(e,re,rp)
return re:GetHandler()~=e:GetHandler() and re:IsActiveType(TYPE_MONSTER)
end
function cm.tscost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function cm.tsfilter(c)
return c:IsType(TYPE_MONSTER) and (c:IsAbleToHand() or c:IsCanBeSpecialSummoned(e,0,tp,false,false))
end
function cm.tstg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_REMOVED) and chkc:IsAbleToDeck() end
if chk==0 then return Duel.IsExistingTarget(cm.tsfilter,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,cm.tsfilter,tp,LOCATION_REMOVED,LOCATION_REMOVED,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function cm.tsop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if Duel.GetTurnPlayer()==tp and tc:IsRelateToEffect(e) and tc:IsAbleToHand() then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
if Duel.GetTurnPlayer()~=tp and tc:IsRelateToEffect(e) and tc:IsAbleToHand() then tc:IsCanBeSpecialSummoned(e,0,tp,false,false)
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
local fid=e:GetHandler():GetFieldID()
tc:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1,fid)
tc:RegisterFlagEffect(tc:GetOriginalCode(),RESET_EVENT+RESETS_STANDARD+RESET_DISABLE,0,0)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCountLimit(1)
e1:SetLabel(fid)
e1:SetLabelObject(tc)
e1:SetCondition(cm.retcon)
e1:SetOperation(cm.retop)
Duel.RegisterEffect(e1,tp)
end
end
function cm.retcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetFlagEffectLabel(m)~=e:GetLabel() then
e:Reset()
return false
else return true end
end
function cm.retop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
Duel.Remove(tc,POS_FACEDOWN,REASON_EFFECT)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and tc:IsCode(m)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,1)) and Duel.SelectOption(1-tp,aux.Stringid(m,1)) then
Duel.SelectOption(tp,aux.Stringid(m,2))
Duel.SelectOption(1-tp,aux.Stringid(m,2))
end
end
\ No newline at end of file
--天与海的誓言·SP梦
local m = 88888266
local cm = _G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--attack redirect
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_PATRICIAN_OF_DARKNESS)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCondition(cm.podcond)
e2:SetTargetRange(0,1)
c:RegisterEffect(e2)
--todeck
local e3=Effect.CreateEffect(c)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e3:SetCondition(cm.tdcon)
e3:SetOperation(cm.tdop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetRange(LOCATION_MZONE)
e4:SetCondition(cm.con)
e4:SetOperation(cm.op)
c:RegisterEffect(e4)
end
function cm.rfilter(c)
return c:IsLevelAbove(1) and c:IsAttribute(ATTRIBUTE_WATER) and c:IsType(TYPE_MONSTER) and c:IsReleasable()
end
function cm.fselect(g,tp)
return g:GetSum(Card.GetLevel)==7 and aux.mzctcheck(g,tp)
end
function cm.gcheck(g)
return g:GetSum(Card.GetLevel)<=7
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(cm.rfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,nil)
aux.GCheckAdditional=cm.gcheck
if chk==0 then
local res=g:CheckSubGroup(cm.fselect,1,g:GetCount(),tp)
aux.GCheckAdditional=nil
return res
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local rg=g:SelectSubGroup(tp,cm.fselect,false,1,g:GetCount(),tp)
aux.GCheckAdditional=nil
Duel.Release(rg,REASON_COST)
end
function cm.sptg(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,SUMMON_TYPE_RITUAL,tp,true,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP)
end
end
function cm.podfilter(c)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsFaceup() and not c:IsCode(m)
end
function cm.podcond(e)
local tp=e:GetOwnerPlayer()
return Duel.IsExistingMatchingCard(cm.podfilter,tp,LOCATION_MZONE,0,1,nil)
end
function cm.tdcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousPosition(POS_FACEUP)
end
function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,LOCATION_MZONE,0,nil)
local c=e:GetHandler()
if aux.NecroValleyNegateCheck(g) then return end
Duel.SendtoDeck(g,nil,SEQ_DECKBOTTOM,REASON_EFFECT)
Duel.SendtoDeck(c,nil,SEQ_DECKBOTTOM,REASON_EFFECT)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_RITUAL) and tc:IsCode(m)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,1)) and Duel.SelectOption(1-tp,aux.Stringid(m,1)) then
Duel.SelectOption(tp,aux.Stringid(m,2))
Duel.SelectOption(1-tp,aux.Stringid(m,2))
end
end
\ No newline at end of file
--天与海的誓言·SP梦
local m = 88888266
local cm = _G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--attack redirect
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_PATRICIAN_OF_DARKNESS)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCondition(cm.podcond)
e2:SetTargetRange(0,1)
c:RegisterEffect(e2)
--todeck
local e3=Effect.CreateEffect(c)
e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e3:SetCondition(cm.tdcon)
e3:SetOperation(cm.tdop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetRange(LOCATION_MZONE)
e4:SetCondition(cm.con)
e4:SetOperation(cm.op)
c:RegisterEffect(e4)
end
function cm.rfilter(c)
return c:IsLevelAbove(1) and c:IsAttribute(ATTRIBUTE_WATER) and c:IsType(TYPE_MONSTER) and c:IsReleasable()
end
function cm.fselect(g,tp)
return g:GetSum(Card.GetLevel)==7 and aux.mzctcheck(g,tp)
end
function cm.gcheck(g)
return g:GetSum(Card.GetLevel)<=7
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.GetMatchingGroup(cm.rfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,nil)
aux.GCheckAdditional=cm.gcheck
if chk==0 then
local res=g:CheckSubGroup(cm.fselect,1,g:GetCount(),tp)
aux.GCheckAdditional=nil
return res
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local rg=g:SelectSubGroup(tp,cm.fselect,false,1,g:GetCount(),tp)
aux.GCheckAdditional=nil
Duel.Release(rg,REASON_COST)
end
function cm.sptg(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,SUMMON_TYPE_RITUAL,tp,true,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,SUMMON_TYPE_RITUAL,tp,tp,true,false,POS_FACEUP)
end
end
function cm.podfilter(c)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsFaceup() and not c:IsCode(m)
end
function cm.podcond(e)
local tp=e:GetOwnerPlayer()
return Duel.IsExistingMatchingCard(cm.podfilter,tp,LOCATION_MZONE,0,1,nil)
end
function cm.tdcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousPosition(POS_FACEUP)
end
function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,LOCATION_MZONE,0,nil)
local c=e:GetHandler()
if aux.NecroValleyNegateCheck(g) then return end
Duel.SendtoDeck(g,nil,SEQ_DECKBOTTOM,REASON_EFFECT)
Duel.SendtoDeck(c,nil,SEQ_DECKBOTTOM,REASON_EFFECT)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_RITUAL) and tc:IsCode(m)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,1)) and Duel.SelectOption(1-tp,aux.Stringid(m,1)) then
Duel.SelectOption(tp,aux.Stringid(m,2))
Duel.SelectOption(1-tp,aux.Stringid(m,2))
end
end
\ No newline at end of file
--GOD•无冕之王
local m = 88888277
local cm = _G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,cm.linkfilter,1)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e0:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e0:SetRange(LOCATION_MZONE)
e0:SetTargetRange(1,0)
e0:SetTarget(cm.splimit)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CLIENT_HINT)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetCondition(cm.con1)
e1:SetValue(aux.tgoval)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CLIENT_HINT)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.con2)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CLIENT_HINT)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.con3)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(0,LOCATION_MZONE)
e4:SetCode(EFFECT_CANNOT_SELECT_BATTLE_TARGET)
e4:SetCondition(cm.con4)
e4:SetValue(cm.atlimit)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_UPDATE_ATTACK)
e5:SetRange(LOCATION_MZONE)
e5:SetTargetRange(0,LOCATION_MZONE)
e5:SetValue(-1000)
e5:SetCondition(cm.con5)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_SPSUMMON_SUCCESS)
e6:SetRange(LOCATION_MZONE)
e6:SetCondition(cm.con)
e6:SetOperation(cm.op)
c:RegisterEffect(e6)
end
function cm.linkfilter(c)
return c:IsLevelAbove(8) and c:IsType(TYPE_EFFECT)
end
function cm.lvfilter0(c)
return c:IsLevelBelow(12)
end
function cm.lvfilter1(c)
return c:IsLevelBelow(11)
end
function cm.lvfilter2(c)
return c:IsLevelBelow(10)
end
function cm.lvfilter3(c)
return c:IsLevelBelow(9)
end
function cm.lvfilter4(c)
return c:IsLevelBelow(8)
end
function cm.atlimit(e,c)
return c~=e:GetHandler()
end
function cm.splimit(e,c)
return c:IsLevelBelow(4)
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter0,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter1,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con3(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter2,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con4(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter3,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con5(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter4,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK) and tc:IsCode((m))
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,0)) and Duel.SelectOption(1-tp,aux.Stringid(m,0)) then
if Duel.SelectOption(tp,aux.Stringid(m,1)) and Duel.SelectOption(1-tp,aux.Stringid(m,1)) then
if Duel.SelectOption(tp,aux.Stringid(m,2)) and Duel.SelectOption(1-tp,aux.Stringid(m,2)) then
if Duel.SelectOption(tp,aux.Stringid(m,3)) and Duel.SelectOption(1-tp,aux.Stringid(m,3)) then
if Duel.SelectOption(tp,aux.Stringid(m,4)) and Duel.SelectOption(1-tp,aux.Stringid(m,4)) then
Duel.SelectOption(tp,aux.Stringid(m,5))
Duel.SelectOption(1-tp,aux.Stringid(m,5))
end
end
end
end
end
end
\ No newline at end of file
--GOD•无冕之王
local m = 88888277
local cm = _G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
aux.AddLinkProcedure(c,cm.linkfilter,1)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e0:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e0:SetRange(LOCATION_MZONE)
e0:SetTargetRange(1,0)
e0:SetTarget(cm.splimit)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CLIENT_HINT)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetCondition(cm.con1)
e1:SetValue(aux.tgoval)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CLIENT_HINT)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(cm.con2)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CLIENT_HINT)
e3:SetRange(LOCATION_MZONE)
e3:SetCondition(cm.con3)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(0,LOCATION_MZONE)
e4:SetCode(EFFECT_CANNOT_SELECT_BATTLE_TARGET)
e4:SetCondition(cm.con4)
e4:SetValue(cm.atlimit)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_UPDATE_ATTACK)
e5:SetRange(LOCATION_MZONE)
e5:SetTargetRange(0,LOCATION_MZONE)
e5:SetValue(-1000)
e5:SetCondition(cm.con5)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCode(EVENT_SPSUMMON_SUCCESS)
e6:SetRange(LOCATION_MZONE)
e6:SetCondition(cm.con)
e6:SetOperation(cm.op)
c:RegisterEffect(e6)
end
function cm.linkfilter(c)
return c:IsLevelAbove(8) and c:IsType(TYPE_EFFECT)
end
function cm.lvfilter0(c)
return c:IsLevelBelow(12)
end
function cm.lvfilter1(c)
return c:IsLevelBelow(11)
end
function cm.lvfilter2(c)
return c:IsLevelBelow(10)
end
function cm.lvfilter3(c)
return c:IsLevelBelow(9)
end
function cm.lvfilter4(c)
return c:IsLevelBelow(8)
end
function cm.atlimit(e,c)
return c~=e:GetHandler()
end
function cm.splimit(e,c)
return c:IsLevelBelow(4)
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter0,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter1,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con3(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter2,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con4(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter3,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con5(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.lvfilter4,tp,LOCATION_MZONE,0,1,nil) and e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK) and tc:IsCode((m))
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectOption(tp,aux.Stringid(m,0)) and Duel.SelectOption(1-tp,aux.Stringid(m,0)) then
if Duel.SelectOption(tp,aux.Stringid(m,1)) and Duel.SelectOption(1-tp,aux.Stringid(m,1)) then
if Duel.SelectOption(tp,aux.Stringid(m,2)) and Duel.SelectOption(1-tp,aux.Stringid(m,2)) then
if Duel.SelectOption(tp,aux.Stringid(m,3)) and Duel.SelectOption(1-tp,aux.Stringid(m,3)) then
if Duel.SelectOption(tp,aux.Stringid(m,4)) and Duel.SelectOption(1-tp,aux.Stringid(m,4)) then
Duel.SelectOption(tp,aux.Stringid(m,5))
Duel.SelectOption(1-tp,aux.Stringid(m,5))
end
end
end
end
end
end
\ No newline at end of file
--不灭的幻想·古渊露龙
local m = 88888299
local cm = _G["c"..m]
function cm.initial_effect(c)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedure(c,nil,9,2)
--spsummon limit
local e0=Effect.CreateEffect(c)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(aux.xyzlimit)
c:RegisterEffect(e0)
--lv change
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_XYZ_LEVEL)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetRange(LOCATION_EXTRA)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetTarget(cm.lvtg)
e1:SetValue(cm.lvval)
c:RegisterEffect(e1)
--attribute
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CHANGE_ATTRIBUTE)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetTarget(aux.TargetBoolFunction(Card.IsFaceup))
e2:SetValue(ATTRIBUTE_WATER)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EFFECT_CHANGE_CODE)
e3:SetValue(m)
c:RegisterEffect(e3)
--negate
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,0))
e4:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_CHAINING)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,m)
e4:SetCondition(cm.discon)
e4:SetCost(cm.discost)
e4:SetOperation(cm.disop)
c:RegisterEffect(e4)
--tohand
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,1))
e5:SetCategory(CATEGORY_TOHAND)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetCode(EVENT_DESTROYED)
e5:SetCountLimit(1,m)
e5:SetCondition(cm.thcon)
e5:SetTarget(cm.thtg)
e5:SetOperation(cm.thop)
c:RegisterEffect(e5)
end
function cm.lvtg(e,c)
return c:IsLevelAbove(6) and c:IsAttribute(ATTRIBUTE_WATER)
end
function cm.lvval(e,c,rc)
local lv=c:GetLevel()
if rc==e:GetHandler() then return 9
else return lv end
end
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and Duel.IsChainNegatable(ev)
end
function cm.cfilter(c)
return c:IsCode(m) and c:IsReleasable()
end
function cm.discost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.Release(g,nil,REASON_COST)
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsSummonType(SUMMON_TYPE_XYZ)
end
function cm.thfiter(c)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsAbleToHand() and c:IsLevelAbove(6)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfiter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(cm.thfiter,tp,LOCATION_GRAVE,0,nil)
if ct==0 then ct=1 end
if ct>2 then ct=2 end
local g=Duel.SelectMatchingCard(tp,cm.thfiter,tp,LOCATION_GRAVE,0,1,ct,nil,e,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOHAND)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
\ No newline at end of file
......@@ -5,9 +5,11 @@ function c9310000.initial_effect(c)
--ritual summon
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,9310000)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetCost(c9310000.rscost)
e1:SetTarget(c9310000.thtg)
e1:SetOperation(c9310000.thop)
......@@ -20,28 +22,16 @@ function c9310000.initial_effect(c)
e2:SetCode(EFFECT_NONTUNER)
e2:SetValue(c9310000.tnval)
c:RegisterEffect(e2)
--field
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_CHANGE_ENVIRONMENT)
e3:SetValue(9310027)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetCountLimit(1,9311000)
e3:SetTarget(c9310000.sptg)
e3:SetOperation(c9310000.spop)
c:RegisterEffect(e3)
--predraw
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(9310000,0))
e4:SetCategory(CATEGORY_TOHAND)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_PREDRAW)
e4:SetRange(LOCATION_GRAVE+LOCATION_ONFIELD)
e4:SetCountLimit(1,9311000)
e4:SetCondition(c9310000.condition)
e4:SetTarget(c9310000.target)
e4:SetOperation(c9310000.operation)
c:RegisterEffect(e4)
end
function c9310000.thfilter(c)
return c:IsSetCard(0x3f91) and not c:IsCode(9310000) and c:IsAbleToHand()
end
function c9310000.rscost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......@@ -54,62 +44,83 @@ function c9310000.rscost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
end
end
function c9310000.filter(c,tp)
return c:IsSetCard(0x3f91) and c:IsType(TYPE_FIELD) and c:GetActivateEffect():IsActivatable(tp,true,true)
end
function c9310000.thfilter(c)
return c:IsSetCard(0x3f91) and not c:IsCode(9310000) and c:IsAbleToHand()
end
function c9310000.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c9310000.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
local p=e:GetHandlerPlayer()
if chk==0 then
return Duel.IsExistingMatchingCard(c9310000.filter,p,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,nil,p)
or (Duel.IsExistingMatchingCard(Card.IsFaceup,p,LOCATION_FZONE,0,1,nil)
and Duel.IsExistingMatchingCard(c9310000.thfilter,p,LOCATION_DECK,0,1,nil)) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,p,LOCATION_DECK)
end
function c9310000.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local p=e:GetHandlerPlayer()
b=Duel.IsEnvironment(9310027)
if b and Duel.IsExistingMatchingCard(c9310000.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil)
and (not Duel.IsExistingMatchingCard(c9310000.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil)
or Duel.SelectYesNo(p,aux.Stringid(9310000,2))) then
Duel.Hint(HINT_SELECTMSG,p,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c9310000.thfilter),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)
local tc=g:GetFirst()
if Duel.SendtoHand(tc,nil,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_HAND) then
Duel.ConfirmCards(1-p,tc)
end
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(p,aux.NecroValleyFilter(c9310000.filter),p,LOCATION_HAND+LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil,p):GetFirst()
if tc then
local fc=Duel.GetFieldCard(p,LOCATION_FZONE,0)
if fc then
Duel.SendtoGrave(fc,REASON_RULE)
Duel.BreakEffect()
end
Duel.MoveToField(tc,p,p,LOCATION_FZONE,POS_FACEUP,true)
local te=tc:GetActivateEffect()
te:UseCountLimit(p,1,true)
local tep=tc:GetControler()
local cost=te:GetCost()
if cost then cost(te,tep,eg,ep,ev,re,r,rp,1) end
Duel.RaiseEvent(tc,4179255,te,0,p,p,Duel.GetCurrentChain())
end
end
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetTargetRange(1,0)
e3:SetValue(c9310000.actlimit)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
function c9310000.cfilter(c)
return (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE)) and c:IsSetCard(0x3f91) and not c:IsCode(9310000)
end
function c9310000.actlimit(e,re,rp)
return not re:GetHandler():IsSetCard(0x3f91)
and not Duel.IsExistingMatchingCard(c9310000.cfilter,e:GetHandlerPlayer(),LOCATION_ONFIELD+LOCATION_GRAVE,0,1,nil)
end
function c9310000.tnval(e,c)
return e:GetHandler():IsDefensePos()
end
function c9310000.condition(e,tp,eg,ep,ev,re,r,rp)
return tp==Duel.GetTurnPlayer() and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>0
and Duel.GetDrawCount(tp)>0
function c9310000.spfilter(c,e,tp)
return c:IsSetCard(0x3f91) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c9310000.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToHand() end
local dt=Duel.GetDrawCount(tp)
if dt~=0 then
aux.DrawReplaceCount=0
aux.DrawReplaceMax=dt
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_DRAW_COUNT)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_DRAW)
e1:SetValue(0)
Duel.RegisterEffect(e1,tp)
end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
function c9310000.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c9310000.spfilter,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE)
end
function c9310000.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
aux.DrawReplaceCount=aux.DrawReplaceCount+1
if aux.DrawReplaceCount<=aux.DrawReplaceMax and c:IsRelateToEffect(e) then
Duel.SendtoHand(c,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,c)
function c9310000.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c9310000.spfilter),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()<0 then return end
local tc=g:GetFirst()
if tc and e:GetHandler():IsSummonType(SUMMON_TYPE_RITUAL) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
if tc and not e:GetHandler():IsSummonType(SUMMON_TYPE_RITUAL) and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1,true)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2,true)
end
Duel.SpecialSummonComplete()
end
--交界超侦探 单调璇
function c9310033.initial_effect(c)
c:SetSPSummonOnce(9310033)
aux.AddCodeList(c,9310033)
--synchro material
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_TO_GRAVE_REDIRECT)
e0:SetValue(LOCATION_REMOVED)
e0:SetCondition(c9310033.rmcon)
c:RegisterEffect(e0)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(9310033,0))
......@@ -7,13 +16,17 @@ function c9310033.initial_effect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_REMOVE)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,9310033)
e1:SetTarget(c9310033.sptg)
e1:SetOperation(c9310033.spop)
c:RegisterEffect(e1)
--spsummon2
local e2=e1:Clone()
--todeck
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(9310033,1))
e2:SetCategory(CATEGORY_TODECK)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_REMOVE)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetTarget(c9310033.retg)
e2:SetOperation(c9310033.regop)
c:RegisterEffect(e2)
--nontuner
......@@ -33,9 +46,14 @@ function c9310033.initial_effect(c)
e4:SetOperation(c9310033.efop)
c:RegisterEffect(e4)
end
function c9310033.rmcon(e)
return bit.band(e:GetHandler():GetReason(),REASON_MATERIAL+REASON_SYNCHRO)==REASON_MATERIAL+REASON_SYNCHRO
end
function c9310033.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(9310033)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
c:RegisterFlagEffect(9310033,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c9310033.spop(e,tp,eg,ep,ev,re,r,rp)
......@@ -43,15 +61,16 @@ function c9310033.spop(e,tp,eg,ep,ev,re,r,rp)
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) end
end
function c9310033.retg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(9310033)==0 and e:GetHandler():IsRelateToEffect(e) end
c:RegisterFlagEffect(9310033,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,e:GetHandler(),1,0,0)
end
function c9310033.regop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetOperation(c9310033.spop1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
if e:GetHandler():IsRelateToEffect(e) then
Duel.SendtoDeck(e:GetHandler(),nil,SEQ_DECKBOTTOM,REASON_EFFECT)
end
end
function c9310033.spop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......@@ -81,6 +100,7 @@ function c9310033.efop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetCost(c9310033.cost)
e1:SetCondition(c9310033.thcon)
e1:SetTarget(c9310033.rmtg)
e1:SetOperation(c9310033.rmop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
......@@ -95,6 +115,9 @@ function c9310033.efop(e,tp,eg,ep,ev,re,r,rp)
end
rc:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(9310033,3))
end
function c9310033.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSequence()>4
end
function c9310033.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local g=Duel.IsExistingMatchingCard(Card.IsAbleToRemoveAsCost,tp,LOCATION_HAND,0,1,nil)
......
--天空的跃者 单调馛
xpcall(function() require("expansions/script/c10000100") end,function() require("script/c10000100") end)
function c9310070.initial_effect(c)
aux.AddCodeList(c,9310070)
c:EnableCounterPermit(0x50a)
--synchro summon
aux.AddSynchroProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x3f91),aux.NonTuner(Card.IsDefense,1500),1,1)
c:EnableReviveLimit()
--pendulum summon
aux.EnablePendulumAttribute(c,false)
--spsummon condition
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c9310070.splimit)
c:RegisterEffect(e1)
--special summon rule
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(c9310070.sprcon)
e2:SetTarget(c9310070.sprtg)
e2:SetOperation(c9310070.sprop)
c:RegisterEffect(e2)
--can not remove
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetCode(EFFECT_CANNOT_REMOVE)
e4:SetRange(LOCATION_PZONE)
e4:SetTargetRange(1,1)
e4:SetTarget(c9310070.efilter)
c:RegisterEffect(e4)
--special summon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(9310070,4))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_PZONE)
e3:SetCountLimit(1,9312070)
e3:SetCost(c9310070.spcost)
e3:SetTarget(c9310070.sptg)
e3:SetOperation(c9310070.spop)
c:RegisterEffect(e3)
--set
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(9310070,0))
e5:SetCategory(CATEGORY_POSITION)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
e5:SetTarget(c9310070.target)
e5:SetOperation(c9310070.operation)
c:RegisterEffect(e5)
--pendulum
local e6=e5:Clone()
e6:SetCode(EVENT_DESTROYED)
e6:SetCondition(c9310070.pencon)
c:RegisterEffect(e6)
--nontuner
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetRange(LOCATION_MZONE)
e7:SetCode(EFFECT_NONTUNER)
e7:SetCondition(c9310070.con)
e7:SetValue(1)
c:RegisterEffect(e7)
--act limit
local e8=Effect.CreateEffect(c)
e8:SetType(EFFECT_TYPE_SINGLE)
e8:SetCode(EFFECT_CANNOT_TRIGGER)
e8:SetRange(LOCATION_MZONE)
e8:SetCondition(c9310070.con)
e8:SetValue(1)
c:RegisterEffect(e8)
--Position
local e9=Effect.CreateEffect(c)
e9:SetDescription(aux.Stringid(9310070,3))
e9:SetCategory(CATEGORY_POSITION)
e9:SetType(EFFECT_TYPE_QUICK_O)
e9:SetCode(EVENT_FREE_CHAIN)
e9:SetRange(LOCATION_MZONE)
e9:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e9:SetProperty(EFFECT_FLAG_CARD_TARGET)
e9:SetCost(bo.base_cost)
e9:SetCountLimit(1)
e9:SetTarget(c9310070.postg)
e9:SetOperation(c9310070.posop)
c:RegisterEffect(e9)
end
c9310070.material_setcode=0x3f91
function c9310070.splimit(e,se,sp,st)
local c=e:GetHandler()
if c:IsLocation(LOCATION_EXTRA) and c:IsFacedown() then return aux.synlimit end
return true
end
function c9310070.rfilter(c,tp)
return c:IsControler(tp) and c:GetCounter(0)>0
end
function c9310070.sumfilter(c)
return c:GetLevel()+c:GetCounter(0)
end
function c9310070.fselect(g,tp)
Duel.SetSelectedCard(g)
return g:CheckWithSumGreater(c9310070.sumfilter,8) and aux.mzctcheckrel(g,tp)
end
function c9310070.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local rg=Duel.GetReleaseGroup(tp):Filter(c9310070.rfilter,nil,tp)
return rg:CheckSubGroup(c9310070.fselect,1,rg:GetCount(),tp)
end
function c9310070.sprtg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local rg=Duel.GetReleaseGroup(tp):Filter(c9310070.rfilter,nil,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local sg=rg:SelectSubGroup(tp,c9310070.fselect,true,1,rg:GetCount(),tp)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
function c9310070.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local g=e:GetLabelObject()
c:SetMaterial(g)
Duel.Release(g,REASON_COST)
end
function c9310070.efilter(e,c,rp,r,re)
local tp=e:GetHandlerPlayer()
return c:IsFaceup() and c:IsControler(tp) and c:IsLocation(LOCATION_ONFIELD)
and (c:IsType(TYPE_TUNER) or c:GetCounter(0)>0)
end
function c9310070.cfilter(c,tp)
return c:IsAbleToHandAsCost() and Duel.GetMZoneCount(tp,c)>0
and c:GetBaseAttack()==1500 and c:IsLevel(4)
end
function c9310070.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c9310070.cfilter,tp,LOCATION_MZONE,0,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectMatchingCard(tp,c9310070.cfilter,tp,LOCATION_MZONE,0,1,1,nil,tp)
Duel.SendtoHand(g,nil,REASON_COST)
end
function c9310070.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c9310070.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
function c9310070.pencon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsFaceup()
end
function c9310070.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local b1=Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)
and Duel.GetFlagEffect(tp,9310070)==0
local b2=Duel.IsExistingMatchingCard(Card.IsCanTurnSet,tp,LOCATION_MZONE,LOCATION_MZONE,1,e:GetHandler())
and Duel.GetFlagEffect(tp,9311070)==0
if chk==0 then return b1 or b2 end
end
function c9310070.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)
and Duel.GetFlagEffect(tp,9310070)==0
local b2=Duel.IsExistingMatchingCard(Card.IsCanTurnSet,tp,LOCATION_MZONE,LOCATION_MZONE,1,e:GetHandler())
and Duel.GetFlagEffect(tp,9311070)==0
local op=0
if b1 and b2 then op=Duel.SelectOption(tp,aux.Stringid(9310070,1),aux.Stringid(9310070,2))
elseif b1 then op=Duel.SelectOption(tp,aux.Stringid(9310070,1))
elseif b2 then op=Duel.SelectOption(tp,aux.Stringid(9310070,2))+1
else return end
if op==0 and c:IsRelateToEffect(e) then
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
Duel.RegisterFlagEffect(tp,9310070,RESET_PHASE+PHASE_END,0,1)
else
local g=Duel.GetMatchingGroup(Card.IsCanTurnSet,tp,LOCATION_MZONE,LOCATION_MZONE,aux.ExceptThisCard(e))
Duel.ChangePosition(g,POS_FACEDOWN_DEFENSE)
Duel.RegisterFlagEffect(tp,9311070,RESET_PHASE+PHASE_END,0,1)
end
end
function c9310070.con(e)
return (e:GetHandler():IsDefensePos() or e:GetHandler():GetCounter(0x50a)>0) and e:GetHandler():IsLocation(LOCATION_MZONE)
end
function c9310070.posfilter(c)
return c:IsDefensePos() and c:IsCanChangePosition()
end
function c9310070.postg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c9310070.posfilter(chkc) end
local ct=Duel.GetFieldGroupCount(e:GetHandler():GetControler(),LOCATION_HAND,0)
if chk==0 then return ct>0 and Duel.IsExistingTarget(c9310070.posfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
local g=Duel.SelectTarget(tp,c9310070.posfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,ct,nil)
Duel.SetOperationInfo(0,CATEGORY_POSITION,g,g:GetCount(),0,0)
end
function c9310070.posop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if g:GetCount()>0 then
Duel.ChangePosition(g,0,0,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK,true)
end
end
......@@ -28,7 +28,8 @@ function cm.initial_effect(c)
c:RegisterEffect(e3)
end
function cm.mfilter(c,xyzc)
return c:IsType(TYPE_MONSTER) and ((c:IsSetCard(0x281) and c:IsLevel(4)) or not c:IsControler(c:GetOwner()))
local other=c:IsControler(tp) and c:GetOwner()~=tp and c:IsLocation(LOCATION_MZONE)
return c:IsType(TYPE_MONSTER) and ((c:IsSetCard(0x281) and c:IsLevel(4)) or other)
end
--recover
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -29,7 +29,8 @@ function cm.initial_effect(c)
c:RegisterEffect(e2)
end
function cm.mfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsLinkSetCard(0x281) or not c:IsControler(c:GetOwner())
local other=c:IsControler(tp) and c:GetOwner()~=tp and c:IsLocation(LOCATION_MZONE)
return c:IsType(TYPE_MONSTER) and (c:IsLinkSetCard(0x281) or other)
end
--
function cm.costfilter(c)
......
......@@ -44,19 +44,22 @@ function cm.initial_effect(c)
end
--sp rule
function cm.sprfilter(c)
return c:IsFaceup() and (c:IsLevelAbove(1) or not c:IsControler(c:GetOwner())) and c:IsCanBeSynchroMaterial()
local other=c:IsControler(tp) and c:GetOwner()~=tp
return c:IsFaceup() and ((c:IsLevelAbove(1) and c:IsCanBeSynchroMaterial()) or other)
end
function cm.sprfilter1(c,tp,g,sc)
local lv=c:GetLevel()
if not c:IsControler(c:GetOwner()) then lv=4 end
return lv>=1 and (c:IsSetCard(0x281) or not c:IsControler(c:GetOwner())) and c:IsType(TYPE_TUNER)
local other=c:IsControler(tp) and c:GetOwner()~=tp
if other then lv=4 end
return lv>=1 and (c:IsSetCard(0x281) or other) and c:IsType(TYPE_TUNER)
and g:IsExists(cm.sprfilter2,1,c,tp,c,sc,lv)
end
function cm.sprfilter2(c,tp,mc,sc,lv1)
local sg=Group.FromCards(c,mc)
local lv2=c:GetLevel()
if not c:IsControler(c:GetOwner()) then lv2=4 end
return lv2>=1 and lv1+lv2==8 and (c:IsSetCard(0x281) or not c:IsControler(c:GetOwner())) and not c:IsType(TYPE_TUNER)
local other=c:IsControler(tp) and c:GetOwner()~=tp
if other then lv2=4 end
return lv2>=1 and lv1+lv2==8 and (c:IsSetCard(0x281) or other) and not c:IsType(TYPE_TUNER)
and Duel.GetLocationCountFromEx(tp,tp,sg,sc)>0
end
function cm.sprcon(e,c)
......
......@@ -50,7 +50,8 @@ function cm.matlimit(e,c,fc,st)
return (c:IsOnField() and c:GetOwner()~=e:GetHandlerPlayer()) or c:IsSetCard(0x281)
end
function cm.mfilter(c)
return c:IsType(TYPE_MONSTER) and (c:IsSetCard(0x281) or c:IsOnField())
local other=c:IsControler(tp) and c:GetOwner()~=tp and c:IsLocation(LOCATION_MZONE)
return c:IsType(TYPE_MONSTER) and (c:IsSetCard(0x281) or other)
end
--handes
function cm.cfilter(c,tp)
......
......@@ -2,83 +2,74 @@
local m=96010101
local cm=_G["c"..m]
function cm.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,m)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--token
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,0))
e4:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetCountLimit(1,m+1)
e4:SetCountLimit(1,m)
e4:SetCost(cm.tkcost)
e4:SetTarget(cm.tktg)
e4:SetOperation(cm.tkop)
c:RegisterEffect(e4)
end
--SpecialSummon
function cm.spcostfilter(c,tp)
return c:IsType(TYPE_MONSTER) and (c:IsType(TYPE_TOKEN) or c:GetOwner()==1-tp) and Duel.GetMZoneCount(tp,c)>0
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,cm.spcostfilter,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE)
local g=Duel.SelectReleaseGroup(tp,cm.spcostfilter,1,1,nil,tp)
Duel.Release(g,REASON_COST)
end
function cm.sptg(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)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
--to hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetCountLimit(1,m)
e2:SetCondition(cm.thcon)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
end
--token
function cm.cfilter(c)
return c:IsRace(RACE_FAIRY) and c:IsLevelBelow(7) and c:IsAbleToRemoveAsCost()
return c:IsSetCard(0x281) and c:IsType(TYPE_MONSTER) and c:IsAbleToRemoveAsCost()
end
function cm.tkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_GRAVE,0,1,1,nil)
e:SetLabel(g:GetFirst():GetLevel())
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function cm.tktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,96010105,0x281,TYPES_TOKEN_MONSTER,1200,1800,8,RACE_FAIRY,ATTRIBUTE_EARTH) end
and Duel.IsPlayerCanSpecialSummonMonster(tp,96010105,0x281,TYPES_TOKEN_MONSTER,1200,1800,4,RACE_FAIRY,ATTRIBUTE_EARTH) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function cm.tkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
if Duel.IsPlayerCanSpecialSummonMonster(tp,96010105,0x281,TYPES_TOKEN_MONSTER,1200,1800,8,RACE_FAIRY,ATTRIBUTE_EARTH) then
if Duel.IsPlayerCanSpecialSummonMonster(tp,96010105,0x281,TYPES_TOKEN_MONSTER,1200,1800,4,RACE_FAIRY,ATTRIBUTE_EARTH) then
local token=Duel.CreateToken(tp,96010105)
if Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)>0 then
local lv=e:GetLabel()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_LEVEL)
e1:SetValue(-lv)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
token:RegisterEffect(e1)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
end
end
--tohand
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
return bit.band(r,REASON_EFFECT)~=0
end
function cm.thfilter(c)
return c:IsCode(96010001) and c:IsAbleToHand()
end
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 chk==0 then return Duel.IsExistingTarget(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,cm.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
......@@ -31,43 +31,44 @@ function cm.initial_effect(c)
e3:SetTarget(cm.extg)
e3:SetOperation(cm.exop)
c:RegisterEffect(e3)
--SpecialSummon deck+grave
--give
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(m,0))
e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e4:SetCode(EVENT_CHAINING)
e4:SetCategory(CATEGORY_CONTROL)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetCountLimit(1)
e4:SetCondition(cm.spcon)
e4:SetTarget(cm.sptg)
e4:SetOperation(cm.spop)
e4:SetTarget(cm.gtg)
e4:SetOperation(cm.gop)
c:RegisterEffect(e4)
end
--sp rule
function cm.sprfilter(c)
return c:IsFaceup() and ((c:IsLevelAbove(1) and c:IsCanBeSynchroMaterial()) or not c:IsControler(c:GetOwner()))
function cm.sprfilter(c,tp)
local other=c:IsControler(tp) and c:GetOwner()~=tp
return c:IsFaceup() and ((c:IsLevelAbove(1) and c:IsCanBeSynchroMaterial()) or other)
end
function cm.sprfilter1(c,tp,g,sc)
local lv=c:GetLevel()
if c:IsControler(tp) and c:GetOwner()~=tp then lv=4 end
return lv>=1 and c:IsType(TYPE_TUNER) and g:IsExists(cm.sprfilter2,1,c,tp,c,sc,lv)
end
function cm.sprfilter2(c,tp,mc,sc,lv1)
local sg=Group.FromCards(c,mc)
local lv2=c:GetLevel()
if not c:IsControler(c:GetOwner()) then lv2=4 end
return lv2>=1 and lv1+lv2==8 and (c:IsSetCard(0x281) or not c:IsControler(c:GetOwner())) and not c:IsType(TYPE_TUNER)
local other=c:GetControler()==tp and c:GetOwner()~=tp
if other then lv2=4 end
return lv2>=1 and lv1+lv2==8 and (c:IsSetCard(0x281) or other) and not c:IsType(TYPE_TUNER)
and Duel.GetLocationCountFromEx(tp,tp,sg,sc)>0
end
function cm.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local g=Duel.GetMatchingGroup(cm.sprfilter,tp,LOCATION_MZONE,0,nil)
local g=Duel.GetMatchingGroup(cm.sprfilter,tp,LOCATION_MZONE,0,nil,tp)
return g:IsExists(cm.sprfilter1,1,nil,tp,g,c)
end
function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.GetMatchingGroup(cm.sprfilter,tp,LOCATION_MZONE,0,nil)
local g=Duel.GetMatchingGroup(cm.sprfilter,tp,LOCATION_MZONE,0,nil,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g1=g:FilterSelect(tp,cm.sprfilter1,1,1,nil,tp,g,c)
local mc=g1:GetFirst()
......@@ -91,20 +92,9 @@ function cm.exop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_CONFIRM)
local tc=Duel.SelectMatchingCard(1-tp,cm.exfilter,1-tp,LOCATION_EXTRA,0,1,1,nil):GetFirst()
Duel.ConfirmCards(tp,tc)
if tc:IsCanBeSpecialSummoned(e,0,1-tp,false,false,POS_FACEUP,1-tp)
and Duel.IsPlayerCanSpecialSummon(1-tp) and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
if tc:IsCanBeSpecialSummoned(e,0,1-tp,false,false,POS_FACEDOWN_DEFENSE,tp) and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
if tc then
Duel.SpecialSummonStep(tc,0,1-tp,1-tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
tc:RegisterEffect(e2)
Duel.SpecialSummonComplete()
Duel.SpecialSummon(tc,0,1-tp,tp,false,false,POS_FACEDOWN_DEFENSE)
end
end
end
......@@ -127,5 +117,47 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter),tp,0,LOCATION_DECK+LOCATION_GRAVE,1,1,nil,e,tp)
Duel.SpecialSummon(sg,0,tp,1-tp,false,false,POS_FACEDOWN_DEFENSE)
end
--give
function cm.gfilter(c)
return (c:IsControlerCanBeChanged() or c:IsLocation(LOCATION_SZONE)) and c:IsFacedown()
end
function cm.gtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsControler(tp) and cm.gfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.gfilter,tp,LOCATION_ONFIELD,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local g=Duel.SelectTarget(tp,cm.gfilter,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end
function cm.gop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
if tc:IsLocation(LOCATION_MZONE) then
Duel.GetControl(tc,1-tp)
else
Duel.MoveToField(tc,1-tp,1-tp,LOCATION_SZONE,POS_FACEDOWN,false)
end
end
end
......@@ -2,7 +2,7 @@
local m=96010121
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableReviveLimit()
c:EnableReviveLimit()
--spsummon condition
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
......@@ -22,13 +22,14 @@ c:EnableReviveLimit()
--negate
local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(m,1))
e5:SetCategory(CATEGORY_DISABLE)
e5:SetCategory(CATEGORY_TOHAND)
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCode(EVENT_CHAINING)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetRange(LOCATION_MZONE)
e5:SetCondition(cm.negcon)
e5:SetTarget(cm.negtg)
e5:SetOperation(cm.negop)
e5:SetProperty(EFFECT_FLAG_CARD_TARGET)
e5:SetCountLimit(1)
e5:SetTarget(cm.thtg)
e5:SetOperation(cm.thop)
c:RegisterEffect(e5)
--SpecialSummon
local e3=Effect.CreateEffect(c)
......@@ -42,24 +43,27 @@ c:EnableReviveLimit()
c:RegisterEffect(e3)
end
--sp rule
function cm.sprfilter(c)
return c:IsFaceup() and (c:IsLevelAbove(1) or not c:IsControler(c:GetOwner())) and c:IsCanBeSynchroMaterial()
function cm.sprfilter(c,tp)
local other=c:IsControler(tp) and c:GetOwner()~=tp
return c:IsFaceup() and ((c:IsLevelAbove(1) and c:IsCanBeSynchroMaterial()) or other)
end
function cm.sprfilter1(c,tp,g,sc)
local lv=c:GetLevel()
return lv>=1 and c:IsType(TYPE_TUNER) and c:IsType(TYPE_SYNCHRO) and g:IsExists(cm.sprfilter2,1,c,tp,c,sc,lv)
if c:IsControler(tp) and c:GetOwner()~=tp then lv=4 end
return c:IsType(TYPE_TUNER) and c:IsType(TYPE_SYNCHRO) and g:IsExists(cm.sprfilter2,1,c,tp,c,sc,lv)
end
function cm.sprfilter2(c,tp,mc,sc,lv1)
local sg=Group.FromCards(c,mc)
local lv2=c:GetLevel()
if not c:IsControler(c:GetOwner()) then lv2=4 end
return lv2>=1 and lv1+lv2==12 and (c:IsSetCard(0x281) or not c:IsControler(c:GetOwner())) and not c:IsType(TYPE_TUNER)
local other=c:IsControler(tp) and c:GetOwner()~=tp
if other then lv2=4 end
return lv2>=1 and lv1+lv2==12 and (c:IsSetCard(0x281) or other) and not c:IsType(TYPE_TUNER)
and Duel.GetLocationCountFromEx(tp,tp,sg,sc)>0
end
function cm.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local g=Duel.GetMatchingGroup(cm.sprfilter,tp,LOCATION_MZONE,0,nil)
local g=Duel.GetMatchingGroup(cm.sprfilter,tp,LOCATION_MZONE,0,nil,tp)
return g:IsExists(cm.sprfilter1,1,nil,tp,g,c)
end
function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c)
......@@ -73,6 +77,28 @@ function cm.sprop(e,tp,eg,ep,ev,re,r,rp,c)
c:SetMaterial(g1)
Duel.SendtoGrave(g1,REASON_MATERIAL+REASON_SYNCHRO)
end
--tohand
function cm.thfilter(c)
return c:IsFaceup() and c:IsSetCard(0x281) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chkc then return false end
if chk==0 then return Duel.IsExistingTarget(cm.thfilter,tp,LOCATION_ONFIELD,0,1,nil) and
Duel.IsExistingTarget(nil,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g1=Duel.SelectTarget(tp,cm.thfilter,tp,LOCATION_ONFIELD,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g2=Duel.SelectTarget(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil)
g1:Merge(g2)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g1,g1:GetCount(),0,0)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local tg=g:Filter(Card.IsRelateToEffect,nil,e)
if tg:GetCount()>0 then
Duel.SendtoHand(tg,nil,REASON_EFFECT)
end
end
--NegateActivation
function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP)
......
--双生永别 逝世之姊
local m=96011001
local cm=_G["c"..m]
function cm.initial_effect(c)
--tograve
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_LEAVE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.tgcon)
e1:SetOperation(cm.tgop)
c:RegisterEffect(e1)
--special summon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_GRAVE)
e3:SetCountLimit(1,m)
e3:SetCondition(cm.spcon)
e3:SetTarget(cm.sptg)
e3:SetOperation(cm.spop)
c:RegisterEffect(e3)
end
--tograve
function cm.cfilter2(c,tp)
return c:IsCode(96011011) and c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousPosition(POS_FACEUP)
end
function cm.tgcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter2,1,nil,tp)
end
function cm.tgop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local success=false
if Duel.IsExistingMatchingCard(cm.cosfilter,tp,LOCATION_GRAVE,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(96011031,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.cosfilter),tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
success=true
else
Duel.SendtoGrave(c,REASON_EFFECT)
success=true
end
if success then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil):GetFirst()
if tc then
Duel.SSet(tp,tc)
end
end
end
function cm.cosfilter(c)
return c:IsCode(96011031) and c:IsAbleToDeck()
end
function cm.setfilter(c)
return c:IsSetCard(0x3284) and c:IsType(TYPE_SPELL) and c:IsSSetable()
end
--SpecialSummon
function cm.cfilter(c)
return c:IsFaceup() and c:IsCode(96011011)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
function cm.sptg(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)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
--双生永别 饮泣之妹
local m=96011011
local cm=_G["c"..m]
function cm.initial_effect(c)
--special summon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_HAND)
e3:SetCountLimit(1,m)
e3:SetCondition(cm.spcon)
e3:SetTarget(cm.sptg)
e3:SetOperation(cm.spop)
c:RegisterEffect(e3)
--todeck
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_LEAVE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.tdcon)
e1:SetOperation(cm.tdop)
c:RegisterEffect(e1)
end
--SpecialSummon
function cm.cfilter(c)
return c:IsFaceup() and c:IsCode(96011001)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_GRAVE,0,1,nil)
end
function cm.sptg(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)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
--tograve
function cm.cfilter2(c,tp)
return c:IsCode(96011001) and c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_ONFIELD) and c:IsPreviousPosition(POS_FACEUP)
end
function cm.tdcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter2,1,nil,tp)
end
function cm.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local success=false
if Duel.IsExistingMatchingCard(cm.cosfilter,tp,LOCATION_GRAVE,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(96011031,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.cosfilter),tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
success=true
else
Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
success=true
end
if success then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.setfilter),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil):GetFirst()
if tc then
Duel.SSet(tp,tc)
end
end
end
function cm.cosfilter(c)
return c:IsCode(96011031) and c:IsAbleToDeck()
end
function cm.setfilter(c)
return c:IsSetCard(0x3284) and c:IsType(TYPE_TRAP) and c:IsSSetable()
end
\ No newline at end of file
--双生永别 镜中之姊
local m=96011021
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
c:EnableReviveLimit()
aux.AddLinkProcedure(c,nil,2,2)
--change code
aux.EnableChangeCode(c,96011011,LOCATION_ONFIELD)
--change code
aux.EnableChangeCode(c,96011001,LOCATION_GRAVE)
end
--双生永别 梦中泡影
local m=96011031
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
end
--tohand
function cm.thfilter(c)
return c:IsSetCard(0x3284) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
local tg=Duel.GetMatchingGroup(cm.tgfilter,tp,LOCATION_DECK,0,nil,g:GetFirst():GetCode())
if tg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tgc=tg:Select(tp,1,1,nil):GetFirst()
Duel.SendtoGrave(tgc,REASON_EFFECT)
end
end
end
function cm.tgfilter(c,code)
return c:IsSetCard(0x3284) and not c:IsCode(code) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
--双生永别 永逝别离
local m=96011041
local cm=_G["c"..m]
function cm.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--to hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetCategory(CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_GRAVE)
e2:SetCost(cm.thcost)
e2:SetTarget(cm.thtg)
e2:SetOperation(cm.thop)
c:RegisterEffect(e2)
end
function cm.filter(c)
return c:IsFaceup() and c:IsType(TYPE_MONSTER) and c:IsSetCard(0x3284) and c:IsAbleToGrave()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
if chk==0 then return Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,0,1,nil)
and Duel.IsExistingTarget(nil,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g1=Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g2=Duel.SelectTarget(tp,nil,tp,0,LOCATION_MZONE,1,1,nil)
g1:Merge(g2)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g1,2,0,0)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local tg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if tg:GetCount()>0 and Duel.SendtoGrave(tg,REASON_EFFECT)~=0 then
local tc=tg:GetFirst()
for tc in aux.Next(tg) do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_TRIGGER)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
end
end
end
--tohand
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeckAsCost() end
Duel.SendtoDeck(e:GetHandler(),nil,SEQ_DECKSHUFFLE,REASON_COST)
end
function cm.thfilter(c)
return c:IsCode(96011011) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_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>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
end
end
--双生永别 睹物思姊
local m=96011051
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--SpecialSummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_SZONE)
e1:SetCode(EVENT_LEAVE_FIELD)
e1:SetCost(cm.spcost)
e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
--draw
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_SZONE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCountLimit(1)
e3:SetCost(cm.drcost)
e3:SetTarget(cm.drtg)
e3:SetOperation(cm.drop)
c:RegisterEffect(e3)
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToGraveAsCost() and c:IsStatus(STATUS_EFFECT_ENABLED) end
Duel.SendtoGrave(c,REASON_COST)
end
function cm.cfilter(c,e,tp)
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousControler(tp) and c:IsPreviousPosition(POS_FACEUP)
and c:GetReasonEffect():GetHandler()==c
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp,c:GetPreviousCodeOnField())
end
function cm.spfilter(c,e,tp,code)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP) and c:IsCode(code)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return eg:IsExists(cm.cfilter,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local g=eg:Filter(cm.cfilter,nil,e,tp)
if g:GetCount()<1 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.spfilter2),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp,g)
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end
function cm.spfilter2(c,e,tp,g)
for tc in aux.Next(g) do
if c:IsCode(tc:GetCode()) then
return c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
end
end
return false
end
--draw
function cm.dcfilter(c)
return c:IsSetCard(0x3284) and c:IsAbleToGraveAsCost()
end
function cm.drcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.dcfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.dcfilter,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,e:GetHandler())
Duel.SendtoGrave(g,REASON_COST)
end
function cm.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
--双生永别 永不分离
local m=96011061
local cm=_G["c"..m]
function cm.initial_effect(c)
--Negate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_NEGATE+CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetCondition(cm.discon)
e1:SetTarget(cm.distg)
e1:SetOperation(cm.disop)
c:RegisterEffect(e1)
--immune
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_GRAVE)
e2:SetCost(cm.cost)
e2:SetTarget(cm.target)
e2:SetOperation(cm.activate)
c:RegisterEffect(e2)
end
--negate
function cm.discon(e,tp,eg,ep,ev,re,r,rp)
if not (rp==1-tp and re:IsHasProperty(EFFECT_FLAG_CARD_TARGET)) then return false end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
return Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,96011001)
and Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_ONFIELD,0,1,nil,96011011)
and g and g:IsExists(Card.IsControler,1,nil,tp)
and (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.IsChainNegatable(ev)
end
function cm.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_REMOVE,eg,1,0,0)
end
end
function cm.disop(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) and Duel.Remove(eg,POS_FACEUP,REASON_EFFECT)>0 then
local g=Duel.GetMatchingGroup(Card.IsCode,tp,0,LOCATION_DECK+LOCATION_EXTRA,nil,re:GetHandler():GetCode())
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
end
--immune
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeckAsCost() end
Duel.SendtoDeck(e:GetHandler(),nil,SEQ_DECKSHUFFLE,REASON_COST)
end
function cm.filter(c)
return c:IsFaceup() and c:IsSetCard(0x3284) and aux.NegateMonsterFilter(c)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then
local g=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_MZONE,0,nil)
return g:GetClassCount(Card.GetCode)>=2
end
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_MZONE,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local g1=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
for tc in aux.Next(g1) do
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_IMMUNE_EFFECT)
e3:SetValue(cm.efilter)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3)
end
end
function cm.efilter(e,te)
return te:GetOwner()~=e:GetOwner()
end
--双生永别 青的红装
local m=96011071
local cm=_G["c"..m]
function cm.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,nil,3,2,cm.ovfilter,aux.Stringid(m,0))
c:EnableReviveLimit()
--summon success
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(cm.regcon)
e2:SetOperation(cm.regop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_MATERIAL_CHECK)
e3:SetValue(cm.valcheck)
e3:SetLabelObject(e2)
c:RegisterEffect(e3)
--material
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(cm.matcon)
e1:SetTarget(cm.mattg)
e1:SetOperation(cm.matop)
c:RegisterEffect(e1)
--cannot be target
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetTargetRange(LOCATION_ONFIELD,0)
e4:SetTarget(cm.immtg)
e4:SetValue(aux.tgoval)
c:RegisterEffect(e4)
end
function cm.ovfilter(c)
return c:IsFaceup() and c:IsCode(96011021)
end
--check
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ) and e:GetLabel()==1
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD,0,1)
c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,1))
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_CHANGE_CODE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(96011001)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
function cm.valcheck(e,c)
local g=c:GetMaterial()
if g:IsExists(Card.IsSetCard,1,nil,0x3284) then
e:GetLabelObject():SetLabel(1)
else
e:GetLabelObject():SetLabel(0)
end
end
--material
function cm.matcon(e)
return e:GetHandler():GetFlagEffect(m)>0
end
function cm.matfilter(c)
return c:IsCanOverlay()
end
function cm.mattg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and cm.matfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(cm.matfilter,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil)
and e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_EFFECT) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
Duel.SelectTarget(tp,cm.IsCanOverlay,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,1,nil)
end
function cm.matop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and c:IsFaceup() and c:RemoveOverlayCard(tp,1,1,REASON_EFFECT)>0 and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) then
Duel.Overlay(c,tc)
end
end
--immune
function cm.immtg(e,c)
return (c:IsFaceup() and c:IsSetCard(0x3284)) or (c:IsFacedown() and c:IsLocation(LOCATION_SZONE))
end
--双生永别 青兰红杏
local m=96011081
local cm=_G["c"..m]
function cm.initial_effect(c)
--synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1,1)
c:EnableReviveLimit()
--Attribute Dark
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_ADD_ATTRIBUTE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(ATTRIBUTE_WATER)
c:RegisterEffect(e1)
--race SPELLCASTER
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetCode(EFFECT_ADD_RACE)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(RACE_SPELLCASTER)
c:RegisterEffect(e2)
--copy code
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,0))
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_MZONE)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetCountLimit(1)
e3:SetTarget(cm.copytg)
e3:SetOperation(cm.copyop)
c:RegisterEffect(e3)
end
function cm.copyfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0x3284) and (c:IsFaceup() or c:IsLocation(LOCATION_GRAVE))
end
function cm.copytg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE+LOCATION_GRAVE) and cm.copyfilter(chkc) and chkc~=c end
if chk==0 then return Duel.IsExistingTarget(cm.copyfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,cm.copyfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,1,1,nil)
end
function cm.copyop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc and c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsRelateToEffect(e) and (tc:IsFaceup() or tc:IsLocation(LOCATION_GRAVE)) then
local code=tc:GetOriginalCodeRule()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_CODE)
e1:SetValue(code)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
end
--束缚之瓶 紫月季
local m=96030030
local cm=_G["c"..m]
function cm.initial_effect(c)
c:SetSPSummonOnce(96030030)
--Synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit()
--
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e0:SetRange(LOCATION_EXTRA)
e0:SetValue(SUMMON_TYPE_SYNCHRO)
e0:SetLabel(2)
e0:SetCondition(cm.sycon)
e0:SetOperation(cm.syop)
c:RegisterEffect(e0)
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCondition(cm.tkcon1)
e1:SetTarget(cm.tktg1)
e1:SetOperation(cm.tkop1)
c:RegisterEffect(e1)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1,m)
e3:SetCondition(cm.spcon)
e3:SetTarget(cm.sptg)
e3:SetOperation(cm.spop)
c:RegisterEffect(e3)
end
function cm.stfilter1(c,tc)
return c:IsSynchroType(TYPE_TUNER) and c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc)
end
function cm.stfilter2(c,tc)
return c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc) and not c:IsSynchroType(TYPE_TUNER)
end
function cm.ckfilter2(c)
return c:IsPosition(POS_FACEUP) and c:IsLocation(LOCATION_SZONE)
end
function cm.stfilterg(g,tp,tc,lv,smat)
if smat then
g:AddCard(smat)
end
local g1=g:Filter(cm.stfilter1,nil,tc)
local g2=g:Filter(cm.stfilter2,nil,tc)
local count=g:GetCount()
return g1:GetCount()==1 and g2:GetCount()==count-1 and g:Filter(cm.ckfilter2,nil):GetCount()==1 and g:GetSum(Card.GetLevel)==lv and Duel.GetLocationCountFromEx(tp,tp,g,tc)>0
end
function cm.ckfilter0(c,tc)
return c:IsPosition(POS_FACEUP) and c:GetOriginalLevel()>0
end
function cm.sycon(e,c,smat,mg)
if c==nil then return true end
local lv=e:GetLabel()
local tp=c:GetControler()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
if smat then
mg:RemoveCard(smat)
return mg:CheckSubGroup(cm.stfilterg,1,nil,tp,c,lv,smat)
else
return mg:CheckSubGroup(cm.stfilterg,2,nil,tp,c,lv,nil)
end
end
function cm.syop(e,tp,eg,ep,ev,re,r,rp,c,smat,mg)
local lv=e:GetLabel()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
local g=Group.CreateGroup()
if smat then
mg:RemoveCard(smat)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,1,nil,tp,c,lv,smat))
g:AddCard(smat)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,2,nil,tp,c,lv,nil))
end
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
end
function cm.tkcon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_MZONE) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.tktg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and not e:GetHandler():IsForbidden() end
end
function cm.tkop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1_1=Effect.CreateEffect(c)
e1_1:SetCode(EFFECT_CHANGE_TYPE)
e1_1:SetType(EFFECT_TYPE_SINGLE)
e1_1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1_1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1_1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1_1)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsType(TYPE_SPELL)
end
function cm.filter(c,e,tp)
return c:IsSetCard(0x9283) and c:IsType(TYPE_TUNER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,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)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(1,0)
e3:SetTarget(cm.splimit)
e3:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e3,tp)
end
function cm.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return not c:IsSetCard(0x9283)
end
\ No newline at end of file
--束缚之瓶 向日葵
local m=96030031
local cm=_G["c"..m]
function cm.initial_effect(c)
c:SetSPSummonOnce(96030031)
--Synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit()
--
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e0:SetRange(LOCATION_EXTRA)
e0:SetValue(SUMMON_TYPE_SYNCHRO)
e0:SetLabel(2)
e0:SetCondition(cm.sycon)
e0:SetOperation(cm.syop)
c:RegisterEffect(e0)
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCondition(cm.tkcon1)
e1:SetTarget(cm.tktg1)
e1:SetOperation(cm.tkop1)
c:RegisterEffect(e1)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH+CATEGORY_HANDES)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1,m)
e3:SetCondition(cm.con)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
end
function cm.stfilter1(c,tc)
return c:IsSynchroType(TYPE_TUNER) and c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc)
end
function cm.stfilter2(c,tc)
return c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc) and not c:IsSynchroType(TYPE_TUNER)
end
function cm.ckfilter2(c)
return c:IsPosition(POS_FACEUP) and c:IsLocation(LOCATION_SZONE)
end
function cm.stfilterg(g,tp,tc,lv,smat)
if smat then
g:AddCard(smat)
end
local g1=g:Filter(cm.stfilter1,nil,tc)
local g2=g:Filter(cm.stfilter2,nil,tc)
local count=g:GetCount()
return g1:GetCount()==1 and g2:GetCount()==count-1 and g:Filter(cm.ckfilter2,nil):GetCount()==1 and g:GetSum(Card.GetLevel)==lv and Duel.GetLocationCountFromEx(tp,tp,g,tc)>0
end
function cm.ckfilter0(c,tc)
return c:IsPosition(POS_FACEUP) and c:GetOriginalLevel()>0
end
function cm.sycon(e,c,smat,mg)
if c==nil then return true end
local lv=e:GetLabel()
local tp=c:GetControler()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
if smat then
mg:RemoveCard(smat)
return mg:CheckSubGroup(cm.stfilterg,1,nil,tp,c,lv,smat)
else
return mg:CheckSubGroup(cm.stfilterg,2,nil,tp,c,lv,nil)
end
end
function cm.syop(e,tp,eg,ep,ev,re,r,rp,c,smat,mg)
local lv=e:GetLabel()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
local g=Group.CreateGroup()
if smat then
mg:RemoveCard(smat)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,1,nil,tp,c,lv,smat))
g:AddCard(smat)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,2,nil,tp,c,lv,nil))
end
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
end
function cm.tkcon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_MZONE) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.tktg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and not e:GetHandler():IsForbidden() end
end
function cm.tkop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1_1=Effect.CreateEffect(c)
e1_1:SetCode(EFFECT_CHANGE_TYPE)
e1_1:SetType(EFFECT_TYPE_SINGLE)
e1_1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1_1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1_1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1_1)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsType(TYPE_SPELL)
end
function cm.thfilter(c)
return c:IsSetCard(0x9283) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,1,tp,1)
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 then return end
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
Duel.ShuffleHand(tp)
Duel.BreakEffect()
Duel.DiscardHand(tp,nil,1,1,REASON_EFFECT)
end
--束缚之瓶 含羞草
local m=96030032
local cm=_G["c"..m]
function cm.initial_effect(c)
c:SetSPSummonOnce(96030032)
--Synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit()
--
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e0:SetRange(LOCATION_EXTRA)
e0:SetValue(SUMMON_TYPE_SYNCHRO)
e0:SetLabel(4)
e0:SetCondition(cm.sycon)
e0:SetOperation(cm.syop)
c:RegisterEffect(e0)
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCondition(cm.tkcon1)
e1:SetTarget(cm.tktg1)
e1:SetOperation(cm.tkop1)
c:RegisterEffect(e1)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1,m)
e3:SetCondition(cm.con)
e3:SetTarget(cm.tg)
e3:SetOperation(cm.op)
c:RegisterEffect(e3)
end
function cm.stfilter1(c,tc)
return c:IsSynchroType(TYPE_TUNER) and c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc)
end
function cm.stfilter2(c,tc)
return c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc) and not c:IsSynchroType(TYPE_TUNER)
end
function cm.ckfilter2(c)
return c:IsPosition(POS_FACEUP) and c:IsLocation(LOCATION_SZONE)
end
function cm.stfilterg(g,tp,tc,lv,smat)
if smat then
g:AddCard(smat)
end
local g1=g:Filter(cm.stfilter1,nil,tc)
local g2=g:Filter(cm.stfilter2,nil,tc)
local count=g:GetCount()
return g1:GetCount()==1 and g2:GetCount()==count-1 and g:Filter(cm.ckfilter2,nil):GetCount()==1 and g:GetSum(Card.GetLevel)==lv and Duel.GetLocationCountFromEx(tp,tp,g,tc)>0
end
function cm.ckfilter0(c,tc)
return c:IsPosition(POS_FACEUP) and c:GetOriginalLevel()>0
end
function cm.sycon(e,c,smat,mg)
if c==nil then return true end
local lv=e:GetLabel()
local tp=c:GetControler()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
if smat then
mg:RemoveCard(smat)
return mg:CheckSubGroup(cm.stfilterg,1,nil,tp,c,lv,smat)
else
return mg:CheckSubGroup(cm.stfilterg,2,nil,tp,c,lv,nil)
end
end
function cm.syop(e,tp,eg,ep,ev,re,r,rp,c,smat,mg)
local lv=e:GetLabel()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
local g=Group.CreateGroup()
if smat then
mg:RemoveCard(smat)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,1,nil,tp,c,lv,smat))
g:AddCard(smat)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,2,nil,tp,c,lv,nil))
end
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
end
function cm.tkcon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_MZONE) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.tktg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and not e:GetHandler():IsForbidden() end
end
function cm.tkop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1_1=Effect.CreateEffect(c)
e1_1:SetCode(EFFECT_CHANGE_TYPE)
e1_1:SetType(EFFECT_TYPE_SINGLE)
e1_1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1_1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1_1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1_1)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsType(TYPE_SPELL)
end
function cm.filter(c,e,tp)
return c:IsSetCard(0x9283) and c:IsType(TYPE_TUNER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function cm.rthcfilter(c)
return c:IsAbleToHand() and c:IsType(TYPE_SPELL+TYPE_TRAP)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsControler(1-tp) and chkc:IsLocation(LOCATION_ONFIELD) and chkc:IsAbleToHand() end
if chk==0 then return Duel.IsExistingMatchingCard(cm.rthcfilter,tp,LOCATION_ONFIELD,0,1,nil) and Duel.IsExistingMatchingCard(cm.rthcfilter,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,0,0,0)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g1=Duel.SelectMatchingCard(tp,cm.rthcfilter,tp,LOCATION_ONFIELD,0,1,1,nil)
local g2=Duel.SelectMatchingCard(tp,cm.rthcfilter,tp,0,LOCATION_ONFIELD,1,1,nil)
g1:Merge(g2)
Duel.SendtoHand(g1,nil,REASON_EFFECT)
--actlimit
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetValue(cm.actlimit)
Duel.RegisterEffect(e1,tp)
end
function cm.actlimit(e,te,tp)
return te:IsHasType(EFFECT_TYPE_ACTIVATE) and te:IsActiveType(TYPE_SPELL+TYPE_TRAP)
end
--束缚之瓶 四叶草
local m=96030033
local cm=_G["c"..m]
function cm.initial_effect(c)
c:SetSPSummonOnce(96030033)
--Synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit()
--
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e0:SetRange(LOCATION_EXTRA)
e0:SetValue(SUMMON_TYPE_SYNCHRO)
e0:SetLabel(4)
e0:SetCondition(cm.sycon)
e0:SetOperation(cm.syop)
c:RegisterEffect(e0)
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCondition(cm.tkcon1)
e1:SetTarget(cm.tktg1)
e1:SetOperation(cm.tkop1)
c:RegisterEffect(e1)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TODECK+CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1,m)
e3:SetCondition(cm.con)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
end
function cm.stfilter1(c,tc)
return c:IsSynchroType(TYPE_TUNER) and c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc)
end
function cm.stfilter2(c,tc)
return c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc) and not c:IsSynchroType(TYPE_TUNER)
end
function cm.ckfilter2(c)
return c:IsPosition(POS_FACEUP) and c:IsLocation(LOCATION_SZONE)
end
function cm.stfilterg(g,tp,tc,lv,smat)
if smat then
g:AddCard(smat)
end
local g1=g:Filter(cm.stfilter1,nil,tc)
local g2=g:Filter(cm.stfilter2,nil,tc)
local count=g:GetCount()
return g1:GetCount()==1 and g2:GetCount()==count-1 and g:Filter(cm.ckfilter2,nil):GetCount()==1 and g:GetSum(Card.GetLevel)==lv and Duel.GetLocationCountFromEx(tp,tp,g,tc)>0
end
function cm.ckfilter0(c,tc)
return c:IsPosition(POS_FACEUP) and c:GetOriginalLevel()>0
end
function cm.sycon(e,c,smat,mg)
if c==nil then return true end
local lv=e:GetLabel()
local tp=c:GetControler()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
if smat then
mg:RemoveCard(smat)
return mg:CheckSubGroup(cm.stfilterg,1,nil,tp,c,lv,smat)
else
return mg:CheckSubGroup(cm.stfilterg,2,nil,tp,c,lv,nil)
end
end
function cm.syop(e,tp,eg,ep,ev,re,r,rp,c,smat,mg)
local lv=e:GetLabel()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
local g=Group.CreateGroup()
if smat then
mg:RemoveCard(smat)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,1,nil,tp,c,lv,smat))
g:AddCard(smat)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,2,nil,tp,c,lv,nil))
end
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
end
function cm.tkcon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_MZONE) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.tktg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and not e:GetHandler():IsForbidden() end
end
function cm.tkop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1_1=Effect.CreateEffect(c)
e1_1:SetCode(EFFECT_CHANGE_TYPE)
e1_1:SetType(EFFECT_TYPE_SINGLE)
e1_1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1_1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1_1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1_1)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsType(TYPE_SPELL)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,nil) and Duel.IsPlayerCanDraw(tp,1) and Duel.IsPlayerCanDraw(1-tp,1)end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,PLAYER_ALL,1)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_GRAVE,LOCATION_GRAVE,1,3,nil)
if g:GetCount()~=0 and Duel.SendtoDeck(g,nil,2,REASON_EFFECT)~=0 then
Duel.Draw(tp,1,REASON_EFFECT)
Duel.Draw(1-tp,1,REASON_EFFECT)
end
end
--束缚之瓶 菊花茶
local m=96030034
local cm=_G["c"..m]
function cm.initial_effect(c)
c:SetSPSummonOnce(96030034)
--Synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit()
--
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e0:SetRange(LOCATION_EXTRA)
e0:SetValue(SUMMON_TYPE_SYNCHRO)
e0:SetLabel(6)
e0:SetCondition(cm.sycon)
e0:SetOperation(cm.syop)
c:RegisterEffect(e0)
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCondition(cm.tkcon1)
e1:SetTarget(cm.tktg1)
e1:SetOperation(cm.tkop1)
c:RegisterEffect(e1)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetCategory(CATEGORY_TODECK+CATEGORY_RECOVER)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1,m)
e3:SetCondition(cm.con)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
end
function cm.stfilter1(c,tc)
return c:IsSynchroType(TYPE_TUNER) and c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc)
end
function cm.stfilter2(c,tc)
return c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc) and not c:IsSynchroType(TYPE_TUNER)
end
function cm.ckfilter2(c)
return c:IsPosition(POS_FACEUP) and c:IsLocation(LOCATION_SZONE)
end
function cm.stfilterg(g,tp,tc,lv,smat)
if smat then
g:AddCard(smat)
end
local g1=g:Filter(cm.stfilter1,nil,tc)
local g2=g:Filter(cm.stfilter2,nil,tc)
local count=g:GetCount()
return g1:GetCount()==1 and g2:GetCount()==count-1 and g:Filter(cm.ckfilter2,nil):GetCount()==1 and g:GetSum(Card.GetLevel)==lv and Duel.GetLocationCountFromEx(tp,tp,g,tc)>0
end
function cm.ckfilter0(c,tc)
return c:IsPosition(POS_FACEUP) and c:GetOriginalLevel()>0
end
function cm.sycon(e,c,smat,mg)
if c==nil then return true end
local lv=e:GetLabel()
local tp=c:GetControler()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
if smat then
mg:RemoveCard(smat)
return mg:CheckSubGroup(cm.stfilterg,1,nil,tp,c,lv,smat)
else
return mg:CheckSubGroup(cm.stfilterg,2,nil,tp,c,lv,nil)
end
end
function cm.syop(e,tp,eg,ep,ev,re,r,rp,c,smat,mg)
local lv=e:GetLabel()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
local g=Group.CreateGroup()
if smat then
mg:RemoveCard(smat)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,1,nil,tp,c,lv,smat))
g:AddCard(smat)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,2,nil,tp,c,lv,nil))
end
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
end
function cm.tkcon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_MZONE) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.tktg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and not e:GetHandler():IsForbidden() end
end
function cm.tkop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1_1=Effect.CreateEffect(c)
e1_1:SetCode(EFFECT_CHANGE_TYPE)
e1_1:SetType(EFFECT_TYPE_SINGLE)
e1_1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1_1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1_1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1_1)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsType(TYPE_SPELL)
end
function cm.desfilter(c)
return c:IsFaceup() and c:IsAttackAbove(0)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.desfilter,tp,0,LOCATION_MZONE,1,nil) end
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local g2=Duel.GetMatchingGroup(cm.desfilter,tp,0,LOCATION_MZONE,nil)
if g2:GetCount()>0 then
local dg=g2:GetMaxGroup(Card.GetAttack)
if Duel.SendtoDeck(dg,nil,2,REASON_EFFECT)~=0 then
local rg=Duel.GetOperatedGroup()
local atk=rg:GetSum(Card.GetBaseAttack)
if atk>0 then
Duel.Recover(1-tp,atk,REASON_EFFECT)
end
end
end
end
--束缚之瓶 青柠茶
local m=96030035
local cm=_G["c"..m]
function cm.initial_effect(c)
c:SetSPSummonOnce(96030035)
--Synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit()
--
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,0))
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e0:SetRange(LOCATION_EXTRA)
e0:SetValue(SUMMON_TYPE_SYNCHRO)
e0:SetLabel(6)
e0:SetCondition(cm.sycon)
e0:SetOperation(cm.syop)
c:RegisterEffect(e0)
--
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCondition(cm.tkcon1)
e1:SetTarget(cm.tktg1)
e1:SetOperation(cm.tkop1)
c:RegisterEffect(e1)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,1))
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1,m)
e3:SetCondition(cm.con)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
c:RegisterEffect(e3)
end
function cm.stfilter1(c,tc)
return c:IsSynchroType(TYPE_TUNER) and c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc)
end
function cm.stfilter2(c,tc)
return c:IsPosition(POS_FACEUP) and c:IsCanBeSynchroMaterial(tc) and not c:IsSynchroType(TYPE_TUNER)
end
function cm.ckfilter2(c)
return c:IsPosition(POS_FACEUP) and c:IsLocation(LOCATION_SZONE)
end
function cm.stfilterg(g,tp,tc,lv,smat)
if smat then
g:AddCard(smat)
end
local g1=g:Filter(cm.stfilter1,nil,tc)
local g2=g:Filter(cm.stfilter2,nil,tc)
local count=g:GetCount()
return g1:GetCount()==1 and g2:GetCount()==count-1 and g:Filter(cm.ckfilter2,nil):GetCount()==1 and g:GetSum(Card.GetLevel)==lv and Duel.GetLocationCountFromEx(tp,tp,g,tc)>0
end
function cm.ckfilter0(c,tc)
return c:IsPosition(POS_FACEUP) and c:GetOriginalLevel()>0
end
function cm.sycon(e,c,smat,mg)
if c==nil then return true end
local lv=e:GetLabel()
local tp=c:GetControler()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
if smat then
mg:RemoveCard(smat)
return mg:CheckSubGroup(cm.stfilterg,1,nil,tp,c,lv,smat)
else
return mg:CheckSubGroup(cm.stfilterg,2,nil,tp,c,lv,nil)
end
end
function cm.syop(e,tp,eg,ep,ev,re,r,rp,c,smat,mg)
local lv=e:GetLabel()
if not mg then
mg=Duel.GetMatchingGroup(nil,tp,LOCATION_MZONE,0,nil)
local mg2=Duel.GetMatchingGroup(cm.ckfilter0,tp,LOCATION_SZONE,0,nil)
mg:Merge(mg2)
end
local g=Group.CreateGroup()
if smat then
mg:RemoveCard(smat)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,1,nil,tp,c,lv,smat))
g:AddCard(smat)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
g:Merge(mg:SelectSubGroup(tp,cm.stfilterg,false,2,nil,tp,c,lv,nil))
end
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
end
function cm.tkcon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_MZONE) and e:GetHandler():IsPreviousPosition(POS_FACEUP)
end
function cm.tktg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and not e:GetHandler():IsForbidden() end
end
function cm.tkop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local e1_1=Effect.CreateEffect(c)
e1_1:SetCode(EFFECT_CHANGE_TYPE)
e1_1:SetType(EFFECT_TYPE_SINGLE)
e1_1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1_1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1_1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1_1)
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsType(TYPE_SPELL)
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CODE)
local ac=Duel.AnnounceCard(tp)
Duel.SetTargetParam(ac)
Duel.SetOperationInfo(0,CATEGORY_ANNOUNCE,nil,0,tp,0)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local ac=Duel.GetChainInfo(0,CHAININFO_TARGET_PARAM)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTargetRange(1,1)
e1:SetLabel(ac)
e1:SetValue(cm.aclimit)
Duel.RegisterEffect(e1,tp)
end
function cm.aclimit(e,re,tp)
local ac=e:GetLabel()
return re:GetHandler():IsOriginalCodeRule(ac)
end
\ No newline at end of file
--束缚之瓶 酸柠檬
local m=96030037
local cm=_G["c"..m]
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetCountLimit(1,m)
e1:SetCondition(cm.con1)
e1:SetTarget(cm.tg1)
e1:SetOperation(cm.op1)
c:RegisterEffect(e1)
--spsummon
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,3))
e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_TO_GRAVE)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.spcon)
e3:SetTarget(cm.sptg)
e3:SetOperation(cm.spop)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EVENT_REMOVE)
c:RegisterEffect(e3)
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and rp~=tp and re:IsActiveType(TYPE_MONSTER)
end
function cm.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and not e:GetHandler():IsForbidden() end
end
--
function cm.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
local rc=re:GetHandler()
local cd=rc:GetCode()
local e1_1=Effect.CreateEffect(c)
e1_1:SetCode(EFFECT_CHANGE_TYPE)
e1_1:SetType(EFFECT_TYPE_SINGLE)
e1_1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1_1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1_1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1_1)
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET,EFFECT_FLAG_CLIENT_HINT,0,cd,aux.Stringid(m,1))
end
function cm.filter1(c,tcode)
return c:IsCode(tcode) and c:IsAbleToHand()
end
function cm.filter2(c,e,tcode)
return c:IsCode(tcode) and c:IsAbleToHand()
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tcode=c:GetFlagEffectLabel(m)
return e:GetHandler():GetFlagEffect(m)~=0 and e:GetHandler():GetFlagEffect(m+1)==0 and eg:IsExists(cm.filter1,1,nil,tcode)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
e:GetHandler():RegisterFlagEffect(m+1,RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET,EFFECT_FLAG_CLIENT_HINT,0,0,aux.Stringid(m,2))
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tcode=c:GetFlagEffectLabel(m)
local tg=eg:Filter(cm.filter2,nil,e,tcode)
if tg:GetCount()>0 then
Duel.SendtoHand(tg,tp,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tg)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCode(EFFECT_SKIP_DP)
if Duel.GetTurnPlayer()==tp and Duel.GetCurrentPhase()==PHASE_DRAW then
e1:SetReset(RESET_PHASE+PHASE_DRAW+RESET_SELF_TURN,2)
else
e1:SetReset(RESET_PHASE+PHASE_DRAW+RESET_SELF_TURN)
end
Duel.RegisterEffect(e1,tp)
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment