Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-222DIY-cards
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ai
ygopro-222DIY-cards
Commits
8d6b81a5
Commit
8d6b81a5
authored
Oct 25, 2020
by
TanakaKotoha
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
delete
parent
b6902146
Changes
45
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
2103 additions
and
2117 deletions
+2103
-2117
expansions/222DIY.cdb
expansions/222DIY.cdb
+0
-0
expansions/script/c33330001.lua
expansions/script/c33330001.lua
+9
-43
expansions/script/c33330002.lua
expansions/script/c33330002.lua
+52
-53
expansions/script/c33330003.lua
expansions/script/c33330003.lua
+38
-40
expansions/script/c33330004.lua
expansions/script/c33330004.lua
+37
-40
expansions/script/c33330005.lua
expansions/script/c33330005.lua
+27
-35
expansions/script/c33330006.lua
expansions/script/c33330006.lua
+32
-40
expansions/script/c33330007.lua
expansions/script/c33330007.lua
+18
-24
expansions/script/c33330008.lua
expansions/script/c33330008.lua
+40
-51
expansions/script/c33330010.lua
expansions/script/c33330010.lua
+47
-71
expansions/script/c33330011.lua
expansions/script/c33330011.lua
+38
-50
expansions/script/c33330012.lua
expansions/script/c33330012.lua
+61
-58
expansions/script/c33330013.lua
expansions/script/c33330013.lua
+49
-55
expansions/script/c33330014.lua
expansions/script/c33330014.lua
+54
-59
expansions/script/c33330015.lua
expansions/script/c33330015.lua
+83
-92
expansions/script/c33330016.lua
expansions/script/c33330016.lua
+49
-54
expansions/script/c33330017.lua
expansions/script/c33330017.lua
+62
-39
expansions/script/c33330018.lua
expansions/script/c33330018.lua
+92
-90
expansions/script/c33330019.lua
expansions/script/c33330019.lua
+96
-112
expansions/script/c33330020.lua
expansions/script/c33330020.lua
+114
-94
expansions/script/c33330021.lua
expansions/script/c33330021.lua
+112
-95
expansions/script/c33330022.lua
expansions/script/c33330022.lua
+110
-93
expansions/script/c33330023.lua
expansions/script/c33330023.lua
+112
-107
expansions/script/c33330024.lua
expansions/script/c33330024.lua
+97
-97
expansions/script/c33330025.lua
expansions/script/c33330025.lua
+32
-37
expansions/script/c33330026.lua
expansions/script/c33330026.lua
+75
-26
expansions/script/c33330027.lua
expansions/script/c33330027.lua
+61
-64
expansions/script/c33330028.lua
expansions/script/c33330028.lua
+61
-64
expansions/script/c33330029.lua
expansions/script/c33330029.lua
+76
-76
expansions/script/c33330030.lua
expansions/script/c33330030.lua
+130
-109
expansions/script/c33330031.lua
expansions/script/c33330031.lua
+32
-38
expansions/script/c33330032.lua
expansions/script/c33330032.lua
+54
-61
expansions/script/c33330033.lua
expansions/script/c33330033.lua
+55
-63
expansions/script/c33330034.lua
expansions/script/c33330034.lua
+84
-72
expansions/script/c33330036.lua
expansions/script/c33330036.lua
+2
-3
expansions/script/c33330300.lua
expansions/script/c33330300.lua
+1
-1
expansions/script/c33330301.lua
expansions/script/c33330301.lua
+1
-1
expansions/script/c33330302.lua
expansions/script/c33330302.lua
+1
-1
expansions/script/c33330303.lua
expansions/script/c33330303.lua
+1
-1
expansions/script/c33330304.lua
expansions/script/c33330304.lua
+1
-1
expansions/script/c33330305.lua
expansions/script/c33330305.lua
+1
-1
expansions/script/c33330306.lua
expansions/script/c33330306.lua
+1
-1
expansions/script/c33330320.lua
expansions/script/c33330320.lua
+2
-2
expansions/script/c33330323.lua
expansions/script/c33330323.lua
+1
-1
expansions/strings.conf
expansions/strings.conf
+2
-2
No files found.
expansions/222DIY.cdb
View file @
8d6b81a5
No preview for this file type
expansions/script/c33330001.lua
View file @
8d6b81a5
...
@@ -2,54 +2,20 @@
...
@@ -2,54 +2,20 @@
local
m
=
33330001
local
m
=
33330001
local
cm
=
_G
[
"c"
..
m
]
local
cm
=
_G
[
"c"
..
m
]
function
cm
.
initial_effect
(
c
)
function
cm
.
initial_effect
(
c
)
--
I
ndes
--
i
ndes
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e1
:
SetValue
(
1
)
e1
:
SetValue
(
1
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
local
e5
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_AVOID_BATTLE_DAMAGE
)
e5
:
SetCode
(
EFFECT_AVOID_BATTLE_DAMAGE
)
c
:
RegisterEffect
(
e2
)
--Direct Attack
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_DIRECT_ATTACK
)
c
:
RegisterEffect
(
e3
)
--search
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
33330001
,
0
))
e4
:
SetCategory
(
CATEGORY_SEARCH
+
CATEGORY_TOHAND
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e4
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e4
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e4
:
SetCountLimit
(
1
,
m
)
e4
:
SetCost
(
c33330001
.
thcost
)
e4
:
SetTarget
(
c33330001
.
thtg
)
e4
:
SetOperation
(
c33330001
.
thop
)
c
:
RegisterEffect
(
e4
)
local
e5
=
e4
:
Clone
()
e5
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
c
:
RegisterEffect
(
e5
)
c
:
RegisterEffect
(
e5
)
end
--direct atk
function
cm
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
e2
=
Effect
.
CreateEffect
(
c
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsDiscardable
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
Duel
.
DiscardHand
(
tp
,
Card
.
IsDiscardable
,
1
,
1
,
REASON_COST
+
REASON_DISCARD
)
e2
:
SetCode
(
EFFECT_DIRECT_ATTACK
)
end
c
:
RegisterEffect
(
e2
)
function
cm
.
filter2
(
c
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsType
(
TYPE_FIELD
)
and
c
:
IsAbleToHand
()
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
filter2
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter2
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
\ No newline at end of file
expansions/script/c33330002.lua
View file @
8d6b81a5
--深界探窟者 雷古
--深界探窟者 雷古
local
m
=
33330002
function
c33330002
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--th2
cm
.
search
=
{
33330026
,
33330015
}
--检 索 的 卡
function
cm
.
initial_effect
(
c
)
--To Hand 1
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330002
,
1
))
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetCountLimit
(
1
,
33330102
)
e1
:
SetCost
(
c
m
.
thcost1
)
e1
:
SetCost
(
c
33330002
.
cost
)
e1
:
SetTarget
(
c
m
.
thtg1
)
e1
:
SetTarget
(
c
33330002
.
target
)
e1
:
SetOperation
(
c
m
.
thop1
)
e1
:
SetOperation
(
c
33330002
.
activate
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
To Hand 2
--
tohand
local
e
2
=
Effect
.
CreateEffect
(
c
)
local
e
4
=
Effect
.
CreateEffect
(
c
)
e
2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e
4
:
SetDescription
(
aux
.
Stringid
(
33330002
,
0
))
e
2
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e
4
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e
2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e
4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e
2
:
SetRange
(
LOCATION_MZONE
)
e
4
:
SetRange
(
LOCATION_MZONE
)
e
2
:
SetCountLimit
(
1
,
m
+
100
)
e
4
:
SetCountLimit
(
1
,
33330002
)
e
2
:
SetCost
(
cm
.
thcost2
)
e
4
:
SetCost
(
c33330002
.
thcost
)
e
2
:
SetTarget
(
cm
.
thtg2
)
e
4
:
SetTarget
(
c33330002
.
thtg
)
e
2
:
SetOperation
(
cm
.
thop2
)
e
4
:
SetOperation
(
c33330002
.
thop
)
c
:
RegisterEffect
(
e
2
)
c
:
RegisterEffect
(
e
4
)
end
end
cm
.
card_code_list
=
cm
.
search
function
c33330002
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
--To Hand 1
function
cm
.
thfilter1
(
c
)
return
c
:
IsType
(
TYPE_EQUIP
)
and
c
:
IsSetCard
(
0x556
)
and
c
:
IsAbleToHand
()
end
function
cm
.
thcost1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsDiscardable
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
Duel
.
DiscardHand
(
tp
,
Card
.
IsDiscardable
,
1
,
1
,
REASON_COST
)
end
function
cm
.
thtg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter1
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
cm
.
thop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
thfilter1
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
--To Hand 2
function
cm
.
thfilter2
(
c
,
code
)
return
c
:
IsCode
(
code
)
and
c
:
IsAbleToHand
()
end
function
cm
.
thcost2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetFieldGroup
(
tp
,
LOCATION_HAND
,
0
)
local
g
=
Duel
.
GetFieldGroup
(
tp
,
LOCATION_HAND
,
0
)
local
ct
=
g
:
GetCount
()
local
ct
=
g
:
GetCount
()
if
chk
==
0
then
return
e
:
GetHandler
():
IsReleasable
()
and
ct
>
0
and
g
:
FilterCount
(
Card
.
IsAbleToRemove
,
nil
)
==
ct
end
if
chk
==
0
then
return
e
:
GetHandler
():
IsReleasable
()
and
ct
>
0
and
g
:
FilterCount
(
Card
.
IsAbleToRemove
,
nil
)
==
ct
end
Duel
.
Release
(
e
:
GetHandler
(),
REASON_COST
)
Duel
.
Release
(
e
:
GetHandler
(),
REASON_COST
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
end
end
function
cm
.
thtg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330002
.
filter1
(
c
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter2
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
cm
.
search
[
1
])
return
c
:
IsCode
(
33330026
)
and
c
:
IsAbleToHand
()
and
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter2
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
cm
.
search
[
2
])
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
2
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
end
function
cm
.
thop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330002
.
filter2
(
c
)
local
g1
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
cm
.
thfilter2
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
nil
,
cm
.
search
[
1
])
return
c
:
IsCode
(
33330015
)
and
c
:
IsAbleToHand
()
local
g2
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
cm
.
thfilter2
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
nil
,
cm
.
search
[
2
])
end
function
c33330002
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330002
.
filter1
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c33330002
.
filter2
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
2
,
tp
,
LOCATION_DECK
)
end
function
c33330002
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g1
=
Duel
.
GetMatchingGroup
(
c33330002
.
filter1
,
tp
,
LOCATION_DECK
,
0
,
nil
)
local
g2
=
Duel
.
GetMatchingGroup
(
c33330002
.
filter2
,
tp
,
LOCATION_DECK
,
0
,
nil
)
if
g1
:
GetCount
()
>
0
and
g2
:
GetCount
()
>
0
then
if
g1
:
GetCount
()
>
0
and
g2
:
GetCount
()
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
sg1
=
g1
:
Select
(
tp
,
1
,
1
,
nil
)
local
sg1
=
g1
:
Select
(
tp
,
1
,
1
,
nil
)
...
@@ -75,3 +54,23 @@ function cm.thop2(e,tp,eg,ep,ev,re,r,rp)
...
@@ -75,3 +54,23 @@ function cm.thop2(e,tp,eg,ep,ev,re,r,rp)
Duel
.
ConfirmCards
(
1
-
tp
,
sg1
)
Duel
.
ConfirmCards
(
1
-
tp
,
sg1
)
end
end
end
end
function
c33330002
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToGraveAsCost
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
Duel
.
DiscardHand
(
tp
,
Card
.
IsAbleToGraveAsCost
,
1
,
1
,
REASON_COST
)
end
function
c33330002
.
thfilter
(
c
)
return
c
:
IsType
(
TYPE_EQUIP
)
and
c
:
IsSetCard
(
0x556
)
and
c
:
IsAbleToHand
()
end
function
c33330002
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330002
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c33330002
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330002
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
\ No newline at end of file
expansions/script/c33330003.lua
View file @
8d6b81a5
--深界探窟者 娜娜奇
--深界探窟者 娜娜奇
local
m
=
33330003
function
c33330003
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--search
function
cm
.
initial_effect
(
c
)
--Special Summon
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330003
,
0
))
e1
:
SetCategory
(
CATEGORY_
SPECIAL_SUMMON
)
e1
:
SetCategory
(
CATEGORY_
TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetCode
(
EVENT_TO_GRAVE
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetCountLimit
(
1
,
33330003
)
e1
:
SetTarget
(
cm
.
sptg
)
e1
:
SetTarget
(
c33330003
.
thtg1
)
e1
:
SetOperation
(
cm
.
spop
)
e1
:
SetOperation
(
c33330003
.
tgop1
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
--special summon
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
33330003
,
1
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e2
:
SetCountLimit
(
1
,
33330103
)
e2
:
SetTarget
(
c33330003
.
sptg1
)
e2
:
SetOperation
(
c33330003
.
spop1
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--Search
local
e3
=
e2
:
Clone
()
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
c
:
RegisterEffect
(
e3
)
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e3
:
SetCountLimit
(
1
,
m
+
100
)
e3
:
SetTarget
(
cm
.
thtg
)
e3
:
SetOperation
(
cm
.
thop
)
c
:
RegisterEffect
(
e3
)
end
end
--Special Summon
function
c33330003
.
spfilter1
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x557
)
and
c
:
GetLevel
()
<=
4
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
return
c
:
IsSetCard
(
0x557
)
and
c
:
IsLevelBelow
(
4
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330003
.
sptg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetMZoneCount
(
tp
)
>
0
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c33330003
.
spfilter1
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
end
end
function
c
m
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330003
.
spop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
Get
MZoneCount
(
tp
)
<
1
then
return
end
if
Duel
.
Get
LocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c
m
.
spfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c
33330003
.
spfilter1
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
end
end
--Search
function
c33330003
.
thfilter1
(
c
)
function
cm
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x557
)
and
c
:
IsAbleToHand
()
return
c
:
IsSetCard
(
0x557
)
and
c
:
IsAbleToHand
()
end
end
function
c
m
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c
33330003
.
thtg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c
m
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c
50720316
.
thfilter1
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
end
function
c
m
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330003
.
tgop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330003
.
thfilter1
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330004.lua
View file @
8d6b81a5
--深界探窟者 马璐璐库
--深界探窟者 马璐璐库
local
m
=
33330004
function
c33330004
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--spsummon
function
cm
.
initial_effect
(
c
)
--Special Summon
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330004
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetCountLimit
(
1
,
33330004
)
e1
:
SetCost
(
c
m
.
sp
cost
)
e1
:
SetCost
(
c
33330004
.
cost
)
e1
:
SetTarget
(
c
m
.
sptg
)
e1
:
SetTarget
(
c
33330004
.
target
)
e1
:
SetOperation
(
c
m
.
spop
)
e1
:
SetOperation
(
c
33330004
.
operation
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
Return Grave
--
tog
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330004
,
1
))
e2
:
SetCategory
(
CATEGORY_TOGRAVE
)
e2
:
SetCategory
(
CATEGORY_TOGRAVE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_TO_GRAVE
)
e2
:
SetCode
(
EVENT_TO_GRAVE
)
e2
:
SetProperty
(
EFFECT_FLAG_D
ELAY
+
EFFECT_FLAG_D
AMAGE_STEP
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e2
:
SetTarget
(
c
m
.
tgtg
)
e2
:
SetTarget
(
c
33330004
.
tgtg1
)
e2
:
SetOperation
(
c
m
.
tgop
)
e2
:
SetOperation
(
c
33330004
.
tgop1
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
--Special Summon
function
c33330004
.
tgtg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
costfilter
(
c
,
tp
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
nil
,
tp
,
LOCATION_REMOVED
,
LOCATION_REMOVED
,
1
,
nil
)
end
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
and
Duel
.
GetMZoneCount
(
tp
,
c
)
>
0
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
0
,
LOCATION_REMOVED
)
end
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
c33330004
.
tgop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
c
:
IsSetCard
(
0x1556
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
nil
,
tp
,
LOCATION_REMOVED
,
LOCATION_REMOVED
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
+
REASON_RETURN
)
end
end
end
function
cm
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330004
.
costfilter
(
c
,
ft
,
tp
)
if
chk
==
0
then
return
Duel
.
CheckReleaseGroup
(
tp
,
cm
.
costfilter
,
1
,
nil
,
ft
,
tp
)
end
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
cm
.
costfilter
,
1
,
1
,
nil
,
ft
,
tp
)
and
(
ft
>
0
or
(
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
))
end
function
c33330004
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
chk
==
0
then
return
ft
>-
1
and
Duel
.
CheckReleaseGroup
(
tp
,
c33330004
.
costfilter
,
1
,
nil
,
ft
,
tp
)
end
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
c33330004
.
costfilter
,
1
,
1
,
nil
,
ft
,
tp
)
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
end
end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330004
.
filter
(
c
,
e
,
tp
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
return
c
:
IsSetCard
(
0x5556
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c33330004
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330004
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
LOCATION_DECK
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
LOCATION_DECK
)
end
end
function
c
m
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330004
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
Get
MZoneCount
(
tp
)
<
1
then
return
end
if
Duel
.
Get
LocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c
m
.
sp
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c
33330004
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
end
end
--Return Grave
function
cm
.
tgtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
nil
,
tp
,
LOCATION_REMOVED
,
LOCATION_REMOVED
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
0
,
LOCATION_REMOVED
)
end
function
cm
.
tgop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
nil
,
tp
,
LOCATION_REMOVED
,
LOCATION_REMOVED
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
+
REASON_RETURN
)
end
end
expansions/script/c33330005.lua
View file @
8d6b81a5
--深界生骸 米蒂
--深界生骸 米蒂
local
m
=
33330005
function
c33330005
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--search
function
cm
.
initial_effect
(
c
)
--Special Summon
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330005
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_TO_GRAVE
)
e1
:
SetCode
(
EVENT_TO_GRAVE
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
m
+
EFFECT_COUNT_CODE_DUEL
)
e1
:
SetCountLimit
(
1
,
33330003
+
EFFECT_COUNT_CODE_DUEL
)
e1
:
SetCondition
(
cm
.
spcon
)
e1
:
SetCost
(
c33330005
.
spcost
)
e1
:
SetCost
(
cm
.
spcost
)
e1
:
SetTarget
(
c33330005
.
target
)
e1
:
SetTarget
(
cm
.
sptg
)
e1
:
SetOperation
(
c33330005
.
operation
)
e1
:
SetOperation
(
cm
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
Duel
.
AddCustomActivityCounter
(
33330005
,
ACTIVITY_SPSUMMON
,
c33330005
.
counterfilter
)
--Cost
Duel
.
AddCustomActivityCounter
(
m
,
ACTIVITY_SPSUMMON
,
cm
.
counterfilter
)
end
end
--Cost
function
c33330005
.
counterfilter
(
c
)
function
cm
.
counterfilter
(
c
)
return
c
:
IsSetCard
(
0x556
)
return
c
:
IsSetCard
(
0x556
)
end
end
function
c
m
.
splimit
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
function
c
33330005
.
splimit
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
return
not
c
:
IsSetCard
(
0x556
)
return
not
c
:
IsSetCard
(
0x556
)
end
end
function
c
m
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c
33330005
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetCustomActivityCount
(
m
,
tp
,
ACTIVITY_SPSUMMON
)
==
0
end
if
chk
==
0
then
return
Duel
.
GetCustomActivityCount
(
33330005
,
tp
,
ACTIVITY_SPSUMMON
)
==
0
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
+
EFFECT_FLAG_OATH
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
+
EFFECT_FLAG_OATH
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e1
:
SetTarget
(
cm
.
splimit
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetLabelObject
(
e
)
e1
:
SetTarget
(
c33330005
.
splimit
)
Duel
.
RegisterEffect
(
e1
,
tp
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
--Special Summon
function
c33330005
.
filter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
33330005
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
return
c
:
IsCode
(
m
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
cm
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
end
end
function
c
m
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c
33330005
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
Get
MZoneCount
(
tp
)
>
0
if
chk
==
0
then
return
Duel
.
Get
LocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c
m
.
sp
filter
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
and
Duel
.
IsExistingMatchingCard
(
c
33330005
.
filter
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
end
function
c
m
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330005
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ft
=
Duel
.
Get
MZoneCount
(
tp
)
local
ft
=
Duel
.
Get
LocationCount
(
tp
,
LOCATION_MZONE
)
if
ft
<
1
then
return
end
if
ft
<
=
0
then
return
end
if
ft
>
2
then
ft
=
2
end
if
ft
>
2
then
ft
=
2
end
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
ft
=
1
end
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
ft
=
1
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c
m
.
sp
filter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
ft
,
nil
,
e
,
tp
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c
33330005
.
filter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
ft
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
...
...
expansions/script/c33330006.lua
View file @
8d6b81a5
--深界生物 血口之绳
--深界生物 血口之绳
local
m
=
33330006
function
c33330006
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--special summon
cm
.
counter
=
0x1556
--指 示 物
cm
.
atk
=
500
--攻 击 力
function
cm
.
initial_effect
(
c
)
--Hand Special Summon
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c
m
.
h
spcon
)
e1
:
SetCondition
(
c
33330006
.
spcon
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
Counter
--
special summon
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330006
,
0
))
e2
:
SetCategory
(
CATEGORY_COUNTER
)
e2
:
SetCategory
(
CATEGORY_COUNTER
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e2
:
SetTarget
(
c
m
.
cttg
)
e2
:
SetTarget
(
c
33330006
.
ctg1
)
e2
:
SetOperation
(
c
m
.
ctop
)
e2
:
SetOperation
(
c
33330006
.
cop1
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--
Xyz Material
--
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetCode
(
EVENT_BE_MATERIAL
)
e3
:
SetCode
(
EVENT_BE_MATERIAL
)
e3
:
SetCondition
(
c
m
.
atkcon
)
e3
:
SetCondition
(
c
33330006
.
atkcon
)
e3
:
SetOperation
(
c
m
.
atkop
)
e3
:
SetOperation
(
c
33330006
.
atkop
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
--Hand Special Summon
function
c33330006
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
hspfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
end
function
cm
.
hspcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
return
Duel
.
GetMZoneCount
(
tp
)
>
0
and
Duel
.
IsExistingMatchingCard
(
cm
.
hspfilter
,
tp
,
LOCATION_FZONE
,
0
,
1
,
nil
)
end
--Counter
function
cm
.
cttg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
~=
nil
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
0
,
0
)
end
function
cm
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
tc
and
tc
:
IsFaceup
()
and
tc
:
IsCanAddCounter
(
cm
.
counter
,
1
)
then
tc
:
AddCounter
(
cm
.
counter
,
1
)
end
end
--Xyz Material
function
cm
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
r
==
REASON_XYZ
return
r
==
REASON_XYZ
end
end
function
c
m
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330006
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
rc
=
c
:
GetReasonCard
()
local
rc
=
c
:
GetReasonCard
()
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetValue
(
cm
.
atk
)
e1
:
SetValue
(
500
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
rc
:
RegisterEffect
(
e1
)
rc
:
RegisterEffect
(
e1
)
end
function
c33330006
.
ctg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
0
,
0
)
end
function
c33330006
.
cop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
tc
and
tc
:
IsFaceup
()
and
tc
:
IsCanAddCounter
(
0x1009
,
1
)
then
tc
:
AddCounter
(
0x1019
,
1
)
end
end
function
c33330006
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
end
function
c33330006
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
return
Duel
.
GetLocationCount
(
c
:
GetControler
(),
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c33330006
.
filter
,
c
:
GetControler
(),
LOCATION_FZONE
,
0
,
1
,
nil
)
end
end
\ No newline at end of file
expansions/script/c33330007.lua
View file @
8d6b81a5
--通往深界的升降机
--通往深界的升降机
local
m
=
33330007
function
c33330007
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--special summon
function
cm
.
initial_effect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
--Destroy & Draw
e2
:
SetDescription
(
aux
.
Stringid
(
33330007
,
0
))
local
e1
=
Effect
.
CreateEffect
(
c
)
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_DRAW
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_DRAW
)
e2
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e2
:
SetTarget
(
c33330007
.
destg1
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e2
:
SetOperation
(
c33330007
.
desop1
)
e1
:
SetTarget
(
cm
.
destg
)
c
:
RegisterEffect
(
e2
)
e1
:
SetOperation
(
cm
.
desop
)
local
e3
=
e2
:
Clone
()
c
:
RegisterEffect
(
e1
)
e3
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
local
e2
=
e1
:
Clone
()
c
:
RegisterEffect
(
e3
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
c
:
RegisterEffect
(
e2
)
end
end
--Destroy & Draw
function
c33330007
.
destg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
desfilter
(
c
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsDestructable
()
end
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
desfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
)
if
chk
==
0
then
return
g
:
GetCount
()
>
0
and
Duel
.
IsPlayerCanDraw
(
tp
,
g
:
GetCount
())
end
if
chk
==
0
then
return
g
:
GetCount
()
>
0
and
Duel
.
IsPlayerCanDraw
(
tp
,
g
:
GetCount
())
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
g
:
GetCount
(),
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
g
:
GetCount
(),
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
g
:
GetCount
())
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
g
:
GetCount
())
end
end
function
c
m
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330007
.
desop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
desfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
local
ct
=
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
local
ct
=
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
if
ct
>
0
then
if
ct
>
0
then
Duel
.
Draw
(
tp
,
ct
,
REASON_EFFECT
)
Duel
.
Draw
(
tp
,
ct
,
REASON_EFFECT
)
...
...
expansions/script/c33330008.lua
View file @
8d6b81a5
--深界生物 泣尸鸟
--深界生物 泣尸鸟
local
m
=
33330008
function
c33330008
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--d a
cm
.
counter
=
0x1556
--指 示 物
local
e4
=
Effect
.
CreateEffect
(
c
)
cm
.
atk
=-
1000
--攻 击 力
e4
:
SetDescription
(
aux
.
Stringid
(
33330008
,
0
))
function
cm
.
initial_effect
(
c
)
e4
:
SetCategory
(
CATEGORY_DESTROY
)
--Atk Down
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e4
:
SetCode
(
EVENT_DAMAGE_STEP_END
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCost
(
c33330008
.
cost
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e4
:
SetCondition
(
c33330008
.
condition
)
e1
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetOperation
(
c33330008
.
operation
)
e1
:
SetTargetRange
(
0
,
LOCATION_MZONE
)
c
:
RegisterEffect
(
e4
)
e1
:
SetTarget
(
cm
.
atktg
)
--rec
e1
:
SetValue
(
cm
.
atkval
)
local
e3
=
Effect
.
CreateEffect
(
c
)
c
:
RegisterEffect
(
e1
)
e3
:
SetDescription
(
aux
.
Stringid
(
33330008
,
1
))
--Atk Up
e3
:
SetCategory
(
CATEGORY_RECOVER
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e3
:
SetCode
(
EVENT_BATTLE_DESTROYING
)
e2
:
SetCategory
(
CATEGORY_ATKCHANGE
)
e3
:
SetCondition
(
aux
.
bdocon
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetTarget
(
c33330008
.
attg
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYING
)
e3
:
SetOperation
(
c33330008
.
atop
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
c
:
RegisterEffect
(
e3
)
e2
:
SetCondition
(
aux
.
bdocon
)
e2
:
SetOperation
(
cm
.
atop
)
c
:
RegisterEffect
(
e2
)
end
end
--Atk Down
function
c33330008
.
attg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
atktg
(
e
,
tc
)
if
chk
==
0
then
return
Duel
.
GetCounter
(
tp
,
LOCATION_ONFIELD
,
0
,
0x1019
)
>
0
end
local
c
=
e
:
GetHandler
()
Duel
.
SetTargetPlayer
(
tp
)
local
ph
=
Duel
.
GetCurrentPhase
()
local
ct
=
Duel
.
GetCounter
(
tp
,
LOCATION_ONFIELD
,
0
,
0x1019
)
return
(
ph
==
PHASE_DAMAGE
or
ph
==
PHASE_DAMAGE_CAL
)
and
c
:
IsRelateToBattle
()
and
tc
:
IsFaceup
()
and
c
:
GetBattleTarget
()
==
tc
Duel
.
SetTargetParam
(
ct
*
100
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RECOVER
,
nil
,
0
,
tp
,
ct
*
100
)
end
function
c33330008
.
atop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
p
,
d
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
,
CHAININFO_TARGET_PARAM
)
Duel
.
Recover
(
p
,
d
,
REASON_EFFECT
)
end
end
function
cm
.
atkval
(
e
,
c
)
function
c33330008
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
Duel
.
GetCounter
(
e
:
GetHandlerPlayer
(),
LOCATION_ONFIELD
,
0
,
cm
.
counter
)
*
cm
.
atk
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
chk
==
0
then
return
tc
and
tc
:
IsCode
(
33330019
)
and
tc
:
IsFaceup
()
and
tc
:
IsCanAddCounter
(
0x1009
,
1
)
end
tc
:
AddCounter
(
0x1019
,
1
)
end
end
--Atk Up
function
c33330008
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
atop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
tc
=
c
:
GetBattleTarget
()
return
c
:
IsChainAttackable
()
and
not
c
:
IsStatus
(
STATUS_BATTLE_DESTROYED
)
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
end
local
e1
=
Effect
.
CreateEffect
(
c
)
function
c33330008
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
Duel
.
ChainAttack
()
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetValue
(
tc
:
GetBaseAttack
())
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_DISABLE
)
c
:
RegisterEffect
(
e1
)
if
Duel
.
GetCurrentPhase
()
>=
PHASE_BATTLE_START
and
Duel
.
GetCurrentPhase
()
<=
PHASE_BATTLE
then
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_EXTRA_ATTACK
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetValue
(
1
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_BATTLE
)
c
:
RegisterEffect
(
e2
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330010.lua
View file @
8d6b81a5
--深界生物 宿鼠
--深界生物 宿鼠
local
m
=
33330010
function
c33330010
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--link summon
cm
.
counter
=
0x1556
--指 示 物
cm
.
rec1
=
1000
--特 召 回 血 量
cm
.
rec2
=
500
--指 示 物 回 血
function
cm
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
--Link Summon
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
2
,
2
)
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
2
,
2
)
--Destroy & Recover
c
:
EnableReviveLimit
()
--seq
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330010
,
1
))
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_RECOVER
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
c33330010
.
target
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetOperation
(
c33330010
.
activate
)
e1
:
SetTarget
(
cm
.
destg
)
e1
:
SetOperation
(
cm
.
desop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
Move
--
d r
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330010
,
0
))
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_RECOVER
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetTarget
(
cm
.
mvtg
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e2
:
SetOperation
(
cm
.
mvop
)
e2
:
SetCountLimit
(
1
,
33330010
)
e2
:
SetTarget
(
c33330010
.
destg
)
e2
:
SetOperation
(
c33330010
.
desop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--
Indes
--
rec X
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e3
:
SetDescription
(
aux
.
Stringid
(
33330010
,
2
))
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_RECOVER
)
e3
:
SetCode
(
EVENT_FREE_CHAIN
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_ADD_COUNTER
+
0x1019
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
Set
CountLimit
(
1
)
e3
:
Set
Property
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_PLAYER_TARGET
)
e3
:
Set
Cost
(
cm
.
indcost
)
e3
:
Set
Target
(
c33330010
.
rtg
)
e3
:
SetOperation
(
c
m
.
ind
op
)
e3
:
SetOperation
(
c
33330010
.
r
op
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
--Destroy & Recover
function
c33330010
.
rtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
Duel
.
SetTargetPlayer
(
tp
)
if
chk
==
0
then
return
tc
~=
nil
end
Duel
.
SetTargetParam
(
100
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
tp
,
LOCATION_FZONE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RECOVER
,
nil
,
0
,
tp
,
100
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RECOVER
,
nil
,
0
,
tp
,
cm
.
rec1
)
end
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330010
.
rop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
local
p
,
d
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
,
CHAININFO_TARGET_PARAM
)
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
then
Duel
.
Recover
(
p
,
d
,
REASON_EFFECT
)
Duel
.
Recover
(
tp
,
cm
.
rec1
,
REASON_EFFECT
)
end
end
end
--Move
function
c33330010
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
mvtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
end
end
function
c
m
.
mvop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330010
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
...
@@ -64,32 +56,16 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -64,32 +56,16 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local
nseq
=
math.log
(
s
,
2
)
local
nseq
=
math.log
(
s
,
2
)
Duel
.
MoveSequence
(
c
,
nseq
)
Duel
.
MoveSequence
(
c
,
nseq
)
end
end
--Indes
function
c33330010
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
indfilter
(
c
,
tp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
return
c
:
IsFaceup
()
and
c
:
IsCanRemoveCounter
(
tp
,
cm
.
counter
,
1
,
REASON_COST
)
if
chk
==
0
then
return
tc
end
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
tp
,
LOCATION_FZONE
)
function
cm
.
indcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RECOVER
,
nil
,
0
,
tp
,
500
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
indfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
indfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
1
,
nil
,
tp
)
local
tc
=
g
:
GetFirst
()
tc
:
RemoveCounter
(
tp
,
cm
.
counter
,
1
,
REASON_COST
)
Duel
.
SetTargetCard
(
tc
)
end
end
function
cm
.
indop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330010
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
Duel
.
Recover
(
tp
,
500
,
REASON_EFFECT
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
3
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_IMMUNE_EFFECT
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetValue
(
cm
.
efilter
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
end
end
end
end
function
cm
.
efilter
(
e
,
te
)
return
te
:
GetHandlerPlayer
()
~=
e
:
GetHandlerPlayer
()
end
\ No newline at end of file
expansions/script/c33330011.lua
View file @
8d6b81a5
--深界生物 毯毯鼠
--深界生物 毯毯鼠
local
m
=
33330011
function
c33330011
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--link summon
cm
.
counter
=
0x1556
--指 示 物
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
1
,
1
)
cm
.
count
=
1
--放 置 数 量
c
:
EnableReviveLimit
()
function
cm
.
initial_effect
(
c
)
--d r
c
:
EnableReviveLimit
()
c
:
EnableCounterPermit
(
cm
.
counter
)
--Link Summon
aux
.
AddLinkProcedure
(
c
,
cm
.
mfilter
,
1
,
1
)
--Destroy & Counter
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_COUNTER
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetCountLimit
(
1
,
m
+
900
)
e1
:
SetTarget
(
cm
.
destg
)
e1
:
SetOperation
(
cm
.
desop
)
c
:
RegisterEffect
(
e1
)
--Negate Attack
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330011
,
0
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_RECOVER
)
e2
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetCountLimit
(
1
,
m
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e2
:
SetCost
(
cm
.
atkcost
)
e2
:
SetTarget
(
c33330011
.
destg
)
e2
:
SetCondition
(
cm
.
atkcon
)
e2
:
SetOperation
(
c33330011
.
desop
)
e2
:
SetOperation
(
cm
.
atkop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--disable attack
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
33330011
,
0
))
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e2
:
SetCountLimit
(
1
,
33330011
)
e1
:
SetCost
(
c33330011
.
atkcost
)
e1
:
SetCondition
(
c33330011
.
atkcon
)
e1
:
SetOperation
(
c33330011
.
atkop
)
c
:
RegisterEffect
(
e1
)
end
function
c33330011
.
atkcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanRemoveCounter
(
tp
,
0x1019
,
1
,
REASON_COST
)
end
e
:
GetHandler
():
RemoveCounter
(
tp
,
0x1019
,
1
,
REASON_COST
)
end
end
--Link Summon
function
c33330011
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
mfilter
(
c
)
Duel
.
NegateAttack
()
return
not
c
:
IsCode
(
m
)
and
c
:
IsLinkSetCard
(
0x556
)
end
function
c33330011
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetTurnPlayer
()
~=
tp
end
end
--Destroy & Counter
function
c33330011
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
chk
==
0
then
return
tc
and
e
:
GetHandler
():
IsCanAddCounter
(
cm
.
counter
,
1
)
end
if
chk
==
0
then
return
tc
and
e
:
GetHandler
():
IsCanAddCounter
(
0x1019
,
1
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
tp
,
LOCATION_FZONE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
e
:
GetHandler
()
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
0
,
0
)
end
end
function
c
m
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330011
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
and
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
e
:
GetHandler
():
IsFaceup
()
then
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
and
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
e
:
GetHandler
():
IsFaceup
()
then
e
:
GetHandler
():
AddCounter
(
cm
.
counter
,
1
)
e
:
GetHandler
():
AddCounter
(
0x1019
,
1
)
end
end
end
end
--Negate Attack
function
cm
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
GetFirst
():
IsControler
(
1
-
tp
)
end
function
cm
.
atkcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanRemoveCounter
(
tp
,
cm
.
counter
,
1
,
REASON_COST
)
end
e
:
GetHandler
():
RemoveCounter
(
tp
,
cm
.
counter
,
1
,
REASON_COST
)
end
function
cm
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
NegateAttack
()
end
\ No newline at end of file
expansions/script/c33330012.lua
View file @
8d6b81a5
--生骸公主 ファプタ
--生骸公主 ファプタ
local
m
=
33330012
function
c33330012
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
function
cm
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
--link summon
--link summon
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
2
,
2
)
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
2
,
2
)
--Destroy & Draw
c
:
EnableReviveLimit
()
--seq
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330012
,
1
))
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_DRAW
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
c33330012
.
target
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetOperation
(
c33330012
.
activate
)
e1
:
SetTarget
(
cm
.
destg
)
e1
:
SetOperation
(
cm
.
desop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
Move
--
d r
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330012
,
0
))
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_DRAW
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetTarget
(
cm
.
mvtg
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e2
:
SetOperation
(
cm
.
mvop
)
e2
:
SetCountLimit
(
1
,
33330012
)
c
:
RegisterEffect
(
e2
)
e2
:
SetTarget
(
c33330012
.
destg
)
e2
:
SetOperation
(
c33330012
.
desop
)
c
:
RegisterEffect
(
e2
)
--Special Summon
--Special Summon
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e4
:
SetDescription
(
aux
.
Stringid
(
33330012
,
2
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e4
:
SetType
(
EFFECT_TYPE_TRIGGER_O
+
EFFECT_TYPE_SINGLE
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e4
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e4
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD
)
e4
:
SetCode
(
EVENT_LEAVE_FIELD
)
e3
:
SetTarget
(
cm
.
sptg
)
e4
:
SetCondition
(
c33330012
.
sumcon
)
e3
:
SetOperation
(
cm
.
spop
)
e4
:
SetTarget
(
c33330012
.
sumtg
)
c
:
RegisterEffect
(
e3
)
e4
:
SetOperation
(
c33330012
.
sumop
)
c
:
RegisterEffect
(
e4
)
end
end
--Destroy & Draw
function
c33330012
.
sumcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
chk
==
0
then
return
tc
and
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
end
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330012
.
filter
(
c
,
e
,
tp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsRankBelow
(
4
)
and
c
:
IsType
(
TYPE_XYZ
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
true
)
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
then
end
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
function
c33330012
.
sumtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c33330012
.
filter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetTargetCard
(
e
:
GetHandler
())
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
end
function
c33330012
.
sumop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
Duel
.
GetLocationCountFromEx
(
tp
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330012
.
filter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
tc
=
g
:
GetFirst
()
if
tc
and
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
and
c
:
IsRelateToEffect
(
e
)
then
Duel
.
Overlay
(
tc
,
Group
.
FromCards
(
c
))
end
end
end
end
--Move
function
c33330012
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
mvtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
end
end
function
c
m
.
mvop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330012
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
...
@@ -61,20 +68,16 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -61,20 +68,16 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local
nseq
=
math.log
(
s
,
2
)
local
nseq
=
math.log
(
s
,
2
)
Duel
.
MoveSequence
(
c
,
nseq
)
Duel
.
MoveSequence
(
c
,
nseq
)
end
end
--Special Summon
function
c33330012
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsRankBelow
(
4
)
and
c
:
IsType
(
TYPE_XYZ
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
if
chk
==
0
then
return
tc
and
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
end
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
tp
,
LOCATION_FZONE
)
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
if
chk
==
0
then
return
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
end
end
function
cm
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330012
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCountFromEx
(
tp
)
<
1
then
return
end
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
then
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
spfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
if
g
:
GetCount
()
>
0
and
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
and
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
Duel
.
Overlay
(
g
:
GetFirst
(),
e
:
GetHandler
())
end
end
end
end
\ No newline at end of file
expansions/script/c33330013.lua
View file @
8d6b81a5
--破晓之花 プルシュカ
--破晓之花 プルシュカ
local
m
=
33330013
function
c33330013
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--link summon
cm
.
atk
=
500
--攻 击 上 升
cm
.
search
=
{
33330034
}
--检 索 的 卡
function
cm
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
--Link Summon
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
2
,
2
)
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
2
,
2
)
--Destroy & Search
c
:
EnableReviveLimit
()
--seq
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330013
,
1
))
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
c33330013
.
target
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetOperation
(
c33330013
.
activate
)
e1
:
SetTarget
(
cm
.
destg
)
c
:
RegisterEffect
(
e1
)
e1
:
SetOperation
(
cm
.
desop
)
--d r
c
:
RegisterEffect
(
e1
)
--Move
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330013
,
0
))
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_SEARCH
+
CATEGORY_TOHAND
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetTarget
(
cm
.
mvtg
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e2
:
SetOperation
(
cm
.
mvop
)
e2
:
SetCountLimit
(
1
,
33330013
)
c
:
RegisterEffect
(
e2
)
e2
:
SetTarget
(
c33330013
.
destg
)
--Atk Up
e2
:
SetOperation
(
c33330013
.
desop
)
c
:
RegisterEffect
(
e2
)
--atk/def
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e3
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e3
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e3
:
SetTarget
(
c
m
.
atktg
)
e3
:
SetTarget
(
c
33330013
.
atktg
)
e3
:
SetValue
(
cm
.
atk
)
e3
:
SetValue
(
500
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
cm
.
card_code_list
=
cm
.
search
function
c33330013
.
atktg
(
e
,
c
)
--Destroy & Search
return
c
:
GetMutualLinkedGroupCount
()
>
0
and
c
:
IsSetCard
(
0x556
)
function
cm
.
thfilter
(
c
)
return
c
:
IsAbleToHand
()
and
c
:
IsCode
(
cm
.
search
[
1
])
end
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
chk
==
0
then
return
tc
and
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
tc
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
and
Duel
.
IsExistingMatchingCard
(
aux
.
NecroValleyFilter
(
cm
.
thfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
thfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
--Move
function
c33330013
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
mvtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
end
end
function
c
m
.
mvop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330013
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
...
@@ -70,7 +47,24 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -70,7 +47,24 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local
nseq
=
math.log
(
s
,
2
)
local
nseq
=
math.log
(
s
,
2
)
Duel
.
MoveSequence
(
c
,
nseq
)
Duel
.
MoveSequence
(
c
,
nseq
)
end
end
--Atk Up
function
c33330013
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
atktg
(
e
,
c
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
return
c
:
GetMutualLinkedGroupCount
()
>
0
and
c
:
IsSetCard
(
0x556
)
if
chk
==
0
then
return
tc
and
Duel
.
IsExistingMatchingCard
(
c33330013
.
thfilter
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
tp
,
LOCATION_FZONE
)
\ No newline at end of file
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
tc
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
function
c33330013
.
thfilter
(
c
)
return
c
:
IsAbleToHand
()
and
c
:
IsCode
(
33330034
)
end
function
c33330013
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
and
Duel
.
IsExistingMatchingCard
(
aux
.
NecroValleyFilter
(
c33330013
.
thfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330013
.
thfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
SendtoHand
(
tg
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
tg
)
end
end
expansions/script/c33330014.lua
View file @
8d6b81a5
--深界的至宝 雷古
--深界的至宝 雷古
local
m
=
33330014
function
c33330014
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--link summon
function
cm
.
initial_effect
(
c
)
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
1
)
c
:
EnableReviveLimit
()
c
:
EnableReviveLimit
()
--Link Summon
--seq
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
2
)
--Destroy & Search
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330014
,
1
))
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
c33330014
.
target
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetOperation
(
c33330014
.
activate
)
e1
:
SetTarget
(
cm
.
destg
)
c
:
RegisterEffect
(
e1
)
e1
:
SetOperation
(
cm
.
desop
)
--d r
c
:
RegisterEffect
(
e1
)
--Move
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330014
,
0
))
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_SEARCH
+
CATEGORY_TOHAND
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetTarget
(
cm
.
mvtg
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e2
:
SetOperation
(
cm
.
mvop
)
e2
:
SetCountLimit
(
1
,
33330014
)
c
:
RegisterEffect
(
e2
)
e2
:
SetTarget
(
c33330014
.
destg
)
--Special Summon
e2
:
SetOperation
(
c33330014
.
desop
)
c
:
RegisterEffect
(
e2
)
--special summon
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e3
:
SetDescription
(
aux
.
Stringid
(
33330014
,
2
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_IGNITION
)
e3
:
SetType
(
EFFECT_TYPE_IGNITION
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetCountLimit
(
1
)
e3
:
SetTarget
(
c
m
.
sptg
)
e3
:
SetTarget
(
c
33330014
.
sptg
)
e3
:
SetOperation
(
c
m
.
spop
)
e3
:
SetOperation
(
c
33330014
.
spop
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
--Destroy & Search
function
c33330014
.
filter
(
c
,
e
,
tp
,
zone
)
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
chk
==
0
then
return
tc
or
Duel
.
IsExistingMatchingCard
(
Card
.
IsType
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
end
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
0
,
LOCATION_ONFIELD
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
if
tc
then
g
:
AddCard
(
tc
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
g
:
GetCount
(),
0
,
LOCATION_ONFIELD
)
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
0
,
LOCATION_ONFIELD
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
if
tc
then
g
:
AddCard
(
tc
)
end
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
end
--Move
function
cm
.
mvtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
end
function
cm
.
mvop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
local
s
=
Duel
.
SelectDisableField
(
tp
,
1
,
LOCATION_MZONE
,
0
,
0
)
local
nseq
=
math.log
(
s
,
2
)
Duel
.
MoveSequence
(
c
,
nseq
)
end
--Special Summon
function
cm
.
spfilter
(
c
,
e
,
tp
,
zone
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP
,
tp
,
zone
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP
,
tp
,
zone
)
end
end
function
c
m
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c
33330014
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
if
chk
==
0
then
local
zone
=
e
:
GetHandler
():
GetLinkedZone
(
tp
)
local
zone
=
e
:
GetHandler
():
GetLinkedZone
(
tp
)
return
zone
~=
0
and
Duel
.
IsExistingMatchingCard
(
c
m
.
sp
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
,
zone
)
return
zone
~=
0
and
Duel
.
IsExistingMatchingCard
(
c
33330014
.
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
,
zone
)
end
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
end
function
c
m
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330014
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
zone
=
e
:
GetHandler
():
GetLinkedZone
(
tp
)
local
zone
=
e
:
GetHandler
():
GetLinkedZone
(
tp
)
if
zone
==
0
then
return
end
if
zone
==
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c
m
.
sp
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
e
,
tp
,
zone
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c
33330014
.
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
e
,
tp
,
zone
)
if
g
:
GetCount
()
>
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
,
zone
)
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
,
zone
)
end
end
end
function
c33330014
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
end
function
c33330014
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
local
s
=
Duel
.
SelectDisableField
(
tp
,
1
,
LOCATION_MZONE
,
0
,
0
)
local
nseq
=
math.log
(
s
,
2
)
Duel
.
MoveSequence
(
c
,
nseq
)
end
function
c33330014
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
chk
==
0
then
return
tc
and
Duel
.
IsExistingMatchingCard
(
Card
.
IsType
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
end
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
0
,
LOCATION_ONFIELD
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
g
:
AddCard
(
tc
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
g
:
GetCount
(),
0
,
LOCATION_ONFIELD
)
end
function
c33330014
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
0
,
LOCATION_ONFIELD
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
if
tc
then
g
:
AddCard
(
tc
)
end
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
end
end
\ No newline at end of file
expansions/script/c33330015.lua
View file @
8d6b81a5
--深界的黑暗面 雷古
--深界的黑暗面 雷古
local
m
=
33330015
function
c33330015
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
atk
=
1500
--攻 击 上 升
function
cm
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
c
:
EnableReviveLimit
()
--
Special Summon Limit
--
spsummon condition
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e1
:
SetValue
(
aux
.
ritlimit
)
e1
:
SetValue
(
aux
.
ritlimit
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
Destroy & Remove
--
r d
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330015
,
0
))
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_REMOVE
)
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_REMOVE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetProperty
(
EFFECT_FLAG_D
ELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e2
:
SetProperty
(
EFFECT_FLAG_D
AMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e2
:
SetTarget
(
c
m
.
destg
)
e2
:
SetTarget
(
c
33330015
.
destg
)
e2
:
SetOperation
(
c
m
.
desop
)
e2
:
SetOperation
(
c
33330015
.
desop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--
Reflect
--
reflect battle dam
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_REFLECT_BATTLE_DAMAGE
)
e3
:
SetCode
(
EFFECT_REFLECT_BATTLE_DAMAGE
)
e3
:
SetValue
(
1
)
e3
:
SetValue
(
1
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
--Atk Up
--atk up
local
e4
=
Effect
.
CreateEffect
(
c
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e6
:
SetCategory
(
CATEGORY_ATKCHANGE
)
e4
:
SetCategory
(
CATEGORY_ATKCHANGE
)
e6
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e4
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e6
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetCode
(
EVENT_PRE_DAMAGE_CALCULATE
)
e6
:
SetCode
(
EVENT_PRE_DAMAGE_CALCULATE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e6
:
SetCondition
(
c33330015
.
atkcon
)
e4
:
SetCondition
(
cm
.
atkcon
)
e6
:
SetTarget
(
c33330015
.
atktg
)
e4
:
SetTarget
(
cm
.
atktg
)
e6
:
SetOperation
(
c33330015
.
atkop
)
e4
:
SetOperation
(
cm
.
atkop
)
c
:
RegisterEffect
(
e6
)
c
:
RegisterEffect
(
e4
)
end
end
--Destroy & Remove
function
c33330015
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
return
c
==
Duel
.
GetAttacker
()
or
c
==
Duel
.
GetAttackTarget
()
end
function
c33330015
.
atktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
local
ct
=
Duel
.
GetMatchingGroupCount
(
Card
.
IsType
,
tp
,
LOCATION_GRAVE
,
0
,
nil
,
TYPE_FIELD
)
return
ct
>
0
and
c
:
GetFlagEffect
(
33330015
)
==
0
end
c
:
RegisterFlagEffect
(
33330015
,
RESET_CHAIN
,
0
,
1
)
end
function
c33330015
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
ct
=
Duel
.
GetMatchingGroupCount
(
Card
.
IsType
,
tp
,
LOCATION_GRAVE
,
0
,
nil
,
TYPE_FIELD
)
if
c
:
IsRelateToEffect
(
e
)
and
c
:
IsFaceup
()
and
ct
>
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetReset
(
RESET_EVENT
+
RESET_CHAIN
)
e1
:
SetValue
(
ct
*
1500
)
c
:
RegisterEffect
(
e1
)
end
end
function
c33330015
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
chk
==
0
then
return
tc
and
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
if
chk
==
0
then
return
tc
and
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
tp
,
LOCATION_FZONE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
g
:
GetCount
(),
1
-
tp
,
LOCATION_MZONE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
g
:
GetCount
(),
1
-
tp
,
LOCATION_MZONE
)
end
end
function
c
m
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330015
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
then
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
then
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
if
g
:
GetCount
()
<
1
then
return
end
if
g
:
GetCount
()
<=
0
then
return
end
if
Duel
.
Remove
(
g
,
0
,
REASON_EFFECT
+
REASON_TEMPORARY
)
~=
0
then
if
Duel
.
Remove
(
g
,
0
,
REASON_EFFECT
+
REASON_TEMPORARY
)
~=
0
then
local
fid
=
c
:
GetFieldID
()
local
fid
=
c
:
GetFieldID
()
local
rct
=
1
local
rct
=
1
local
og
=
Duel
.
GetOperatedGroup
()
local
og
=
Duel
.
GetOperatedGroup
()
local
oc
=
og
:
GetFirst
()
local
oc
=
og
:
GetFirst
()
while
oc
do
while
oc
do
oc
:
RegisterFlagEffect
(
m
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
,
0
,
1
,
fid
)
oc
:
RegisterFlagEffect
(
33330015
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
1
,
fid
)
oc
=
og
:
GetNext
()
oc
=
og
:
GetNext
()
end
end
og
:
KeepAlive
()
og
:
KeepAlive
()
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e1
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e1
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e1
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCountLimit
(
1
)
e1
:
SetLabel
(
fid
)
e1
:
SetLabel
(
fid
)
e1
:
SetLabelObject
(
og
)
e1
:
SetLabelObject
(
og
)
e1
:
SetCondition
(
cm
.
retcon
)
e1
:
SetCondition
(
c33330015
.
retcon
)
e1
:
SetOperation
(
cm
.
retop
)
e1
:
SetOperation
(
c33330015
.
retop
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e1
:
SetValue
(
Duel
.
GetTurnCount
())
e1
:
SetValue
(
Duel
.
GetTurnCount
())
Duel
.
RegisterEffect
(
e1
,
tp
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
end
end
end
end
function
c
m
.
retfilter
(
c
,
fid
)
function
c
33330015
.
retfilter
(
c
,
fid
)
return
c
:
GetFlagEffectLabel
(
m
)
==
fid
return
c
:
GetFlagEffectLabel
(
33330015
)
==
fid
end
end
function
c
m
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330015
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetTurnCount
()
==
e
:
GetValue
()
then
return
false
end
if
Duel
.
GetTurnCount
()
==
e
:
GetValue
()
then
return
false
end
local
g
=
e
:
GetLabelObject
()
local
g
=
e
:
GetLabelObject
()
if
not
g
:
IsExists
(
c
m
.
retfilter
,
1
,
nil
,
e
:
GetLabel
())
then
if
not
g
:
IsExists
(
c
33330015
.
retfilter
,
1
,
nil
,
e
:
GetLabel
())
then
g
:
DeleteGroup
()
g
:
DeleteGroup
()
e
:
Reset
()
e
:
Reset
()
return
false
return
false
else
return
true
end
else
return
true
end
end
end
function
c
m
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330015
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
e
:
GetLabelObject
()
local
g
=
e
:
GetLabelObject
()
local
sg
=
g
:
Filter
(
c
m
.
retfilter
,
nil
,
e
:
GetLabel
())
local
sg
=
g
:
Filter
(
c
33330015
.
retfilter
,
nil
,
e
:
GetLabel
())
g
:
DeleteGroup
()
g
:
DeleteGroup
()
local
ct
,
rg
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
,
tg
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
),
Group
.
CreateGroup
(
)
if
sg
:
GetCount
()
>
ct
and
ct
>
0
then
if
sg
:
GetCount
()
>
ct
and
ct
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
rg
=
sg
:
Select
(
tp
,
ct
,
ct
,
nil
)
tg
=
sg
:
Select
(
tp
,
ct1
,
ct1
,
nil
)
else
rg
=
sg
end
end
local
tc
=
rg
:
GetFirst
()
sg
:
Sub
(
tg
)
local
tc
=
tg
:
GetFirst
()
while
tc
do
while
tc
do
Duel
.
ReturnToField
(
tc
)
Duel
.
ReturnToField
(
tc
)
tc
=
r
g
:
GetNext
()
tc
=
t
g
:
GetNext
()
end
end
sg
:
Sub
(
rg
)
tc
=
sg
:
GetFirst
()
tc
=
sg
:
GetFirst
()
while
tc
do
while
tc
do
Duel
.
ReturnToField
(
tc
)
Duel
.
ReturnToField
(
tc
)
tc
=
sg
:
GetNext
()
tc
=
sg
:
GetNext
()
end
end
end
end
--Atk Up
function
cm
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
==
Duel
.
GetAttacker
()
or
c
==
Duel
.
GetAttackTarget
()
end
function
cm
.
atktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
local
ct
=
Duel
.
GetMatchingGroupCount
(
Card
.
IsType
,
tp
,
LOCATION_GRAVE
,
0
,
nil
,
TYPE_FIELD
)
return
ct
>
0
and
c
:
GetFlagEffect
(
m
)
==
0
end
c
:
RegisterFlagEffect
(
m
,
RESET_CHAIN
,
0
,
1
)
end
function
cm
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
ct
=
Duel
.
GetMatchingGroupCount
(
Card
.
IsType
,
tp
,
LOCATION_GRAVE
,
0
,
nil
,
TYPE_FIELD
)
if
c
:
IsRelateToEffect
(
e
)
and
c
:
IsFaceup
()
and
ct
>
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetValue
(
ct
*
cm
.
atk
)
e1
:
SetReset
(
RESET_EVENT
+
RESET_CHAIN
)
c
:
RegisterEffect
(
e1
)
end
end
expansions/script/c33330016.lua
View file @
8d6b81a5
--白笛 歼灭之莱莎
--白笛 歼灭之莱莎
local
m
=
33330016
function
c33330016
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--link summon
cm
.
atk
=
500
--攻 击 上 升
function
cm
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
--Link Summon
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
2
)
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkSetCard
,
0x556
),
2
)
--Destroy & Search
c
:
EnableReviveLimit
()
--seq
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330016
,
1
))
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
c33330016
.
target
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetOperation
(
c33330016
.
activate
)
e1
:
SetTarget
(
cm
.
destg
)
c
:
RegisterEffect
(
e1
)
e1
:
SetOperation
(
cm
.
desop
)
--d r
c
:
RegisterEffect
(
e1
)
--Move
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330016
,
0
))
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_SEARCH
+
CATEGORY_TOHAND
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetTarget
(
cm
.
mvtg
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e2
:
SetOperation
(
cm
.
mvop
)
e2
:
SetCountLimit
(
1
,
33330016
)
e2
:
SetTarget
(
c33330016
.
destg
)
e2
:
SetOperation
(
c33330016
.
desop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--
Atk Up
--
atk
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e3
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e3
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e3
:
SetTarget
(
c
m
.
buff
tg
)
e3
:
SetTarget
(
c
33330016
.
ind
tg
)
e3
:
SetValue
(
cm
.
atk
)
e3
:
SetValue
(
500
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
--Indes
local
e4
=
Effect
.
CreateEffect
(
c
)
local
e4
=
e3
:
Clone
(
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e4
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e4
:
SetProperty
(
EFFECT_FLAG_SET_AVAILABLE
)
e4
:
SetProperty
(
EFFECT_FLAG_SET_AVAILABLE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e4
:
SetTarget
(
c33330016
.
indtg
)
e4
:
SetValue
(
1
)
e4
:
SetValue
(
1
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e4
)
end
end
--Destroy & Search
function
c33330016
.
indtg
(
e
,
c
)
function
cm
.
thfilter
(
c
)
return
e
:
GetHandler
():
GetLinkedGroup
():
IsContains
(
c
)
return
c
:
IsAbleToHand
()
and
c
:
IsCode
(
cm
.
search
[
1
])
end
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
chk
==
0
then
return
tc
and
Duel
.
IsExistingMatchingCard
(
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
nil
,
1
,
1
-
tp
,
LOCATION_ONFIELD
)
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
and
Duel
.
IsExistingMatchingCard
(
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
)
then
Duel
.
BreakEffect
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
1
,
nil
)
Duel
.
HintSelection
(
g
)
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
end
end
end
--Move
function
c33330016
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
mvtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_CONTROL
)
>
0
end
end
end
function
c
m
.
mvop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330016
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
if
not
c
:
IsRelateToEffect
(
e
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOZONE
)
...
@@ -74,7 +56,20 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -74,7 +56,20 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
local
nseq
=
math.log
(
s
,
2
)
local
nseq
=
math.log
(
s
,
2
)
Duel
.
MoveSequence
(
c
,
nseq
)
Duel
.
MoveSequence
(
c
,
nseq
)
end
end
--Atk Up
function
c33330016
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
bufftg
(
e
,
c
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
return
e
:
GetHandler
():
GetLinkedGroup
():
IsContains
(
c
)
if
chk
==
0
then
return
tc
and
Duel
.
IsExistingMatchingCard
(
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
)
end
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
2
,
0
,
LOCATION_ONFIELD
)
\ No newline at end of file
end
function
c33330013
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
tc
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
and
Duel
.
IsExistingMatchingCard
(
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
1
,
nil
)
Duel
.
HintSelection
(
tg
)
Duel
.
Destroy
(
tg
,
REASON_EFFECT
)
end
end
expansions/script/c33330017.lua
View file @
8d6b81a5
--白笛 不动如山之奥森
--白笛 不动如山之奥森
local
m
=
33330017
function
c33330017
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--xyz summon
cm
.
mat
=
{
33330004
}
--素 材 要 求
aux
.
AddXyzProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsSetCard
,
0x556
),
4
,
3
)
cm
.
counter
=
0x1556
--指 示 物
function
cm
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
c
:
EnableReviveLimit
()
--Xyz Summon
--
aux
.
AddXyzProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsSetCard
,
0x556
),
4
,
2
)
local
e4
=
Effect
.
CreateEffect
(
c
)
--Remove
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e4
:
SetValue
(
c33330017
.
indesval
)
e4
:
SetCondition
(
c33330017
.
con
)
c
:
RegisterEffect
(
e4
)
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
E
VENT_DAMAGE_STEP_END
)
e1
:
SetCode
(
E
FFECT_EXTRA_ATTACK
)
e1
:
SetCondition
(
c
m
.
rm
con
)
e1
:
SetCondition
(
c
33330017
.
con
)
e1
:
Set
Operation
(
cm
.
rmop
)
e1
:
Set
Value
(
c33330017
.
atkval
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
Destroy Replac
e
--
to grav
e
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetDescription
(
aux
.
Stringid
(
13893596
,
0
))
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetCategory
(
CATEGORY_ATKCHANGE
+
CATEGORY_COUNTER
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e2
:
SetCountLimit
(
2
)
e2
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e2
:
SetTarget
(
cm
.
reptg
)
e2
:
SetTarget
(
c33330017
.
ctg
)
e2
:
SetOperation
(
cm
.
repop
)
e2
:
SetOperation
(
c33330017
.
cop
)
e2
:
SetValue
(
cm
.
repval
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--des
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e5
:
SetCode
(
EVENT_DAMAGE_STEP_END
)
e5
:
SetOperation
(
c33330017
.
desop
)
c
:
RegisterEffect
(
e5
)
end
end
cm
.
card_code_list
=
cm
.
mat
function
c33330017
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--Remove
if
e
:
GetHandler
():
GetCounter
(
0x1009
)
>=
3
then
function
cm
.
rmcon
(
e
)
Duel
.
Hint
(
HINT_CARD
,
0
,
33330017
)
return
e
:
GetHandler
():
GetOverlayGroup
():
IsExists
(
Card
.
IsCode
,
1
,
nil
,
cm
.
mat
[
1
])
and
aux
.
bdocon
(
e
)
Duel
.
Destroy
(
e
:
GetHandler
(),
REASON_EFFECT
)
end
end
end
function
cm
.
rmop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330017
.
ctg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetAttacker
()
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanAddCounter
(
0x1019
,
1
)
end
if
tc
==
e
:
GetHandler
()
then
tc
=
Duel
.
GetAttackTarget
()
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
0
,
0
)
if
tc
then
Duel
.
Remove
(
tc
,
POS_FACEUP
,
REASON_RULE
)
end
end
end
--Destroy Replace
function
c33330017
.
cop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
repfilter
(
c
,
tp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
and
c
:
IsControler
(
tp
)
if
c
and
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
and
c
:
IsCanAddCounter
(
0x1009
,
1
)
then
and
c
:
IsReason
(
REASON_EFFECT
+
REASON_BATTLE
)
and
not
c
:
IsReason
(
REASON_REPLACE
)
c
:
AddCounter
(
0x1019
,
1
)
local
g
=
Duel
.
GetMatchingGroup
(
c33330017
.
adfilter
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
if
g
:
GetCount
()
>
0
then
for
tc
in
aux
.
Next
(
g
)
do
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetValue
(
-
300
)
tc
:
RegisterEffect
(
e1
)
end
end
end
end
end
function
cm
.
reptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330017
.
adfilter
(
c
)
if
chk
==
0
then
return
eg
:
IsExists
(
cm
.
repfilter
,
1
,
nil
,
tp
)
and
Duel
.
IsCanRemoveCounter
(
tp
,
1
,
0
,
cm
.
counter
,
1
,
REASON_COST
)
end
return
c
:
IsFaceup
()
and
c
:
IsSummonType
(
SUMMON_TYPE_SPECIAL
)
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
end
function
c
m
.
repop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330017
.
atkval
(
e
)
Duel
.
RemoveCounter
(
tp
,
1
,
0
,
cm
.
counter
,
1
,
REASON_COST
)
return
e
:
GetHandler
():
GetOverlayCount
()
-
1
end
end
function
cm
.
repval
(
e
,
c
)
function
c33330017
.
indesval
(
e
,
re
,
rp
)
return
cm
.
repfilter
(
c
,
e
:
GetHandlerPlayer
())
return
re
:
GetHandler
()
~=
e
:
GetHandler
()
end
function
c33330017
.
con
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetOverlayGroup
():
IsExists
(
Card
.
IsCode
,
1
,
nil
,
33330004
)
end
end
\ No newline at end of file
expansions/script/c33330018.lua
View file @
8d6b81a5
--白笛 崭新之波多尔多
--白笛 崭新之波多尔多
local
m
=
33330018
function
c33330018
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--xyz summon
cm
.
token
=
{
33330035
}
--衍 生 物
cm
.
counter
=
0x1556
--指 示 物
function
cm
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
--Xyz Summon
aux
.
AddXyzProcedure
(
c
,
nil
,
8
,
2
)
aux
.
AddXyzProcedure
(
c
,
nil
,
8
,
2
)
--Activate Limit
c
:
EnableReviveLimit
()
local
e1
=
Effect
.
CreateEffect
(
c
)
--direct
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTargetRange
(
0
,
1
)
e1
:
SetCondition
(
cm
.
actcon
)
e1
:
SetValue
(
cm
.
aclimit
)
c
:
RegisterEffect
(
e1
)
--Token
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330018
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_TOKEN
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_DAMAGE_STEP_END
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
aux
.
bdcon
)
e2
:
SetCondition
(
c33330018
.
condition
)
e2
:
SetCost
(
cm
.
tkcost
)
e2
:
SetCost
(
c33330018
.
cost
)
e2
:
SetTarget
(
cm
.
tktg
)
e2
:
SetOperation
(
c33330018
.
operation
)
e2
:
SetOperation
(
cm
.
tkop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--actlimit
--Direct Attack
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetType
(
EFFECT_TYPE_IGNITION
)
e3
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
+
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCondition
(
cm
.
drcon
)
e3
:
SetTargetRange
(
0
,
1
)
e3
:
SetCost
(
cm
.
drcost
)
e3
:
SetValue
(
c33330018
.
aclimit
)
e3
:
SetOperation
(
cm
.
drop
)
e3
:
SetCondition
(
c33330018
.
actcon
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
--token
--Activate Limit
local
e5
=
Effect
.
CreateEffect
(
c
)
function
cm
.
actcon
(
e
)
e5
:
SetDescription
(
aux
.
Stringid
(
33330018
,
1
))
return
Duel
.
GetAttacker
()
==
e
:
GetHandler
()
e5
:
SetCategory
(
CATEGORY_TOKEN
+
CATEGORY_SPECIAL_SUMMON
)
end
e5
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
function
cm
.
aclimit
(
e
,
re
,
tp
)
e5
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
return
not
re
:
GetHandler
():
IsImmuneToEffect
(
e
)
e5
:
SetCode
(
EVENT_DAMAGE_STEP_END
)
end
e5
:
SetCost
(
c33330018
.
rcost
)
--Token
e5
:
SetCondition
(
c33330018
.
actcon
)
function
cm
.
tkfilter
(
c
,
tp
)
e5
:
SetTarget
(
c33330018
.
tktg
)
return
Duel
.
GetMZoneCount
(
tp
,
c
)
>
0
e5
:
SetOperation
(
c33330018
.
tkop
)
end
c
:
RegisterEffect
(
e5
)
function
cm
.
tkcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
--search
if
chk
==
0
then
return
Duel
.
CheckReleaseGroup
(
tp
,
cm
.
tkfilter
,
1
,
nil
,
tp
)
end
local
e1
=
Effect
.
CreateEffect
(
c
)
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
cm
.
tkfilter
,
1
,
1
,
nil
,
tp
)
e1
:
SetDescription
(
aux
.
Stringid
(
33330018
,
2
))
Duel
.
Release
(
g
,
REASON_COST
)
e1
:
SetCategory
(
CATEGORY_RECOVER
)
end
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
function
cm
.
tktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
e1
:
SetCode
(
EVENT_TO_GRAVE
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
cm
.
token
[
1
],
0
,
0x4011
,
2000
,
2000
,
8
,
RACE_ZOMBIE
,
ATTRIBUTE_DARK
)
end
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_PLAYER_TARGET
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOKEN
,
nil
,
1
,
0
,
0
)
e1
:
SetCost
(
c33330018
.
recost
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
0
)
e1
:
SetTarget
(
c33330018
.
retg
)
end
e1
:
SetOperation
(
c33330018
.
reop
)
function
cm
.
tkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
c
:
RegisterEffect
(
e1
)
if
Duel
.
GetMZoneCount
(
tp
)
<
1
then
return
end
if
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
cm
.
token
[
1
],
0
,
0x4011
,
2000
,
2000
,
8
,
RACE_ZOMBIE
,
ATTRIBUTE_DARK
)
then
local
token
=
Duel
.
CreateToken
(
tp
,
cm
.
token
[
1
])
Duel
.
SpecialSummon
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetProperty
(
EFFECT_FLAG_CLIENT_HINT
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCost
(
cm
.
descost
)
e1
:
SetTarget
(
cm
.
destg
)
e1
:
SetOperation
(
cm
.
desop
)
token
:
RegisterEffect
(
e1
)
end
end
end
function
cm
.
descost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330018
.
recost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsCanRemoveCounter
(
tp
,
1
,
0
,
cm
.
counter
,
1
,
REASON_COST
)
end
if
chk
==
0
then
return
Duel
.
IsCanRemoveCounter
(
tp
,
1
,
0
,
0x1019
,
1
,
REASON_COST
)
end
Duel
.
RemoveCounter
(
tp
,
1
,
0
,
cm
.
counter
,
1
,
REASON_COST
)
local
ct
=
Duel
.
GetCounter
(
tp
,
1
,
0
,
0x1019
)
Duel
.
RemoveCounter
(
tp
,
1
,
0
,
0x1019
,
ct
,
REASON_COST
)
e
:
SetLabel
(
ct
)
end
end
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330018
.
retg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsDestructable
()
end
local
ct
=
e
:
GetLabel
()
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
e
:
GetHandler
(),
1
,
0
,
0
)
if
chk
==
0
then
return
true
end
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetTargetParam
(
ct
*
300
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RECOVER
,
nil
,
0
,
tp
,
ct
*
300
)
end
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330018
.
reop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
local
p
,
d
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
,
CHAININFO_TARGET_PARAM
)
Duel
.
Destroy
(
e
:
GetHandler
(),
REASON_EFFECT
)
Duel
.
Recover
(
p
,
d
,
REASON_EFFECT
)
end
end
end
--Direct Attack
function
c33330018
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
drcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsAbleToEnterBP
()
and
not
e
:
GetHandler
():
IsHasEffect
(
EFFECT_DIRECT_ATTACK
)
return
Duel
.
IsAbleToEnterBP
()
and
not
e
:
GetHandler
():
IsHasEffect
(
EFFECT_DIRECT_ATTACK
)
end
end
function
c
m
.
dr
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c
33330018
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
CheckRemoveOverlayCard
(
tp
,
1
,
REASON_COST
)
end
if
chk
==
0
then
return
e
:
GetHandler
():
CheckRemoveOverlayCard
(
tp
,
1
,
REASON_COST
)
end
e
:
GetHandler
():
RemoveOverlayCard
(
tp
,
1
,
1
,
REASON_COST
)
e
:
GetHandler
():
RemoveOverlayCard
(
tp
,
1
,
1
,
REASON_COST
)
end
end
function
c
m
.
drop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330018
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_DIRECT_ATTACK
)
e1
:
SetCode
(
EFFECT_DIRECT_ATTACK
)
e1
:
SetValue
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_DISABLE
+
RESET_PHASE
+
PHASE_END
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
end
end
end
end
\ No newline at end of file
function
c33330018
.
costfilter
(
c
,
ft
,
tp
)
return
(
ft
>
0
or
(
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
))
end
function
c33330018
.
rcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
chk
==
0
then
return
ft
>-
1
and
Duel
.
CheckReleaseGroup
(
tp
,
c33330018
.
costfilter
,
1
,
nil
,
ft
,
tp
)
end
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
c33330018
.
costfilter
,
1
,
1
,
nil
,
ft
,
tp
)
Duel
.
Release
(
g
,
REASON_COST
)
end
function
c33330018
.
tktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
33330035
,
0
,
0x4011
,
2000
,
2000
,
8
,
RACE_ZOMBIE
,
ATTRIBUTE_DARK
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOKEN
,
nil
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
0
)
end
function
c33330018
.
tkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
33330035
,
0
,
0x4011
,
2000
,
2000
,
8
,
RACE_ZOMBIE
,
ATTRIBUTE_DARK
)
then
local
token
=
Duel
.
CreateToken
(
tp
,
33330035
)
Duel
.
SpecialSummon
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
end
function
c33330018
.
aclimit
(
e
,
re
,
tp
)
return
not
re
:
GetHandler
():
IsImmuneToEffect
(
e
)
end
function
c33330018
.
actcon
(
e
)
return
Duel
.
GetAttacker
()
==
e
:
GetHandler
()
end
expansions/script/c33330019.lua
View file @
8d6b81a5
--深界一层-阿比斯之渊
--深界一层-阿比斯之渊
local
m
=
33330019
function
c33330019
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
search
=
{
33330002
,
33330038
,
33330020
}
--检 索 对 象
cm
.
counter
=
0x1556
--指 示 物
cm
.
damage
=
100
--伤 害 倍 数
function
cm
.
initial_effect
(
c
)
c
:
EnableCounterPermit
(
cm
.
counter
)
--Activate
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetOperation
(
cm
.
activate
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--Search
--indestructable
local
e21
=
Effect
.
CreateEffect
(
c
)
e21
:
SetType
(
EFFECT_TYPE_FIELD
)
e21
:
SetCode
(
EFFECT_INDESTRUCTABLE_BATTLE
)
e21
:
SetRange
(
LOCATION_SZONE
)
e21
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e21
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x556
))
e21
:
SetValue
(
1
)
c
:
RegisterEffect
(
e21
)
--Pos Change
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCategory
(
CATEGORY_HANDES
+
CATEGORY_COUNTER
+
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e2
:
SetCode
(
EFFECT_SET_POSITION
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e2
:
SetCountLimit
(
1
)
e2
:
SetProperty
(
EFFECT_FLAG_SET_AVAILABLE
+
EFFECT_FLAG_IGNORE_RANGE
)
e2
:
SetTarget
(
cm
.
thtg
)
e2
:
SetValue
(
POS_FACEUP_ATTACK
)
e2
:
SetOperation
(
cm
.
thop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--damage reduce
--Change Field
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetOperation
(
cm
.
ctop
)
c
:
RegisterEffect
(
e3
)
local
e4
=
Effect
.
CreateEffect
(
c
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e4
:
SetCode
(
EFFECT_CHANGE_DAMAGE
)
e4
:
SetCode
(
EVENT_LEAVE_FIELD
)
e4
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e4
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e4
:
SetRange
(
LOCATION_SZONE
)
e4
:
SetLabelObject
(
e3
)
e4
:
SetTargetRange
(
1
,
0
)
e4
:
SetCondition
(
cm
.
fdcon
)
e4
:
SetValue
(
c33330019
.
damval
)
e4
:
SetTarget
(
cm
.
fdtg
)
e4
:
SetOperation
(
cm
.
fdop
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e4
)
local
e6
=
e4
:
Clone
()
e6
:
SetCode
(
EFFECT_AVOID_BATTLE_DAMAGE
)
c
:
RegisterEffect
(
e6
)
--search
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
e5
:
SetDescription
(
aux
.
Stringid
(
33330019
,
0
))
e5
:
SetType
(
EFFECT_TYPE_IGNITION
)
e5
:
SetRange
(
LOCATION_SZONE
)
e5
:
SetCountLimit
(
1
)
e5
:
SetCost
(
c33330019
.
cost
)
e5
:
SetTarget
(
c33330019
.
tg
)
e5
:
SetOperation
(
c33330019
.
op
)
c
:
RegisterEffect
(
e5
)
--xxxx
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
33330019
,
1
))
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e3
:
SetCode
(
EVENT_DESTROY
)
e3
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e3
:
SetCondition
(
c33330019
.
con2
)
e3
:
SetTarget
(
c33330019
.
tg2
)
e3
:
SetOperation
(
c33330019
.
op2
)
c
:
RegisterEffect
(
e3
)
--count
local
e7
=
Effect
.
CreateEffect
(
c
)
e7
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e7
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e7
:
SetOperation
(
c33330019
.
contop
)
c
:
RegisterEffect
(
e7
)
e3
:
SetLabelObject
(
e7
)
end
end
cm
.
card_code_list
=
cm
.
search
function
c33330019
.
contop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--Activate
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
0x1019
))
function
cm
.
filter
(
c
)
return
c
:
IsSetCard
(
0x3556
)
and
c
:
IsAbleToHand
()
end
end
function
c
m
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c
33330019
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
local
c
=
e
:
GetHandler
()
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
return
c
:
IsReason
(
REASON_EFFECT
)
end
end
function
cm
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330019
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
if
chk
==
0
then
return
true
end
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
tp
,
ct
*
1000
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
function
c33330019
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330019
.
filter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
Damage
(
tp
,
ct
*
1000
,
REASON_EFFECT
)
end
end
end
end
--Search
function
c33330019
.
filter
(
c
)
function
cm
.
thfilter
(
c
)
return
c
:
IsCode
(
33330019
)
and
c
:
IsAbleToHand
()
return
c
:
IsCode
(
cm
.
search
[
1
])
and
c
:
IsAbleToHand
()
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330019
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsDiscardable
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanRemoveCounter
(
tp
,
0x1019
,
3
,
REASON_COST
)
end
and
e
:
GetHandler
():
IsCanAddCounter
(
cm
.
counter
,
1
)
e
:
GetHandler
():
RemoveCounter
(
tp
,
0x1019
,
3
,
REASON_COST
)
and
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_HANDES
,
nil
,
0
,
tp
,
1
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
e
:
GetHandler
(),
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330019
.
filter2
(
c
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
return
IsCode
(
33330020
)
and
c
:
IsAbleToHand
()
if
Duel
.
DiscardHand
(
tp
,
Card
.
IsDiscardable
,
1
,
1
,
REASON_EFFECT
+
REASON_DISCARD
)
~=
0
and
e
:
GetHandler
():
AddCounter
(
cm
.
counter
,
1
)
then
local
tc
=
Duel
.
GetFirstMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
if
tc
then
Duel
.
BreakEffect
()
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
tc
)
end
end
end
--Change Field
function
cm
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
cm
.
counter
))
end
function
cm
.
fdfilter1
(
c
)
return
c
:
IsCode
(
cm
.
search
[
2
])
and
c
:
IsAbleToHand
()
end
end
function
cm
.
fdfilter2
(
c
,
tp
)
function
c33330019
.
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
return
c
:
IsCode
(
cm
.
search
[
3
])
and
c
:
GetActivateEffect
():
IsActivatable
(
tp
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330019
.
filter2
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
tp
,
500
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
end
function
cm
.
fdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330019
.
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
or
Duel
.
Damage
(
tp
,
500
,
REASON_EFFECT
)
<=
0
then
return
end
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
function
cm
.
fdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330019
.
filter2
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
chk
==
0
then
return
true
end
if
g
:
GetCount
()
>
0
then
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
local
sel
=
0
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
if
Duel
.
IsExistingMatchingCard
(
cm
.
fdfilter2
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
tp
)
then
sel
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
),
aux
.
Stringid
(
m
,
3
))
+
1
else
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
))
sel
=
1
e
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
1
,
tp
,
ct
*
cm
.
damage
)
end
end
e
:
SetLabel
(
sel
)
end
end
function
cm
.
fdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330019
.
damval
(
e
,
re
,
val
,
r
,
rp
,
rc
)
local
sel
=
e
:
GetLabel
()
if
bit
.
band
(
r
,
REASON_BATTLE
)
~=
0
then
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
e
:
GetHandler
():
AddCounter
(
0x1019
,
1
)
e
:
GetLabelObject
():
SetLabel
(
0
)
return
0
if
sel
==
1
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter1
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
Duel
.
Damage
(
tp
,
ct
*
cm
.
damage
,
REASON_EFFECT
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter2
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
tp
)
local
tc
=
g
:
GetFirst
()
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_FZONE
,
POS_FACEUP
,
true
)
local
te
=
tc
:
GetActivateEffect
()
local
tep
=
tc
:
GetControler
()
local
cost
=
te
:
GetCost
()
if
cost
then
cost
(
te
,
tep
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
tc
:
AddCounter
(
cm
.
counter
,
ct
)
end
end
return
val
end
end
\ No newline at end of file
expansions/script/c33330020.lua
View file @
8d6b81a5
--深界二层-诱惑之森
--深界二层-诱惑之森
local
m
=
33330020
function
c33330020
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
search
=
{
33330004
,
33330038
,
33330021
}
--检 索 对 象
cm
.
counter
=
0x1556
--指 示 物
cm
.
damage
=
200
--伤 害 倍 数
function
cm
.
initial_effect
(
c
)
c
:
EnableCounterPermit
(
cm
.
counter
)
--Activate
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetDescription
(
aux
.
Stringid
(
33330020
,
0
))
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e0
)
--search
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetDescription
(
aux
.
Stringid
(
33330020
,
1
))
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
c
:
RegisterEffect
(
e1
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
--Search
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCost
(
c33330020
.
tcost
)
e1
:
SetTarget
(
c33330020
.
ttg
)
e1
:
SetOperation
(
c33330020
.
top
)
c
:
RegisterEffect
(
e1
)
--search
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_COUNTER
)
e5
:
SetDescription
(
aux
.
Stringid
(
33330020
,
3
))
e5
:
SetType
(
EFFECT_TYPE_IGNITION
)
e5
:
SetRange
(
LOCATION_FZONE
)
e5
:
SetCountLimit
(
1
)
e5
:
SetTarget
(
c33330020
.
tg
)
e5
:
SetOperation
(
c33330020
.
op
)
c
:
RegisterEffect
(
e5
)
--xxxx
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
33330020
,
4
))
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD
)
e3
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e3
:
SetCondition
(
c33330020
.
con2
)
e3
:
SetTarget
(
c33330020
.
tg2
)
e3
:
SetOperation
(
c33330020
.
op2
)
c
:
RegisterEffect
(
e3
)
--count
local
e7
=
Effect
.
CreateEffect
(
c
)
e7
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e7
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e7
:
SetOperation
(
c33330020
.
contop
)
c
:
RegisterEffect
(
e7
)
e3
:
SetLabelObject
(
e7
)
--atk change
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330020
,
2
))
e2
:
SetCategory
(
CATEGORY_COUNTER
+
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e2
:
SetCategory
(
CATEGORY_COUNTER
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetCo
untLimit
(
1
)
e2
:
SetCo
ndition
(
c33330020
.
atkcon
)
e2
:
SetTarget
(
c
m
.
thtg
)
e2
:
SetTarget
(
c
33330020
.
atktg2
)
e2
:
SetOperation
(
c
m
.
th
op
)
e2
:
SetOperation
(
c
33330020
.
atk
op
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--Change Field
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetOperation
(
cm
.
ctop
)
c
:
RegisterEffect
(
e3
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e4
:
SetCode
(
EVENT_LEAVE_FIELD
)
e4
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e4
:
SetLabelObject
(
e3
)
e4
:
SetCondition
(
cm
.
fdcon
)
e4
:
SetTarget
(
cm
.
fdtg
)
e4
:
SetOperation
(
cm
.
fdop
)
c
:
RegisterEffect
(
e4
)
end
end
cm
.
card_code_list
=
cm
.
search
function
c33330020
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--Search
return
tp
==
Duel
.
GetTurnPlayer
()
and
Duel
.
GetAttacker
():
IsSetCard
(
0x556
)
function
cm
.
thfilter
(
c
)
end
return
c
:
IsCode
(
cm
.
search
[
1
])
and
c
:
IsAbleToHand
()
function
c33330020
.
atktg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanRemoveCounter
(
tp
,
0x1019
,
1
,
REASON_EFFECT
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
0
,
tp
,
1
)
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330020
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanAddCounter
(
cm
.
counter
,
1
)
if
not
c
:
IsRelateToEffect
(
e
)
or
c
:
IsFacedown
()
or
not
e
:
GetHandler
():
IsCanRemoveCounter
(
tp
,
0x1019
,
1
,
REASON_EFFECT
)
then
return
end
and
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
e
:
GetHandler
():
RemoveCounter
(
tp
,
0x1019
,
1
,
REASON_EFFECT
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c33330020
.
contop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
0x1019
))
end
function
c33330020
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsReason
(
REASON_EFFECT
)
and
c
:
IsPreviousPosition
(
POS_FACEUP
)
end
function
c33330020
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
true
end
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
tp
,
ct
*
500
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
end
function
c
m
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330020
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
if
e
:
GetHandler
():
AddCounter
(
cm
.
counter
,
1
)
then
if
Duel
.
Damage
(
tp
,
ct
*
500
,
REASON_EFFECT
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
thfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330019
.
filter3
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
end
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
--Change Field
function
c33330020
.
filter3
(
c
)
function
cm
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
c
:
IsCode
(
33330021
)
and
c
:
IsAbleToHand
()
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
cm
.
counter
))
end
function
cm
.
fdfilter1
(
c
)
return
c
:
IsCode
(
cm
.
search
[
2
])
and
c
:
IsAbleToHand
()
end
end
function
c
m
.
fdfilter2
(
c
,
tp
)
function
c
33330020
.
filter2
(
c
)
return
c
:
IsCode
(
cm
.
search
[
3
])
and
c
:
GetActivateEffect
():
IsActivatable
(
tp
)
return
c
:
IsCode
(
33330004
)
and
c
:
IsAbleToHand
(
)
end
end
function
cm
.
fdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330020
.
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanAddCounter
(
0x1019
,
1
)
and
Duel
.
IsExistingMatchingCard
(
c33330020
.
filter2
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
tp
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
)
end
end
function
cm
.
fdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330020
.
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
true
end
local
c
=
e
:
GetHandler
()
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
if
not
c
:
IsRelateToEffect
(
e
)
or
c
:
IsFacedown
()
then
return
end
local
sel
=
0
c
:
AddCounter
(
0x1019
,
1
)
if
Duel
.
IsExistingMatchingCard
(
cm
.
fdfilter2
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
tp
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
sel
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
),
aux
.
Stringid
(
m
,
3
))
+
1
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330020
.
filter2
),
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
else
if
g
:
GetCount
()
>
0
then
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
))
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
sel
=
1
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
e
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
1
,
tp
,
ct
*
cm
.
damage
)
end
end
e
:
SetLabel
(
sel
)
end
end
function
cm
.
fdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330020
.
tcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
sel
=
e
:
GetLabel
()
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
)
e
:
GetLabelObject
():
SetLabel
(
0
)
end
if
sel
==
1
then
function
c33330020
.
filter
(
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
return
c
:
IsCode
(
33330019
)
and
c
:
IsAbleToHand
()
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter1
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
end
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
function
c33330020
.
ttg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330020
.
filter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
nil
)
end
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
)
Duel
.
Damage
(
tp
,
ct
*
cm
.
damage
,
REASON_EFFECT
)
end
else
function
c33330020
.
top
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter2
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
tp
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330020
.
filter
),
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
local
tc
=
g
:
GetFirst
()
if
g
:
GetCount
()
>
0
then
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_FZONE
,
POS_FACEUP
,
true
)
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
local
te
=
tc
:
GetActivateEffect
()
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
local
tep
=
tc
:
GetControler
()
local
cost
=
te
:
GetCost
()
if
cost
then
cost
(
te
,
tep
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
tc
:
AddCounter
(
cm
.
counter
,
ct
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330021.lua
View file @
8d6b81a5
--深界三层-大断层
--深界三层-大断层
local
m
=
33330021
function
c33330021
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
search
=
{
33330006
,
33330038
,
33330022
}
--检 索 对 象
cm
.
counter
=
0x1556
--指 示 物
cm
.
damage
=
300
--伤 害 倍 数
function
cm
.
initial_effect
(
c
)
c
:
EnableCounterPermit
(
cm
.
counter
)
--Activate
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetDescription
(
aux
.
Stringid
(
33330021
,
0
))
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e0
)
--search
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetDescription
(
aux
.
Stringid
(
33330021
,
1
))
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
c
:
RegisterEffect
(
e1
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
--Search
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCost
(
c33330021
.
tcost
)
e1
:
SetTarget
(
c33330021
.
ttg
)
e1
:
SetOperation
(
c33330021
.
top
)
c
:
RegisterEffect
(
e1
)
--cannot be target
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCategory
(
CATEGORY_COUNTER
+
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e2
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetCountLimit
(
1
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e2
:
SetTarget
(
cm
.
thtg
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x556
))
e2
:
SetOperation
(
cm
.
thop
)
e2
:
SetValue
(
c33330021
.
indesval
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--Change Field
--s c
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetOperation
(
cm
.
ctop
)
c
:
RegisterEffect
(
e3
)
local
e4
=
Effect
.
CreateEffect
(
c
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e4
:
SetDescription
(
aux
.
Stringid
(
33330021
,
2
))
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e4
:
SetCategory
(
CATEGORY_SEARCH
+
CATEGORY_TOHAND
+
CATEGORY_COUNTER
)
e4
:
SetCode
(
EVENT_LEAVE_FIELD
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetCountLimit
(
1
,
33330021
)
e4
:
SetRange
(
LOCATION_FZONE
)
e4
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e4
:
SetCountLimit
(
1
)
e4
:
SetLabelObject
(
e3
)
e4
:
SetTarget
(
c33330021
.
stg
)
e4
:
SetCondition
(
cm
.
fdcon
)
e4
:
SetOperation
(
c33330021
.
sop
)
e4
:
SetTarget
(
cm
.
fdtg
)
e4
:
SetOperation
(
cm
.
fdop
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e4
)
--xxxx
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
33330021
,
3
))
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD
)
e3
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e3
:
SetCondition
(
c33330021
.
con2
)
e3
:
SetTarget
(
c33330021
.
tg2
)
e3
:
SetOperation
(
c33330021
.
op2
)
c
:
RegisterEffect
(
e3
)
--count
local
e7
=
Effect
.
CreateEffect
(
c
)
e7
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e7
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e7
:
SetOperation
(
c33330021
.
contop
)
c
:
RegisterEffect
(
e7
)
e3
:
SetLabelObject
(
e7
)
end
end
cm
.
card_code_list
=
cm
.
search
function
c33330021
.
contop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--Search
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
0x1019
))
function
cm
.
thfilter
(
c
)
return
c
:
IsCode
(
cm
.
search
[
1
])
and
c
:
IsAbleToHand
()
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330021
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanAddCounter
(
cm
.
counter
,
1
)
local
c
=
e
:
GetHandler
()
and
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
return
c
:
IsPreviousPosition
(
POS_FACEUP
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
e
:
GetHandler
(),
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330021
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
if
chk
==
0
then
return
true
end
if
e
:
GetHandler
():
AddCounter
(
cm
.
counter
,
1
)
then
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
local
tc
=
Duel
.
GetFirstMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
tp
,
ct
*
500
)
if
tc
and
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
~=
0
then
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
ConfirmCards
(
1
-
tp
,
tc
)
end
end
end
end
--Change Field
function
c33330021
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
cm
.
counter
))
if
Duel
.
Damage
(
tp
,
ct
*
500
,
REASON_EFFECT
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330021
.
filter3
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
function
c
m
.
fdfilter1
(
c
)
function
c
33330021
.
filter3
(
c
)
return
c
:
IsCode
(
cm
.
search
[
2
]
)
and
c
:
IsAbleToHand
()
return
c
:
IsCode
(
33330022
)
and
c
:
IsAbleToHand
()
end
end
function
c
m
.
fdfilter2
(
c
,
tp
)
function
c
33330021
.
sfilter
(
c
)
return
c
:
Is
Code
(
cm
.
search
[
3
])
and
c
:
GetActivateEffect
():
IsActivatable
(
tp
)
return
c
:
Is
AbleToHand
()
and
c
:
IsCode
(
33330006
)
end
end
function
cm
.
fdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330021
.
stg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanAddCounter
(
0x1019
,
1
)
and
Duel
.
IsExistingMatchingCard
(
c33330021
.
sfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
tp
,
0
)
end
end
function
cm
.
fdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330021
.
sop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
true
end
local
c
=
e
:
GetHandler
()
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
if
not
c
:
IsRelateToEffect
(
e
)
or
c
:
IsFacedown
()
then
return
end
local
sel
=
0
c
:
AddCounter
(
0x1019
,
1
)
if
Duel
.
IsExistingMatchingCard
(
cm
.
fdfilter2
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
tp
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
sel
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
),
aux
.
Stringid
(
m
,
3
))
+
1
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330021
.
sfilter
),
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
else
if
g
:
GetCount
()
>
0
then
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
))
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
sel
=
1
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
e
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
1
,
tp
,
ct
*
cm
.
damage
)
end
end
e
:
SetLabel
(
sel
)
end
end
function
cm
.
fdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330021
.
indesval
(
e
,
re
,
rp
)
local
sel
=
e
:
GetLabel
()
return
re
:
IsActiveType
(
TYPE_MONSTER
)
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
end
e
:
GetLabelObject
():
SetLabel
(
0
)
function
c33330021
.
tcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
sel
==
1
then
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter1
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
end
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
function
c33330021
.
filter
(
c
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
return
c
:
IsCode
(
33330019
)
and
c
:
IsAbleToHand
()
end
end
Duel
.
Damage
(
tp
,
ct
*
cm
.
damage
,
REASON_EFFECT
)
function
c33330021
.
ttg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
else
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330021
.
filter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter2
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
tp
)
end
local
tc
=
g
:
GetFirst
()
function
c33330021
.
top
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_FZONE
,
POS_FACEUP
,
true
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
te
=
tc
:
GetActivateEffect
()
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330021
.
filter
),
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
local
tep
=
tc
:
GetControler
()
if
g
:
GetCount
()
>
0
then
local
cost
=
te
:
GetCost
()
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
if
cost
then
cost
(
te
,
tep
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
tc
:
AddCounter
(
cm
.
counter
,
ct
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330022.lua
View file @
8d6b81a5
--深界三层-大断层
--深界三层-大断层
local
m
=
33330022
function
c33330022
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
search
=
{
33330038
,
33330023
}
--检 索 对 象
cm
.
counter
=
0x1556
--指 示 物
cm
.
damage
=
500
--伤 害 倍 数
function
cm
.
initial_effect
(
c
)
c
:
EnableCounterPermit
(
cm
.
counter
)
--Activate
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetDescription
(
aux
.
Stringid
(
33330022
,
0
))
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e0
)
--search
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetDescription
(
aux
.
Stringid
(
33330022
,
1
))
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
c
:
RegisterEffect
(
e1
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
--Special Summon
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCost
(
c33330022
.
tcost
)
e1
:
SetTarget
(
c33330022
.
ttg
)
e1
:
SetOperation
(
c33330022
.
top
)
c
:
RegisterEffect
(
e1
)
--cannot be target
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_COUNTER
)
e2
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetCountLimit
(
2
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e2
:
SetTarget
(
cm
.
sptg
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x556
))
e2
:
SetOperation
(
cm
.
spop
)
e2
:
SetValue
(
c33330022
.
indesval
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--Change Field
--s c
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
33330022
,
2
))
e4
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_COUNTER
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetRange
(
LOCATION_FZONE
)
e4
:
SetCountLimit
(
2
)
e4
:
SetTarget
(
c33330022
.
stg
)
e4
:
SetOperation
(
c33330022
.
sop
)
c
:
RegisterEffect
(
e4
)
--xxxx
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetDescription
(
aux
.
Stringid
(
33330022
,
3
))
e3
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e3
:
SetOperation
(
cm
.
ctop
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD
)
e3
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e3
:
SetCondition
(
c33330022
.
con2
)
e3
:
SetTarget
(
c33330022
.
tg2
)
e3
:
SetOperation
(
c33330022
.
op2
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
local
e4
=
Effect
.
CreateEffect
(
c
)
--count
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
local
e7
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e7
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetCode
(
EVENT_LEAVE_FIELD
)
e7
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e4
:
SetCountLimit
(
1
,
m
)
e7
:
SetOperation
(
c33330022
.
contop
)
e4
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
c
:
RegisterEffect
(
e7
)
e4
:
SetLabelObject
(
e3
)
e3
:
SetLabelObject
(
e7
)
e4
:
SetCondition
(
cm
.
fdcon
)
end
e4
:
SetTarget
(
cm
.
fdtg
)
function
c33330022
.
contop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
e4
:
SetOperation
(
cm
.
fdop
)
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
0x1019
))
c
:
RegisterEffect
(
e4
)
end
function
c33330022
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsPreviousPosition
(
POS_FACEUP
)
end
end
cm
.
card_code_list
=
cm
.
search
function
c33330022
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
--Special Summon
if
chk
==
0
then
return
true
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
local
ct
=
e
:
GetLabelObject
():
GetLabel
(
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsType
(
TYPE_MONSTER
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
tp
,
ct
*
500
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330022
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
Duel
.
GetMZoneCount
(
tp
)
>
0
and
e
:
GetHandler
():
IsCanAddCounter
(
cm
.
counter
,
1
)
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
end
if
Duel
.
Damage
(
tp
,
ct
*
500
,
REASON_EFFECT
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330022
.
filter3
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
function
c33330022
.
filter3
(
c
)
return
c
:
IsCode
(
33330023
)
and
c
:
IsAbleToHand
()
end
function
c33330022
.
sfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c33330022
.
stg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanAddCounter
(
0x1019
,
1
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c33330022
.
sfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
e
:
GetHandler
(),
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
tp
,
0
)
end
end
function
cm
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330022
.
sop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetMZoneCount
(
tp
)
<
1
then
return
end
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
or
c
:
IsFacedown
()
then
return
end
c
:
AddCounter
(
0x1019
,
1
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c
m
.
sp
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c
33330022
.
s
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
and
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
then
if
g
:
GetCount
()
>
0
and
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
then
e
:
GetHandler
():
AddCounter
(
cm
.
counter
,
1
)
g
:
GetFirst
():
AddCounter
(
0x1019
,
1
)
g
:
GetFirst
():
AddCounter
(
cm
.
counter
,
1
)
end
end
end
end
--Change Field
function
c33330022
.
indesval
(
e
,
re
,
rp
)
function
cm
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
re
:
IsActiveType
(
TYPE_SPELL
+
TYPE_TRAP
)
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
cm
.
counter
))
end
end
function
cm
.
fdfilter1
(
c
)
function
c33330022
.
tcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
c
:
IsCode
(
cm
.
search
[
1
])
and
c
:
IsAbleToHand
()
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
)
end
end
function
c
m
.
fdfilter2
(
c
,
tp
)
function
c
33330022
.
filter
(
c
)
return
c
:
IsCode
(
cm
.
search
[
2
])
and
c
:
GetActivateEffect
():
IsActivatable
(
tp
)
return
c
:
IsCode
(
33330019
)
and
c
:
IsAbleToHand
(
)
end
end
function
cm
.
fdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330022
.
ttg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330022
.
filter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
)
end
end
function
cm
.
fdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330022
.
top
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
true
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330022
.
filter
),
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
local
sel
=
0
if
g
:
GetCount
()
>
0
then
if
Duel
.
IsExistingMatchingCard
(
cm
.
fdfilter2
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
tp
)
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
sel
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
),
aux
.
Stringid
(
m
,
3
))
+
1
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
else
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
))
sel
=
1
e
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
1
,
tp
,
ct
*
cm
.
damage
)
end
end
e
:
SetLabel
(
sel
)
end
end
function
cm
.
fdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
sel
=
e
:
GetLabel
()
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
e
:
GetLabelObject
():
SetLabel
(
0
)
if
sel
==
1
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter1
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
Duel
.
Damage
(
tp
,
ct
*
cm
.
damage
,
REASON_EFFECT
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter2
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
tp
)
local
tc
=
g
:
GetFirst
()
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_FZONE
,
POS_FACEUP
,
true
)
local
te
=
tc
:
GetActivateEffect
()
local
tep
=
tc
:
GetControler
()
local
cost
=
te
:
GetCost
()
if
cost
then
cost
(
te
,
tep
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
tc
:
AddCounter
(
cm
.
counter
,
ct
)
end
end
\ No newline at end of file
expansions/script/c33330023.lua
View file @
8d6b81a5
--深界三层-大断层
--深界三层-大断层
local
m
=
33330023
function
c33330023
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
search
=
{
33330038
,
33330000
}
--检 索 对 象
cm
.
counter
=
0x1556
--指 示 物
cm
.
damage
=
1250
--伤 害 倍 数
function
cm
.
initial_effect
(
c
)
c
:
EnableCounterPermit
(
cm
.
counter
)
--Activate
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetDescription
(
aux
.
Stringid
(
33330023
,
0
))
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e0
)
--search
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetDescription
(
aux
.
Stringid
(
33330023
,
1
))
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
c
:
RegisterEffect
(
e1
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
--Special Summon
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCost
(
c33330023
.
tcost
)
e1
:
SetTarget
(
c33330023
.
ttg
)
e1
:
SetOperation
(
c33330023
.
top
)
c
:
RegisterEffect
(
e1
)
--cannot be target
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCategory
(
CATEGORY_COUNTER
+
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_DAMAGE
)
e2
:
SetCode
(
EFFECT_CANNOT_REMOVE
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetCountLimit
(
1
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e2
:
SetTarget
(
cm
.
sptg
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x556
))
e2
:
SetOperation
(
cm
.
spop
)
e2
:
SetValue
(
1
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--Change Field
--s c
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
33330023
,
2
))
e4
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_COUNTER
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetRange
(
LOCATION_FZONE
)
e4
:
SetCountLimit
(
1
)
e4
:
SetTarget
(
c33330023
.
stg
)
e4
:
SetOperation
(
c33330023
.
sop
)
c
:
RegisterEffect
(
e4
)
--xxxx
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetDescription
(
aux
.
Stringid
(
33330023
,
3
))
e3
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e3
:
SetOperation
(
cm
.
ctop
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD
)
e3
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e3
:
SetCondition
(
c33330023
.
con2
)
e3
:
SetTarget
(
c33330023
.
tg2
)
e3
:
SetOperation
(
c33330023
.
op2
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
local
e4
=
Effect
.
CreateEffect
(
c
)
--count
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
local
e7
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e7
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetCode
(
EVENT_LEAVE_FIELD
)
e7
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e4
:
SetCountLimit
(
1
,
m
)
e7
:
SetOperation
(
c33330023
.
contop
)
e4
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
c
:
RegisterEffect
(
e7
)
e4
:
SetLabelObject
(
e3
)
e3
:
SetLabelObject
(
e7
)
e4
:
SetCondition
(
cm
.
fdcon
)
e4
:
SetTarget
(
cm
.
fdtg
)
e4
:
SetOperation
(
cm
.
fdop
)
c
:
RegisterEffect
(
e4
)
end
end
cm
.
card_code_list
=
cm
.
search
function
c33330023
.
contop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--Special Summon
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
0x1019
))
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330023
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
and
e
:
GetHandler
():
IsCanAddCounter
(
cm
.
counter
,
1
)
local
c
=
e
:
GetHandler
()
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
)
end
return
c
:
IsPreviousPosition
(
POS_FACEUP
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
e
:
GetHandler
(),
1
,
0
,
0
)
function
c33330023
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
tp
,
0
)
if
chk
==
0
then
return
true
end
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
tp
,
ct
*
2000
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
end
function
cm
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330023
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
and
e
:
GetHandler
():
AddCounter
(
cm
.
counter
,
1
)
then
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
if
Duel
.
Damage
(
tp
,
ct
*
2000
,
REASON_EFFECT
)
<=
0
then
return
end
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
spfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
if
g
:
GetCount
()
>
0
and
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
then
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330023
.
filter3
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
Damage
(
tp
,
g
:
GetFirst
():
GetBaseAttack
(),
REASON_EFFECT
)
if
g
:
GetCount
()
>
0
then
end
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetTarget
(
cm
.
splimit
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
function
cm
.
splimit
(
e
,
c
)
function
c33330023
.
filter3
(
c
)
return
not
c
:
IsSetCard
(
0x556
)
return
c
:
IsCode
(
33330024
)
and
c
:
IsAbleToHand
()
end
function
c33330023
.
sfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
end
--Change Field
function
c33330023
.
stg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanAddCounter
(
0x1019
,
1
)
and
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
cm
.
counter
))
and
Duel
.
IsExistingMatchingCard
(
c33330023
.
sfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
tp
,
0
)
end
end
function
cm
.
fdfilter1
(
c
)
function
c33330023
.
sop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
c
:
IsCode
(
cm
.
search
[
1
])
and
c
:
IsAbleToHand
()
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
or
c
:
IsFacedown
()
then
return
end
c
:
AddCounter
(
0x1019
,
1
)
if
Duel
.
GetLocationCountFromEx
(
tp
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330023
.
sfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
and
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
then
g
:
GetFirst
():
AddCounter
(
0x1019
,
1
)
end
end
end
function
c
m
.
fdfilter2
(
c
,
t
p
)
function
c
33330023
.
indesval
(
e
,
re
,
r
p
)
return
c
:
IsCode
(
cm
.
search
[
2
])
and
c
:
GetActivateEffect
():
IsActivatable
(
tp
)
return
re
:
IsActiveType
(
TYPE_SPELL
+
TYPE_TRAP
)
end
end
function
cm
.
fdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330023
.
tcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
)
end
end
function
cm
.
fdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330023
.
filter
(
c
)
if
chk
==
0
then
return
true
end
return
c
:
IsCode
(
33330019
)
and
c
:
IsAbleToHand
()
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
local
sel
=
0
if
Duel
.
IsExistingMatchingCard
(
cm
.
fdfilter2
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
tp
)
then
sel
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
),
aux
.
Stringid
(
m
,
3
))
+
1
else
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
))
sel
=
1
e
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
1
,
tp
,
ct
*
cm
.
damage
)
end
e
:
SetLabel
(
sel
)
end
end
function
cm
.
fdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330023
.
ttg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
sel
=
e
:
GetLabel
()
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330023
.
filter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
nil
)
end
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
)
e
:
GetLabelObject
():
SetLabel
(
0
)
end
if
sel
==
1
then
function
c33330023
.
top
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter1
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330023
.
filter
),
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
end
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
Damage
(
tp
,
ct
*
cm
.
damage
,
REASON_EFFECT
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
fdfilter2
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
tp
)
local
tc
=
g
:
GetFirst
()
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_FZONE
,
POS_FACEUP
,
true
)
local
te
=
tc
:
GetActivateEffect
()
local
tep
=
tc
:
GetControler
()
local
cost
=
te
:
GetCost
()
if
cost
then
cost
(
te
,
tep
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
tc
:
AddCounter
(
cm
.
counter
,
ct
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330024.lua
View file @
8d6b81a5
--深界三层-大断层
--深界三层-大断层
local
m
=
33330024
function
c33330024
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
search
=
{
33330038
,
33330025
}
--检 索 对 象
cm
.
counter
=
0x1556
--指 示 物
cm
.
atk
=
500
--攻 击 上 升
cm
.
damage
=
1000
--伤 害 倍 数
function
cm
.
initial_effect
(
c
)
c
:
EnableCounterPermit
(
cm
.
counter
)
--Activate
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetDescription
(
aux
.
Stringid
(
33330024
,
0
))
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e0
)
--search
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330024
,
1
))
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
c
:
RegisterEffect
(
e1
)
e1
:
SetRange
(
LOCATION_HAND
)
--Search
e1
:
SetCost
(
c33330024
.
tcost
)
e1
:
SetTarget
(
c33330024
.
ttg
)
e1
:
SetOperation
(
c33330024
.
top
)
c
:
RegisterEffect
(
e1
)
--Atk
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e2
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e2
:
SetCost
(
cm
.
thcost
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x556
))
e2
:
SetTarget
(
cm
.
thtg
)
e2
:
SetValue
(
500
)
e2
:
SetOperation
(
cm
.
thop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--Atk Up
--s c
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e3
:
SetRange
(
LOCATION_FZONE
)
e3
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e3
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x556
))
e3
:
SetValue
(
cm
.
atk
)
c
:
RegisterEffect
(
e3
)
--Draw
local
e4
=
Effect
.
CreateEffect
(
c
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e4
:
SetDescription
(
aux
.
Stringid
(
33330024
,
2
))
e4
:
SetCategory
(
CATEGORY_TOGRAVE
+
CATEGORY_COUNTER
+
CATEGORY_DRAW
)
e4
:
SetCategory
(
CATEGORY_TOGRAVE
+
CATEGORY_COUNTER
+
CATEGORY_DRAW
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetRange
(
LOCATION_FZONE
)
e4
:
SetRange
(
LOCATION_FZONE
)
e4
:
SetCountLimit
(
1
)
e4
:
SetCountLimit
(
1
)
e4
:
SetTarget
(
c
m
.
dr
tg
)
e4
:
SetTarget
(
c
33330024
.
s
tg
)
e4
:
SetOperation
(
c
m
.
dr
op
)
e4
:
SetOperation
(
c
33330024
.
s
op
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e4
)
--
Count
--
xxxx
local
e
5
=
Effect
.
CreateEffect
(
c
)
local
e
3
=
Effect
.
CreateEffect
(
c
)
e
5
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e
3
:
SetDescription
(
aux
.
Stringid
(
33330024
,
3
)
)
e
5
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e
3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
e
5
:
SetOperation
(
cm
.
ctop
)
e
3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
c
:
RegisterEffect
(
e5
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD
)
--To Hand
e3
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e3
:
SetCondition
(
c33330024
.
con2
)
e
6
:
SetDescription
(
aux
.
Stringid
(
m
,
3
)
)
e
3
:
SetTarget
(
c33330024
.
tg2
)
e
6
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
+
CATEGORY_DAMAGE
)
e
3
:
SetOperation
(
c33330024
.
op2
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
c
:
RegisterEffect
(
e3
)
e6
:
SetCode
(
EVENT_LEAVE_FIELD
)
--count
e6
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
local
e7
=
Effect
.
CreateEffect
(
c
)
e
6
:
SetLabelObject
(
e5
)
e
7
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e
6
:
SetCondition
(
cm
.
sccon
)
e
7
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e
6
:
SetTarget
(
cm
.
sctg
)
e
7
:
SetOperation
(
c33330024
.
contop
)
e6
:
SetOperation
(
cm
.
scop
)
c
:
RegisterEffect
(
e7
)
c
:
RegisterEffect
(
e6
)
e3
:
SetLabelObject
(
e7
)
end
end
cm
.
card_code_list
=
cm
.
search
function
c33330024
.
contop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
--Search
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
0x1019
))
function
cm
.
thfilter
(
c
)
return
c
:
IsCode
(
cm
.
search
[
1
])
and
c
:
IsAbleToHand
()
end
end
function
c
m
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c
33330024
.
con2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
local
c
=
e
:
GetHandler
()
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
)
return
c
:
IsPreviousPosition
(
POS_FACEUP
)
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330024
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
if
chk
==
0
then
return
true
end
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
tp
,
ct
*
1000
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330024
.
op2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
if
Duel
.
Damage
(
tp
,
ct
*
1000
,
REASON_EFFECT
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
thfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330024
.
filter3
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
--Draw
function
c33330024
.
filter3
(
c
)
function
cm
.
drfilter
(
c
)
return
c
:
IsCode
(
33330025
)
and
c
:
IsAbleToHand
()
end
function
c33330024
.
sfilter
(
c
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsAbleToGrave
()
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsAbleToGrave
()
end
end
function
cm
.
drtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330024
.
stg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanAddCounter
(
cm
.
counter
,
1
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanAddCounter
(
0x1019
,
1
)
and
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
and
Duel
.
IsExistingMatchingCard
(
c33330024
.
sfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
)
end
and
Duel
.
IsExistingMatchingCard
(
cm
.
drfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
)
and
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
tp
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
tp
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
end
end
function
c
m
.
dr
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330024
.
s
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
or
c
:
IsFacedown
()
or
not
c
:
AddCounter
(
cm
.
counter
,
1
)
then
return
end
if
not
c
:
IsRelateToEffect
(
e
)
or
c
:
IsFacedown
()
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
c
:
AddCounter
(
0x1019
,
1
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
drfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
~=
0
then
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330024
.
sfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
)
Duel
.
BreakEffect
()
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
then
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
end
end
end
end
--Count
function
c33330024
.
indesval
(
e
,
re
,
rp
)
function
cm
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
re
:
IsActiveType
(
TYPE_SPELL
+
TYPE_TRAP
)
e
:
SetLabel
(
e
:
GetHandler
():
GetCounter
(
cm
.
counter
))
end
end
--To Hand
function
c33330024
.
tcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
scfilter
(
c
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
return
c
:
IsCode
(
cm
.
search
[
2
])
and
c
:
IsAbleToHand
(
)
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
)
end
end
function
c
m
.
sccon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330024
.
filter
(
c
)
return
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
return
c
:
IsCode
(
33330036
)
and
c
:
IsAbleToHand
(
)
end
end
function
cm
.
sctg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
function
c33330024
.
ttg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330024
.
filter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
nil
)
end
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
tp
,
ct
*
cm
.
damage
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
end
function
cm
.
scop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330024
.
top
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ct
=
e
:
GetLabelObject
():
GetLabel
()
if
Duel
.
Damage
(
tp
,
ct
*
cm
.
damage
,
REASON_EFFECT
)
==
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
scfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330024
.
filter
),
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
ConfirmCards
(
tp
,
g
)
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330025.lua
View file @
8d6b81a5
--绝界行
--绝界行
local
m
=
33330025
function
c33330025
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
function
cm
.
initial_effect
(
c
)
--Activate
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
Extra S
ummon
--
extra s
ummon
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_EXTRA_SUMMON_COUNT
)
e2
:
SetCode
(
EFFECT_EXTRA_SUMMON_COUNT
)
e2
:
SetRange
(
LOCATION_
S
ZONE
)
e2
:
SetRange
(
LOCATION_
F
ZONE
)
e2
:
SetTargetRange
(
LOCATION_HAND
+
LOCATION_MZONE
,
0
)
e2
:
SetTargetRange
(
LOCATION_HAND
+
LOCATION_MZONE
,
0
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x556
))
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x556
))
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--Send Deck Top
--lock draw
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e7
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e7
:
SetDescription
(
aux
.
Stringid
(
33330025
,
0
))
e3
:
SetCategory
(
CATEGORY_TODECK
)
e7
:
SetCategory
(
CATEGORY_TODECK
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e7
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e7
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetCondition
(
cm
.
tdcon
)
e7
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetTarget
(
cm
.
tdtg
)
e7
:
SetCondition
(
c33330025
.
drcon
)
e3
:
SetOperation
(
cm
.
tdop
)
e7
:
SetTarget
(
c33330025
.
drtg
)
c
:
RegisterEffect
(
e3
)
e7
:
SetOperation
(
c33330025
.
drop
)
c
:
RegisterEffect
(
e7
)
end
end
--Send Deck Top
function
c33330025
.
drcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
tdfilter
(
c
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsType
(
TYPE_FIELD
)
and
c
:
IsAbleToDeck
()
end
function
cm
.
tdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
end
end
function
cm
.
tdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330025
.
tdfilter
(
c
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
return
c
:
IsType
(
TYPE_FIELD
)
and
c
:
IsSetCard
(
0x556
)
and
c
:
IsAbleToDeck
()
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
g
,
g
:
GetCount
(),
0
,
0
)
function
c33330025
.
drtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330025
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
local
g
=
Duel
.
GetMatchingGroup
(
c33330025
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
g
,
g
:
GetCount
(),
tp
,
LOCATION_GRAVE
)
end
end
function
cm
.
tdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330025
.
drop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c33330025
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoDeck
(
g
,
1
-
tp
,
0
,
REASON_EFFECT
)
~=
0
then
if
g
:
GetCount
()
<=
0
then
return
end
local
sg
=
Duel
.
GetOperatedGroup
()
if
Duel
.
SendtoDeck
(
g
,
1
-
tp
,
0
,
REASON_EFFECT
)
==
0
then
return
end
local
ct
=
0
local
sg
=
Duel
.
GetOperatedGroup
()
for
tc
in
aux
.
Next
(
sg
)
do
for
tc
in
aux
.
Next
(
sg
)
do
if
tc
:
IsLocation
(
LOCATION_DECK
)
then
if
tc
:
IsLocation
(
LOCATION_DECK
)
then
tc
:
ReverseInDeck
()
tc
:
ReverseInDeck
()
ct
=
ct
+
1
end
end
end
Duel
.
SortDecktop
(
tp
,
1
-
tp
,
ct
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330026.lua
View file @
8d6b81a5
--深界的诅咒
--深界的诅咒
local
m
=
33330026
function
c33330026
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
function
cm
.
initial_effect
(
c
)
--Activate
--Activate
local
e1
=
aux
.
AddRitualProcGreater2
(
c
,
cm
.
ritual_filter
,
LOCATION_HAND
+
LOCATION_DECK
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCountLimit
(
1
,
m
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
--Destroy Replace
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetTarget
(
c33330026
.
target
)
e1
:
SetOperation
(
c33330026
.
activate
)
c
:
RegisterEffect
(
e1
)
--destroy replace
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetTarget
(
cm
.
reptg
)
e2
:
SetTarget
(
c33330026
.
reptg
)
e2
:
SetValue
(
cm
.
repval
)
e2
:
SetValue
(
c33330026
.
repval
)
e2
:
SetOperation
(
cm
.
repop
)
e2
:
SetOperation
(
c33330026
.
repop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
--Activate
c33330026
.
fit_monster
=
{
33330015
}
function
cm
.
ritual_filter
(
c
)
function
c33330026
.
repfilter
(
c
,
tp
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsType
(
TYPE_RITUAL
)
and
c
:
IsType
(
TYPE_MONSTER
)
return
c
:
IsFaceup
()
and
c
:
IsControler
(
tp
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsSetCard
(
0x556
)
end
and
c
:
IsReason
(
REASON_EFFECT
+
REASON_BATTLE
)
--Destroy Replace
end
function
cm
.
repfilter
(
c
,
tp
)
function
c33330026
.
reptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
eg
:
IsExists
(
c33330026
.
repfilter
,
1
,
nil
,
tp
)
end
and
c
:
IsControler
(
tp
)
and
c
:
IsReason
(
REASON_EFFECT
+
REASON_BATTLE
)
and
not
c
:
IsReason
(
REASON_REPLACE
)
end
function
cm
.
reptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
eg
:
IsExists
(
cm
.
repfilter
,
1
,
nil
,
tp
)
end
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
end
function
c
m
.
repval
(
e
,
c
)
function
c
33330026
.
repval
(
e
,
c
)
return
c
m
.
repfilter
(
c
,
e
:
GetHandlerPlayer
())
return
c
33330026
.
repfilter
(
c
,
e
:
GetHandlerPlayer
())
end
end
function
c
m
.
repop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330026
.
repop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
end
end
\ No newline at end of file
function
c33330026
.
filter
(
c
,
e
,
tp
,
m
,
ft
)
if
not
c
:
IsCode
(
33330015
)
or
not
c
:
IsCanBeSpecialSummoned
(
e
,
SUMMON_TYPE_RITUAL
,
tp
,
false
,
true
)
then
return
false
end
local
mg
=
m
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
c
,
c
)
if
ft
>
0
then
return
mg
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
10
,
c
)
else
return
mg
:
IsExists
(
c33330026
.
mfilterf
,
1
,
nil
,
tp
,
mg
,
c
)
end
end
function
c33330026
.
mfilterf
(
c
,
tp
,
mg
,
rc
)
if
c
:
IsControler
(
tp
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
GetSequence
()
<
5
then
Duel
.
SetSelectedCard
(
c
)
return
mg
:
CheckWithSumGreater
(
Card
.
GetRitualLevel
,
10
,
rc
)
else
return
false
end
end
function
c33330026
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
ft
>-
1
and
Duel
.
IsExistingMatchingCard
(
c33330026
.
filter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
,
mg
,
ft
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
function
c33330026
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
c33330026
.
filter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
,
mg
,
ft
)
local
tc
=
tg
:
GetFirst
()
if
tc
then
mg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
tc
,
tc
)
local
mat
=
nil
if
ft
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
mat
=
mg
:
SelectWithSumGreater
(
tp
,
Card
.
GetRitualLevel
,
12
,
tc
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
mat
=
mg
:
FilterSelect
(
tp
,
c33330026
.
mfilterf
,
1
,
1
,
nil
,
tp
,
mg
,
tc
)
Duel
.
SetSelectedCard
(
mat
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
mat2
=
mg
:
SelectWithSumGreater
(
tp
,
Card
.
GetRitualLevel
,
12
,
tc
)
mat
:
Merge
(
mat2
)
end
tc
:
SetMaterial
(
mat
)
Duel
.
ReleaseRitualMaterial
(
mat
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
tc
:
CompleteProcedure
()
end
end
expansions/script/c33330027.lua
View file @
8d6b81a5
--深界遗物-免除诅咒之笼
--深界遗物-免除诅咒之笼
local
m
=
33330027
function
c33330027
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
def
=
500
--守 备 力
function
cm
.
initial_effect
(
c
)
--Activate
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetTarget
(
c33330027
.
target
)
e1
:
SetOperation
(
cm
.
operation
)
e1
:
SetOperation
(
c33330027
.
operation
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--Equip Limit
--Def up
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_EQUIP
)
e4
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
e4
:
SetValue
(
500
)
c
:
RegisterEffect
(
e4
)
--Untargetable
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetType
(
EFFECT_TYPE_EQUIP
)
e2
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e2
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetValue
(
1
)
e2
:
SetValue
(
cm
.
eqlimit
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--
Def Up
--
Equip limit
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_EQUIP
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
e3
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e3
:
SetValue
(
cm
.
def
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
c
:
RegisterEffect
(
e3
)
e3
:
SetValue
(
c33330027
.
eqlimit
)
--Indes
c
:
RegisterEffect
(
e3
)
local
e4
=
Effect
.
CreateEffect
(
c
)
--search
e4
:
SetType
(
EFFECT_TYPE_EQUIP
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e4
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e6
:
SetDescription
(
aux
.
Stringid
(
33330027
,
0
))
e4
:
SetValue
(
1
)
e6
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
c
:
RegisterEffect
(
e4
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
--Search
e6
:
SetCode
(
EVENT_LEAVE_FIELD
)
local
e5
=
Effect
.
CreateEffect
(
c
)
e6
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e5
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e6
:
SetCondition
(
c33330027
.
thcon
)
e5
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e6
:
SetTarget
(
c33330027
.
thtg
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e6
:
SetOperation
(
c33330027
.
thop
)
e5
:
SetCode
(
EVENT_LEAVE_FIELD
)
c
:
RegisterEffect
(
e6
)
e5
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e5
:
SetCondition
(
cm
.
thcon
)
e5
:
SetTarget
(
cm
.
thtg
)
e5
:
SetOperation
(
cm
.
thop
)
c
:
RegisterEffect
(
e5
)
end
end
--Activate
function
c33330027
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
filter
(
c
,
e
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
and
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
return
c
:
IsFaceup
()
and
cm
.
eqlimit
(
e
,
c
)
end
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
function
c33330027
.
thfilter
(
c
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
cm
.
filter
(
chkc
)
end
return
c
:
IsSetCard
(
0x3556
)
and
c
:
IsAbleToHand
()
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
,
e
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
SelectTarget
(
tp
,
cm
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
,
e
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330027
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetFirstTarget
()
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330027
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
Duel
.
Equip
(
tp
,
e
:
GetHandler
(),
tc
)
end
function
c33330027
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330027
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
--Equip Limit
function
c33330027
.
eqlimit
(
e
,
c
)
function
cm
.
eqlimit
(
e
,
c
)
return
c
:
IsSetCard
(
0x556
)
return
c
:
IsSetCard
(
0x556
)
end
end
--Search
function
c33330027
.
filter
(
c
)
function
cm
.
thfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
return
c
:
IsSetCard
(
0x3556
)
and
c
:
IsAbleToHand
()
end
function
cm
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330027
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
if
chkc
then
return
chkc
:
GetLocation
()
==
LOCATION_MZONE
and
c33330027
.
filter
(
chkc
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c33330027
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
SelectTarget
(
tp
,
c33330027
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330027
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
tc
=
Duel
.
GetFirstTarget
()
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
Duel
.
Equip
(
tp
,
e
:
GetHandler
(),
tc
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330028.lua
View file @
8d6b81a5
--深界遗物-免除诅咒之笼
--深界遗物-免除诅咒之笼
local
m
=
33330028
function
c33330028
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
atk
=
500
--攻 击 力
function
cm
.
initial_effect
(
c
)
--Activate
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetTarget
(
c33330028
.
target
)
e1
:
SetOperation
(
cm
.
operation
)
e1
:
SetOperation
(
c33330028
.
operation
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--Equip Limit
--Def up
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_EQUIP
)
e4
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e4
:
SetValue
(
500
)
c
:
RegisterEffect
(
e4
)
--Untargetable
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetType
(
EFFECT_TYPE_EQUIP
)
e2
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e2
:
SetCode
(
EFFECT_UPDATE_LEVEL
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetValue
(
4
)
e2
:
SetValue
(
cm
.
eqlimit
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--
Atk Up
--
Equip limit
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_EQUIP
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e3
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e3
:
SetValue
(
cm
.
atk
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
c
:
RegisterEffect
(
e3
)
e3
:
SetValue
(
c33330028
.
eqlimit
)
--Level Up
c
:
RegisterEffect
(
e3
)
local
e4
=
Effect
.
CreateEffect
(
c
)
--search
e4
:
SetType
(
EFFECT_TYPE_EQUIP
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e4
:
SetCode
(
EFFECT_UPDATE_LEVEL
)
e6
:
SetDescription
(
aux
.
Stringid
(
33330028
,
0
))
e4
:
SetValue
(
4
)
e6
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
c
:
RegisterEffect
(
e4
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
--Search
e6
:
SetCode
(
EVENT_LEAVE_FIELD
)
local
e5
=
Effect
.
CreateEffect
(
c
)
e6
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e5
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e6
:
SetCondition
(
c33330028
.
thcon
)
e5
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e6
:
SetTarget
(
c33330028
.
thtg
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e6
:
SetOperation
(
c33330028
.
thop
)
e5
:
SetCode
(
EVENT_LEAVE_FIELD
)
c
:
RegisterEffect
(
e6
)
e5
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e5
:
SetCondition
(
cm
.
thcon
)
e5
:
SetTarget
(
cm
.
thtg
)
e5
:
SetOperation
(
cm
.
thop
)
c
:
RegisterEffect
(
e5
)
end
end
--Activate
function
c33330028
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
filter
(
c
,
e
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
and
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
return
c
:
IsFaceup
()
and
cm
.
eqlimit
(
e
,
c
)
end
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
function
c33330028
.
thfilter
(
c
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
cm
.
filter
(
chkc
)
end
return
c
:
IsSetCard
(
0x3556
)
and
c
:
IsAbleToHand
()
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
,
e
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
SelectTarget
(
tp
,
cm
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
,
e
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330028
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetFirstTarget
()
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330028
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
Duel
.
Equip
(
tp
,
e
:
GetHandler
(),
tc
)
end
function
c33330028
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330028
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
--Equip Limit
function
c33330028
.
eqlimit
(
e
,
c
)
function
cm
.
eqlimit
(
e
,
c
)
return
c
:
IsSetCard
(
0x556
)
return
c
:
IsSetCard
(
0x556
)
end
end
--Search
function
c33330028
.
filter
(
c
)
function
cm
.
thfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
return
c
:
IsSetCard
(
0x3556
)
and
c
:
IsAbleToHand
()
end
function
cm
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330028
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
if
chkc
then
return
chkc
:
GetLocation
()
==
LOCATION_MZONE
and
c33330028
.
filter
(
chkc
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c33330028
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
SelectTarget
(
tp
,
c33330028
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330028
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
tc
=
Duel
.
GetFirstTarget
()
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
Duel
.
Equip
(
tp
,
e
:
GetHandler
(),
tc
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330029.lua
View file @
8d6b81a5
--深界遗物-免除诅咒之笼
--深界遗物-免除诅咒之笼
local
m
=
33330029
function
c33330029
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
function
cm
.
initial_effect
(
c
)
--Activate
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetTarget
(
c33330029
.
target
)
e1
:
SetOperation
(
cm
.
operation
)
e1
:
SetOperation
(
c33330029
.
operation
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--Equip Limit
--Def up
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_EQUIP
)
e4
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e4
:
SetValue
(
-
500
)
c
:
RegisterEffect
(
e4
)
--atk
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetDescription
(
aux
.
Stringid
(
33330029
,
0
))
e2
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e2
:
SetCategory
(
CATEGORY_ATKCHANGE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e2
:
SetValue
(
cm
.
eqlimit
)
e2
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetCondition
(
c33330029
.
ctcon
)
e2
:
SetOperation
(
c33330029
.
ctop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--To Hand
--Equip limit
local
e4
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e3
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e4
:
SetCode
(
EVENT_BATTLE_DAMAGE
)
e3
:
SetValue
(
c33330029
.
eqlimit
)
e4
:
SetProperty
(
EFFECT_FLAG_DELAY
)
c
:
RegisterEffect
(
e3
)
e4
:
SetRange
(
LOCATION_SZONE
)
--search
e4
:
SetCondition
(
cm
.
sccon
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e4
:
SetTarget
(
cm
.
sctg
)
e6
:
SetDescription
(
aux
.
Stringid
(
33330029
,
1
))
e4
:
SetOperation
(
cm
.
scop
)
e6
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
c
:
RegisterEffect
(
e4
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
--Search
e6
:
SetCode
(
EVENT_LEAVE_FIELD
)
local
e5
=
Effect
.
CreateEffect
(
c
)
e6
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e5
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e6
:
SetCondition
(
c33330029
.
thcon
)
e5
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e6
:
SetTarget
(
c33330029
.
thtg
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e6
:
SetOperation
(
c33330029
.
thop
)
e5
:
SetCode
(
EVENT_LEAVE_FIELD
)
c
:
RegisterEffect
(
e6
)
e5
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e5
:
SetCondition
(
cm
.
thcon
)
e5
:
SetTarget
(
cm
.
thtg
)
e5
:
SetOperation
(
cm
.
thop
)
c
:
RegisterEffect
(
e5
)
end
--Activate
function
cm
.
filter
(
c
,
e
)
return
c
:
IsFaceup
()
and
cm
.
eqlimit
(
e
,
c
)
end
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
function
c33330029
.
ctcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
cm
.
filter
(
chkc
)
end
local
tc
=
e
:
GetHandler
():
GetEquipTarget
()
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
,
e
)
end
return
Duel
.
GetAttacker
()
==
tc
and
tc
:
GetBattleTarget
()
and
tc
:
GetBattleTarget
():
IsControler
(
1
-
tp
)
and
tc
:
GetBattleTarget
():
IsAttackAbove
(
1
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
SelectTarget
(
tp
,
cm
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
,
e
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330029
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
local
tc
=
e
:
GetHandler
():
GetEquipTarget
()
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
local
bc
=
tc
:
GetBattleTarget
()
Duel
.
Equip
(
tp
,
e
:
GetHandler
(),
tc
)
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
bc
:
IsControler
(
1
-
tp
)
and
bc
:
IsRelateToBattle
()
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetValue
(
-
200
)
bc
:
RegisterEffect
(
e1
)
end
end
end
end
--Equip Limit
function
c33330029
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
eqlimit
(
e
,
c
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
and
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
return
c
:
IsSetCard
(
0x556
)
end
end
--To Hand
function
c33330029
.
thfilter
(
c
)
function
cm
.
scfilter
(
c
)
return
c
:
IsSetCard
(
0x3556
)
and
c
:
IsAbleToHand
()
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsAbleToHand
()
end
function
cm
.
sccon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
ep
~=
tp
and
eg
:
GetFirst
()
==
e
:
GetHandler
():
GetEquipTarget
()
end
end
function
c
m
.
sc
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c
33330029
.
th
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c
m
.
sc
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c
33330029
.
th
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
end
function
c
m
.
sc
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330029
.
th
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
scfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330029
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
--Search
function
c33330029
.
eqlimit
(
e
,
c
)
function
cm
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x556
)
return
c
:
IsSetCard
(
0x3556
)
and
c
:
IsAbleToHand
()
end
end
function
c
m
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330029
.
filter
(
c
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330029
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
if
chkc
then
return
chkc
:
GetLocation
()
==
LOCATION_MZONE
and
c33330029
.
filter
(
chkc
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c33330029
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
SelectTarget
(
tp
,
c33330029
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330029
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
tc
=
Duel
.
GetFirstTarget
()
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
Duel
.
Equip
(
tp
,
e
:
GetHandler
(),
tc
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330030.lua
View file @
8d6b81a5
This diff is collapsed.
Click to expand it.
expansions/script/c33330031.lua
View file @
8d6b81a5
--深界之怒-火葬炮
--深界之怒-火葬炮
local
m
=
33330031
function
c33330031
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
check
=
{
33330028
}
--发 动 要 求
function
cm
.
initial_effect
(
c
)
--Activate
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_TOGRAVE
)
e1
:
SetCategory
(
CATEGORY_TOGRAVE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetHintTiming
(
0
,
TIMING_MAIN_END
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCondition
(
cm
.
condition
)
e1
:
SetCondition
(
c33330031
.
condition
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetTarget
(
c33330031
.
target
)
e1
:
SetOperation
(
cm
.
activate
)
e1
:
SetOperation
(
c33330031
.
activate
)
e1
:
SetHintTiming
(
0
,
TIMINGS_CHECK_MONSTER
+
TIMING_MAIN_END
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
To G
rave
--
to g
rave
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330031
,
0
))
e2
:
SetCategory
(
CATEGORY_TOGRAVE
)
e2
:
SetCategory
(
CATEGORY_TOGRAVE
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCost
(
aux
.
bfgcost
)
e2
:
SetCost
(
aux
.
bfgcost
)
e2
:
SetTarget
(
c
m
.
tgtg
)
e2
:
SetTarget
(
c
33330031
.
tgtg
)
e2
:
SetOperation
(
c
m
.
tgop
)
e2
:
SetOperation
(
c
33330031
.
tgop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
cm
.
card_code_list
=
cm
.
check
function
c33330031
.
tgfilter
(
c
)
--Activate
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToGrave
()
function
cm
.
cfilter
(
c
)
end
return
c
:
IsCode
(
cm
.
check
[
1
])
and
c
:
IsFaceup
()
function
c33330031
.
tgtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330031
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c33330031
.
tgop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330031
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
end
end
function
c33330031
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetCurrentPhase
()
==
PHASE_MAIN2
and
Duel
.
IsExistingMatchingCard
(
c33330031
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
nil
)
end
end
function
c
m
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330031
.
cfilter
(
c
)
return
Duel
.
GetCurrentPhase
()
==
PHASE_MAIN2
and
Duel
.
IsExistingMatchingCard
(
cm
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
nil
)
return
c
:
IsCode
(
33330028
)
and
c
:
IsFaceup
(
)
end
end
function
c
m
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c
33330031
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetFieldGroupCount
(
tp
,
0
,
LOCATION_MZONE
)
>
0
end
if
chk
==
0
then
return
Duel
.
GetFieldGroupCount
(
tp
,
0
,
LOCATION_MZONE
)
>
0
end
local
g
=
Duel
.
GetFieldGroup
(
tp
,
0
,
LOCATION_MZONE
)
local
g
=
Duel
.
GetFieldGroup
(
tp
,
0
,
LOCATION_MZONE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
g
,
g
:
GetCount
(),
0
,
LOCATION_MZONE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
g
,
g
:
GetCount
(),
0
,
LOCATION_MZONE
)
end
end
function
c
m
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330031
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetFieldGroup
(
tp
,
0
,
LOCATION_MZONE
)
local
g
=
Duel
.
GetFieldGroup
(
tp
,
0
,
LOCATION_MZONE
)
if
g
:
GetCount
()
>
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoGrave
(
g
,
REASON_RULE
)
Duel
.
SendtoGrave
(
g
,
REASON_RULE
)
...
@@ -47,25 +56,10 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
...
@@ -47,25 +56,10 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetTargetRange
(
0
,
1
)
e1
:
SetTargetRange
(
0
,
1
)
e1
:
SetValue
(
c
m
.
actlimit
)
e1
:
SetValue
(
c
33330031
.
actlimit
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
function
c
m
.
actlimit
(
e
,
re
,
tp
)
function
c
33330031
.
actlimit
(
e
,
re
,
tp
)
return
re
:
IsActiveType
(
TYPE_MONSTER
)
return
re
:
IsActiveType
(
TYPE_MONSTER
)
and
not
re
:
GetHandler
():
IsImmuneToEffect
(
e
)
end
end
--To Grave
function
cm
.
tgfilter
(
c
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToGrave
()
end
function
cm
.
tgtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
cm
.
tgop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
end
end
\ No newline at end of file
expansions/script/c33330032.lua
View file @
8d6b81a5
--深界庇护所 娜娜奇的小屋
--深界庇护所 娜娜奇的小屋
local
m
=
33330032
function
c33330032
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--Activate(effect)
cm
.
counter
=
0x1556
--指 示 物
local
e4
=
Effect
.
CreateEffect
(
c
)
cm
.
recover
=
500
--回 复 倍 数
e4
:
SetCategory
(
CATEGORY_RECOVER
)
function
cm
.
initial_effect
(
c
)
e4
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DAMAGE_CAL
+
EFFECT_FLAG_PLAYER_TARGET
)
--Activate
e4
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e4
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetCategory
(
CATEGORY_RECOVER
)
e4
:
SetCondition
(
c33330032
.
condition
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e4
:
SetTarget
(
c33330032
.
target
)
e1
:
SetCode
(
EVENT_CHAINING
)
e4
:
SetOperation
(
c33330032
.
activate
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DAMAGE_CAL
+
EFFECT_FLAG_PLAYER_TARGET
)
c
:
RegisterEffect
(
e4
)
e1
:
SetCondition
(
cm
.
condition
)
--tohand
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetOperation
(
cm
.
activate
)
c
:
RegisterEffect
(
e1
)
--To Hand
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetDescription
(
aux
.
Stringid
(
33330032
,
0
))
e2
:
SetCategory
(
CATEGORY_TOHAND
)
e2
:
SetCategory
(
CATEGORY_TOHAND
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_TO_GRAVE
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCondition
(
cm
.
thcon
)
e2
:
SetCode
(
EVENT_TO_GRAVE
)
e2
:
SetTarget
(
cm
.
thtg
)
e2
:
SetCondition
(
c33330032
.
thcon
)
e2
:
SetOperation
(
cm
.
thop
)
e2
:
SetTarget
(
c33330032
.
thtg
)
e2
:
SetOperation
(
c33330032
.
thop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
--Activate
function
c33330032
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsReason
(
REASON_EFFECT
)
return
re
:
IsHasCategory
(
CATEGORY_DESTROY
)
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetCounter
(
tp
,
1
,
0
,
cm
.
counter
)
>
0
end
local
ct
=
Duel
.
GetCounter
(
tp
,
1
,
0
,
cm
.
counter
)
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetTargetParam
(
ct
*
cm
.
recover
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RECOVER
,
nil
,
0
,
tp
,
ct
*
cm
.
recover
)
end
function
cm
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
p
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
)
local
ct
=
Duel
.
GetCounter
(
tp
,
1
,
0
,
cm
.
counter
)
if
ct
>
0
and
Duel
.
Recover
(
tp
,
ct
*
cm
.
recover
,
REASON_EFFECT
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CHANGE_DAMAGE
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetTargetRange
(
1
,
1
)
e1
:
SetValue
(
0
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_NO_EFFECT_DAMAGE
)
e2
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e2
,
tp
)
end
end
end
--To Hand
function
c33330032
.
thfilter
(
c
)
function
cm
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsAbleToHand
()
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsAbleToHand
()
end
end
function
cm
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330032
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
e
:
GetHandler
():
IsReason
(
REASON_EFFECT
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330032
.
thfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
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
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
end
end
function
c
m
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330032
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
thfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c33330032
.
thfilter
),
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
if
g
:
GetCount
()
>
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
end
end
function
c33330032
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
re
:
IsHasCategory
(
CATEGORY_DESTROY
)
end
function
c33330032
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetCounter
(
tp
,
1
,
0
,
0x1019
)
>
0
end
local
ct
=
Duel
.
GetCounter
(
tp
,
1
,
0
,
0x1019
)
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetTargetParam
(
ct
*
500
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RECOVER
,
nil
,
0
,
tp
,
ct
*
500
)
end
function
c33330032
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ct
=
Duel
.
GetCounter
(
tp
,
1
,
0
,
0x1019
)
if
ct
>
0
and
Duel
.
Recover
(
tp
,
ct
*
500
,
REASON_EFFECT
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CHANGE_DAMAGE
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetTargetRange
(
1
,
1
)
e1
:
SetValue
(
0
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_NO_EFFECT_DAMAGE
)
e2
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e2
,
tp
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330033.lua
View file @
8d6b81a5
--深界の生骸 米蒂
--深界の生骸 米蒂
local
m
=
33330033
function
c33330033
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
--xyz summon
cm
.
counter
=
0x1556
--指 示 物
aux
.
AddXyzProcedure
(
c
,
nil
,
4
,
2
)
cm
.
atk
=
700
--攻 击 力
function
cm
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
c
:
EnableReviveLimit
()
--Xyz Summon
--remove
aux
.
AddXyzProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsSetCard
,
0x556
),
4
,
2
)
--Destroy
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
33330033
,
0
))
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_COUNTER
)
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_COUNTER
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetTarget
(
c33330033
.
dtg
)
e1
:
SetTarget
(
cm
.
destg
)
e1
:
SetOperation
(
c33330033
.
dop
)
e1
:
SetOperation
(
cm
.
desop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--
Atk U
p
--
attacku
p
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
cm
.
atkcon
)
e2
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e2
:
SetValue
(
cm
.
atkval
)
e2
:
SetCondition
(
c33330033
.
acon
)
e2
:
SetValue
(
c33330033
.
attackup
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--Special Summon
--Special Summon
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e4
:
SetDescription
(
aux
.
Stringid
(
33330033
,
1
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e4
:
SetType
(
EFFECT_TYPE_TRIGGER_O
+
EFFECT_TYPE_SINGLE
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e4
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD
)
e4
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e4
:
SetCode
(
EVENT_LEAVE_FIELD
)
e3
:
SetCountLimit
(
1
,
m
+
900
)
e4
:
SetCondition
(
c33330033
.
sumcon
)
e3
:
SetCondition
(
cm
.
spcon
)
e4
:
SetTarget
(
c33330033
.
sumtg
)
e3
:
SetTarget
(
cm
.
sptg
)
e4
:
SetOperation
(
c33330033
.
sumop
)
e3
:
SetOperation
(
cm
.
spop
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e3
)
end
--Destroy
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
if
chk
==
0
then
return
g
:
GetCount
()
>
0
and
e
:
GetHandler
():
IsCanAddCounter
(
cm
.
counter
,
g
:
GetCount
())
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
g
:
GetCount
(),
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
g
:
GetCount
(),
tp
,
0
)
end
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330033
.
sumcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
if
g
:
GetCount
()
>
0
then
local
ct
=
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
local
c
=
e
:
GetHandler
()
if
ct
>
0
and
c
:
IsRelateToEffect
(
e
)
and
c
:
IsFaceup
()
then
c
:
AddCounter
(
cm
.
counter
,
ct
)
end
end
end
--Atk Up
function
cm
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetOverlayGroup
():
IsExists
(
Card
.
IsSetCard
,
1
,
nil
,
0x557
)
end
function
cm
.
atkval
(
e
,
c
)
return
c
:
GetCounter
(
cm
.
counter
)
*
cm
.
atk
end
--Special Summon
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsRankBelow
(
6
)
and
c
:
IsType
(
TYPE_XYZ
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
cm
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
return
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
end
end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330033
.
filter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsRankBelow
(
6
)
and
c
:
IsType
(
TYPE_XYZ
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
true
)
end
function
c33330033
.
sumtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
if
chk
==
0
then
return
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
)
end
and
Duel
.
IsExistingMatchingCard
(
c33330033
.
filter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetTargetCard
(
e
:
GetHandler
())
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
end
end
function
cm
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330033
.
sumop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCountFromEx
(
tp
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
spfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
Duel
.
GetLocationCountFromEx
(
tp
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330033
.
filter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
tc
=
g
:
GetFirst
()
local
tc
=
g
:
GetFirst
()
if
tc
and
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
and
c
:
IsRelateToEffect
(
e
)
then
if
tc
and
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
and
c
:
IsRelateToEffect
(
e
)
then
Duel
.
Overlay
(
tc
,
c
)
Duel
.
Overlay
(
tc
,
Group
.
FromCards
(
c
))
end
end
function
c33330033
.
acon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetOverlayGroup
():
IsExists
(
Card
.
IsSetCard
,
1
,
nil
,
0x557
)
end
function
c33330033
.
attackup
(
e
,
c
)
return
c
:
GetCounter
(
0x1019
)
*
700
end
function
c33330033
.
dtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
if
chk
==
0
then
return
g
:
GetCount
()
>
0
and
e
:
GetHandler
():
IsCanAddCounter
(
0x1019
,
g
:
GetCount
())
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
g
:
GetCount
(),
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
g
:
GetCount
(),
tp
,
0
)
end
function
c33330033
.
dop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsType
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
,
TYPE_SPELL
+
TYPE_TRAP
)
if
g
:
GetCount
()
>
0
then
local
ct
=
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
if
ct
>
0
and
c
:
IsRelateToEffect
(
e
)
and
c
:
IsFaceup
()
then
c
:
AddCounter
(
0x1019
,
ct
)
end
end
end
end
end
\ No newline at end of file
expansions/script/c33330034.lua
View file @
8d6b81a5
--深界遗物 探窟者的白笛
--深界遗物 探窟者的白笛
local
m
=
33330034
function
c33330034
.
initial_effect
(
c
)
local
cm
=
_G
[
"c"
..
m
]
cm
.
counter
=
0x1556
--指 示 物
cm
.
atk
=
500
--攻 击 力
function
cm
.
initial_effect
(
c
)
--Activate
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetTarget
(
c33330034
.
target
)
e1
:
SetOperation
(
cm
.
operation
)
e1
:
SetOperation
(
c33330034
.
operation
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--Equip Limit
--Equip limit
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetValue
(
cm
.
eqlimit
)
c
:
RegisterEffect
(
e2
)
--Atk Up
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_EQUIP
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e3
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e3
:
SetValue
(
cm
.
atkval
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetValue
(
c33330034
.
eqlimit
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
--Immune
--atk
local
e4
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_EQUIP
)
e2
:
SetDescription
(
aux
.
Stringid
(
33330034
,
0
))
e4
:
SetCode
(
EFFECT_IMMUNE_EFFECT
)
e2
:
SetCategory
(
CATEGORY_COUNTER
+
CATEGORY_SEARCH
+
CATEGORY_TOHAND
)
e4
:
SetValue
(
cm
.
efilter
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
c
:
RegisterEffect
(
e4
)
e2
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
--Search
e2
:
SetRange
(
LOCATION_SZONE
)
local
e5
=
Effect
.
CreateEffect
(
c
)
e2
:
SetCondition
(
c33330034
.
ctcon
)
e5
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetTarget
(
c33330034
.
cttg
)
e5
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e2
:
SetOperation
(
c33330034
.
ctop
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
c
:
RegisterEffect
(
e2
)
e5
:
SetCode
(
EVENT_LEAVE_FIELD
)
--search
e5
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e5
:
SetCondition
(
cm
.
thcon
)
e6
:
SetDescription
(
aux
.
Stringid
(
33330034
,
1
))
e5
:
SetTarget
(
cm
.
thtg
)
e6
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e5
:
SetOperation
(
cm
.
thop
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
c
:
RegisterEffect
(
e5
)
e6
:
SetCode
(
EVENT_LEAVE_FIELD
)
e6
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e6
:
SetCondition
(
c33330034
.
thcon
)
e6
:
SetTarget
(
c33330034
.
thtg
)
e6
:
SetOperation
(
c33330034
.
thop
)
c
:
RegisterEffect
(
e6
)
end
end
--Activate
function
c33330034
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
filter
(
c
,
e
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
and
e
:
GetHandler
():
IsPreviousPosition
(
POS_FACEUP
)
return
c
:
IsFaceup
()
and
cm
.
eqlimit
(
e
,
c
)
end
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
function
c33330034
.
thfilter
(
c
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
cm
.
filter
(
chkc
)
end
return
c
:
IsSetCard
(
0x3556
)
and
c
:
IsAbleToHand
()
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
,
e
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
SelectTarget
(
tp
,
cm
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
,
e
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330034
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
Duel
.
GetFirstTarget
()
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33330034
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
Duel
.
Equip
(
tp
,
e
:
GetHandler
(),
tc
)
end
function
c33330034
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330034
.
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
end
end
--Equip Limit
function
c33330034
.
ctcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
eqlimit
(
e
,
c
)
local
tc
=
e
:
GetHandler
():
GetEquipTarget
(
)
return
c
:
IsSetCard
(
0x556
)
return
Duel
.
GetAttacker
()
==
tc
end
end
--Atk Up
function
c33330034
.
thfilter2
(
c
)
function
cm
.
atkval
(
e
,
c
)
return
c
:
IsSetCard
(
0x556
)
and
c
:
IsType
(
TYPE_EQUIP
)
and
c
:
IsAbleToHand
()
return
Duel
.
GetCounter
(
e
:
GetHandlerPlayer
(),
1
,
0
,
cm
.
counter
)
*
cm
.
atk
end
end
--Immune
function
c33330034
.
cttg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
efilter
(
e
,
te
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
return
te
:
GetOwnerPlayer
()
~=
e
:
GetHandlerPlayer
()
and
te
:
GetOwner
()
~=
e
:
GetOwner
()
and
te
:
IsActiveType
(
TYPE_SPELL
+
TYPE_TRAP
)
if
chk
==
0
then
return
tc
and
tc
:
IsCanAddCounter
(
0x1019
,
2
)
and
Duel
.
IsExistingMatchingCard
(
c33330034
.
thfilter2
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
tc
,
2
,
tp
,
0
)
end
end
--Search
function
c33330034
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
thfilter
(
c
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
return
c
:
IsSetCard
(
0x3556
)
and
c
:
IsAbleToHand
()
if
tc
and
tc
:
IsFaceup
()
and
tc
:
IsCanAddCounter
(
0x1019
,
2
)
then
tc
:
AddCounter
(
0x1019
,
2
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33330034
.
thfilter2
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
end
end
function
c
m
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c
33330034
.
eqlimit
(
e
,
c
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
return
c
:
IsSetCard
(
0x556
)
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330034
.
filter
(
c
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x556
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c33330034
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
if
chkc
then
return
chkc
:
GetLocation
()
==
LOCATION_MZONE
and
c33330034
.
filter
(
chkc
)
end
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c33330034
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
~=
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
SelectTarget
(
tp
,
c33330034
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c33330034
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
Duel
.
Equip
(
tp
,
e
:
GetHandler
(),
tc
)
end
end
end
end
\ No newline at end of file
expansions/script/c33330036.lua
View file @
8d6b81a5
...
@@ -16,7 +16,6 @@ function c33330036.initial_effect(c)
...
@@ -16,7 +16,6 @@ function c33330036.initial_effect(c)
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_DESTROY
)
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
,
33330036
)
e1
:
SetTarget
(
c33330036
.
tg1
)
e1
:
SetTarget
(
c33330036
.
tg1
)
e1
:
SetOperation
(
c33330036
.
op1
)
e1
:
SetOperation
(
c33330036
.
op1
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -32,9 +31,9 @@ function c33330036.initial_effect(c)
...
@@ -32,9 +31,9 @@ function c33330036.initial_effect(c)
end
end
--下 面 的 0x1019 改 成 上 升 负 荷 指 示 物
--下 面 的 0x1019 改 成 上 升 负 荷 指 示 物
function
c33330036
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c33330036
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetCounter
(
tp
,
LOCATION_ONFIELD
,
0
,
0x1
556
)
>
0
end
if
chk
==
0
then
return
Duel
.
GetCounter
(
tp
,
LOCATION_ONFIELD
,
0
,
0x1
019
)
>
0
end
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetTargetPlayer
(
tp
)
local
ct
=
Duel
.
GetCounter
(
tp
,
LOCATION_ONFIELD
,
0
,
0x1
556
)
local
ct
=
Duel
.
GetCounter
(
tp
,
LOCATION_ONFIELD
,
0
,
0x1
019
)
Duel
.
SetTargetParam
(
ct
*
200
)
Duel
.
SetTargetParam
(
ct
*
200
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RECOVER
,
nil
,
0
,
tp
,
ct
*
200
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RECOVER
,
nil
,
0
,
tp
,
ct
*
200
)
end
end
...
...
expansions/script/c33330300.lua
View file @
8d6b81a5
...
@@ -158,7 +158,7 @@ end
...
@@ -158,7 +158,7 @@ end
--Special Summon
--Special Summon
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
(
c
:
IsSetCard
(
0x
2
552
)
or
c
.
HopeSoul
)
and
c
:
IsType
(
TYPE_MONSTER
)
return
(
c
:
IsSetCard
(
0x
9
552
)
or
c
.
HopeSoul
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
end
function
cm
.
thfilter
(
c
)
function
cm
.
thfilter
(
c
)
...
...
expansions/script/c33330301.lua
View file @
8d6b81a5
...
@@ -64,7 +64,7 @@ function cm.btop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -64,7 +64,7 @@ function cm.btop(e,tp,eg,ep,ev,re,r,rp)
end
end
--Search
--Search
function
cm
.
thfilter
(
c
)
function
cm
.
thfilter
(
c
)
return
(
c
:
IsSetCard
(
0x
2
552
)
or
c
.
HopeSoul
)
and
c
:
IsAbleToHand
()
return
(
c
:
IsSetCard
(
0x
9
552
)
or
c
.
HopeSoul
)
and
c
:
IsAbleToHand
()
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
...
...
expansions/script/c33330302.lua
View file @
8d6b81a5
...
@@ -32,7 +32,7 @@ end
...
@@ -32,7 +32,7 @@ end
cm
.
card_code_list
=
{
tg
[
1
]}
cm
.
card_code_list
=
{
tg
[
1
]}
--Special Summon
--Special Summon
function
cm
.
cfilter
(
c
)
function
cm
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
2
552
)
or
c
.
HopeSoul
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
9
552
)
or
c
.
HopeSoul
)
end
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
...
...
expansions/script/c33330303.lua
View file @
8d6b81a5
...
@@ -31,7 +31,7 @@ end
...
@@ -31,7 +31,7 @@ end
cm
.
card_code_list
=
{
tg
[
1
]}
cm
.
card_code_list
=
{
tg
[
1
]}
--Special Summon
--Special Summon
function
cm
.
cfilter
(
c
)
function
cm
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
2
552
)
or
c
.
HopeSoul
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
9
552
)
or
c
.
HopeSoul
)
end
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
...
...
expansions/script/c33330304.lua
View file @
8d6b81a5
...
@@ -32,7 +32,7 @@ end
...
@@ -32,7 +32,7 @@ end
cm
.
card_code_list
=
{
tg
[
1
]}
cm
.
card_code_list
=
{
tg
[
1
]}
--Special Summon
--Special Summon
function
cm
.
cfilter
(
c
)
function
cm
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
2
552
)
or
c
.
HopeSoul
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
9
552
)
or
c
.
HopeSoul
)
end
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
...
...
expansions/script/c33330305.lua
View file @
8d6b81a5
...
@@ -30,7 +30,7 @@ end
...
@@ -30,7 +30,7 @@ end
cm
.
card_code_list
=
{
tg
[
1
]}
cm
.
card_code_list
=
{
tg
[
1
]}
--Special Summon
--Special Summon
function
cm
.
cfilter
(
c
)
function
cm
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
2
552
)
or
c
.
HopeSoul
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
9
552
)
or
c
.
HopeSoul
)
end
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
...
...
expansions/script/c33330306.lua
View file @
8d6b81a5
...
@@ -31,7 +31,7 @@ end
...
@@ -31,7 +31,7 @@ end
cm
.
card_code_list
=
{
tg
[
1
]}
cm
.
card_code_list
=
{
tg
[
1
]}
--Special Summon
--Special Summon
function
cm
.
cfilter
(
c
)
function
cm
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
2
552
)
or
c
.
HopeSoul
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x
9
552
)
or
c
.
HopeSoul
)
end
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
return
c
:
IsCode
(
tg
[
1
])
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
...
...
expansions/script/c33330320.lua
View file @
8d6b81a5
This diff is collapsed.
Click to expand it.
expansions/script/c33330323.lua
View file @
8d6b81a5
This diff is collapsed.
Click to expand it.
expansions/strings.conf
View file @
8d6b81a5
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment