Commit e0e89402 authored by Nemo Ma's avatar Nemo Ma

pre

parent b3261868
...@@ -12,6 +12,11 @@ ...@@ -12,6 +12,11 @@
130002004 0 130002004 0
130002005 0 130002005 0
#WILD, I say WILD, WAHAHA #WILD, I say WILD, WAHAHA
82206085 0
82206084 0
82206075 0
14000703 0
14000704 0
575513 0 575513 0
700021 0 700021 0
700022 0 700022 0
...@@ -1041,6 +1046,32 @@ ...@@ -1041,6 +1046,32 @@
30015045 0 30015045 0
30015080 0 30015080 0
30015100 0 30015100 0
#221023
9300012 0
9910433 0
9910609 0
14010257 0
17020110 0
22021640 0
22021660 0
31400041 0
31400047 0
31400067 0
40009752 0
53705008 0
53796022 0
60000006 0
67210102 0
67210106 0
67210108 0
7429821 1
9910176 1
9910953 1
9910709 1
9910710 1
9911022 1
11451706 1
67077102 1
#221016 #221016
9982434 0 9982434 0
20220664 0 20220664 0
...@@ -1460,7 +1491,6 @@ ...@@ -1460,7 +1491,6 @@
40009278 1 40009278 1
53796032 1 53796032 1
#220717 #220717
25000017 0
25000404 0 25000404 0
33701420 0 33701420 0
33701505 1 33701505 1
...@@ -1481,7 +1511,6 @@ ...@@ -1481,7 +1511,6 @@
30000480 0 30000480 0
60150802 0 60150802 0
12023935 0 12023935 0
29002021 0
90700031 0 90700031 0
33711408 1 33711408 1
79078004 1 79078004 1
...@@ -1606,7 +1635,6 @@ ...@@ -1606,7 +1635,6 @@
22520006 0 22520006 0
35300319 0 35300319 0
64800025 0 64800025 0
9300012 1
12057607 1 12057607 1
14000210 1 14000210 1
15000071 1 15000071 1
...@@ -1680,7 +1708,6 @@ ...@@ -1680,7 +1708,6 @@
15000180 0 15000180 0
33700902 0 33700902 0
72100115 0 72100115 0
14010257 1
35399020 1 35399020 1
33720007 1 33720007 1
60159912 2 60159912 2
...@@ -2329,7 +2356,6 @@ ...@@ -2329,7 +2356,6 @@
79029560 0 79029560 0
79029916 0 79029916 0
93601008 0 93601008 0
17020110 1
60152811 1 60152811 1
#210822 #210822
60151299 1 60151299 1
...@@ -2406,7 +2432,6 @@ ...@@ -2406,7 +2432,6 @@
14010150 0 14010150 0
64800043 0 64800043 0
9910051 2 9910051 2
9910710 2
#210613 #210613
33405100 0 33405100 0
9300315 0 9300315 0
...@@ -4830,6 +4855,16 @@ ...@@ -4830,6 +4855,16 @@
90000018 0 90000018 0
82208106 0 82208106 0
90000020 0 90000020 0
#221023
90700013 0
90700014 0
90700015 0
90700016 0
90700017 0
90700018 0
90700020 0
14000703 0
14000704 0
#WILDEST #WILDEST
90700071 0 90700071 0
90700072 0 90700072 0
......
No preview for this file type
No preview for this file type
...@@ -28,6 +28,9 @@ function c22050300.initial_effect(c) ...@@ -28,6 +28,9 @@ function c22050300.initial_effect(c)
e2:SetOperation(c22050300.operation) e2:SetOperation(c22050300.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c22050300.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function c22050300.matfilter(c) function c22050300.matfilter(c)
return c:IsLinkSetCard(0xff8) and not c:IsLinkCode(22050300) return c:IsLinkSetCard(0xff8) and not c:IsLinkCode(22050300)
end end
...@@ -50,21 +53,24 @@ function c22050300.descost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -50,21 +53,24 @@ function c22050300.descost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0xfec,1,REASON_COST) end if chk==0 then return Duel.IsCanRemoveCounter(tp,1,0,0xfec,1,REASON_COST) end
Duel.RemoveCounter(tp,1,0,0xfec,1,REASON_COST) Duel.RemoveCounter(tp,1,0,0xfec,1,REASON_COST)
end end
function c22050300.filter(c)
return c:IsFaceup() and not c:IsSetCard(0xff8)
end
function c22050300.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c22050300.target(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:IsFaceup() end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsFaceup() end
if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup,tp,0,LOCATION_MZONE,1,nil) end if chk==0 then return Duel.IsExistingTarget(c22050300.filter,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,Card.IsFaceup,tp,0,LOCATION_MZONE,1,1,nil) Duel.SelectTarget(tp,c22050300.filter,tp,0,LOCATION_MZONE,1,1,nil)
end end
function c22050300.operation(e,tp,eg,ep,ev,re,r,rp) function c22050300.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then if tc:IsFaceup() and tc:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_ADD_SETCODE) e1:SetCode(EFFECT_ADD_SETCODE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetValue(0xff8) e1:SetValue(0xff8)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
end end
--踏破新世界 ~开路之卷~
local m=33701440
local cm=_G["c"..m]
cm.named_with_NewVenture=1
function cm.NewVenture(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_NewVenture
end
function cm.initial_effect(c)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e03=Effect.CreateEffect(c)
e03:SetType(EFFECT_TYPE_SINGLE)
e03:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e03:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e03:SetRange(LOCATION_SZONE)
e03:SetValue(1)
c:RegisterEffect(e03)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.lpcon)
e2:SetOperation(cm.lpop)
c:RegisterEffect(e2)
local e8=e2:Clone()
e8:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e8)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(0,TIMING_END_PHASE)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.target)
e3:SetOperation(cm.operation)
c:RegisterEffect(e3)
--Effect 4
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SELF_TOGRAVE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.tgccon)
c:RegisterEffect(e2)
end
--Effect 1
--Effect 2
function cm.cfilter(c,tp)
return c:IsSummonPlayer(tp)
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
return eg:IsExists(cm.cfilter,1,nil,1-tp) and #g>0
end
function cm.lpop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,0,nil)
if #g==0 then return end
Duel.Hint(HINT_CARD,0,m)
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(500)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e8=e1:Clone()
e8:SetCode(EFFECT_UPDATE_DEFENSE)
tc:RegisterEffect(e8)
tc=g:GetNext()
end
end
--Effect 3
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and Duel.GetFlagEffect(p,m+m)==0
end
function cm.filter(c)
if c:IsForbidden() or c:IsCode(m) then return false end
return c:IsType(TYPE_CONTINUOUS) and cm.NewVenture(c)
and c:CheckUniqueOnField(tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeck()
and c:GetFlagEffect(m)==0
and Duel.GetLocationCount(tp,LOCATION_SZONE)>-1
and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,e:GetHandler()) end
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+m)>0 then return end
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)>0
and c:IsLocation(LOCATION_DECK) then
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc and Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
Duel.RegisterFlagEffect(tp,m+m,RESET_PHASE+PHASE_END,0,1)
end
end
end
--Effect 4
function cm.tgccon(e)
return Duel.GetCurrentPhase()==PHASE_END
end
\ No newline at end of file
--踏破新世界 ~铸甲之卷~
local m=33701441
local cm=_G["c"..m]
cm.named_with_NewVenture=1
function cm.NewVenture(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_NewVenture
end
function cm.initial_effect(c)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e03=Effect.CreateEffect(c)
e03:SetType(EFFECT_TYPE_SINGLE)
e03:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e03:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e03:SetRange(LOCATION_SZONE)
e03:SetValue(1)
c:RegisterEffect(e03)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.lpcon)
e2:SetOperation(cm.lpop)
c:RegisterEffect(e2)
local e8=e2:Clone()
e8:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e8)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(0,TIMING_END_PHASE)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.target)
e3:SetOperation(cm.operation)
c:RegisterEffect(e3)
--Effect 4
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SELF_TOGRAVE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.tgccon)
c:RegisterEffect(e2)
end
--Effect 1
--Effect 2
function cm.cfilter(c,tp)
return c:IsSummonPlayer(tp)
end
function cm.tf(c)
return cm.NewVenture(c) and c:IsAbleToHand()
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.tf),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil)
local b1=#g>0
local b2=Duel.CheckLPCost(tp,500) and Duel.IsPlayerCanDraw(tp,1)
return eg:IsExists(cm.cfilter,1,nil,1-tp) and (b1 or b2)
end
function cm.lpop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.tf),tp,LOCATION_DECK+LOCATION_GRAVE,0,nil)
local b1=#g>0
local b2=Duel.CheckLPCost(tp,500) and Duel.IsPlayerCanDraw(tp,1)
if b1 or b2 then
Duel.Hint(HINT_CARD,0,m)
local off=1
local ops={}
local opval={}
if b1 then
ops[off]=aux.Stringid(m,0)
opval[off-1]=1
off=off+1
end
if b2 then
ops[off]=aux.Stringid(m,1)
opval[off-1]=2
off=off+1
end
ops[off]=aux.Stringid(m,2)
opval[off-1]=3
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPTION)
local op=Duel.SelectOption(tp,table.unpack(ops))
local sel=opval[op]
if sel==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.tf),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
elseif sel==2 then
Duel.PayLPCost(tp,500)
Duel.Draw(tp,1,REASON_EFFECT)
end
end
end
--Effect 3
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and Duel.GetFlagEffect(p,m+m)==0
end
function cm.filter(c)
if c:IsForbidden() or c:IsCode(m) then return false end
return c:IsType(TYPE_CONTINUOUS) and cm.NewVenture(c)
and c:CheckUniqueOnField(tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeck()
and c:GetFlagEffect(m)==0
and Duel.GetLocationCount(tp,LOCATION_SZONE)>-1
and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,e:GetHandler()) end
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+m)>0 then return end
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)>0
and c:IsLocation(LOCATION_DECK) then
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc and Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
Duel.RegisterFlagEffect(tp,m+m,RESET_PHASE+PHASE_END,0,1)
end
end
end
--Effect 4
function cm.tgccon(e)
return Duel.GetCurrentPhase()==PHASE_END
end
\ No newline at end of file
--踏破新世界 ~巡天之卷~
local m=33701442
local cm=_G["c"..m]
cm.named_with_NewVenture=1
function cm.NewVenture(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_NewVenture
end
function cm.initial_effect(c)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e03=Effect.CreateEffect(c)
e03:SetType(EFFECT_TYPE_SINGLE)
e03:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e03:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e03:SetRange(LOCATION_SZONE)
e03:SetValue(1)
c:RegisterEffect(e03)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.lpcon)
e2:SetOperation(cm.lpop)
c:RegisterEffect(e2)
local e8=e2:Clone()
e8:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e8)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(0,TIMING_END_PHASE)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.target)
e3:SetOperation(cm.operation)
c:RegisterEffect(e3)
--Effect 4
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SELF_TOGRAVE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.tgccon)
c:RegisterEffect(e2)
end
--Effect 1
--Effect 2
function cm.cfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsFaceup()
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil,1-tp)
end
function cm.lpop(e,tp,eg,ep,ev,re,r,rp)
local lg=eg:Filter(cm.cfilter,nil,1-tp)
local rnum=lg:GetSum(Card.GetAttack)
if Duel.SelectYesNo(tp,aux.Stringid(m,0)) and rnum>0 then
Duel.Hint(HINT_CARD,0,m)
Duel.Recover(tp,rnum,REASON_EFFECT)
end
end
--Effect 3
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and Duel.GetFlagEffect(p,m+m)==0
end
function cm.filter(c)
if c:IsForbidden() or c:IsCode(m) then return false end
return c:IsType(TYPE_CONTINUOUS) and cm.NewVenture(c)
and c:CheckUniqueOnField(tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeck()
and c:GetFlagEffect(m)==0
and Duel.GetLocationCount(tp,LOCATION_SZONE)>-1
and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,e:GetHandler()) end
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+m)>0 then return end
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)>0
and c:IsLocation(LOCATION_DECK) then
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc and Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
Duel.RegisterFlagEffect(tp,m+m,RESET_PHASE+PHASE_END,0,1)
end
end
end
--Effect 4
function cm.tgccon(e)
return Duel.GetCurrentPhase()==PHASE_END
end
--踏破新世界 ~平海之卷~
local m=33701443
local cm=_G["c"..m]
cm.named_with_NewVenture=1
function cm.NewVenture(c)
local m=_G["c"..c:GetCode()]
return m and m.named_with_NewVenture
end
function cm.initial_effect(c)
Duel.EnableGlobalFlag(GLOBALFLAG_SELF_TOGRAVE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e03=Effect.CreateEffect(c)
e03:SetType(EFFECT_TYPE_SINGLE)
e03:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e03:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e03:SetRange(LOCATION_SZONE)
e03:SetValue(1)
c:RegisterEffect(e03)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_TO_HAND)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.lpcon)
e2:SetOperation(cm.lpop)
c:RegisterEffect(e2)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetHintTiming(0,TIMING_END_PHASE)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(cm.condition)
e3:SetTarget(cm.target)
e3:SetOperation(cm.operation)
c:RegisterEffect(e3)
--Effect 4
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SELF_TOGRAVE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(cm.tgccon)
c:RegisterEffect(e2)
end
--Effect 1
--Effect 2
function cm.cfilter(c,tp)
return c:IsControler(tp) and c:IsPreviousLocation(LOCATION_DECK)
end
function cm.lpcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_HAND+LOCATION_ONFIELD,nil)
local b1= Duel.IsPlayerCanRemove(1-tp) and #g>0
and g:IsExists(Card.IsAbleToRemove,1,nil,1-tp,POS_FACEUP,REASON_RULE)
return eg:IsExists(cm.cfilter,1,nil,1-tp) and b1
end
function cm.lpop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_HAND+LOCATION_ONFIELD,nil)
local b1= Duel.IsPlayerCanRemove(1-tp) and #g>0
and g:IsExists(Card.IsAbleToRemove,1,nil,1-tp,POS_FACEUP,REASON_RULE)
if not b1 then return end
Duel.Hint(HINT_CARD,0,m)
local rg=g:Filter(Card.IsAbleToRemove,nil,1-tp,POS_FACEUP,REASON_RULE)
local sg=rg:RandomSelect(1-tp,1)
Duel.HintSelection(sg)
Duel.Remove(sg,POS_FACEUP,REASON_RULE)
end
--Effect 3
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and Duel.GetFlagEffect(p,m+m)==0
end
function cm.filter(c)
if c:IsForbidden() or c:IsCode(m) then return false end
return c:IsType(TYPE_CONTINUOUS) and cm.NewVenture(c)
and c:CheckUniqueOnField(tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeck()
and c:GetFlagEffect(m)==0
and Duel.GetLocationCount(tp,LOCATION_SZONE)>-1
and Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_DECK,0,1,nil,e:GetHandler()) end
c:RegisterFlagEffect(m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+m)>0 then return end
local c=e:GetHandler()
if c:IsRelateToEffect(e)
and Duel.SendtoDeck(c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)>0
and c:IsLocation(LOCATION_DECK) then
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK,0,1,1,nil,tp):GetFirst()
if tc and Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
Duel.RegisterFlagEffect(tp,m+m,RESET_PHASE+PHASE_END,0,1)
end
end
end
--Effect 4
function cm.tgccon(e)
return Duel.GetCurrentPhase()==PHASE_END
end
--昂扬的大象承载着希望
local m=33701444
local cm=_G["c"..m]
function cm.initial_effect(c)
--Effect 1
local e01=Effect.CreateEffect(c)
e01:SetDescription(aux.Stringid(m,0))
e01:SetCategory(CATEGORY_SPECIAL_SUMMON)
e01:SetType(EFFECT_TYPE_QUICK_O)
e01:SetCode(EVENT_FREE_CHAIN)
e01:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e01:SetRange(LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED)
e01:SetCondition(cm.spcon)
e01:SetTarget(cm.sptg)
e01:SetOperation(cm.spop)
c:RegisterEffect(e01)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
c:RegisterEffect(e1)
--Effect 3
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_MZONE)
e3:SetOperation(cm.chainop)
c:RegisterEffect(e3)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAIN_NEGATED)
ge1:SetOperation(cm.regop)
ge1:SetLabelObject(ge3)
Duel.RegisterEffect(ge1,0)
local ge2=ge1:Clone()
ge2:SetCode(EVENT_CHAIN_DISABLED)
ge2:SetLabelObject(ge3)
Duel.RegisterEffect(ge2,0)
local ge3=Effect.CreateEffect(c)
ge3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge3:SetCode(EVENT_ADJUST)
ge3:SetOperation(cm.adjustop)
Duel.RegisterEffect(ge3,0)
end
end
--all
function cm.f(c)
return c:IsFaceup() and c:IsDisabled()
and c:GetFlagEffect(m+m)==0
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local de,sp=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER)
if de:GetHandlerPlayer()==sp then
Duel.RegisterFlagEffect(sp,m,RESET_PHASE+PHASE_END,0,1)
end
end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.f,e:GetHandlerPlayer(),LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
if #g>0 then
local tc=g:GetFirst()
while tc do
if tc:GetFlagEffect(m+m)==0 then
local p=tc:GetControler()
Duel.RegisterFlagEffect(p,m+m,RESET_PHASE+PHASE_END,0,1)
tc:RegisterFlagEffect(m+m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
tc=g:GetNext()
end
end
end
--Effect 1
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local ct1=Duel.GetFlagEffect(e:GetHandlerPlayer(),m)
local ct2=Duel.GetFlagEffect(e:GetHandlerPlayer(),m+m)
return ct1>=3 or (ct1+ct2)>=4 or ct2>=3
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(m+m)==0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
c:RegisterFlagEffect(m+m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=c:IsRelateToEffect(e)
local b2=Duel.GetLocationCount(tp,LOCATION_MZONE)
if not b1 or b2==0 then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
--Effect 2
function cm.splimit(e,c,tp,sumtp,sumpos)
return c:IsLocation(LOCATION_EXTRA)
end
--Effect 3
function cm.chainop(e,tp,eg,ep,ev,re,r,rp)
local rc=re:GetHandler()
if re and rc:IsControler(e:GetHandlerPlayer()) and ep==tp then
Duel.SetChainLimit(cm.chainlm)
end
end
function cm.chainlm(e,rp,tp)
return tp==rp
end
--闪耀的孔雀摒除了沮丧
local m=33701445
local cm=_G["c"..m]
function cm.initial_effect(c)
--Effect 1
local e01=Effect.CreateEffect(c)
e01:SetCategory(CATEGORY_SPECIAL_SUMMON)
e01:SetType(EFFECT_TYPE_QUICK_O)
e01:SetCode(EVENT_FREE_CHAIN)
e01:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e01:SetRange(LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED)
e01:SetCondition(cm.spcon)
e01:SetTarget(cm.sptg)
e01:SetOperation(cm.spop)
c:RegisterEffect(e01)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
c:RegisterEffect(e1)
--Effect 3
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetTargetRange(LOCATION_ONFIELD,0)
e2:SetValue(1)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetValue(1)
c:RegisterEffect(e3)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_DESTROYED)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
--all
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
while tc do
local tp1=tc:GetPreviousControler()
Duel.RegisterFlagEffect(tp1,m,RESET_PHASE+PHASE_END,0,1)
tc=eg:GetNext()
end
end
--Effect 1
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,m)>=3
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(m+m)==0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
c:RegisterFlagEffect(m+m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=c:IsRelateToEffect(e)
local b2=Duel.GetLocationCount(tp,LOCATION_MZONE)
if not b1 or b2==0 then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
--Effect 2
function cm.splimit(e,c,tp,sumtp,sumpos)
return c:IsLocation(LOCATION_EXTRA)
end
--Effect 3
--悠闲的河马吞噬了烦恼
local m=33701446
local cm=_G["c"..m]
function cm.initial_effect(c)
--Effect 1
local e01=Effect.CreateEffect(c)
e01:SetCategory(CATEGORY_SPECIAL_SUMMON)
e01:SetType(EFFECT_TYPE_QUICK_O)
e01:SetCode(EVENT_FREE_CHAIN)
e01:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e01:SetRange(LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED)
e01:SetCondition(cm.spcon)
e01:SetTarget(cm.sptg)
e01:SetOperation(cm.spop)
c:RegisterEffect(e01)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
c:RegisterEffect(e1)
--Effect 3
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_REVERSE_DAMAGE)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetValue(cm.rev)
c:RegisterEffect(e1)
if not cm.global_check then
cm.global_check=true
cm[0]=0
cm[1]=0
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_DAMAGE)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
local ge3=Effect.CreateEffect(c)
ge3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge3:SetCode(EVENT_PHASE_START+PHASE_DRAW)
ge3:SetOperation(cm.clear)
Duel.RegisterEffect(ge3,0)
end
end
--all
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
if ep==0 and (bit.band(r,REASON_BATTLE)~=0 or (bit.band(r,REASON_EFFECT)~=0 and rp~=0)) then
cm[0]=cm[0]+ev
elseif ep~=0 and (bit.band(r,REASON_BATTLE)~=0 or (bit.band(r,REASON_EFFECT)~=0 and rp==0)) then
cm[1]=cm[1]+ev
end
end
function cm.clear(e,tp,eg,ep,ev,re,r,rp)
cm[0]=0
cm[1]=0
end
--Effect 1
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return cm[e:GetHandlerPlayer()]>=4000
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:GetFlagEffect(m+m)==0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
c:RegisterFlagEffect(m+m,RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=c:IsRelateToEffect(e)
local b2=Duel.GetLocationCount(tp,LOCATION_MZONE)
if not b1 or b2==0 then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
--Effect 2
function cm.splimit(e,c,tp,sumtp,sumpos)
return c:IsLocation(LOCATION_EXTRA)
end
--Effect 3
function cm.rev(e,re,r,rp,rc)
local tp=e:GetHandlerPlayer()
return bit.band(r,REASON_EFFECT)~=0 or bit.band(r,REASON_BATTLE)~=0
end
--翱翔的老鹰引领着梦想
local m=33701447
local cm=_G["c"..m]
function cm.initial_effect(c)
--Effect 1
local e02=Effect.CreateEffect(c)
e02:SetDescription(aux.Stringid(m,3))
e02:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_SEARCH)
e02:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e02:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e02:SetCode(EVENT_PHASE+PHASE_STANDBY)
e02:SetCountLimit(1)
e02:SetCondition(cm.spcon)
e02:SetTarget(cm.sptg)
e02:SetOperation(cm.spop)
c:RegisterEffect(e02)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(cm.splimit)
c:RegisterEffect(e1)
--Effect 3
local e12=Effect.CreateEffect(c)
e12:SetType(EFFECT_TYPE_FIELD)
e12:SetCode(EFFECT_DRAW_COUNT)
e12:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e12:SetRange(LOCATION_MZONE)
e12:SetTargetRange(1,0)
e12:SetValue(2)
c:RegisterEffect(e12)
end
--Effect 1
function cm.spcon(e)
local tp=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=tp and Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)==0
end
function cm.sto(c,tp)
if not c:IsCode(m+1) then return false end
local b1=c:IsAbleToHand()
local b2=c:IsType(TYPE_FIELD)
and c:CheckUniqueOnField(tp) and not c:IsForbidden()
return b1 or b2
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)
and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)>0
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.sto),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp)
and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local tc=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.sto),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,tp):GetFirst()
if tc then
local b1=tc:IsType(TYPE_FIELD) and tc:CheckUniqueOnField(tp) and not tc:IsForbidden()
if b1 and (not tc:IsAbleToHand() or Duel.SelectOption(tp,1190,aux.Stringid(m,1))==1) then
local fc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
if fc then
Duel.SendtoGrave(fc,REASON_RULE)
Duel.BreakEffect()
end
Duel.MoveToField(tc,tp,tp,LOCATION_FZONE,POS_FACEUP,true)
else
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end
end
end
end
--Effect 2
function cm.splimit(e,c,tp,sumtp,sumpos)
return c:IsLocation(LOCATION_EXTRA)
end
\ No newline at end of file
--那电光普照的未来天堂
local m=33701448
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableCounterPermit(0x46e,LOCATION_FZONE)
--activate
local e0=Effect.CreateEffect(c)
e0:SetDescription(aux.Stringid(m,2))
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND)
e1:SetCost(cm.cost)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
--Effect 2
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_DESTROYED)
e2:SetRange(LOCATION_FZONE)
e2:SetCondition(cm.ctcon1)
e2:SetOperation(cm.ctop1)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_NEGATED)
e3:SetRange(LOCATION_FZONE)
e3:SetCondition(cm.ctcon2)
e3:SetOperation(cm.ctop2)
c:RegisterEffect(e3)
--Effect 3 buff+
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_INDESTRUCTABLE)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e4:SetRange(LOCATION_FZONE)
e4:SetTargetRange(LOCATION_ONFIELD,0)
e4:SetCondition(cm.bfcon)
e4:SetTarget(cm.infilter)
e4:SetValue(1)
e4:SetLabel(3)
c:RegisterEffect(e4)
local e12=Effect.CreateEffect(c)
e12:SetType(EFFECT_TYPE_FIELD)
e12:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_SET_AVAILABLE)
e12:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e12:SetRange(LOCATION_FZONE)
e12:SetTargetRange(LOCATION_ONFIELD,0)
e12:SetCondition(cm.bfcon)
e12:SetTarget(cm.infilter)
e12:SetValue(aux.tgoval)
e12:SetLabel(5)
c:RegisterEffect(e12)
local e14=Effect.CreateEffect(c)
e14:SetType(EFFECT_TYPE_FIELD)
e14:SetCode(EFFECT_IMMUNE_EFFECT)
e14:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e14:SetRange(LOCATION_FZONE)
e14:SetTargetRange(LOCATION_ONFIELD,0)
e14:SetCondition(cm.bfcon)
e14:SetTarget(cm.infilter)
e14:SetValue(cm.efilter)
e14:SetLabel(7)
c:RegisterEffect(e14)
local e15=Effect.CreateEffect(c)
e15:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e15:SetRange(LOCATION_FZONE)
e15:SetCode(EVENT_PHASE+PHASE_STANDBY)
e15:SetCountLimit(1)
e15:SetCondition(cm.drcon)
e15:SetOperation(cm.drop)
c:RegisterEffect(e15)
--Effect 4
local e34=Effect.CreateEffect(c)
e34:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e34:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e34:SetCode(EFFECT_DESTROY_REPLACE)
e34:SetRange(LOCATION_FZONE)
e34:SetTarget(cm.reptg)
c:RegisterEffect(e34)
local e36=Effect.CreateEffect(c)
e36:SetType(EFFECT_TYPE_SINGLE)
e36:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e36:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e36:SetCondition(cm.rmcon)
e36:SetValue(LOCATION_REMOVED)
c:RegisterEffect(e36)
end
--Effect 1
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDiscardable() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local ct=1
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_REVERSE_DAMAGE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetValue(cm.rev)
if Duel.GetTurnPlayer()==e:GetHandlerPlayer() then
ct=2
end
e1:SetReset(RESET_PHASE+PHASE_END+RESET_SELF_TURN,ct)
Duel.RegisterEffect(e1,tp)
end
function cm.rev(e,re,r,rp,rc)
return bit.band(r,REASON_EFFECT)~=0 or bit.band(r,REASON_BATTLE)~=0
end
--Effect 2
function cm.cfilter(c,tp)
return c:GetReasonPlayer()==1-tp
and c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_MZONE)
end
function cm.ctcon1(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.cfilter,1,nil,tp)
end
function cm.ctop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=eg:FilterCount(cm.cfilter,nil,tp)
if g>0 then
c:AddCounter(0x46e,g)
end
end
function cm.ctcon2(e,tp,eg,ep,ev,re,r,rp)
local de,dp=Duel.GetChainInfo(ev,CHAININFO_DISABLE_REASON,CHAININFO_DISABLE_PLAYER)
return de and dp~=tp and rp==tp
end
function cm.ctop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:AddCounter(0x46e,1)
end
--Effect 3 buff+
function cm.bfcon(e)
local c=e:GetHandler()
return c:GetCounter(0x46e)>=e:GetLabel()
end
function cm.infilter(e,c)
return c~=e:GetHandler()
end
function cm.efilter(e,re)
return re:GetOwnerPlayer()~=e:GetHandlerPlayer()
end
function cm.drcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=e:GetHandlerPlayer()
return Duel.GetTurnPlayer()~=p and c:GetCounter(0x46e)>=10
and Duel.IsPlayerCanDraw(p,1)
end
function cm.drop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=e:GetHandlerPlayer()
if Duel.SelectYesNo(p,aux.Stringid(m,0)) then
Duel.Hint(HINT_CARD,0,m)
Duel.Draw(p,1,REASON_EFFECT)
end
end
--Effect 4
function cm.reptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetCounter(0x46e)
if chk==0 then return not c:IsReason(REASON_REPLACE)
and c:IsCanRemoveCounter(tp,0x46e,7,REASON_EFFECT) end
c:AddCounter(0x46e,ct)
c:RemoveCounter(tp,0x46e,14,REASON_EFFECT+REASON_REPLACE)
return true
end
function cm.rmcon(e)
local c=e:GetHandler()
return c:IsFaceup() and c:IsLocation(LOCATION_FZONE)
and c:IsReason(REASON_DESTROY)
end
--纯洁之魂 - 白野
local m=33701449
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,4,cm.lcheck)
c:EnableReviveLimit()
--Effect 1
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetValue(1)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
c:RegisterEffect(e4)
local e13=Effect.CreateEffect(c)
e13:SetType(EFFECT_TYPE_FIELD)
e13:SetRange(LOCATION_MZONE)
e13:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e13:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e13:SetTargetRange(1,0)
e13:SetTarget(cm.sumlimit)
c:RegisterEffect(e13)
--Effect 2
local e01=Effect.CreateEffect(c)
e01:SetType(EFFECT_TYPE_SINGLE)
e01:SetCode(EFFECT_UPDATE_ATTACK)
e01:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e01:SetRange(LOCATION_MZONE)
e01:SetValue(cm.atkval)
c:RegisterEffect(e01)
--Effect 3
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e7:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e7:SetRange(LOCATION_MZONE)
e7:SetCondition(cm.tkcon)
e7:SetValue(aux.imval1)
c:RegisterEffect(e7)
local e8=e7:Clone()
e8:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e8:SetValue(aux.tgoval)
c:RegisterEffect(e8)
--Effect 4
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CHANGE_DAMAGE)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetCondition(cm.imcon)
e1:SetValue(0)
c:RegisterEffect(e1)
end
--link summon
function cm.lcheck(g,lc)
return g:IsExists(Card.IsLinkType,2,nil,TYPE_TOKEN)
end
--Effect 1
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return not c:IsType(TYPE_TOKEN)
end
--Effect 2
function cm.atkval(e,c)
local g=e:GetHandler():GetLinkedGroup():FilterCount(Card.IsType,nil,TYPE_TOKEN)
return g*2000
end
--Effect 3
function cm.tkcon(e)
return Duel.IsExistingMatchingCard(Card.IsType,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil,TYPE_TOKEN)
end
--Effect 4
function cm.imcon(e)
return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_ONFIELD,0)==1
end
\ No newline at end of file
--启明之魂 - 赤街
local m=33701450
local cm=_G["c"..m]
function cm.initial_effect(c)
c:EnableCounterPermit(0x46f)
--link summon
aux.AddLinkProcedure(c,nil,2,4,cm.lcheck)
c:EnableReviveLimit()
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_MATERIAL_CHECK)
e1:SetValue(cm.valcheck)
c:RegisterEffect(e1)
local e02=Effect.CreateEffect(c)
e02:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e02:SetCode(EVENT_SPSUMMON_SUCCESS)
e02:SetCondition(cm.regcon)
e02:SetOperation(cm.regop)
e02:SetLabelObject(e1)
c:RegisterEffect(e02)
--Effect 2
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(m,0))
e7:SetCategory(CATEGORY_DRAW)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e7:SetProperty(EFFECT_FLAG_DELAY)
e7:SetCode(EVENT_DRAW)
e7:SetRange(LOCATION_MZONE)
e7:SetCondition(cm.con1)
e7:SetTarget(cm.tg1)
e7:SetOperation(cm.op1)
c:RegisterEffect(e7)
local e12=Effect.CreateEffect(c)
e12:SetDescription(aux.Stringid(m,1))
e12:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e12:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e12:SetProperty(EFFECT_FLAG_DELAY)
e12:SetCode(EVENT_TO_HAND)
e12:SetRange(LOCATION_MZONE)
e12:SetCountLimit(1)
e12:SetCondition(cm.con2)
e12:SetTarget(cm.tg2)
e12:SetOperation(cm.op2)
c:RegisterEffect(e12)
local e11=Effect.CreateEffect(c)
e11:SetDescription(aux.Stringid(m,2))
e11:SetCategory(CATEGORY_DESTROY)
e11:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e11:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e11:SetCode(EVENT_DESTROYED)
e11:SetRange(LOCATION_MZONE)
e11:SetCondition(cm.con3)
e11:SetTarget(cm.tg3)
e11:SetOperation(cm.op3)
c:RegisterEffect(e11)
--Effect 3
local e32=Effect.CreateEffect(c)
e32:SetCategory(CATEGORY_TOGRAVE)
e32:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e32:SetCode(EVENT_LEAVE_FIELD)
e32:SetProperty(EFFECT_FLAG_DELAY)
e32:SetCondition(cm.rlcon)
e32:SetCost(cm.rlcost)
e32:SetTarget(cm.rltg)
e32:SetOperation(cm.rlop)
c:RegisterEffect(e32)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_LEAVE_FIELD_P)
e5:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e5:SetOperation(cm.fdop)
e5:SetLabelObject(e32)
c:RegisterEffect(e5)
end
--link summon
function cm.lcheck(g,lc)
return g:IsExists(Card.IsLinkAttribute,2,nil,ATTRIBUTE_FIRE)
end
--Effect 1
function cm.valcheck(e,c)
local g=c:GetMaterialCount()
e:SetLabel(g)
end
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
and e:GetLabelObject():GetLabel()~=0
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local vt=e:GetLabelObject():GetLabel()
local c=e:GetHandler()
c:AddCounter(0x46f,vt)
end
--Effect 2
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
local b2=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)
return b1 and b2 and ep~=tp
end
function cm.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
if chk==0 then return b1 and Duel.IsPlayerCanDraw(tp,1) end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function cm.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)
end
function cm.cf(c,tp)
return not c:IsReason(REASON_DRAW)
and c:IsControler(1-tp)
and c:IsPreviousLocation(LOCATION_DECK+LOCATION_GRAVE)
end
function cm.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
local b2=Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD)>Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD,0)
return b1 and b2 and eg:IsExists(cm.cf,1,nil,tp)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
if chk==0 then return b1 and Duel.IsExistingMatchingCard(Card.IsAbleToHand,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil) end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE+LOCATION_DECK)
end
function cm.op2(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(Card.IsAbleToHand),tp,LOCATION_GRAVE+LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function cm.cfilter(c,tp,rp)
return c:IsPreviousControler(tp)
and c:IsPreviousLocation(LOCATION_ONFIELD)
and c:IsReason(REASON_DESTROY)
and c:IsReason(REASON_EFFECT)
and rp==1-tp
end
function cm.con3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
local b2=Duel.GetLP(tp)<Duel.GetLP(1-tp)
return b1 and b2 and eg:IsExists(cm.cfilter,1,nil,tp,rp)
end
function cm.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
local lt=c:GetFlagEffect(m)
local b1=ct>0 and lt<=ct
if chk==0 then return b1 and Duel.IsExistingMatchingCard(nil,tp,0,LOCATION_ONFIELD,1,nil) end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
local g=Duel.GetMatchingGroup(nil,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function cm.op3(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil)
if #g>0 then
Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT)
end
end
--Effect 3
function cm.fdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetCounter(0x46f)
e:GetLabelObject():SetLabel(ct)
end
function cm.rlcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsPreviousLocation(LOCATION_MZONE) and e:GetLabel()>0
end
function cm.rlcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000) end
Duel.PayLPCost(tp,1000)
end
function cm.rtg(c,tp)
return Duel.IsPlayerCanSendtoGrave(1-tp,c)
end
function cm.rltg(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=e:GetLabel()
local g=Duel.GetMatchingGroup(cm.rtg,tp,0,LOCATION_ONFIELD,nil,tp)
if chk==0 then return ct>0 and #g>=ct end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,ct,0,0)
end
function cm.rlop(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel()
local g=Duel.GetMatchingGroup(cm.rtg,tp,0,LOCATION_ONFIELD,nil,tp)
if ct>0 and #g>=ct then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_TOGRAVE)
local sg=g:FilterSelect(1-tp,cm.rtg,ct,ct,nil,tp)
Duel.HintSelection(sg)
Duel.SendtoGrave(sg,REASON_RULE)
end
end
--渴求之魂 - 碧海
local m=33701451
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,4,cm.lcheck)
c:EnableReviveLimit()
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_DISABLE)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.lpcon)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
c:RegisterEffect(e2)
--Effect 2
local e12=Effect.CreateEffect(c)
e12:SetDescription(aux.Stringid(m,0))
e12:SetCategory(CATEGORY_RECOVER+CATEGORY_DRAW)
e12:SetType(EFFECT_TYPE_QUICK_O)
e12:SetCode(EVENT_FREE_CHAIN)
e12:SetRange(LOCATION_MZONE)
e12:SetHintTiming(TIMING_BATTLE_START+TIMING_BATTLE_END)
e12:SetCountLimit(1)
e12:SetCondition(cm.descon)
e12:SetTarget(cm.destg)
e12:SetOperation(cm.desop)
c:RegisterEffect(e12)
--Effect 3
local e21=Effect.CreateEffect(c)
e21:SetDescription(aux.Stringid(m,1))
e21:SetType(EFFECT_TYPE_QUICK_O)
e21:SetCode(EVENT_CHAINING)
e21:SetRange(LOCATION_MZONE)
e21:SetCountLimit(1,m)
e21:SetCondition(cm.chcon)
e21:SetTarget(cm.chtg)
e21:SetOperation(cm.chop)
c:RegisterEffect(e21)
end
--link summon
function cm.lcheck(g,lc)
return g:IsExists(Card.IsLinkType,1,nil,TYPE_XYZ)
end
--Effect 1
function cm.lpcon(e)
local lp=Duel.GetLP(e:GetHandlerPlayer())
return lp<=12000
end
--Effect 2
function cm.descon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=e:GetHandler():GetLinkedGroup():Filter(Card.IsFaceup,nil)
local atk=g:GetSum(Card.GetAttack)
if chk==0 then return atk>0 end
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,atk)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=c:GetLinkedGroup():Filter(Card.IsFaceup,nil)
local atk=g:GetSum(Card.GetAttack)
if atk>0 and c:IsRelateToEffect(e) then
if Duel.Recover(tp,atk,REASON_EFFECT)~=0
and Duel.IsPlayerCanDraw(1-tp,2)
and Duel.SelectYesNo(1-tp,aux.Stringid(m,2)) then
Duel.BreakEffect()
local def=g:GetSum(Card.GetDefense)
if Duel.Draw(1-tp,2,REASON_EFFECT)~=0
and def>0 then
Duel.BreakEffect()
Duel.Recover(tp,def,REASON_EFFECT)
end
end
end
end
--Effect 3
function cm.chcon(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp
end
function cm.chtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,2000)
end
function cm.chop(e,tp,eg,ep,ev,re,r,rp)
if Duel.Damage(tp,2000,REASON_EFFECT)<=0 then return end
local g=Group.CreateGroup()
Duel.ChangeTargetCard(ev,g)
Duel.ChangeChainOperation(ev,cm.repop)
end
function cm.repop(e,tp,eg,ep,ev,re,r,rp)
Duel.Recover(tp,2000,REASON_EFFECT)
end
--孤寂之魂 - 夜城
local m=33701452
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
c:EnableReviveLimit()
--cannot special summon
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:SetRange(LOCATION_EXTRA)
e0:SetValue(aux.FALSE)
c:RegisterEffect(e0)
--Effect 1
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_EXTRA)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCountLimit(1)
e2:SetCondition(cm.spcon)
e2:SetCost(cm.spcost)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
c:RegisterEffect(e2)
--Effect 2
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,3))
e1:SetCategory(CATEGORY_GRAVE_SPSUMMON+CATEGORY_DRAW+CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
e1:SetCountLimit(1)
e1:SetCondition(cm.con)
e1:SetTarget(cm.tg)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
end
--Effect 1
function cm.ckcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==e:GetHandlerPlayer()
end
function cm.cfilter(c,tp,sc)
return c:IsSetCard(0x144e) and c:IsType(TYPE_MONSTER)
and (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup())
and c:IsAbleToRemoveAsCost()
and Duel.GetLocationCountFromEx(tp,tp,c,sc)>0
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==e:GetHandlerPlayer()
and Duel.GetActivityCount(tp,ACTIVITY_SPSUMMON)==0
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,3,nil,tp,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,cm.cfilter,tp,LOCATION_MZONE+LOCATION_GRAVE,0,3,3,nil,tp,e:GetHandler())
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsCanBeSpecialSummoned(e,0,tp,true,false) and c:IsLocation(LOCATION_EXTRA) 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()
if c:IsRelateToEffect(e)
and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
and c:IsLocation(LOCATION_EXTRA) then
if Duel.SpecialSummon(c,0,tp,tp,true,false,POS_FACEUP)==0 then return end
c:CompleteProcedure()
end
end
--Effect 2
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local b1=not Duel.IsPlayerAffectedByEffect(tp,EFFECT_SKIP_M1)
local b2=not Duel.IsPlayerAffectedByEffect(tp,EFFECT_SKIP_BP)
and not Duel.IsPlayerAffectedByEffect(tp,EFFECT_CANNOT_BP)
local b3=not Duel.IsPlayerAffectedByEffect(tp,EFFECT_SKIP_M2)
if chk==0 then return b1 or b2 or b3 end
if b1 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
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_M1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
end
if b2 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
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_BP)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
end
if b3 and Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
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_M2)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
end
if c:GetFlagEffect(m)>0 then return false end
local off=1
local ops={}
local opval={}
if b1 then
ops[off]=aux.Stringid(m,0)
opval[off-1]=1
off=off+1
end
if b2 then
ops[off]=aux.Stringid(m,1)
opval[off-1]=2
off=off+1
end
if b3 then
ops[off]=aux.Stringid(m,2)
opval[off-1]=3
off=off+1
end
local op=Duel.SelectOption(tp,table.unpack(ops))
local sel=opval[op]
if sel==1 then
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_M1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
elseif sel==2 then
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_BP)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
elseif sel==3 then
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_M2)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
c:RegisterFlagEffect(m,RESET_PHASE+PHASE_END,0,1)
end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetFlagEffect(m)
Debug.Message(ct)
if ct>0 then
Duel.Hint(HINT_CARD,0,m)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabel(ct)
e1:SetCondition(cm.thcon)
e1:SetOperation(cm.thop)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function cm.sp(c,e,tp)
return c:IsType(TYPE_MONSTER)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.thcon(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel()
local b1= ct>=1 and Duel.IsPlayerCanDraw(tp,1)
local b2= ct>=2 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.sp),tp,LOCATION_GRAVE,0,1,nil,e,tp)
local b3= ct>=3
return b1 or b2 or b3
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m)
local c=e:GetHandler()
local ct=e:GetLabel()
local b1= ct>=1 and Duel.IsPlayerCanDraw(tp,1)
local b2= ct>=2 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(cm.sp),tp,LOCATION_GRAVE,0,1,nil,e,tp)
local b3= ct>=3
if b1 then
Duel.Draw(tp,1,REASON_EFFECT)
end
if b2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.sp),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
if b3 then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetCode(EFFECT_CANNOT_ACTIVATE)
e3:SetTargetRange(0,1)
e3:SetValue(cm.aclimit2)
e3:SetReset(RESET_PHASE+PHASE_STANDBY+RESET_SELF_TURN)
Duel.RegisterEffect(e3,tp)
end
c:ResetFlagEffect(m)
end
function cm.aclimit2(e,re,tp)
return re:GetActivateLocation()==LOCATION_HAND
end
\ No newline at end of file
--破灭之魂 - 靛墟
local m=33701453
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,4,cm.lcheck)
c:EnableReviveLimit()
--Effect 1
local e12=Effect.CreateEffect(c)
e12:SetDescription(aux.Stringid(m,0))
e12:SetCategory(CATEGORY_DAMAGE+CATEGORY_DESTROY)
e12:SetType(EFFECT_TYPE_QUICK_O)
e12:SetCode(EVENT_FREE_CHAIN)
e12:SetRange(LOCATION_MZONE)
e12:SetHintTiming(TIMING_BATTLE_START+TIMING_BATTLE_END)
e12:SetCountLimit(1,m)
e12:SetCondition(cm.descon)
e12:SetTarget(cm.destg)
e12:SetOperation(cm.desop)
c:RegisterEffect(e12)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_DESTROYED)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
end
end
--all
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
while tc do
local tp1=tc:GetPreviousControler()
Duel.RegisterFlagEffect(tp1,m,RESET_PHASE+PHASE_END,0,1)
tc=eg:GetNext()
end
end
--link summon
function cm.lcheck(g,lc)
return g:IsExists(Card.IsLinkRace,1,nil,RACE_DRAGON)
end
--Effect 1
function cm.descon(e)
local tp=e:GetHandlerPlayer()
local ct1=Duel.GetFlagEffect(tp,m)
local ct2=Duel.GetFlagEffect(1-tp,m)
return ct1>0 or ct2>0
end
function cm.check(c,atk)
return c:GetAttack()<atk and c:IsType(TYPE_MONSTER)
end
function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk)
local g=e:GetHandler():GetLinkedGroup()
if chk==0 then return #g>0 end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function cm.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=c:GetLinkedGroup()
if c:IsRelateToEffect(e)
and #g>0
and Duel.Destroy(g,REASON_EFFECT)>0 then
local atk=Duel.GetOperatedGroup():GetSum(Card.GetAttack)
if atk==0 then return end
if Duel.SelectYesNo(1-tp,aux.Stringid(m,0)) then
local kg=Duel.GetFieldGroup(tp,0,LOCATION_DECK)
Duel.ConfirmCards(tp,kg)
if kg:IsExists(cm.check,1,nil,atk) then
local xg=Group.CreateGroup()
local mg=Duel.GetMatchingGroup(cm.check,tp,0,LOCATION_DECK,nil,atk)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dc=mg:Select(tp,1,1,nil):GetFirst()
if dc then
xg:AddCard(dc)
mg:RemoveCard(dc)
atk=atk-dc:GetAttack()
local chk=true
while chk do
if atk>0 and mg:IsExists(cm.check,1,nil,atk)
and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local tc=mg:FilterSelect(tp,cm.check,1,1,nil,atk):GetFirst()
xg:AddCard(tc)
mg:RemoveCard(tc)
atk=atk-tc:GetAttack()
else
chk=false
end
end
Duel.Destroy(xg,REASON_EFFECT)
end
Duel.ShuffleDeck(1-tp)
else
Duel.ShuffleDeck(1-tp)
end
else
Duel.Damage(1-tp,atk,REASON_EFFECT)
end
end
end
--远航之魂 - 璞玉
local m=33701454
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,cm.mfilter,2,4)
c:EnableReviveLimit()
--extra material
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_EXTRA_LINK_MATERIAL)
e1:SetRange(LOCATION_EXTRA)
e1:SetTargetRange(LOCATION_SZONE+LOCATION_FZONE,0)
e1:SetValue(cm.matval)
c:RegisterEffect(e1)
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(cm.tg)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
--Effect 2
local e6=Effect.CreateEffect(c)
e6:SetCategory(CATEGORY_TOGRAVE+CATEGORY_SPECIAL_SUMMON)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetProperty(EFFECT_FLAG_DELAY)
e6:SetCode(EVENT_DESTROYED)
e6:SetTarget(cm.sptg)
e6:SetOperation(cm.spop)
c:RegisterEffect(e6)
end
--link summon
function cm.mfilter(c)
local b1=c:GetOriginalType()&TYPE_SPELL+TYPE_TRAP~=0 and c:IsLocation(LOCATION_MZONE)
local b2=c:GetOriginalType()&TYPE_MONSTER~=0 and c:IsLocation(LOCATION_SZONE+LOCATION_FZONE)
return b1 or b2
end
--extra material
function cm.matval(e,lc,mg,c,tp)
if e:GetHandler()~=lc then return false,nil end
return true,true
end
--Effect 1
function cm.f(c)
return c:GetOriginalType()&TYPE_MONSTER~=0
end
function cm.cf(c)
return not c:IsForbidden()
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local zone=bit.band(c:GetLinkedZone(tp),0x1f)
local g=Duel.GetMatchingGroup(cm.f,tp,LOCATION_SZONE,0,nil)
local mg=c:GetLinkedGroup():Filter(cm.cf,nil)
local b1=Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and #mg>0
and Duel.IsPlayerCanDraw(tp,1)
local b2=#g>0 and Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0,zone)>0 and Duel.IsPlayerCanDraw(tp,1)
if chk==0 then return b1 or b2 end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local zone=bit.band(c:GetLinkedZone(tp),0x1f)
local g=Duel.GetMatchingGroup(cm.f,tp,LOCATION_SZONE,0,nil)
local mg=c:GetLinkedGroup():Filter(cm.cf,nil)
local b1=Duel.GetLocationCount(tp,LOCATION_SZONE)>0 and #mg>0
and Duel.IsPlayerCanDraw(tp,1)
local b2=#g>0 and Duel.GetLocationCount(tp,LOCATION_MZONE,PLAYER_NONE,0,zone)>0 and Duel.IsPlayerCanDraw(tp,1)
local opt=0
if b1 and b2 then
opt=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1))+1
elseif b1 then opt=1
elseif b2 then opt=2
end
if opt==1 then
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local tc=mg:Select(tp,1,1,nil):GetFirst()
if tc and not tc:IsImmuneToEffect(e) then
if Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
tc:RegisterEffect(e1)
Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT)
end
end
elseif opt==2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local tc=g:Select(tp,1,1,nil):GetFirst()
local flag=bit.bxor(zone,0xff)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,flag)
if Duel.MoveToField(tc,tp,tp,LOCATION_MZONE,POS_FACEUP,true,s) then
Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT)
end
end
end
--Effect 2
function cm.tf(c)
return c:IsFaceup() and c:IsAbleToGrave()
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(cm.tf,tp,LOCATION_SZONE,0,nil)
if chk==0 then return #g>0 and 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)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_SZONE)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=c:IsRelateToEffect(e)
local b2=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g=Duel.GetMatchingGroup(cm.tf,tp,LOCATION_SZONE,0,nil)
if #g>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local tc=g:Select(tp,1,1,nil):GetFirst()
if tc and Duel.SendtoGrave(tc,REASON_EFFECT)>0
and b1 and b2 then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
end
--瑞佳 永恒之扉
local m=33701455
local cm=_G["c"..m]
function cm.initial_effect(c)
--synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit()
--Effect 1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_MATERIAL_CHECK)
e1:SetValue(cm.valcheck)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetCondition(cm.regcon)
e2:SetOperation(cm.regop)
e2:SetLabelObject(e1)
c:RegisterEffect(e2)
end
--Effect 1
function cm.valcheck(e,c)
local g=c:GetMaterial():FilterCount(Card.IsType,nil,TYPE_TOKEN)
e:SetLabel(g)
end
function cm.regcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
and e:GetLabelObject():GetLabel()~=0
end
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local vt=e:GetLabelObject():GetLabel()
local c=e:GetHandler()
c:RegisterFlagEffect(m+m*2,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(m,vt-1))
if vt>=1 then
local e02=Effect.CreateEffect(c)
e02:SetType(EFFECT_TYPE_SINGLE)
e02:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e02:SetValue(cm.indes)
e02:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e02)
end
if vt>=2 then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetValue(cm.efilter)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e2)
end
if vt>=3 then
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,4))
e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetHintTiming(TIMING_DAMAGE_STEP,TIMINGS_CHECK_MONSTER+TIMING_DAMAGE_STEP)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(cm.rntg)
e1:SetOperation(cm.rnop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
if vt>=4 then
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(1,1)
e3:SetTarget(cm.sumlimit)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e3)
end
end
function cm.indes(e,c)
return not c:IsType(TYPE_TOKEN)
end
function cm.efilter(e,te)
return te:IsActiveType(TYPE_MONSTER) and te:GetOwner()~=e:GetOwner()
end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return not c:IsType(TYPE_TOKEN)
end
function cm.rf(c)
return c:IsType(TYPE_MONSTER)
and c:IsAbleToRemove()
and (c:GetAttack()>0 or c:GetDefense()>0)
end
function cm.rntg(e,tp,eg,ep,ev,re,r,rp,chk)
local g1=Duel.GetMatchingGroup(cm.rf,tp,LOCATION_GRAVE,LOCATION_GRAVE,nil)
local g2=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_MZONE,0,nil,TYPE_TOKEN)
if chk==0 then return #g1>0 and #g2>0 end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g1,1,0,0)
end
function cm.rnop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g1=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.rf),tp,LOCATION_GRAVE,LOCATION_GRAVE,nil)
local g2=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_MZONE,0,nil,TYPE_TOKEN)
if #g1==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local rg=g1:Select(tp,1,1,nil)
local rc=rg:GetFirst()
Duel.HintSelection(rg)
if rc and Duel.Remove(rc,POS_FACEUP,REASON_EFFECT)>0
and rc:IsLocation(LOCATION_REMOVED)
and #g2>0 then
local atk=rc:GetAttack()
local def=rc:GetDefense()
if atk>0 or def>0 then
local tc=g2:GetFirst()
while tc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(atk)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
e2:SetValue(def)
tc:RegisterEffect(e2)
tc=g2:GetNext()
end
end
end
end
...@@ -49,6 +49,9 @@ ...@@ -49,6 +49,9 @@
!setname 0xc460 键★等(K.E.Y Etc.) !setname 0xc460 键★等(K.E.Y Etc.)
!counter 0x1460 光玉(Light Orb !counter 0x1460 光玉(Light Orb
!counter 0x46e 天堂指示物
!counter 0x46f 明星指示物
cm.named_with_NewVenture 内置字段:踏破新世界
#少年 714 0x710-0x71f Sonic_714 #少年 714 0x710-0x71f Sonic_714
!setname 0x714 异梦 !setname 0x714 异梦
......
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