Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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
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
MyCard
ygopro-2pick
Commits
daf33731
Commit
daf33731
authored
Sep 18, 2017
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
prescripts
parent
ef2f5af6
Changes
100
Hide whitespace changes
Inline
Side-by-side
Showing
100 changed files
with
7622 additions
and
0 deletions
+7622
-0
expansions/script/c100200134.lua
expansions/script/c100200134.lua
+52
-0
expansions/script/c100200135.lua
expansions/script/c100200135.lua
+70
-0
expansions/script/c100200138.lua
expansions/script/c100200138.lua
+78
-0
expansions/script/c100221001.lua
expansions/script/c100221001.lua
+174
-0
expansions/script/c100222001.lua
expansions/script/c100222001.lua
+82
-0
expansions/script/c100230009.lua
expansions/script/c100230009.lua
+71
-0
expansions/script/c100230010.lua
expansions/script/c100230010.lua
+48
-0
expansions/script/c100305000.lua
expansions/script/c100305000.lua
+46
-0
expansions/script/c100305001.lua
expansions/script/c100305001.lua
+121
-0
expansions/script/c100305002.lua
expansions/script/c100305002.lua
+37
-0
expansions/script/c100305003.lua
expansions/script/c100305003.lua
+59
-0
expansions/script/c100305025.lua
expansions/script/c100305025.lua
+77
-0
expansions/script/c100305031.lua
expansions/script/c100305031.lua
+83
-0
expansions/script/c100407001.lua
expansions/script/c100407001.lua
+76
-0
expansions/script/c100407003.lua
expansions/script/c100407003.lua
+121
-0
expansions/script/c100407004.lua
expansions/script/c100407004.lua
+121
-0
expansions/script/c100407007.lua
expansions/script/c100407007.lua
+115
-0
expansions/script/c100407008.lua
expansions/script/c100407008.lua
+98
-0
expansions/script/c100407009.lua
expansions/script/c100407009.lua
+74
-0
expansions/script/c100407014.lua
expansions/script/c100407014.lua
+85
-0
expansions/script/c100407015.lua
expansions/script/c100407015.lua
+106
-0
expansions/script/c100407017.lua
expansions/script/c100407017.lua
+109
-0
expansions/script/c101002000.lua
expansions/script/c101002000.lua
+38
-0
expansions/script/c101003002.lua
expansions/script/c101003002.lua
+84
-0
expansions/script/c101003005.lua
expansions/script/c101003005.lua
+37
-0
expansions/script/c101003006.lua
expansions/script/c101003006.lua
+100
-0
expansions/script/c101003007.lua
expansions/script/c101003007.lua
+100
-0
expansions/script/c101003009.lua
expansions/script/c101003009.lua
+35
-0
expansions/script/c101003010.lua
expansions/script/c101003010.lua
+81
-0
expansions/script/c101003011.lua
expansions/script/c101003011.lua
+77
-0
expansions/script/c101003012.lua
expansions/script/c101003012.lua
+39
-0
expansions/script/c101003013.lua
expansions/script/c101003013.lua
+83
-0
expansions/script/c101003014.lua
expansions/script/c101003014.lua
+88
-0
expansions/script/c101003015.lua
expansions/script/c101003015.lua
+78
-0
expansions/script/c101003016.lua
expansions/script/c101003016.lua
+80
-0
expansions/script/c101003017.lua
expansions/script/c101003017.lua
+82
-0
expansions/script/c101003018.lua
expansions/script/c101003018.lua
+83
-0
expansions/script/c101003020.lua
expansions/script/c101003020.lua
+110
-0
expansions/script/c101003022.lua
expansions/script/c101003022.lua
+97
-0
expansions/script/c101003027.lua
expansions/script/c101003027.lua
+116
-0
expansions/script/c101003032.lua
expansions/script/c101003032.lua
+74
-0
expansions/script/c101003038.lua
expansions/script/c101003038.lua
+58
-0
expansions/script/c101003039.lua
expansions/script/c101003039.lua
+48
-0
expansions/script/c101003044.lua
expansions/script/c101003044.lua
+94
-0
expansions/script/c101003045.lua
expansions/script/c101003045.lua
+63
-0
expansions/script/c101003046.lua
expansions/script/c101003046.lua
+91
-0
expansions/script/c101003047.lua
expansions/script/c101003047.lua
+71
-0
expansions/script/c101003052.lua
expansions/script/c101003052.lua
+101
-0
expansions/script/c101003054.lua
expansions/script/c101003054.lua
+74
-0
expansions/script/c101003055.lua
expansions/script/c101003055.lua
+88
-0
expansions/script/c101003056.lua
expansions/script/c101003056.lua
+88
-0
expansions/script/c101003057.lua
expansions/script/c101003057.lua
+55
-0
expansions/script/c101003058.lua
expansions/script/c101003058.lua
+73
-0
expansions/script/c101003059.lua
expansions/script/c101003059.lua
+42
-0
expansions/script/c101003061.lua
expansions/script/c101003061.lua
+34
-0
expansions/script/c101003063.lua
expansions/script/c101003063.lua
+52
-0
expansions/script/c101003066.lua
expansions/script/c101003066.lua
+102
-0
expansions/script/c101003069.lua
expansions/script/c101003069.lua
+97
-0
expansions/script/c101003070.lua
expansions/script/c101003070.lua
+88
-0
expansions/script/c101003071.lua
expansions/script/c101003071.lua
+70
-0
expansions/script/c101003072.lua
expansions/script/c101003072.lua
+84
-0
expansions/script/c101003073.lua
expansions/script/c101003073.lua
+67
-0
expansions/script/c101003074.lua
expansions/script/c101003074.lua
+89
-0
expansions/script/c16849715.lua
expansions/script/c16849715.lua
+65
-0
expansions/script/c20745268.lua
expansions/script/c20745268.lua
+36
-0
expansions/script/c27561302.lua
expansions/script/c27561302.lua
+65
-0
expansions/script/c27784944.lua
expansions/script/c27784944.lua
+91
-0
expansions/script/c28806532.lua
expansions/script/c28806532.lua
+89
-0
expansions/script/c29628180.lua
expansions/script/c29628180.lua
+34
-0
expansions/script/c30907810.lua
expansions/script/c30907810.lua
+102
-0
expansions/script/c31629407.lua
expansions/script/c31629407.lua
+56
-0
expansions/script/c32841045.lua
expansions/script/c32841045.lua
+58
-0
expansions/script/c33964637.lua
expansions/script/c33964637.lua
+125
-0
expansions/script/c44686185.lua
expansions/script/c44686185.lua
+83
-0
expansions/script/c5230799.lua
expansions/script/c5230799.lua
+59
-0
expansions/script/c52834429.lua
expansions/script/c52834429.lua
+73
-0
expansions/script/c53956001.lua
expansions/script/c53956001.lua
+73
-0
expansions/script/c54178659.lua
expansions/script/c54178659.lua
+134
-0
expansions/script/c54895237.lua
expansions/script/c54895237.lua
+91
-0
expansions/script/c5645210.lua
expansions/script/c5645210.lua
+44
-0
expansions/script/c63519819.lua
expansions/script/c63519819.lua
+130
-0
expansions/script/c6357341.lua
expansions/script/c6357341.lua
+32
-0
expansions/script/c64631466.lua
expansions/script/c64631466.lua
+131
-0
expansions/script/c65017789.lua
expansions/script/c65017789.lua
+71
-0
expansions/script/c6579928.lua
expansions/script/c6579928.lua
+58
-0
expansions/script/c66149377.lua
expansions/script/c66149377.lua
+34
-0
expansions/script/c67901914.lua
expansions/script/c67901914.lua
+63
-0
expansions/script/c68024506.lua
expansions/script/c68024506.lua
+58
-0
expansions/script/c68246154.lua
expansions/script/c68246154.lua
+58
-0
expansions/script/c70180284.lua
expansions/script/c70180284.lua
+63
-0
expansions/script/c71207871.lua
expansions/script/c71207871.lua
+59
-0
expansions/script/c7291576.lua
expansions/script/c7291576.lua
+55
-0
expansions/script/c79968632.lua
expansions/script/c79968632.lua
+40
-0
expansions/script/c80577258.lua
expansions/script/c80577258.lua
+69
-0
expansions/script/c89355716.lua
expansions/script/c89355716.lua
+75
-0
expansions/script/c91299846.lua
expansions/script/c91299846.lua
+82
-0
expansions/script/c92411493.lua
expansions/script/c92411493.lua
+72
-0
expansions/script/c92534075.lua
expansions/script/c92534075.lua
+49
-0
expansions/script/c93356623.lua
expansions/script/c93356623.lua
+67
-0
expansions/script/c94418111.lua
expansions/script/c94418111.lua
+64
-0
No files found.
expansions/script/c100200134.lua
0 → 100644
View file @
daf33731
--白棘鱏
--White Stingray
--Scripted by Eerie Code
function
c100200134
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
100200134
)
e1
:
SetCondition
(
c100200134
.
spcon
)
e1
:
SetOperation
(
c100200134
.
spop
)
c
:
RegisterEffect
(
e1
)
--Tuner
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCountLimit
(
1
,
100200134
+
100
)
e2
:
SetCondition
(
c100200134
.
tncon
)
e2
:
SetOperation
(
c100200134
.
tnop
)
c
:
RegisterEffect
(
e2
)
end
function
c100200134
.
cfilter
(
c
)
return
c
:
IsAttribute
(
ATTRIBUTE_WATER
)
end
function
c100200134
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
return
Duel
.
GetLocationCount
(
c
:
GetControler
(),
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100200134
.
cfilter
,
c
:
GetControler
(),
LOCATION_HAND
,
0
,
1
,
c
)
end
function
c100200134
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DISCARD
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100200134
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
c
)
Duel
.
SendtoGrave
(
g
,
REASON_DISCARD
+
REASON_COST
)
end
function
c100200134
.
tncon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_GRAVE
)
end
function
c100200134
.
tnop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetCode
(
EFFECT_ADD_TYPE
)
e1
:
SetValue
(
TYPE_TUNER
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
c
:
RegisterEffect
(
e1
)
end
end
expansions/script/c100200135.lua
0 → 100644
View file @
daf33731
--DDD超視王ゼロ・マクスウェル
--D/D/D Supersight King Zero Maxwell
--Scripted by Eerie Code
function
c100200135
.
initial_effect
(
c
)
--pendulum summon
aux
.
EnablePendulumAttribute
(
c
)
--defdown
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100200135
,
0
))
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_PZONE
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCountLimit
(
1
,
100200135
)
e1
:
SetTarget
(
c100200135
.
deftg
)
e1
:
SetOperation
(
c100200135
.
defop
)
c
:
RegisterEffect
(
e1
)
--defdown
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100200135
,
1
))
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_BATTLE_CONFIRM
)
e2
:
SetCondition
(
c100200135
.
defcon2
)
e2
:
SetOperation
(
c100200135
.
defop2
)
c
:
RegisterEffect
(
e2
)
--pierce
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_PIERCE
)
c
:
RegisterEffect
(
e3
)
--no damage
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCode
(
EFFECT_AVOID_BATTLE_DAMAGE
)
e4
:
SetValue
(
1
)
c
:
RegisterEffect
(
e4
)
end
function
c100200135
.
deftg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
aux
.
nzdef
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
aux
.
nzdef
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
Duel
.
SelectTarget
(
tp
,
aux
.
nzdef
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
end
function
c100200135
.
defop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsFaceup
()
and
tc
:
IsRelateToEffect
(
e
)
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_DEFENSE_FINAL
)
e1
:
SetValue
(
0
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
end
end
function
c100200135
.
defcon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetAttackTarget
()
e
:
SetLabelObject
(
tc
)
return
Duel
.
GetAttacker
()
==
e
:
GetHandler
()
and
tc
and
tc
:
IsPosition
(
POS_FACEUP_DEFENSE
)
and
tc
:
GetDefense
()
>
0
end
function
c100200135
.
defop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
if
tc
:
IsFaceup
()
and
tc
:
IsRelateToBattle
()
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_DEFENSE_FINAL
)
e1
:
SetValue
(
0
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_DAMAGE
)
tc
:
RegisterEffect
(
e1
)
end
end
expansions/script/c100200138.lua
0 → 100644
View file @
daf33731
--サブテラーの導師
--Subterror Guru
--Scripted by Eerie Code
function
c100200138
.
initial_effect
(
c
)
--search
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100200138
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_FLIP
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
100200138
)
e1
:
SetTarget
(
c100200138
.
thtg
)
e1
:
SetOperation
(
c100200138
.
thop
)
c
:
RegisterEffect
(
e1
)
--position
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100200138
,
1
))
e2
:
SetCategory
(
CATEGORY_POSITION
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCountLimit
(
1
,
100200138
+
100
)
e2
:
SetCondition
(
c100200138
.
setcon1
)
e2
:
SetTarget
(
c100200138
.
settg
)
e2
:
SetOperation
(
c100200138
.
setop
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCode
(
EVENT_FREE_CHAIN
)
e3
:
SetHintTiming
(
0
,
0x1e0
)
e3
:
SetCondition
(
c100200138
.
setcon2
)
c
:
RegisterEffect
(
e3
)
end
function
c100200138
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0xed
)
and
not
c
:
IsCode
(
100200138
)
and
c
:
IsAbleToHand
()
end
function
c100200138
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100200138
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c100200138
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100200138
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
function
c100200138
.
setcfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xed
)
end
function
c100200138
.
setcon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
not
Duel
.
IsExistingMatchingCard
(
c100200138
.
setcfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
e
:
GetHandler
())
end
function
c100200138
.
setcon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
c100200138
.
setcfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
e
:
GetHandler
())
end
function
c100200138
.
setfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCanTurnSet
()
end
function
c100200138
.
settg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
c
=
e
:
GetHandler
()
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
~=
c
and
c100200138
.
setfilter
(
chkc
)
end
if
chk
==
0
then
return
c100200138
.
setfilter
(
c
)
and
Duel
.
IsExistingTarget
(
c100200138
.
setfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
c
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_POSCHANGE
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100200138
.
setfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
c
)
g
:
AddCard
(
c
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_POSITION
,
g
,
2
,
0
,
0
)
end
function
c100200138
.
setop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
and
tc
:
IsRelateToEffect
(
e
)
then
local
g
=
Group
.
FromCards
(
c
,
tc
)
Duel
.
ChangePosition
(
g
,
POS_FACEDOWN_DEFENSE
)
end
end
expansions/script/c100221001.lua
0 → 100644
View file @
daf33731
--超天新龍オッドアイズ・レボリューション・ドラゴン
--Odd-Eyes Revolution Dragon
--Scripted by Eerie Code
function
c100221001
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
aux
.
EnablePendulumAttribute
(
c
)
--splimit
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetRange
(
LOCATION_PZONE
)
e1
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
+
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CANNOT_NEGATE
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetTarget
(
c100221001
.
psplimit
)
c
:
RegisterEffect
(
e1
)
--special summon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100221001
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetRange
(
LOCATION_PZONE
)
e2
:
SetTarget
(
c100221001
.
sptg
)
e2
:
SetOperation
(
c100221001
.
spop
)
c
:
RegisterEffect
(
e2
)
--spsummon condition
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e3
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e3
:
SetValue
(
c100221001
.
splimit
)
c
:
RegisterEffect
(
e3
)
--special summon rule
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e4
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e4
:
SetRange
(
LOCATION_HAND
)
e4
:
SetCondition
(
c100221001
.
hspcon
)
e4
:
SetOperation
(
c100221001
.
hspop
)
c
:
RegisterEffect
(
e4
)
--tohand
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetDescription
(
aux
.
Stringid
(
100221001
,
1
))
e5
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e5
:
SetType
(
EFFECT_TYPE_IGNITION
)
e5
:
SetRange
(
LOCATION_HAND
)
e5
:
SetCost
(
c100221001
.
thcost
)
e5
:
SetTarget
(
c100221001
.
thtg
)
e5
:
SetOperation
(
c100221001
.
thop
)
c
:
RegisterEffect
(
e5
)
--atk/def
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
)
e6
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e6
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e6
:
SetRange
(
LOCATION_MZONE
)
e6
:
SetValue
(
c100221001
.
atkval
)
c
:
RegisterEffect
(
e6
)
local
e7
=
e6
:
Clone
()
e7
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
c
:
RegisterEffect
(
e7
)
--todeck
local
e8
=
Effect
.
CreateEffect
(
c
)
e8
:
SetCategory
(
CATEGORY_TODECK
)
e8
:
SetType
(
EFFECT_TYPE_IGNITION
)
e8
:
SetRange
(
LOCATION_MZONE
)
e8
:
SetCountLimit
(
1
)
e8
:
SetCost
(
c100221001
.
tdcost
)
e8
:
SetTarget
(
c100221001
.
tdtg
)
e8
:
SetOperation
(
c100221001
.
tdop
)
c
:
RegisterEffect
(
e8
)
end
function
c100221001
.
psplimit
(
e
,
c
,
tp
,
sumtp
,
sumpos
)
return
not
c
:
IsRace
(
RACE_DRAGON
)
and
bit
.
band
(
sumtp
,
SUMMON_TYPE_PENDULUM
)
==
SUMMON_TYPE_PENDULUM
end
function
c100221001
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsRace
(
RACE_DRAGON
)
and
c
:
IsType
(
TYPE_FUSION
+
TYPE_SYNCHRO
+
TYPE_XYZ
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100221001
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
tp
)
and
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
c100221001
.
spfilter
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c100221001
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100221001
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
e
:
GetHandler
(),
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
end
function
c100221001
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
c
:
IsRelateToEffect
(
e
)
and
Duel
.
Destroy
(
c
,
REASON_EFFECT
)
~=
0
and
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
function
c100221001
.
splimit
(
e
,
se
,
sp
,
st
)
return
bit
.
band
(
st
,
SUMMON_TYPE_PENDULUM
)
==
SUMMON_TYPE_PENDULUM
and
e
:
GetHandler
():
IsLocation
(
LOCATION_HAND
)
end
function
c100221001
.
hspfilter1
(
c
,
g
,
ft
)
local
rg
=
Group
.
FromCards
(
c
)
local
ct
=
ft
if
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
GetSequence
()
<
5
then
ct
=
ct
+
1
end
return
c
:
IsType
(
TYPE_FUSION
)
and
g
:
IsExists
(
c100221001
.
hspfilter2
,
1
,
rg
,
g
,
rg
,
ft
)
end
function
c100221001
.
hspfilter2
(
c
,
g
,
rg
,
ft
)
local
rg2
=
rg
:
Clone
()
rg2
:
AddCard
(
c
)
local
ct
=
ft
if
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
GetSequence
()
<
5
then
ct
=
ct
+
1
end
return
c
:
IsType
(
TYPE_SYNCHRO
)
and
g
:
IsExists
(
c100221001
.
hspfilter3
,
1
,
rg2
,
ft
)
end
function
c100221001
.
hspfilter3
(
c
,
ft
)
local
ct
=
ft
if
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
GetSequence
()
<
5
then
ct
=
ct
+
1
end
return
c
:
IsType
(
TYPE_XYZ
)
and
ct
>
0
end
function
c100221001
.
hspcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
ft
<-
2
then
return
false
end
local
g
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
Card
.
IsRace
,
nil
,
RACE_DRAGON
)
return
g
:
IsExists
(
c100221001
.
hspfilter1
,
1
,
nil
,
g
,
ft
)
end
function
c100221001
.
hspop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
Card
.
IsRace
,
nil
,
RACE_DRAGON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g1
=
g
:
FilterSelect
(
tp
,
c100221001
.
hspfilter1
,
1
,
1
,
nil
,
g
,
ft
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g2
=
g
:
FilterSelect
(
tp
,
c100221001
.
hspfilter2
,
1
,
1
,
g1
,
g
,
g1
,
ft
)
g1
:
Merge
(
g2
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g3
=
g
:
FilterSelect
(
tp
,
c100221001
.
hspfilter3
,
1
,
1
,
g1
,
ft
)
g1
:
Merge
(
g3
)
Duel
.
Release
(
g1
,
REASON_COST
+
REASON_MATERIAL
)
end
function
c100221001
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsDiscardable
()
and
Duel
.
CheckLPCost
(
tp
,
500
)
end
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
+
REASON_DISCARD
)
Duel
.
PayLPCost
(
tp
,
500
)
end
function
c100221001
.
thfilter
(
c
)
return
c
:
IsType
(
TYPE_PENDULUM
)
and
c
:
IsRace
(
RACE_DRAGON
)
and
c
:
IsLevelBelow
(
8
)
and
c
:
IsAbleToHand
()
end
function
c100221001
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100221001
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c100221001
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100221001
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
function
c100221001
.
atkval
(
e
,
c
)
return
math.floor
(
Duel
.
GetLP
(
1
-
e
:
GetHandlerPlayer
())
/
2
)
end
function
c100221001
.
tdcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
PayLPCost
(
tp
,
math.floor
(
Duel
.
GetLP
(
tp
)
/
2
))
end
function
c100221001
.
tdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToDeck
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
e
:
GetHandler
())
if
chk
==
0
then
return
g
:
GetCount
()
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
g
,
g
:
GetCount
(),
0
,
0
)
end
function
c100221001
.
tdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToDeck
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
e
:
GetHandler
())
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
end
end
expansions/script/c100222001.lua
0 → 100644
View file @
daf33731
--白闘気双頭神龍
--White Aura Biphamet
function
c100222001
.
initial_effect
(
c
)
--synchro summon
aux
.
AddSynchroProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsType
,
TYPE_SYNCHRO
),
aux
.
NonTuner
(
nil
),
1
)
c
:
EnableReviveLimit
()
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100222001
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_TOKEN
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCondition
(
c100222001
.
tkcon
)
e1
:
SetTarget
(
c100222001
.
tktg
)
e1
:
SetOperation
(
c100222001
.
tkop
)
c
:
RegisterEffect
(
e1
)
--token
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100222001
,
1
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_TOKEN
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetCountLimit
(
1
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetHintTiming
(
0
,
TIMING_BATTLE_START
+
TIMING_END_PHASE
)
e2
:
SetCondition
(
c100222001
.
tkcon2
)
e2
:
SetTarget
(
c100222001
.
tktg
)
e2
:
SetOperation
(
c100222001
.
tkop2
)
c
:
RegisterEffect
(
e2
)
--
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
100222001
,
2
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetCondition
(
c100222001
.
spcon
)
e3
:
SetTarget
(
c100222001
.
sptg
)
e3
:
SetOperation
(
c100222001
.
spop
)
c
:
RegisterEffect
(
e3
)
end
function
c100222001
.
tkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetTurnPlayer
()
==
tp
and
c
:
IsSummonType
(
SUMMON_TYPE_SYNCHRO
)
end
function
c100222001
.
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
,
100222001
+
100
,
0
,
0x4011
,
3300
,
3000
,
10
,
RACE_FISH
,
ATTRIBUTE_WATER
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOKEN
,
nil
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
0
)
end
function
c100222001
.
tkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
100222001
+
100
,
0
,
0x4011
,
3300
,
3000
,
10
,
RACE_FISH
,
ATTRIBUTE_WATER
)
then
local
token
=
Duel
.
CreateToken
(
tp
,
100222001
+
100
)
Duel
.
SpecialSummon
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
end
function
c100222001
.
tkcon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetTurnPlayer
()
~=
tp
and
not
Duel
.
IsExistingMatchingCard
(
Card
.
IsType
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
TYPE_TOKEN
)
end
function
c100222001
.
tkop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
100222001
+
100
,
0
,
0x4011
,
3300
,
3000
,
10
,
RACE_FISH
,
ATTRIBUTE_WATER
)
then
local
token
=
Duel
.
CreateToken
(
tp
,
100222001
+
100
)
Duel
.
SpecialSummon
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
function
c100222001
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsReason
(
REASON_DESTROY
)
and
rp
~=
tp
and
c
:
IsReason
(
REASON_EFFECT
)
and
c
:
IsPreviousLocation
(
LOCATION_MZONE
)
and
c
:
GetPreviousControler
()
==
tp
end
function
c100222001
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
Duel
.
IsExistingMatchingCard
(
Card
.
IsCode
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
100222001
+
100
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c100222001
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
e
:
GetHandler
(),
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
end
expansions/script/c100230009.lua
0 → 100644
View file @
daf33731
--武力の軍奏
--Tin Musical Battlemech
--Script by nekrozar
function
c100230009
.
initial_effect
(
c
)
--synchro summon
aux
.
AddSynchroProcedure
(
c
,
nil
,
aux
.
NonTuner
(
nil
),
1
)
c
:
EnableReviveLimit
()
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100230009
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DELAY
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
,
100230009
)
e1
:
SetCondition
(
c100230009
.
spcon
)
e1
:
SetTarget
(
c100230009
.
sptg
)
e1
:
SetOperation
(
c100230009
.
spop
)
c
:
RegisterEffect
(
e1
)
--add tuner
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_BE_MATERIAL
)
e2
:
SetCondition
(
c100230009
.
tncon
)
e2
:
SetOperation
(
c100230009
.
tnop
)
c
:
RegisterEffect
(
e2
)
end
function
c100230009
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_SYNCHRO
)
end
function
c100230009
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsType
(
TYPE_TUNER
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
function
c100230009
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c100230009
.
spfilter
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c100230009
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100230009
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
end
function
c100230009
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
Duel
.
SpecialSummonStep
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_DISABLE
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_DISABLE_EFFECT
)
e2
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e2
)
end
Duel
.
SpecialSummonComplete
()
end
function
c100230009
.
tncon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
r
==
REASON_SYNCHRO
end
function
c100230009
.
tnop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
rc
=
c
:
GetReasonCard
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_ADD_TYPE
)
e1
:
SetValue
(
TYPE_TUNER
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
rc
:
RegisterEffect
(
e1
)
end
expansions/script/c100230010.lua
0 → 100644
View file @
daf33731
--キキナガシ風鳥
--Disdainful Bird of Paradise
--Script by nekrozar
function
c100230010
.
initial_effect
(
c
)
--xyz summon
aux
.
AddXyzProcedure
(
c
,
nil
,
1
,
2
)
c
:
EnableReviveLimit
()
--immune
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_IMMUNE_EFFECT
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetValue
(
c100230010
.
efilter
)
c
:
RegisterEffect
(
e1
)
--indes
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100230010
,
0
))
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCost
(
c100230010
.
indcost
)
e2
:
SetOperation
(
c100230010
.
indop
)
c
:
RegisterEffect
(
e2
)
end
function
c100230010
.
efilter
(
e
,
te
)
return
te
:
GetOwner
()
~=
e
:
GetOwner
()
end
function
c100230010
.
indcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
CheckRemoveOverlayCard
(
tp
,
2
,
REASON_COST
)
end
e
:
GetHandler
():
RemoveOverlayCard
(
tp
,
2
,
2
,
REASON_COST
)
end
function
c100230010
.
indop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetCode
(
EFFECT_INDESTRUCTABLE_BATTLE
)
e1
:
SetValue
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_AVOID_BATTLE_DAMAGE
)
c
:
RegisterEffect
(
e2
)
end
end
expansions/script/c100305000.lua
0 → 100644
View file @
daf33731
--イーバ
--EBE
--Scripted by Eerie Code
function
c100305000
.
initial_effect
(
c
)
--search
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100305000
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_TO_GRAVE
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
100305000
)
e1
:
SetTarget
(
c100305000
.
thtg
)
e1
:
SetOperation
(
c100305000
.
thop
)
c
:
RegisterEffect
(
e1
)
end
function
c100305000
.
cfilter
(
c
)
return
(
c
:
IsFaceup
()
or
c
:
IsLocation
(
LOCATION_GRAVE
))
and
c
:
IsRace
(
RACE_FAIRY
)
and
c
:
IsAttribute
(
ATTRIBUTE_LIGHT
)
and
c
:
IsAbleToRemoveAsCost
()
end
function
c100305000
.
filter
(
c
)
return
c
:
IsLevelBelow
(
2
)
and
c
:
IsRace
(
RACE_FAIRY
)
and
c
:
IsAttribute
(
ATTRIBUTE_LIGHT
)
and
not
c
:
IsCode
(
100305000
)
and
c
:
IsAbleToHand
()
end
function
c100305000
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100305000
.
cfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
1
,
e
:
GetHandler
())
and
Duel
.
IsExistingMatchingCard
(
c100305000
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
local
dg
=
Duel
.
GetMatchingGroup
(
c100305000
.
filter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
local
ct
=
math.min
(
2
,
dg
:
GetClassCount
(
Card
.
GetCode
))
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
rg
=
Duel
.
SelectMatchingCard
(
tp
,
c100305000
.
cfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
1
,
ct
,
e
:
GetHandler
())
local
rc
=
Duel
.
Remove
(
rg
,
POS_FACEUP
,
REASON_COST
)
Duel
.
SetTargetParam
(
rc
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
rc
,
tp
,
LOCATION_DECK
)
end
function
c100305000
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
dg
=
Duel
.
GetMatchingGroup
(
c100305000
.
filter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
local
ct
=
math.min
(
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PARAM
),
dg
:
GetClassCount
(
Card
.
GetCode
))
if
ct
==
0
then
return
end
local
g
=
Group
.
CreateGroup
()
for
i
=
1
,
ct
do
local
tc
=
dg
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
g
:
AddCard
(
tc
)
dg
:
Remove
(
Card
.
IsCode
,
nil
,
tc
:
GetCode
())
end
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
expansions/script/c100305001.lua
0 → 100644
View file @
daf33731
--天空聖騎士アークパーシアス
--Angel Paladin Arch-Parshath
--Scripted by sahim
function
c100305001
.
initial_effect
(
c
)
--counter
local
e01
=
Effect
.
CreateEffect
(
c
)
e01
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e01
:
SetCode
(
EVENT_CHAINING
)
e01
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e01
:
SetOperation
(
c100305001
.
chop1
)
c
:
RegisterEffect
(
e01
)
local
e02
=
Effect
.
CreateEffect
(
c
)
e02
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e02
:
SetCode
(
EVENT_CHAIN_SOLVED
)
e02
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e02
:
SetOperation
(
c100305001
.
chop2
)
c
:
RegisterEffect
(
e02
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100305001
,
0
))
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e1
:
SetCode
(
EVENT_CHAIN_END
)
e1
:
SetCondition
(
c100305001
.
spcon1
)
e1
:
SetCost
(
c100305001
.
spcost
)
e1
:
SetTarget
(
c100305001
.
sptg
)
e1
:
SetOperation
(
c100305001
.
spop
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EVENT_CHAIN_NEGATED
)
e2
:
SetCondition
(
c100305001
.
spcon2
)
c
:
RegisterEffect
(
e2
)
e01
:
SetLabelObject
(
e1
)
e02
:
SetLabelObject
(
e1
)
--pierce
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_PIERCE
)
c
:
RegisterEffect
(
e3
)
--search
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
100305001
,
1
))
e4
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e4
:
SetCode
(
EVENT_BATTLE_DAMAGE
)
e4
:
SetCondition
(
c100305001
.
thcon
)
e4
:
SetTarget
(
c100305001
.
thtg
)
e4
:
SetOperation
(
c100305001
.
thop
)
c
:
RegisterEffect
(
e4
)
end
function
c100305001
.
chop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
e
:
GetLabelObject
():
SetLabel
(
0
)
end
function
c100305001
.
chop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
rp
~=
tp
or
not
re
:
IsActiveType
(
TYPE_COUNTER
)
then
return
end
e
:
GetLabelObject
():
SetLabel
(
1
)
end
function
c100305001
.
spcon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
e
:
GetLabel
()
==
1
end
function
c100305001
.
spcon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
de
,
dp
=
Duel
.
GetChainInfo
(
ev
,
CHAININFO_DISABLE_REASON
,
CHAININFO_DISABLE_PLAYER
)
return
dp
==
tp
end
function
c100305001
.
cfilter
(
c
)
return
c
:
IsRace
(
RACE_FAIRY
)
and
c
:
IsAbleToRemoveAsCost
()
end
function
c100305001
.
mzfilter
(
c
)
return
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
GetSequence
()
<
5
end
function
c100305001
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
rg
=
Duel
.
GetMatchingGroup
(
c100305001
.
cfilter
,
tp
,
LOCATION_HAND
+
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=-
ft
+
1
if
chk
==
0
then
return
ft
>-
2
and
rg
:
GetCount
()
>
1
and
(
ft
>
0
or
rg
:
IsExists
(
c100305001
.
mzfilter
,
ct
,
nil
))
end
local
g
=
nil
if
ft
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
g
=
rg
:
Select
(
tp
,
2
,
2
,
nil
)
elseif
ft
==
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
g
=
rg
:
FilterSelect
(
tp
,
c100305001
.
mzfilter
,
1
,
1
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g2
=
rg
:
Select
(
tp
,
1
,
1
,
g
:
GetFirst
())
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
g
=
rg
:
FilterSelect
(
tp
,
c100305001
.
mzfilter
,
2
,
2
,
nil
)
end
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
end
function
c100305001
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c100305001
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
function
c100305001
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
ep
~=
tp
end
function
c100305001
.
thfilter
(
c
)
return
(
c
:
IsSetCard
(
0x208
)
or
c
:
IsCode
(
18036057
,
69514125
,
76925842
,
12510878
)
or
c
:
IsType
(
TYPE_COUNTER
))
and
c
:
IsAbleToHand
()
end
function
c100305001
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100305001
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c100305001
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100305001
.
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
expansions/script/c100305002.lua
0 → 100644
View file @
daf33731
--天空賢者ミネルヴァ
--Angel Sage Minerva
--Scripted by Eerie Code
function
c100305002
.
initial_effect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_CHAIN_SOLVED
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCondition
(
c100305002
.
atkcon
)
e1
:
SetOperation
(
c100305002
.
atkop
)
c
:
RegisterEffect
(
e1
)
end
function
c100305002
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
re
:
GetHandler
():
IsType
(
TYPE_COUNTER
)
end
function
c100305002
.
thfilter
(
c
,
code
)
return
c
:
IsType
(
TYPE_COUNTER
)
and
not
c
:
IsCode
(
code
)
and
c
:
IsAbleToHand
()
end
function
c100305002
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetValue
(
500
)
e1
:
SetReset
(
RESET_EVENT
+
0x1ff0000
)
c
:
RegisterEffect
(
e1
)
local
rc
=
re
:
GetHandler
()
if
not
rc
then
return
end
local
code
=
rc
:
GetCode
()
local
g
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
c100305002
.
thfilter
),
tp
,
LOCATION_GRAVE
,
0
,
nil
,
code
)
if
Duel
.
IsEnvironment
(
56433456
)
and
g
:
GetCount
()
>
0
then
Duel
.
Hint
(
HINT_CARD
,
0
,
100305002
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
sg
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
Duel
.
SendtoHand
(
sg
,
nil
,
REASON_EFFECT
)
end
end
expansions/script/c100305003.lua
0 → 100644
View file @
daf33731
--力天使ヴァルキリア
--Power Angel Valkyria
--Scripted by Eerie Code
function
c100305003
.
initial_effect
(
c
)
--counter
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetOperation
(
c100305003
.
chop1
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_CHAIN_NEGATED
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetOperation
(
c100305003
.
chop2
)
c
:
RegisterEffect
(
e2
)
e1
:
SetLabelObject
(
e2
)
--special summon
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
100305003
,
0
))
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e3
:
SetCode
(
EVENT_CHAIN_END
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
,
100305003
)
e3
:
SetCondition
(
c100305003
.
thcon
)
e3
:
SetTarget
(
c100305003
.
thtg
)
e3
:
SetOperation
(
c100305003
.
thop
)
e3
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e3
)
end
function
c100305003
.
chop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
e
:
GetLabelObject
():
SetLabel
(
0
)
end
function
c100305003
.
chop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
de
,
dp
=
Duel
.
GetChainInfo
(
ev
,
CHAININFO_DISABLE_REASON
,
CHAININFO_DISABLE_PLAYER
)
if
dp
==
tp
then
e
:
SetLabel
(
1
)
end
end
function
c100305003
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetLabelObject
():
GetLabel
()
~=
0
end
function
c100305003
.
thfilter
(
c
)
return
c
:
IsRace
(
RACE_FAIRY
)
and
c
:
IsAttribute
(
ATTRIBUTE_LIGHT
)
and
c
:
IsAbleToHand
()
end
function
c100305003
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c100305003
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100305003
.
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
expansions/script/c100305025.lua
0 → 100644
View file @
daf33731
--パーシアスの神域
--Sanctuary of Parshath
--Scripted by Eerie Code
function
c100305025
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--change
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetCode
(
EFFECT_CHANGE_CODE
)
e2
:
SetRange
(
LOCATION_SZONE
+
LOCATION_GRAVE
)
e2
:
SetValue
(
56433456
)
c
:
RegisterEffect
(
e2
)
--atk/def
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e3
:
SetRange
(
LOCATION_SZONE
)
e3
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e3
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsRace
,
RACE_FAIRY
))
e3
:
SetValue
(
300
)
c
:
RegisterEffect
(
e3
)
local
e4
=
e3
:
Clone
()
e4
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
c
:
RegisterEffect
(
e4
)
--cannot be target/indestructable
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetType
(
EFFECT_TYPE_FIELD
)
e5
:
SetProperty
(
EFFECT_FLAG_SET_AVAILABLE
)
e5
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e5
:
SetRange
(
LOCATION_SZONE
)
e5
:
SetTargetRange
(
LOCATION_SZONE
,
LOCATION_SZONE
)
e5
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsPosition
,
POS_FACEDOWN
))
e5
:
SetValue
(
1
)
c
:
RegisterEffect
(
e5
)
local
e6
=
e5
:
Clone
()
e6
:
SetCode
(
EFFECT_CANNOT_BE_EFFECT_TARGET
)
c
:
RegisterEffect
(
e6
)
--to deck
local
e7
=
Effect
.
CreateEffect
(
c
)
e7
:
SetCategory
(
CATEGORY_TODECK
)
e7
:
SetType
(
EFFECT_TYPE_IGNITION
)
e7
:
SetRange
(
LOCATION_SZONE
)
e7
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e7
:
SetCountLimit
(
1
)
e7
:
SetTarget
(
c100305025
.
tdtg
)
e7
:
SetOperation
(
c100305025
.
tdop
)
c
:
RegisterEffect
(
e7
)
end
function
c100305025
.
tdfilter
(
c
,
e
)
return
(
c
:
IsRace
(
RACE_FAIRY
)
or
c
:
IsType
(
TYPE_COUNTER
))
and
c
:
IsAbleToDeck
()
and
(
not
e
or
c
:
IsCanBeEffectTarget
(
e
))
end
function
c100305025
.
tdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
false
end
local
g
=
Duel
.
GetMatchingGroup
(
c100305025
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
nil
,
e
)
if
chk
==
0
then
return
g
:
GetClassCount
(
Card
.
GetCode
)
>=
3
end
local
tg
=
Group
.
CreateGroup
()
repeat
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
sg
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
tg
:
Merge
(
sg
)
g
:
Remove
(
Card
.
IsCode
,
nil
,
sg
:
GetFirst
():
GetCode
())
until
tg
:
GetCount
()
==
3
Duel
.
SetTargetCard
(
tg
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
tg
,
tg
:
GetCount
(),
0
,
0
)
end
function
c100305025
.
tdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
tg
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
):
Filter
(
Card
.
IsRelateToEffect
,
nil
,
e
)
if
tg
:
GetCount
()
==
0
then
return
end
local
ct
=
Duel
.
SendtoDeck
(
tg
,
nil
,
0
,
REASON_EFFECT
)
if
ct
>
0
then
Duel
.
SortDecktop
(
tp
,
tp
,
ct
)
end
end
expansions/script/c100305031.lua
0 → 100644
View file @
daf33731
--輪廻のパーシアス
--Reincarnating Parshath
--Scripted by Eerie Code
function
c100305031
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_NEGATE
+
CATEGORY_TODECK
+
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetCondition
(
c100305031
.
condition
)
e1
:
SetCost
(
c100305031
.
cost
)
e1
:
SetTarget
(
c100305031
.
target
)
e1
:
SetOperation
(
c100305031
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c100305031
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
(
re
:
IsActiveType
(
TYPE_MONSTER
)
or
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
))
and
Duel
.
IsChainNegatable
(
ev
)
end
function
c100305031
.
cfilter
(
c
)
return
c
:
IsType
(
TYPE_COUNTER
)
and
not
c
:
IsPublic
()
end
function
c100305031
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100305031
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
e
:
GetHandler
())
and
(
Duel
.
IsExistingMatchingCard
(
Card
.
IsDiscardable
,
tp
,
LOCATION_HAND
,
0
,
1
,
e
:
GetHandler
())
or
Duel
.
IsPlayerAffectedByEffect
(
tp
,
EFFECT_DISCARD_COST_CHANGE
))
and
Duel
.
CheckLPCost
(
tp
,
1000
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_CONFIRM
)
local
cg
=
Duel
.
SelectMatchingCard
(
tp
,
c100305031
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
)
local
tc
=
cg
:
GetFirst
()
Duel
.
ConfirmCards
(
1
-
tp
,
cg
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_PUBLIC
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_CHAIN
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_CHAIN_SOLVED
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetOperation
(
c100305031
.
clearop
)
e2
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_CHAIN
)
e2
:
SetLabel
(
Duel
.
GetCurrentChain
())
e2
:
SetLabelObject
(
e1
)
tc
:
RegisterEffect
(
e2
)
if
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
EFFECT_DISCARD_COST_CHANGE
)
then
Duel
.
DiscardHand
(
tp
,
Card
.
IsDiscardable
,
1
,
1
,
REASON_COST
+
REASON_DISCARD
)
end
Duel
.
PayLPCost
(
tp
,
1000
)
end
function
c100305031
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_NEGATE
,
eg
,
1
,
0
,
0
)
if
re
:
GetHandler
():
IsAbleToDeck
()
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
eg
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_EXTRA
)
end
end
function
c100305031
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x208
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100305031
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ec
=
re
:
GetHandler
()
if
Duel
.
NegateActivation
(
ev
)
and
ec
:
IsRelateToEffect
(
re
)
then
ec
:
CancelToGrave
()
if
Duel
.
SendtoDeck
(
ec
,
nil
,
2
,
REASON_EFFECT
)
~=
0
and
ec
:
IsLocation
(
LOCATION_DECK
+
LOCATION_EXTRA
)
then
local
loc
=
0
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
then
loc
=
loc
+
LOCATION_DECK
end
if
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
then
loc
=
loc
+
LOCATION_EXTRA
end
local
g
=
Duel
.
GetMatchingGroup
(
c100305031
.
spfilter
,
tp
,
loc
,
0
,
nil
,
e
,
tp
)
if
loc
~=
0
and
g
:
GetCount
()
>
0
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
100305031
,
0
))
then
Duel
.
BreakEffect
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
end
end
function
c100305031
.
clearop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
ev
~=
e
:
GetLabel
()
then
return
end
e
:
GetLabelObject
():
Reset
()
e
:
Reset
()
end
expansions/script/c100407001.lua
0 → 100644
View file @
daf33731
--ミレニアム・アイズ・イリュージョニスト
--Millennium-Eyes Illusionist
function
c100407001
.
initial_effect
(
c
)
--equip
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100407001
,
0
))
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
100407001
)
e1
:
SetCost
(
c100407001
.
eqcost
)
e1
:
SetTarget
(
c100407001
.
eqtg
)
e1
:
SetOperation
(
c100407001
.
eqop
)
c
:
RegisterEffect
(
e1
)
--to hand
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100407001
,
1
))
e2
:
SetCategory
(
CATEGORY_TOHAND
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCountLimit
(
1
,
100407001
+
100
)
e2
:
SetCondition
(
c100407001
.
thcon
)
e2
:
SetTarget
(
c100407001
.
thtg
)
e2
:
SetOperation
(
c100407001
.
thop
)
c
:
RegisterEffect
(
e2
)
end
function
c100407001
.
eqcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsDiscardable
()
end
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
+
REASON_DISCARD
)
end
function
c100407001
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsAbleToChangeControler
()
end
function
c100407001
.
eqfilter
(
c
)
local
m
=
_G
[
"c"
..
c
:
GetCode
()]
return
c
:
IsFaceup
()
and
((
c
:
IsSetCard
(
0x20a
)
and
c
:
IsType
(
TYPE_FUSION
))
or
c
:
IsCode
(
64631466
,
63519819
))
and
m
.
CanEquipMonster
(
c
)
end
function
c100407001
.
eqtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsOnField
()
and
c100407001
.
filter
(
chkc
)
and
chkc
~=
e
:
GetHandler
()
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c100407001
.
filter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c100407001
.
eqfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100407001
.
filter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
g
,
1
,
0
,
0
)
end
function
c100407001
.
eqop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc1
=
Duel
.
GetFirstTarget
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100407001
.
eqfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
local
tc2
=
g
:
GetFirst
()
if
not
tc2
then
return
end
local
m
=
_G
[
"c"
..
tc2
:
GetCode
()]
if
tc1
:
IsFaceup
()
and
tc1
:
IsRelateToEffect
(
e
)
and
tc1
:
IsControler
(
1
-
tp
)
then
m
.
EquipMonster
(
tc2
,
tp
,
tc1
)
end
end
function
c100407001
.
thfilter
(
c
,
e
)
return
(
c
:
IsSetCard
(
0x20a
)
and
c
:
IsType
(
TYPE_FUSION
))
or
c
:
IsCode
(
64631466
,
63519819
)
end
function
c100407001
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
c100407001
.
thfilter
,
1
,
nil
)
end
function
c100407001
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c100407001
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
Duel
.
SendtoHand
(
e
:
GetHandler
(),
nil
,
REASON_EFFECT
)
end
end
expansions/script/c100407003.lua
0 → 100644
View file @
daf33731
--ミレニアム・アイズ・サクリファイス
--Millennium-Eyes Restrict
function
c100407003
.
initial_effect
(
c
)
--fusion material
c
:
EnableReviveLimit
()
aux
.
AddFusionProcCodeFun
(
c
,
64631466
,
aux
.
FilterBoolFunction
(
Card
.
IsFusionType
,
TYPE_EFFECT
),
1
,
true
,
true
)
--Equip
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100407003
,
0
))
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCondition
(
c100407003
.
eqcon
)
e1
:
SetTarget
(
c100407003
.
eqtg
)
e1
:
SetOperation
(
c100407003
.
eqop
)
c
:
RegisterEffect
(
e1
)
--atk
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetValue
(
c100407003
.
atkval
)
c
:
RegisterEffect
(
e2
)
-- def
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
e3
:
SetValue
(
c100407003
.
defval
)
c
:
RegisterEffect
(
e3
)
--disable
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCode
(
EFFECT_DISABLE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e4
:
SetTarget
(
c100407003
.
distg
)
c
:
RegisterEffect
(
e4
)
--atk limit
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetType
(
EFFECT_TYPE_FIELD
)
e5
:
SetCode
(
EFFECT_CANNOT_ATTACK
)
e5
:
SetRange
(
LOCATION_MZONE
)
e5
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e5
:
SetTarget
(
c100407003
.
distg
)
c
:
RegisterEffect
(
e5
)
end
function
c100407003
.
CanEquipMonster
(
c
)
return
true
end
function
c100407003
.
eqcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
return
ep
~=
tp
and
re
:
IsActiveType
(
TYPE_MONSTER
)
end
function
c100407003
.
eqfilter
(
c
)
return
(
c
:
IsFaceup
()
or
c
:
IsLocation
(
LOCATION_GRAVE
))
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsAbleToChangeControler
()
end
function
c100407003
.
eqtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
+
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
1
-
tp
)
and
c100407003
.
eqfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c100407003
.
eqfilter
,
tp
,
0
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100407003
.
eqfilter
,
tp
,
0
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
g
,
1
,
0
,
0
)
end
function
c100407003
.
eqlimit
(
e
,
c
)
return
e
:
GetOwner
()
==
c
end
function
c100407003
.
EquipMonster
(
c
,
tp
,
tc
)
if
not
Duel
.
Equip
(
tp
,
tc
,
c
,
false
)
then
return
end
--Add Equip limit
tc
:
RegisterFlagEffect
(
100407003
,
RESET_EVENT
+
0x1fe0000
,
0
,
0
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_OWNER_RELATE
)
e1
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetValue
(
c100407003
.
eqlimit
)
tc
:
RegisterEffect
(
e1
)
end
function
c100407003
.
eqop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsFaceup
()
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsType
(
TYPE_MONSTER
)
and
tc
:
IsControler
(
1
-
tp
)
then
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
c100407003
.
EquipMonster
(
c
,
tp
,
tc
)
else
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
end
end
end
function
c100407003
.
atkval
(
e
,
c
)
local
atk
=
0
local
g
=
c
:
GetEquipGroup
()
local
tc
=
g
:
GetFirst
()
while
tc
do
if
tc
:
GetFlagEffect
(
100407003
)
~=
0
and
tc
:
IsFaceup
()
and
tc
:
GetAttack
()
>=
0
then
atk
=
atk
+
tc
:
GetAttack
()
end
tc
=
g
:
GetNext
()
end
return
atk
end
function
c100407003
.
defval
(
e
,
c
)
local
atk
=
0
local
g
=
c
:
GetEquipGroup
()
local
tc
=
g
:
GetFirst
()
while
tc
do
if
tc
:
GetFlagEffect
(
100407003
)
~=
0
and
tc
:
IsFaceup
()
and
tc
:
GetDefense
()
>=
0
then
atk
=
atk
+
tc
:
GetDefense
()
end
tc
=
g
:
GetNext
()
end
return
atk
end
function
c100407003
.
disfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
GetFlagEffect
(
100407003
)
~=
0
end
function
c100407003
.
distg
(
e
,
c
)
local
g
=
e
:
GetHandler
():
GetEquipGroup
():
Filter
(
c100407003
.
disfilter
,
nil
)
return
c
:
IsFaceup
()
and
g
:
IsExists
(
Card
.
IsCode
,
1
,
nil
,
c
:
GetCode
())
end
expansions/script/c100407004.lua
0 → 100644
View file @
daf33731
--サクリファイス・フュージョン
--Relinquished Fusion
function
c100407004
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_FUSION_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetTarget
(
c100407004
.
target
)
e1
:
SetOperation
(
c100407004
.
activate
)
c
:
RegisterEffect
(
e1
)
--equip
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100407004
,
0
))
e2
:
SetCategory
(
CATEGORY_EQUIP
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCost
(
c100407004
.
eqcost
)
e2
:
SetTarget
(
c100407004
.
eqtg
)
e2
:
SetOperation
(
c100407004
.
eqop
)
c
:
RegisterEffect
(
e2
)
end
function
c100407004
.
filter0
(
c
)
return
c
:
IsAbleToRemove
()
end
function
c100407004
.
filter1
(
c
,
e
)
return
c
:
IsAbleToRemove
()
and
not
c
:
IsImmuneToEffect
(
e
)
end
function
c100407004
.
filter2
(
c
,
e
,
tp
,
m
,
f
,
chkf
)
return
c
:
IsType
(
TYPE_FUSION
)
and
(
not
f
or
f
(
c
))
and
(
c
:
IsSetCard
(
0x20a
)
or
c
:
IsCode
(
63519819
))
and
c
:
IsCanBeSpecialSummoned
(
e
,
SUMMON_TYPE_FUSION
,
tp
,
false
,
false
)
and
c
:
CheckFusionMaterial
(
m
,
nil
,
chkf
)
end
function
c100407004
.
filter3
(
c
)
return
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeFusionMaterial
()
and
c
:
IsAbleToRemove
()
end
function
c100407004
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
local
chkf
=
tp
local
mg1
=
Duel
.
GetFusionMaterial
(
tp
):
Filter
(
c100407004
.
filter0
,
nil
)
local
mg2
=
Duel
.
GetMatchingGroup
(
c100407004
.
filter3
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
nil
)
mg1
:
Merge
(
mg2
)
local
res
=
Duel
.
IsExistingMatchingCard
(
c100407004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
if
not
res
then
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
if
ce
~=
nil
then
local
fgroup
=
ce
:
GetTarget
()
local
mg3
=
fgroup
(
ce
,
e
,
tp
)
local
mf
=
ce
:
GetValue
()
res
=
Duel
.
IsExistingMatchingCard
(
c100407004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg3
,
mf
,
chkf
)
end
end
return
res
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
end
function
c100407004
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
chkf
=
tp
local
mg1
=
Duel
.
GetFusionMaterial
(
tp
):
Filter
(
c100407004
.
filter1
,
nil
,
e
)
local
mg2
=
Duel
.
GetMatchingGroup
(
c100407004
.
filter3
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
nil
)
mg1
:
Merge
(
mg2
)
local
sg1
=
Duel
.
GetMatchingGroup
(
c100407004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
local
mg3
=
nil
local
sg2
=
nil
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
if
ce
~=
nil
then
local
fgroup
=
ce
:
GetTarget
()
mg3
=
fgroup
(
ce
,
e
,
tp
)
local
mf
=
ce
:
GetValue
()
sg2
=
Duel
.
GetMatchingGroup
(
c100407004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg3
,
mf
,
chkf
)
end
if
sg1
:
GetCount
()
>
0
or
(
sg2
~=
nil
and
sg2
:
GetCount
()
>
0
)
then
local
sg
=
sg1
:
Clone
()
if
sg2
then
sg
:
Merge
(
sg2
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
local
tc
=
tg
:
GetFirst
()
if
sg1
:
IsContains
(
tc
)
and
(
sg2
==
nil
or
not
sg2
:
IsContains
(
tc
)
or
not
Duel
.
SelectYesNo
(
tp
,
ce
:
GetDescription
()))
then
local
mat1
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg1
,
nil
,
chkf
)
tc
:
SetMaterial
(
mat1
)
Duel
.
Remove
(
mat1
,
POS_FACEUP
,
REASON_EFFECT
+
REASON_MATERIAL
+
REASON_FUSION
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_FUSION
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
else
local
mat2
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg3
,
nil
,
chkf
)
local
fop
=
ce
:
GetOperation
()
fop
(
ce
,
e
,
tp
,
tc
,
mat2
)
end
tc
:
CompleteProcedure
()
end
end
function
c100407004
.
eqcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemoveAsCost
()
end
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_COST
)
end
function
c100407004
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsAbleToChangeControler
()
end
function
c100407004
.
eqfilter
(
c
)
local
m
=
_G
[
"c"
..
c
:
GetCode
()]
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x20a
)
or
c
:
IsCode
(
64631466
,
63519819
))
and
m
.
CanEquipMonster
(
c
)
end
function
c100407004
.
eqtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
tp
)
and
c100407004
.
filter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c100407004
.
filter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c100407004
.
eqfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100407004
.
filter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
g
,
1
,
0
,
0
)
end
function
c100407004
.
eqop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc1
=
Duel
.
GetFirstTarget
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100407004
.
eqfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
local
tc2
=
g
:
GetFirst
()
local
m
=
_G
[
"c"
..
tc2
:
GetCode
()]
if
tc1
:
IsFaceup
()
and
tc1
:
IsRelateToEffect
(
e
)
and
tc1
:
IsControler
(
1
-
tp
)
and
tc2
then
m
.
EquipMonster
(
tc2
,
tp
,
tc1
)
end
end
expansions/script/c100407007.lua
0 → 100644
View file @
daf33731
--寄生虫パラノイド
--Parasite Paranoid
--Scripted by Eerie Code
function
c100407007
.
initial_effect
(
c
)
--equip
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
100407007
)
e1
:
SetTarget
(
c100407007
.
eqtg
)
e1
:
SetOperation
(
c100407007
.
eqop
)
c
:
RegisterEffect
(
e1
)
--to hand
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100407007
,
1
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCode
(
EVENT_TO_GRAVE
)
e2
:
SetCondition
(
c100407007
.
spcon
)
e2
:
SetTarget
(
c100407007
.
sptg
)
e2
:
SetOperation
(
c100407007
.
spop
)
c
:
RegisterEffect
(
e2
)
end
function
c100407007
.
eqtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsFaceup
()
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingTarget
(
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
SelectTarget
(
tp
,
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
end
function
c100407007
.
eqop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
then
return
end
if
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsFacedown
()
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<=
0
or
tc
:
IsFacedown
()
or
not
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SendtoGrave
(
c
,
REASON_EFFECT
)
return
end
Duel
.
Equip
(
tp
,
c
,
tc
,
true
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetValue
(
c100407007
.
eqlimit
)
e1
:
SetLabelObject
(
tc
)
c
:
RegisterEffect
(
e1
)
--race
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_EQUIP
)
e2
:
SetCode
(
EFFECT_CHANGE_RACE
)
e2
:
SetValue
(
RACE_INSECT
)
e2
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
c
:
RegisterEffect
(
e2
)
--cannot attack
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_EQUIP
)
e3
:
SetCode
(
EFFECT_CANNOT_SELECT_BATTLE_TARGET
)
e3
:
SetValue
(
c100407007
.
atlimit
)
e3
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
c
:
RegisterEffect
(
e3
)
--disable
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e4
:
SetRange
(
LOCATION_SZONE
)
e4
:
SetLabelObject
(
tc
)
e4
:
SetCondition
(
c100407007
.
discon
)
e4
:
SetOperation
(
c100407007
.
disop
)
e4
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
c
:
RegisterEffect
(
e4
)
end
function
c100407007
.
eqlimit
(
e
,
c
)
return
c
==
e
:
GetLabelObject
()
end
function
c100407007
.
atlimit
(
e
,
c
)
return
c
:
IsRace
(
RACE_INSECT
)
end
function
c100407007
.
disfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsRace
(
RACE_INSECT
)
end
function
c100407007
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
local
rc
=
re
:
GetHandler
()
if
not
tc
or
rc
~=
tc
then
return
false
end
if
not
re
:
IsHasProperty
(
EFFECT_FLAG_CARD_TARGET
)
then
return
false
end
local
g
=
Duel
.
GetChainInfo
(
ev
,
CHAININFO_TARGET_CARDS
)
return
g
and
g
:
IsExists
(
c100407007
.
disfilter
,
1
,
nil
)
and
Duel
.
IsChainNegatable
(
ev
)
end
function
c100407007
.
disop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
NegateEffect
(
ev
)
end
function
c100407007
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_SZONE
)
end
function
c100407007
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsRace
(
RACE_INSECT
)
and
c
:
IsLevelAbove
(
7
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
true
,
false
)
end
function
c100407007
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100407007
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
function
c100407007
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100407007
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
true
,
false
,
POS_FACEUP
)
end
end
expansions/script/c100407008.lua
0 → 100644
View file @
daf33731
--究極変異態・インセクト女王
--Ultimately Mutated Insect Queen
--Scripted by Eerie Code
function
c100407008
.
initial_effect
(
c
)
c
:
EnableUnsummonable
()
--cannot special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e1
:
SetValue
(
c100407008
.
splimit
)
c
:
RegisterEffect
(
e1
)
--indes
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e2
:
SetCondition
(
c100407008
.
indcon
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsRace
,
RACE_INSECT
))
e2
:
SetValue
(
c100407008
.
indval
)
c
:
RegisterEffect
(
e2
)
--cannot be target
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EFFECT_CANNOT_BE_EFFECT_TARGET
)
e3
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e3
:
SetRange
(
LOCATION_SZONE
)
e3
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e3
:
SetCondition
(
c100407008
.
indcon
)
e3
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsRace
,
RACE_INSECT
))
e3
:
SetValue
(
aux
.
tgoval
)
c
:
RegisterEffect
(
e3
)
--chain attack
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
100407008
,
0
))
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e4
:
SetCode
(
EVENT_DAMAGE_STEP_END
)
e4
:
SetCondition
(
c100407008
.
atcon
)
e4
:
SetCost
(
c100407008
.
atcost
)
e4
:
SetOperation
(
c100407008
.
atop
)
c
:
RegisterEffect
(
e4
)
--spsummon
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetDescription
(
aux
.
Stringid
(
91512835
,
0
))
e5
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_TOKEN
)
e5
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e5
:
SetRange
(
LOCATION_MZONE
)
e5
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e5
:
SetCountLimit
(
1
)
e5
:
SetTarget
(
c100407008
.
sptg
)
e5
:
SetOperation
(
c100407008
.
spop
)
c
:
RegisterEffect
(
e4
)
end
function
c100407008
.
splimit
(
e
,
se
,
sp
,
st
)
return
se
:
IsHasType
(
EFFECT_TYPE_ACTIONS
)
end
function
c100407008
.
indfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_INSECT
)
end
function
c100407008
.
indcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
c100407008
.
indfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
e
:
GetHandler
())
end
function
c100407008
.
indval
(
e
,
re
,
rp
)
return
rp
~=
e
:
GetHandlerPlayer
()
end
function
c100407008
.
atcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
Duel
.
GetAttacker
()
==
c
and
c
:
IsChainAttackable
(
0
,
true
)
end
function
c100407008
.
atcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
CheckReleaseGroup
(
tp
,
nil
,
1
,
e
:
GetHandler
())
nd
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
nil
,
1
,
1
,
e
:
GetHandler
())
Duel
.
Release
(
g
,
REASON_COST
)
end
function
c100407008
.
atop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToBattle
()
then
return
end
Duel
.
ChainAttack
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_CANNOT_DIRECT_ATTACK
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_BATTLE
+
PHASE_DAMAGE_CAL
)
c
:
RegisterEffect
(
e1
)
end
function
c100407008
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
91512836
,
0
,
0x4011
,
100
,
100
,
1
,
RACE_INSECT
,
ATTRIBUTE_EARTH
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOKEN
,
nil
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
0
)
end
function
c100407008
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
not
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
91512836
,
0
,
0x4011
,
100
,
100
,
1
,
RACE_INSECT
,
ATTRIBUTE_EARTH
)
then
return
end
local
token
=
Duel
.
CreateToken
(
tp
,
91512836
)
Duel
.
SpecialSummon
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
expansions/script/c100407009.lua
0 → 100644
View file @
daf33731
--超進化の繭
--Super Cocoon of Evolution
--Scripted by Eerie Code
function
c100407009
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_RELEASE
+
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetTarget
(
c100407009
.
target
)
e1
:
SetOperation
(
c100407009
.
activate
)
c
:
RegisterEffect
(
e1
)
--shuffle and draw
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetCategory
(
CATEGORY_TODECK
+
CATEGORY_DRAW
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetCountLimit
(
1
,
100407009
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCost
(
aux
.
bfgcost
)
e2
:
SetTarget
(
c100407009
.
tdtg
)
e2
:
SetOperation
(
c100407009
.
tdop
)
c
:
RegisterEffect
(
e2
)
end
function
c100407009
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_INSECT
)
and
c
:
IsReleasableByEffect
()
and
c
:
GetEquipCount
()
>
0
end
function
c100407009
.
filter
(
c
,
e
,
tp
)
return
c
:
IsRace
(
RACE_INSECT
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
true
,
false
)
end
function
c100407009
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
local
loc
=
LOCATION_MZONE
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
loc
=
0
end
return
Duel
.
IsExistingMatchingCard
(
c100407009
.
cfilter
,
tp
,
LOCATION_MZONE
,
loc
,
1
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c100407009
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RELEASE
,
nil
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c100407009
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
loc
=
LOCATION_MZONE
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
1
then
loc
=
0
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100407009
.
cfilter
,
tp
,
LOCATION_MZONE
,
loc
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
Release
(
g
,
REASON_EFFECT
)
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
c100407009
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
sg
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
true
,
false
,
POS_FACEUP
)
end
end
end
function
c100407009
.
tdfilter
(
c
)
return
c
:
IsRace
(
RACE_INSECT
)
and
c
:
IsAbleToDeck
()
end
function
c100407009
.
tdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
tp
)
and
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
c100407009
.
tdfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c100407009
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
and
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100407009
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
g
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
end
function
c100407009
.
tdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
Duel
.
SendtoDeck
(
tc
,
nil
,
2
,
REASON_EFFECT
)
~=
0
and
tc
:
IsLocation
(
LOCATION_DECK
+
LOCATION_EXTRA
)
then
Duel
.
BreakEffect
()
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
end
end
expansions/script/c100407014.lua
0 → 100644
View file @
daf33731
--BM-4 ボムスパイダー
--BM-4 Bomb Spider
--Scripted by Eerie Code
function
c100407014
.
initial_effect
(
c
)
--Destroy
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100407014
,
0
))
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetTarget
(
c100407014
.
destg
)
e1
:
SetOperation
(
c100407014
.
desop
)
c
:
RegisterEffect
(
e1
)
--damage
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100407014
,
0
))
e2
:
SetCategory
(
CATEGORY_DAMAGE
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYED
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCountLimit
(
1
,
100407014
)
e2
:
SetCondition
(
c100407014
.
damcon1
)
e2
:
SetTarget
(
c100407014
.
damtg
)
e2
:
SetOperation
(
c100407014
.
damop
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetCondition
(
c100407014
.
damcon2
)
c
:
RegisterEffect
(
e3
)
end
function
c100407014
.
desfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_MACHINE
)
and
c
:
IsAttribute
(
ATTRIBUTE_DARK
)
end
function
c100407014
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
false
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c100407014
.
desfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
and
Duel
.
IsExistingTarget
(
Card
.
IsFaceup
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g1
=
Duel
.
SelectTarget
(
tp
,
c100407014
.
desfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g2
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsFaceup
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
1
,
nil
)
g1
:
Merge
(
g2
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g1
,
2
,
0
,
0
)
end
function
c100407014
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
)
local
tg
=
g
:
Filter
(
Card
.
IsRelateToEffect
,
nil
,
e
)
if
tg
:
GetCount
()
>
0
then
Duel
.
Destroy
(
tg
,
REASON_EFFECT
)
end
end
function
c100407014
.
damcon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
eg
:
GetFirst
()
local
bc
=
tc
:
GetBattleTarget
()
return
tc
:
GetPreviousControler
()
~=
tp
and
tc
:
IsLocation
(
LOCATION_GRAVE
)
and
bc
:
IsControler
(
tp
)
and
bc
:
GetOriginalAttribute
()
==
ATTRIBUTE_DARK
and
bc
:
GetOriginalRace
()
==
RACE_MACHINE
end
function
c100407014
.
damfilter1
(
c
,
tp
)
return
c
:
IsReason
(
REASON_EFFECT
)
and
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsLocation
(
LOCATION_GRAVE
)
and
c
:
GetPreviousControler
()
~=
tp
end
function
c100407014
.
damcon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
rc
=
re
:
GetHandler
()
return
rc
:
IsControler
(
tp
)
and
rc
:
GetOriginalAttribute
()
==
ATTRIBUTE_DARK
and
rc
:
GetOriginalRace
()
==
RACE_MACHINE
and
eg
:
IsExists
(
c100407014
.
damfilter1
,
1
,
nil
,
tp
)
end
function
c100407014
.
damtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
1
-
tp
,
0
)
end
function
c100407014
.
damfilter2
(
c
,
tp
)
return
c
:
IsReason
(
REASON_BATTLE
+
REASON_EFFECT
)
and
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsLocation
(
LOCATION_GRAVE
)
and
c
:
GetPreviousControler
()
~=
tp
end
function
c100407014
.
damop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
eg
:
Filter
(
c100407014
.
damfilter2
,
nil
,
tp
)
if
g
:
GetCount
()
>
0
then
if
g
:
GetCount
()
>
1
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
g
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
end
Duel
.
Damage
(
1
-
tp
,
math.ceil
(
g
:
GetFirst
():
GetBaseAttack
()
/
2
),
REASON_EFFECT
)
end
end
expansions/script/c100407015.lua
0 → 100644
View file @
daf33731
-- デスペラード・リボルバー・ドラゴン
--Desperado Barrel Dragon
function
c100407015
.
initial_effect
(
c
)
--spsummon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100407015
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCode
(
EVENT_DESTROYED
)
e1
:
SetCondition
(
c100407015
.
condition
)
e1
:
SetTarget
(
c100407015
.
target
)
e1
:
SetOperation
(
c100407015
.
operation
)
c
:
RegisterEffect
(
e1
)
--destroy
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
100407015
,
1
))
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_COIN
+
CATEGORY_DRAW
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCondition
(
c100407015
.
descon
)
e2
:
SetCost
(
c68450517
.
descost
)
e2
:
SetTarget
(
c100407015
.
destg
)
e2
:
SetOperation
(
c100407015
.
desop
)
c
:
RegisterEffect
(
e2
)
--search
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
100407015
,
2
))
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetTarget
(
c100407015
.
thtg
)
e3
:
SetOperation
(
c100407015
.
thop
)
c
:
RegisterEffect
(
e3
)
end
c100407015
.
toss_coin
=
true
function
c100407015
.
filter
(
c
,
tp
)
return
c
:
IsReason
(
REASON_BATTLE
+
REASON_EFFECT
)
and
bit
.
band
(
c
:
GetPreviousRaceOnField
(),
RACE_MACHINE
)
~=
0
and
bit
.
band
(
c
:
GetPreviousAttributeOnField
(),
ATTRIBUTE_DARK
)
~=
0
and
c
:
GetPreviousControler
()
==
tp
and
c
:
IsPreviousLocation
(
LOCATION_MZONE
)
and
c
:
IsPreviousPosition
(
POS_FACEUP
)
end
function
c100407015
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
c100407015
.
filter
,
1
,
nil
,
tp
)
end
function
c100407015
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c100407015
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
then
return
end
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
function
c100407015
.
descon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
(
Duel
.
GetCurrentPhase
()
>=
PHASE_BATTLE_START
and
Duel
.
GetCurrentPhase
()
<=
PHASE_BATTLE
)
end
function
c100407015
.
descost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
GetAttackAnnouncedCount
()
==
0
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_OATH
)
e1
:
SetCode
(
EFFECT_CANNOT_ATTACK
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
e
:
GetHandler
():
RegisterEffect
(
e1
)
end
function
c100407015
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
aux
.
TRUE
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COIN
,
nil
,
0
,
tp
,
3
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
end
function
c100407015
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetMatchingGroup
(
aux
.
TRUE
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
if
g
:
GetCount
()
==
0
then
return
end
local
c1
,
c2
,
c3
=
Duel
.
TossCoin
(
tp
,
3
)
local
ct
=
c1
+
c2
+
c3
if
ct
==
0
then
return
end
if
ct
>
g
:
GetCount
()
then
ct
=
g
:
GetCount
()
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
dg
=
g
:
Select
(
tp
,
1
,
ct
,
nil
)
Duel
.
HintSelection
(
dg
)
Duel
.
Destroy
(
dg
,
REASON_EFFECT
)
if
c1
+
c2
+
c3
==
3
then
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
end
end
function
c100407015
.
thfilter
(
c
)
return
c
.
toss_coin
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsLevelBelow
(
7
)
and
c
:
IsAbleToHand
()
end
function
c100407015
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100407015
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c100407015
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100407015
.
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
expansions/script/c100407017.lua
0 → 100644
View file @
daf33731
--銃砲撃
--Gun Cannon Shot
--Script by nekrozar
function
c100407017
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--coin
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_CHAINING
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCondition
(
c100407017
.
regcon
)
e2
:
SetOperation
(
c100407017
.
regop
)
c
:
RegisterEffect
(
e2
)
--coin result
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
100407017
,
0
))
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCode
(
EVENT_CHAINING
)
e3
:
SetRange
(
LOCATION_GRAVE
)
e3
:
SetCondition
(
c100407017
.
coincon1
)
e3
:
SetCost
(
aux
.
bfgcost
)
e3
:
SetOperation
(
c100407017
.
coinop1
)
c
:
RegisterEffect
(
e3
)
end
function
c100407017
.
regcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ex
=
Duel
.
GetOperationInfo
(
ev
,
CATEGORY_COIN
)
return
ex
end
function
c100407017
.
regop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCode
(
EVENT_TOSS_COIN
)
e1
:
SetRange
(
LOCATION_SZONE
)
e1
:
SetCondition
(
c100407017
.
effcon
)
e1
:
SetOperation
(
c100407017
.
effop
)
e1
:
SetLabelObject
(
re
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fc0000
+
RESET_CHAIN
)
c
:
RegisterEffect
(
e1
)
end
function
c100407017
.
effcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
re
==
e
:
GetLabelObject
()
end
function
c100407017
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_CARD
,
0
,
100407017
)
local
ct
=
0
local
res
=
{
Duel
.
GetCoinResult
()}
for
i
=
1
,
ev
do
if
res
[
i
]
==
1
then
ct
=
ct
+
1
end
end
if
ct
>
0
then
Duel
.
Damage
(
1
-
tp
,
500
,
REASON_EFFECT
)
end
if
ct
>
1
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
nil
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
HintSelection
(
g
)
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
end
end
if
ct
>
2
then
local
hg
=
Duel
.
GetFieldGroup
(
tp
,
0
,
LOCATION_HAND
)
if
hg
:
GetCount
()
>
0
then
Duel
.
ConfirmCards
(
tp
,
hg
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DISCARD
)
local
sg
=
hg
:
Select
(
tp
,
1
,
1
,
nil
)
Duel
.
SendtoGrave
(
sg
,
REASON_EFFECT
+
REASON_DISCARD
)
Duel
.
ShuffleHand
(
1
-
tp
)
end
end
end
function
c100407017
.
coincon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ex
,
eg
,
et
,
cp
,
ct
=
Duel
.
GetOperationInfo
(
ev
,
CATEGORY_COIN
)
if
ex
and
ct
>
1
then
e
:
SetLabelObject
(
re
)
return
true
else
return
false
end
end
function
c100407017
.
coinop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_TOSS_COIN_NEGATE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCondition
(
c100407017
.
coincon2
)
e1
:
SetOperation
(
c100407017
.
coinop2
)
e1
:
SetLabelObject
(
e
:
GetLabelObject
())
e1
:
SetReset
(
RESET_CHAIN
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
function
c100407017
.
coincon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
re
==
e
:
GetLabelObject
()
end
function
c100407017
.
coinop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
res
=
{
Duel
.
GetCoinResult
()}
local
ct
=
ev
for
i
=
1
,
ct
do
res
[
i
]
=
1
end
Duel
.
SetCoinResult
(
table.unpack
(
res
))
end
expansions/script/c101002000.lua
0 → 100644
View file @
daf33731
--Hallowhallow
--Script by nekrozar
function
c101002000
.
initial_effect
(
c
)
--pendulum summon
aux
.
EnablePendulumAttribute
(
c
)
--level
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101002000
,
0
))
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetRange
(
LOCATION_PZONE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetTarget
(
c101002000
.
lvtg
)
e1
:
SetOperation
(
c101002000
.
lvop
)
c
:
RegisterEffect
(
e1
)
end
function
c101002000
.
lvfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
GetLevel
()
>
0
end
function
c101002000
.
lvtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
c101002000
.
lvfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101002000
.
lvfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
Duel
.
SelectTarget
(
tp
,
c101002000
.
lvfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
end
function
c101002000
.
lvop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
local
dc
=
Duel
.
TossDice
(
tp
,
1
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_LEVEL
)
e1
:
SetValue
(
dc
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
end
end
expansions/script/c101003002.lua
0 → 100644
View file @
daf33731
--ロックアウト・ガードナー
--Lockout Gardna
--Script by nekrozar
function
c101003002
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003002
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c101003002
.
spcon
)
e1
:
SetTarget
(
c101003002
.
sptg
)
e1
:
SetOperation
(
c101003002
.
spop
)
c
:
RegisterEffect
(
e1
)
--disable
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003002
,
1
))
e2
:
SetCategory
(
CATEGORY_DISABLE
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCode
(
EVENT_CHAINING
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
c101003002
.
discon
)
e2
:
SetTarget
(
c101003002
.
distg
)
e2
:
SetOperation
(
c101003002
.
disop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003002
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetAttacker
():
GetControler
()
~=
tp
and
Duel
.
GetAttackTarget
()
==
nil
end
function
c101003002
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_ATTACK
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
function
c101003002
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
and
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_ATTACK
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_INDESTRUCTABLE_BATTLE
)
e1
:
SetValue
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
c
:
RegisterEffect
(
e1
)
end
end
function
c101003002
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
rp
==
tp
or
not
re
:
IsHasProperty
(
EFFECT_FLAG_CARD_TARGET
)
then
return
false
end
local
g
=
Duel
.
GetChainInfo
(
ev
,
CHAININFO_TARGET_CARDS
)
if
not
g
or
g
:
GetCount
()
~=
1
then
return
false
end
local
tc
=
g
:
GetFirst
()
e
:
SetLabelObject
(
tc
)
return
re
:
IsActiveType
(
TYPE_MONSTER
)
and
re
:
GetHandler
():
IsLocation
(
LOCATION_MZONE
)
and
tc
:
IsControler
(
tp
)
and
tc
:
IsFaceup
()
and
tc
:
IsRace
(
RACE_CYBERSE
)
and
tc
:
IsLocation
(
LOCATION_MZONE
)
end
function
c101003002
.
distg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
e
:
GetLabelObject
()
if
chk
==
0
then
return
true
end
local
g
=
Group
.
FromCards
(
tc
,
re
:
GetHandler
())
Duel
.
SetTargetCard
(
g
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DISABLE
,
g
,
2
,
0
,
0
)
end
function
c101003002
.
disfilter
(
c
,
e
)
return
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
end
function
c101003002
.
disop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
):
Filter
(
c101003002
.
disfilter
,
nil
,
e
)
local
tc
=
g
:
GetFirst
()
while
tc
do
Duel
.
NegateRelatedChain
(
tc
,
RESET_TURN_SET
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_DISABLE
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_DISABLE_EFFECT
)
e2
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e2
)
tc
=
g
:
GetNext
()
end
end
expansions/script/c101003005.lua
0 → 100644
View file @
daf33731
--ビットルーパー
--Bitrooper
--Scripted by Eerie Code
function
c101003005
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
101003005
)
e1
:
SetCost
(
c101003005
.
spcost
)
e1
:
SetTarget
(
c101003005
.
sptg
)
e1
:
SetOperation
(
c101003005
.
spop
)
c
:
RegisterEffect
(
e1
)
end
function
c101003005
.
cfilter
(
c
)
return
c
:
IsLevelBelow
(
2
)
and
c
:
IsAbleToGraveAsCost
()
end
function
c101003005
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003005
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
c
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003005
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
c
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
end
function
c101003005
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
function
c101003005
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c101003006.lua
0 → 100644
View file @
daf33731
--弾帯城壁龍
--Beltlink Wall Dragon
--Script by nekrozar
function
c101003006
.
initial_effect
(
c
)
c
:
EnableCounterPermit
(
0x44
)
c
:
EnableReviveLimit
()
--connot special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
c
:
RegisterEffect
(
e1
)
--special summon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003006
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_COUNTER
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c101003006
.
spcon
)
e2
:
SetTarget
(
c101003006
.
sptg
)
e2
:
SetOperation
(
c101003006
.
spop
)
c
:
RegisterEffect
(
e2
)
--cannot link summon
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e3
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetTargetRange
(
1
,
1
)
e3
:
SetTarget
(
c101003006
.
splimit
)
c
:
RegisterEffect
(
e3
)
--cannot attack
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCode
(
EFFECT_CANNOT_ATTACK
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e4
:
SetTarget
(
c101003006
.
atktg
)
c
:
RegisterEffect
(
e4
)
--counter
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetDescription
(
aux
.
Stringid
(
101003006
,
1
))
e5
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e5
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e5
:
SetRange
(
LOCATION_MZONE
)
e5
:
SetCondition
(
c101003006
.
ctcon1
)
e5
:
SetOperation
(
c101003006
.
ctop1
)
c
:
RegisterEffect
(
e5
)
--counter
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetDescription
(
aux
.
Stringid
(
101003006
,
2
))
e6
:
SetCategory
(
CATEGORY_COUNTER
)
e6
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e6
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e6
:
SetCountLimit
(
1
)
e6
:
SetRange
(
LOCATION_MZONE
)
e6
:
SetOperation
(
c101003006
.
ctop2
)
c
:
RegisterEffect
(
e6
)
end
function
c101003006
.
cfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
GetSummonPlayer
()
==
tp
and
c
:
IsSummonType
(
SUMMON_TYPE_LINK
)
end
function
c101003006
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
c101003006
.
cfilter
,
1
,
nil
,
tp
)
end
function
c101003006
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
true
,
false
)
and
Duel
.
IsCanAddCounter
(
tp
,
0x44
,
1
,
e
:
GetHandler
())
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c101003006
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
and
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
true
,
false
,
POS_FACEUP
)
~=
0
then
c
:
AddCounter
(
0x44
,
2
)
c
:
CompleteProcedure
()
end
end
function
c101003006
.
splimit
(
e
,
c
,
tp
,
sumtp
,
sumpos
)
return
c
:
GetLink
()
>
e
:
GetHandler
():
GetCounter
(
0x44
)
and
bit
.
band
(
sumtp
,
SUMMON_TYPE_LINK
)
==
SUMMON_TYPE_LINK
end
function
c101003006
.
atktg
(
e
,
c
)
return
not
c
:
IsType
(
TYPE_LINK
)
end
function
c101003006
.
ctcon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
Card
.
IsSummonType
,
1
,
nil
,
SUMMON_TYPE_LINK
)
end
function
c101003006
.
ctop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
c
:
RemoveCounter
(
tp
,
0x44
,
2
,
REASON_EFFECT
)
end
end
function
c101003006
.
ctop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
c
:
AddCounter
(
0x44
,
1
)
end
end
expansions/script/c101003007.lua
0 → 100644
View file @
daf33731
--シェルヴァレット・ドラゴン
--Shellrokket Dragon
--Scripted by Eerie Code
function
c101003007
.
initial_effect
(
c
)
--destroy
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003007
,
0
))
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DAMAGE_CAL
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
,
101003007
)
e1
:
SetCondition
(
c101003007
.
descon
)
e1
:
SetTarget
(
c101003007
.
destg
)
e1
:
SetOperation
(
c101003007
.
desop
)
c
:
RegisterEffect
(
e1
)
--to grave
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_TO_GRAVE
)
e2
:
SetOperation
(
c101003007
.
regop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003007
.
descon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
re
:
IsHasProperty
(
EFFECT_FLAG_CARD_TARGET
)
then
return
false
end
local
g
=
Duel
.
GetChainInfo
(
ev
,
CHAININFO_TARGET_CARDS
)
if
not
g
or
not
g
:
IsContains
(
c
)
then
return
false
end
return
re
:
IsActiveType
(
TYPE_LINK
)
end
function
c101003007
.
desfilter
(
c
,
g
)
return
g
:
IsContains
(
c
)
end
function
c101003007
.
desfilter2
(
c
,
s
)
local
seq
=
c
:
GetSequence
()
return
seq
<
5
and
math.abs
(
seq
-
s
)
==
1
end
function
c101003007
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
g
=
Duel
.
GetMatchingGroup
(
c101003007
.
desfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
c
:
GetColumnGroup
())
if
chk
==
0
then
return
c
:
IsDestructable
()
and
g
:
GetCount
()
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
c
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
g
,
1
,
0
,
0
)
end
function
c101003007
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
lg
=
c
:
GetColumnGroup
()
if
c
:
IsRelateToEffect
(
e
)
and
Duel
.
Destroy
(
c
,
REASON_EFFECT
)
>
0
then
local
g
=
Duel
.
GetMatchingGroup
(
c101003007
.
desfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
lg
)
if
g
:
GetCount
()
==
0
then
return
end
Duel
.
BreakEffect
()
local
tc
=
nil
if
g
:
GetCount
()
==
1
then
tc
=
g
:
GetFirst
()
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
tc
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
end
local
seq
=
tc
:
GetSequence
()
local
dg
=
Group
.
CreateGroup
()
if
seq
<
5
then
dg
=
Duel
.
GetMatchingGroup
(
c101003007
.
desfilter2
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
seq
)
end
if
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
and
dg
:
GetCount
()
>
0
then
Duel
.
Destroy
(
dg
,
REASON_EFFECT
)
end
end
end
function
c101003007
.
regop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsReason
(
REASON_BATTLE
+
REASON_EFFECT
)
and
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsPreviousLocation
(
LOCATION_ONFIELD
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003007
,
1
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e1
:
SetCountLimit
(
1
,
101003007
+
100
)
e1
:
SetRange
(
LOCATION_GRAVE
)
e1
:
SetTarget
(
c101003007
.
sptg
)
e1
:
SetOperation
(
c101003007
.
spop
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
c
:
RegisterEffect
(
e1
)
end
end
function
c101003007
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x102
)
and
not
c
:
IsCode
(
101003007
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c101003007
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c101003007
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003007
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003007
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c101003009.lua
0 → 100644
View file @
daf33731
--ティンダングル・エンジェル
--Tindangle Angel
function
c101003009
.
initial_effect
(
c
)
--search
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003009
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_FLIP
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
101003009
)
e1
:
SetTarget
(
c101003009
.
target
)
e1
:
SetOperation
(
c101003009
.
operation
)
c
:
RegisterEffect
(
e1
)
end
function
c101003009
.
filter
(
c
,
e
,
tp
)
return
c
:
IsType
(
TYPE_FLIP
)
and
not
c
:
IsCode
(
101003009
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
end
function
c101003009
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c101003009
.
filter
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
)
end
function
c101003009
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c101003009
.
filter
),
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
local
ph
=
Duel
.
GetCurrentPhase
()
if
tp
~=
Duel
.
GetTurnPlayer
()
and
ph
>=
PHASE_BATTLE_START
and
ph
<=
PHASE_BATTLE
then
Duel
.
SkipPhase
(
1
-
tp
,
PHASE_BATTLE
,
RESET_PHASE
+
PHASE_BATTLE
,
1
)
end
end
expansions/script/c101003010.lua
0 → 100644
View file @
daf33731
--ティンダングル・ベース・ガードナー
--Tindangle Base Gardna
function
c101003010
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
+
EFFECT_FLAG_SPSUM_PARAM
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetTargetRange
(
POS_FACEUP_DEFENSE
,
0
)
e1
:
SetCountLimit
(
1
,
101003010
)
e1
:
SetCondition
(
c101003010
.
condition
)
c
:
RegisterEffect
(
e1
)
--Special summon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003010
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCost
(
c101003010
.
spcost
)
e2
:
SetCondition
(
c101003010
.
spcon
)
e2
:
SetTarget
(
c101003010
.
sptg
)
e2
:
SetOperation
(
c101003010
.
spop
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
c
:
RegisterEffect
(
e3
)
end
function
c101003010
.
filter
(
c
)
return
c
:
IsFacedown
()
end
function
c101003010
.
condition
(
e
,
c
)
if
c
==
nil
then
return
true
end
return
Duel
.
GetLocationCount
(
c
:
GetControler
(),
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c101003010
.
filter
,
c
:
GetControler
(),
LOCATION_MZONE
,
0
,
1
,
nil
)
end
function
c101003010
.
cfilter
(
c
,
tp
,
zone
)
local
seq
=
c
:
GetSequence
()
if
c
:
IsControler
(
1
-
tp
)
then
seq
=
seq
+
16
end
return
bit
.
extract
(
zone
,
seq
)
~=
0
end
function
c101003010
.
lkfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_LINK
)
end
function
c101003010
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
zone
=
0
local
lg
=
Duel
.
GetMatchingGroup
(
c101003010
.
lkfilter
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
for
tc
in
aux
.
Next
(
lg
)
do
zone
=
bit
.
bor
(
zone
,
tc
:
GetLinkedZone
())
end
return
not
eg
:
IsContains
(
e
:
GetHandler
())
and
eg
:
IsExists
(
c101003010
.
cfilter
,
1
,
nil
,
tp
,
zone
)
end
function
c101003010
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsReleasable
()
end
Duel
.
Release
(
e
:
GetHandler
(),
REASON_COST
)
end
function
c101003010
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x20b
)
and
(
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
or
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
))
end
function
c101003010
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
1
and
Duel
.
IsExistingMatchingCard
(
c101003010
.
spfilter
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
)
end
function
c101003010
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c101003010
.
spfilter
),
tp
,
LOCATION_DECK
+
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
tc
=
g
:
GetFirst
()
if
tc
then
local
spos
=
0
if
tc
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_ATTACK
)
then
spos
=
spos
+
POS_FACEUP_ATTACK
end
if
tc
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
then
spos
=
spos
+
POS_FACEDOWN_DEFENSE
end
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
spos
)
if
tc
:
IsFacedown
()
then
Duel
.
ConfirmCards
(
1
-
tp
,
tc
)
end
end
end
expansions/script/c101003011.lua
0 → 100644
View file @
daf33731
--ティンダングル・ハウンド
--Tindangle Hound
function
c101003011
.
initial_effect
(
c
)
--flip
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003011
,
0
))
e1
:
SetCategory
(
CATEGORY_POSITION
+
CATEGORY_ATKCHANGE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_FLIP
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetTarget
(
c101003011
.
target
)
e1
:
SetOperation
(
c101003011
.
operation
)
c
:
RegisterEffect
(
e1
)
--atk down
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetTargetRange
(
0
,
LOCATION_MZONE
)
e2
:
SetValue
(
c101003011
.
val
)
c
:
RegisterEffect
(
e2
)
--destroy
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
101003011
,
1
))
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCategory
(
CATEGORY_POSITION
)
e3
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetCondition
(
c101003011
.
poscon
)
e3
:
SetTarget
(
c101003011
.
postg
)
e3
:
SetOperation
(
c101003011
.
posop
)
c
:
RegisterEffect
(
e3
)
end
function
c101003011
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCanTurnSet
()
and
c
:
GetBaseAttack
()
>
0
end
function
c101003011
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
c101003011
.
filter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003011
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
e
:
GetHandler
())
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
Duel
.
SelectTarget
(
tp
,
c101003011
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
e
:
GetHandler
())
end
function
c101003011
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
and
c
:
IsRelateToEffect
(
e
)
and
c
:
IsFaceup
()
then
local
atk
=
tc
:
GetBaseAttack
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetValue
(
atk
)
e1
:
SetReset
(
RESET_EVENT
+
0x1ff0000
)
c
:
RegisterEffect
(
e1
)
Duel
.
ChangePosition
(
tc
,
POS_FACEDOWN_DEFENSE
)
end
end
function
c101003011
.
val
(
e
,
c
)
return
c
:
GetLinkedGroupCount
()
*-
1000
end
function
c101003011
.
poscon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsReason
(
REASON_BATTLE
+
REASON_EFFECT
)
end
function
c101003011
.
posfilter
(
c
)
return
c
:
IsFacedown
()
and
c
:
IsCanChangePosition
()
end
function
c101003011
.
postg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
c101003011
.
posfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003011
.
posfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_POSCHANGE
)
Duel
.
SelectTarget
(
tp
,
c101003011
.
posfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
end
function
c101003011
.
posop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
not
tc
:
IsPosition
(
POS_FACEUP_DEFENSE
)
then
Duel
.
ChangePosition
(
tc
,
POS_FACEUP_DEFENSE
)
end
end
expansions/script/c101003012.lua
0 → 100644
View file @
daf33731
--ティンダングル・アポストル
--Tindangle Apostle
--Script by nekrozar
function
c101003012
.
initial_effect
(
c
)
--flip
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003012
,
0
))
e1
:
SetCategory
(
CATEGORY_POSITION
+
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_FLIP
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
101003012
)
e1
:
SetTarget
(
c101003012
.
target
)
e1
:
SetOperation
(
c101003012
.
operation
)
c
:
RegisterEffect
(
e1
)
end
function
c101003012
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsFacedown
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_POSITION
,
nil
,
1
,
0
,
0
)
end
function
c101003012
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x20b
)
and
c
:
IsAbleToHand
()
end
function
c101003012
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_POSCHANGE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
Card
.
IsFacedown
,
tp
,
LOCATION_MZONE
,
0
,
1
,
3
,
nil
)
if
g
:
GetCount
()
>
0
then
local
ct
=
Duel
.
ChangePosition
(
g
,
POS_FACEUP_DEFENSE
)
if
ct
==
g
:
GetCount
()
and
g
:
IsExists
(
Card
.
IsSetCard
,
ct
,
nil
,
0x20b
)
then
local
sg
=
Duel
.
GetMatchingGroup
(
c101003012
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
if
sg
:
GetCount
()
>
0
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
101003012
,
1
))
then
Duel
.
BreakEffect
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
tg
=
sg
:
Select
(
tp
,
1
,
ct
,
nil
)
Duel
.
SendtoHand
(
tg
,
tp
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
tg
)
end
end
end
end
expansions/script/c101003013.lua
0 → 100644
View file @
daf33731
--ティンダングル・イントルーダー
--Tindangle Intruder
--Script by nekrozar
function
c101003013
.
initial_effect
(
c
)
--flip
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003013
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_FLIP
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
101003013
)
e1
:
SetTarget
(
c101003013
.
target
)
e1
:
SetOperation
(
c101003013
.
operation
)
c
:
RegisterEffect
(
e1
)
--to grave
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003013
,
1
))
e2
:
SetCategory
(
CATEGORY_TOGRAVE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e2
:
SetCountLimit
(
1
,
101003113
)
e2
:
SetTarget
(
c101003013
.
tgtg
)
e2
:
SetOperation
(
c101003013
.
tgop
)
c
:
RegisterEffect
(
e2
)
--special summon
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
101003013
,
2
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e3
:
SetRange
(
LOCATION_GRAVE
)
e3
:
SetCountLimit
(
1
,
101003213
)
e3
:
SetCondition
(
c101003013
.
spcon
)
e3
:
SetTarget
(
c101003013
.
sptg
)
e3
:
SetOperation
(
c101003013
.
spop
)
c
:
RegisterEffect
(
e3
)
end
function
c101003013
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x20b
)
and
c
:
IsAbleToHand
()
end
function
c101003013
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003013
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003013
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003013
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
tp
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
function
c101003013
.
tgfilter
(
c
)
return
c
:
IsSetCard
(
0x20b
)
and
c
:
IsAbleToGrave
()
end
function
c101003013
.
tgtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003013
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003013
.
tgop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003013
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
end
end
function
c101003013
.
cfilter
(
c
,
tp
)
return
c
:
IsPosition
(
POS_FACEDOWN_DEFENSE
)
and
c
:
IsControler
(
tp
)
end
function
c101003013
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
c101003013
.
cfilter
,
1
,
nil
,
tp
)
end
function
c101003013
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsRelateToEffect
(
e
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c101003013
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
and
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
~=
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
c
)
end
end
expansions/script/c101003014.lua
0 → 100644
View file @
daf33731
--蒼穹の機界騎士
--Mekk-Knight of the Blue Sky
--Scripted by Eerie Code
function
c101003014
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
101003014
)
e1
:
SetCondition
(
c101003014
.
hspcon
)
e1
:
SetValue
(
c101003014
.
hspval
)
c
:
RegisterEffect
(
e1
)
--to hand
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003014
,
0
))
e2
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCountLimit
(
1
,
101003014
+
100
)
e2
:
SetTarget
(
c101003014
.
thtg
)
e2
:
SetOperation
(
c101003014
.
thop
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e3
:
SetCondition
(
c101003014
.
thcon
)
c
:
RegisterEffect
(
e3
)
end
function
c101003014
.
cfilter
(
c
,
tp
,
seq
)
local
s
=
c
:
GetSequence
()
if
c
:
IsLocation
(
LOCATION_SZONE
)
and
s
==
5
then
return
false
end
if
c
:
IsControler
(
tp
)
then
return
s
==
seq
or
(
seq
==
1
and
s
==
5
)
or
(
seq
==
3
and
s
==
6
)
else
return
s
==
4
-
seq
or
(
seq
==
1
and
s
==
6
)
or
(
seq
==
3
and
s
==
5
)
end
end
function
c101003014
.
hspcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003014
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
>
0
end
function
c101003014
.
hspval
(
e
,
c
)
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003014
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
0
,
zone
end
function
c101003014
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_HAND
)
end
function
c101003014
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x20c
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
not
c
:
IsCode
(
101003014
)
and
c
:
IsAbleToHand
()
end
function
c101003014
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
c101003014
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
local
ct
=
e
:
GetHandler
():
GetColumnGroup
():
FilterCount
(
Card
.
IsControler
,
nil
,
1
-
tp
)
if
chk
==
0
then
return
ct
>
0
and
g
:
GetClassCount
(
Card
.
GetCode
)
>=
ct
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
ct
,
tp
,
LOCATION_DECK
)
end
function
c101003014
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
then
return
end
local
g
=
Duel
.
GetMatchingGroup
(
c101003014
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
local
ct
=
e
:
GetHandler
():
GetColumnGroup
():
FilterCount
(
Card
.
IsControler
,
nil
,
1
-
tp
)
if
ct
<=
0
or
g
:
GetClassCount
(
Card
.
GetCode
)
<
ct
then
return
end
local
hg
=
Group
.
CreateGroup
()
for
i
=
1
,
ct
do
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
tc
=
g
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
hg
:
AddCard
(
tc
)
g
:
Remove
(
Card
.
IsCode
,
nil
,
tc
:
GetCode
())
end
Duel
.
SendtoHand
(
hg
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
hg
)
end
expansions/script/c101003015.lua
0 → 100644
View file @
daf33731
--翠嵐の機界騎士
--Mekk-Knight of the Green Heights
--Scripted by Eerie Code
function
c101003015
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
101003015
)
e1
:
SetCondition
(
c101003015
.
hspcon
)
e1
:
SetValue
(
c101003015
.
hspval
)
c
:
RegisterEffect
(
e1
)
--to hand
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003015
,
0
))
e2
:
SetCategory
(
CATEGORY_TOHAND
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
c101003015
.
thcon
)
e2
:
SetTarget
(
c101003015
.
thtg
)
e2
:
SetOperation
(
c101003015
.
thop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003015
.
cfilter
(
c
,
tp
,
seq
)
local
s
=
c
:
GetSequence
()
if
c
:
IsLocation
(
LOCATION_SZONE
)
and
s
==
5
then
return
false
end
if
c
:
IsControler
(
tp
)
then
return
s
==
seq
or
(
seq
==
1
and
s
==
5
)
or
(
seq
==
3
and
s
==
6
)
else
return
s
==
4
-
seq
or
(
seq
==
1
and
s
==
6
)
or
(
seq
==
3
and
s
==
5
)
end
end
function
c101003015
.
hspcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003015
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
>
0
end
function
c101003015
.
hspval
(
e
,
c
)
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003015
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
0
,
zone
end
function
c101003015
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
c
:
GetBattleTarget
()
return
(
Duel
.
GetAttacker
()
==
c
or
Duel
.
GetAttackTarget
()
==
c
)
and
tc
and
c
:
GetColumnGroup
():
IsContains
(
tc
)
end
function
c101003015
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x20c
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToHand
()
end
function
c101003015
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c101003015
.
thfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003015
.
thfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003015
.
thfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
g
,
1
,
0
,
0
)
end
function
c101003015
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
end
end
expansions/script/c101003016.lua
0 → 100644
View file @
daf33731
--燈影の機界騎士
--Mekk-Knight of the Flickering Flame
--Scripted by Eerie Code
function
c101003016
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
101003016
)
e1
:
SetCondition
(
c101003016
.
hspcon
)
e1
:
SetValue
(
c101003016
.
hspval
)
c
:
RegisterEffect
(
e1
)
--spsummon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003016
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_LEAVE_FIELD
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e2
:
SetCondition
(
c101003016
.
spcon
)
e2
:
SetTarget
(
c101003016
.
sptg
)
e2
:
SetOperation
(
c101003016
.
spop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003016
.
cfilter
(
c
,
tp
,
seq
)
local
s
=
c
:
GetSequence
()
if
c
:
IsLocation
(
LOCATION_SZONE
)
and
s
==
5
then
return
false
end
if
c
:
IsControler
(
tp
)
then
return
s
==
seq
or
(
seq
==
1
and
s
==
5
)
or
(
seq
==
3
and
s
==
6
)
else
return
s
==
4
-
seq
or
(
seq
==
1
and
s
==
6
)
or
(
seq
==
3
and
s
==
5
)
end
end
function
c101003016
.
hspcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003016
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
>
0
end
function
c101003016
.
hspval
(
e
,
c
)
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003016
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
0
,
zone
end
function
c101003016
.
spcfilter
(
c
,
tp
,
seq
)
local
s
=
c
:
GetPreviousSequence
()
return
c
:
GetPreviousControler
()
~=
tp
and
(
s
==
4
-
seq
or
(
seq
==
1
and
s
==
6
)
or
(
seq
==
3
and
s
==
5
))
end
function
c101003016
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
c101003016
.
spcfilter
,
1
,
nil
,
tp
,
e
:
GetHandler
():
GetSequence
())
end
function
c101003016
.
filter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x20c
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c101003016
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c101003016
.
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
function
c101003016
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003016
.
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c101003017.lua
0 → 100644
View file @
daf33731
--黄華の機界騎士
--Mekk-Knight of the Yellow Bloom
--Scripted by Eerie Code
function
c101003017
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
101003017
)
e1
:
SetCondition
(
c101003017
.
hspcon
)
e1
:
SetValue
(
c101003017
.
hspval
)
c
:
RegisterEffect
(
e1
)
--destroy
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
101003017
,
0
))
e3
:
SetCategory
(
CATEGORY_DESTROY
)
e3
:
SetType
(
EFFECT_TYPE_IGNITION
)
e3
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCost
(
c101003017
.
cost
)
e3
:
SetTarget
(
c101003017
.
target
)
e3
:
SetOperation
(
c101003017
.
operation
)
c
:
RegisterEffect
(
e3
)
end
function
c101003017
.
cfilter
(
c
,
tp
,
seq
)
local
s
=
c
:
GetSequence
()
if
c
:
IsLocation
(
LOCATION_SZONE
)
and
s
==
5
then
return
false
end
if
c
:
IsControler
(
tp
)
then
return
s
==
seq
or
(
seq
==
1
and
s
==
5
)
or
(
seq
==
3
and
s
==
6
)
else
return
s
==
4
-
seq
or
(
seq
==
1
and
s
==
6
)
or
(
seq
==
3
and
s
==
5
)
end
end
function
c101003017
.
hspcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003017
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
>
0
end
function
c101003017
.
hspval
(
e
,
c
)
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003017
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
0
,
zone
end
function
c101003017
.
costfilter
(
c
)
return
c
:
IsSetCard
(
0x20c
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToRemoveAsCost
()
end
function
c101003017
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003017
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003017
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
end
function
c101003017
.
filter
(
c
,
g
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
g
:
IsContains
(
c
)
end
function
c101003017
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
cg
=
e
:
GetHandler
():
GetColumnGroup
()
if
chkc
then
return
c101003017
.
filter
(
chkc
,
cg
)
and
chkc
:
IsOnField
()
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003017
.
filter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
nil
,
cg
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003017
.
filter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
1
,
nil
,
cg
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
1
,
0
,
0
)
end
function
c101003017
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
end
end
expansions/script/c101003018.lua
0 → 100644
View file @
daf33731
--紅蓮の機界騎士
--Mekk-Knight of the Crimson Lotus
--Scripted by Eerie Code
function
c101003018
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
101003018
)
e1
:
SetCondition
(
c101003018
.
hspcon
)
e1
:
SetValue
(
c101003018
.
hspval
)
c
:
RegisterEffect
(
e1
)
--destroy
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
101003018
,
0
))
e3
:
SetCategory
(
CATEGORY_DESTROY
)
e3
:
SetType
(
EFFECT_TYPE_IGNITION
)
e3
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCost
(
c101003018
.
cost
)
e3
:
SetTarget
(
c101003018
.
target
)
e3
:
SetOperation
(
c101003018
.
operation
)
c
:
RegisterEffect
(
e3
)
end
function
c101003018
.
cfilter
(
c
,
tp
,
seq
)
local
s
=
c
:
GetSequence
()
if
c
:
IsLocation
(
LOCATION_SZONE
)
and
s
==
5
then
return
false
end
if
c
:
IsControler
(
tp
)
then
return
s
==
seq
or
(
seq
==
1
and
s
==
5
)
or
(
seq
==
3
and
s
==
6
)
else
return
s
==
4
-
seq
or
(
seq
==
1
and
s
==
6
)
or
(
seq
==
3
and
s
==
5
)
end
end
function
c101003018
.
hspcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003018
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
>
0
end
function
c101003018
.
hspval
(
e
,
c
)
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003018
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
0
,
zone
end
function
c101003018
.
costfilter
(
c
)
return
c
:
IsSetCard
(
0x20c
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToRemoveAsCost
()
end
function
c101003018
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003018
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003018
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
end
function
c101003018
.
filter
(
c
,
g
)
return
c
:
IsFaceup
()
and
g
:
IsContains
(
c
)
end
function
c101003018
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
c
=
e
:
GetHandler
()
local
cg
=
c
:
GetColumnGroup
()
if
chkc
then
return
c101003018
.
filter
(
chkc
,
cg
)
and
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
~=
c
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003018
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
c
,
cg
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003018
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
c
,
cg
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
1
,
0
,
0
)
end
function
c101003018
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
end
end
expansions/script/c101003020.lua
0 → 100644
View file @
daf33731
--紫宵の機界騎士
--Mekk-Knight of the Purple Dusk
--Scripted by Eerie Code
function
c101003020
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCountLimit
(
1
,
101003020
)
e1
:
SetCondition
(
c101003020
.
hspcon
)
e1
:
SetValue
(
c101003020
.
hspval
)
c
:
RegisterEffect
(
e1
)
--banish & search
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003020
,
0
))
e2
:
SetCategory
(
CATEGORY_REMOVE
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCountLimit
(
1
,
101003020
+
100
)
e2
:
SetTarget
(
c101003020
.
thtg
)
e2
:
SetOperation
(
c101003020
.
thop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003020
.
cfilter
(
c
,
tp
,
seq
)
local
s
=
c
:
GetSequence
()
if
c
:
IsLocation
(
LOCATION_SZONE
)
and
s
==
5
then
return
false
end
if
c
:
IsControler
(
tp
)
then
return
s
==
seq
or
(
seq
==
1
and
s
==
5
)
or
(
seq
==
3
and
s
==
6
)
else
return
s
==
4
-
seq
or
(
seq
==
1
and
s
==
6
)
or
(
seq
==
3
and
s
==
5
)
end
end
function
c101003020
.
hspcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003020
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
>
0
end
function
c101003020
.
hspval
(
e
,
c
)
local
tp
=
c
:
GetControler
()
local
zone
=
0
for
i
=
0
,
4
do
if
Duel
.
GetMatchingGroupCount
(
c101003020
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
nil
,
tp
,
i
)
>=
2
then
zone
=
zone
+
math.pow
(
2
,
i
)
end
end
return
0
,
zone
end
function
c101003020
.
rmfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x20c
)
and
c
:
IsAbleToRemove
()
end
function
c101003020
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x20c
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
not
c
:
IsCode
(
101003020
)
and
c
:
IsAbleToHand
()
end
function
c101003020
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
tp
)
and
c101003020
.
rmfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003020
.
rmfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c101003020
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003020
.
rmfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003020
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
Duel
.
Remove
(
tc
,
POS_FACEUP
,
REASON_EFFECT
+
REASON_TEMPORARY
)
~=
0
and
tc
:
IsLocation
(
LOCATION_REMOVED
)
then
local
ct
=
1
if
Duel
.
GetTurnPlayer
()
==
tp
and
Duel
.
GetCurrentPhase
()
==
PHASE_STANDBY
then
ct
=
2
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e1
:
SetLabelObject
(
tc
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCondition
(
c101003020
.
retcon
)
e1
:
SetOperation
(
c101003020
.
retop
)
if
Duel
.
GetTurnPlayer
()
==
tp
and
Duel
.
GetCurrentPhase
()
==
PHASE_STANDBY
then
e1
:
SetReset
(
RESET_PHASE
+
PHASE_STANDBY
+
RESET_SELF_TURN
,
2
)
e1
:
SetValue
(
Duel
.
GetTurnCount
())
else
e1
:
SetReset
(
RESET_PHASE
+
PHASE_STANDBY
+
RESET_SELF_TURN
)
e1
:
SetValue
(
0
)
end
Duel
.
RegisterEffect
(
e1
,
tp
)
tc
:
RegisterFlagEffect
(
101003020
,
RESET_PHASE
+
PHASE_STANDBY
+
RESET_SELF_TURN
,
0
,
ct
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003020
.
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
function
c101003020
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetTurnPlayer
()
~=
tp
or
Duel
.
GetTurnCount
()
==
e
:
GetValue
()
then
return
false
end
return
e
:
GetLabelObject
():
GetFlagEffect
(
101003020
)
~=
0
end
function
c101003020
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
Duel
.
ReturnToField
(
tc
)
end
expansions/script/c101003022.lua
0 → 100644
View file @
daf33731
--魔導獣 ジャッカル
--Mythical Beast Jackal
--Scripted by Eerie Code
function
c101003022
.
initial_effect
(
c
)
aux
.
EnablePendulumAttribute
(
c
)
c
:
EnableCounterPermit
(
0x1
)
--destroy & counter
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003022
,
0
))
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_COUNTER
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_PZONE
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCountLimit
(
1
,
101003022
)
e1
:
SetCondition
(
c101003022
.
ctcon
)
e1
:
SetTarget
(
c101003022
.
cttg
)
e1
:
SetOperation
(
c101003022
.
ctop
)
c
:
RegisterEffect
(
e1
)
--add counter
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_FIELD
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_CHAINING
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetOperation
(
aux
.
chainreg
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetOperation
(
c101003022
.
acop
)
c
:
RegisterEffect
(
e3
)
--special summon
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
101003022
,
2
))
e4
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetCost
(
c101003022
.
spcost
)
e4
:
SetTarget
(
c101003022
.
sptg
)
e4
:
SetOperation
(
c101003022
.
spop
)
c
:
RegisterEffect
(
e4
)
end
c101003022
.
spell_counter_permit
=
99
function
c101003022
.
ctcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
CheckLocation
(
tp
,
LOCATION_PZONE
,
0
)
or
Duel
.
CheckLocation
(
tp
,
LOCATION_PZONE
,
1
)
end
function
c101003022
.
ctfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCanAddCounter
(
0x1
,
1
)
end
function
c101003022
.
cttg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
c
=
e
:
GetHandler
()
if
chkc
then
return
chkc
:
IsOnField
()
and
chkc
:
IsControler
(
tp
)
and
chkc
~=
c
and
c101003022
.
ctfilter
(
chkc
)
end
if
chk
==
0
then
return
e
:
GetHandler
():
IsDestructable
()
and
Duel
.
IsExistingTarget
(
c101003022
.
ctfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
c
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
101003022
,
1
))
Duel
.
SelectTarget
(
tp
,
c101003022
.
ctfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
1
,
c
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
e
:
GetHandler
(),
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
0
,
0x1
)
end
function
c101003022
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
c
:
IsRelateToEffect
(
e
)
and
Duel
.
Destroy
(
c
,
REASON_EFFECT
)
~=
0
and
tc
:
IsFaceup
()
and
tc
:
IsRelateToEffect
(
e
)
then
tc
:
AddCounter
(
0x1
,
1
)
end
end
function
c101003022
.
acop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
and
re
:
IsActiveType
(
TYPE_SPELL
)
and
e
:
GetHandler
():
GetFlagEffect
(
1
)
>
0
then
e
:
GetHandler
():
AddCounter
(
0x1
,
1
)
end
end
function
c101003022
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
IsCanRemoveCounter
(
tp
,
1
,
0
,
0x1
,
3
,
REASON_COST
)
and
c
:
IsReleasable
()
end
Duel
.
RemoveCounter
(
tp
,
1
,
0
,
0x1
,
3
,
REASON_COST
)
Duel
.
Release
(
c
,
REASON_COST
)
end
function
c101003022
.
spfilter
(
c
,
e
,
tp
)
return
(
c
:
IsSetCard
(
0x209
)
or
c
:
IsCode
(
55424270
))
and
not
c
:
IsCode
(
101003022
)
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c101003022
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
1
and
Duel
.
IsExistingMatchingCard
(
c101003022
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003022
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003022
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c101003027.lua
0 → 100644
View file @
daf33731
--魔導獣 マスターケルベロス
--Mythical Beast Master Cerberus
--Scripted by Eerie Code
function
c101003027
.
initial_effect
(
c
)
aux
.
EnablePendulumAttribute
(
c
)
c
:
EnableCounterPermit
(
0x1
)
--destroy & search
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003027
,
0
))
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_PZONE
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCountLimit
(
1
,
101003027
)
e1
:
SetCondition
(
c101003027
.
thcon
)
e1
:
SetTarget
(
c101003027
.
thtg
)
e1
:
SetOperation
(
c101003027
.
thop
)
c
:
RegisterEffect
(
e1
)
--add counter
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_FIELD
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_CHAINING
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetOperation
(
aux
.
chainreg
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetOperation
(
c101003027
.
acop
)
c
:
RegisterEffect
(
e3
)
--cannot be destroyed
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e4
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetCondition
(
c101003027
.
incon
)
e4
:
SetValue
(
1
)
c
:
RegisterEffect
(
e4
)
--remove
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetDescription
(
aux
.
Stringid
(
101003027
,
1
))
e5
:
SetCategory
(
CATEGORY_ATKCHANGE
+
CATEGORY_REMOVE
)
e5
:
SetType
(
EFFECT_TYPE_IGNITION
)
e5
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e5
:
SetRange
(
LOCATION_MZONE
)
e5
:
SetCountLimit
(
1
)
e5
:
SetCost
(
c101003027
.
rmcost
)
e5
:
SetTarget
(
c101003027
.
rmtg
)
e5
:
SetOperation
(
c101003027
.
rmop
)
c
:
RegisterEffect
(
e5
)
end
c101003027
.
spell_counter_permit
=
99
function
c101003027
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
CheckLocation
(
tp
,
LOCATION_PZONE
,
0
)
or
Duel
.
CheckLocation
(
tp
,
LOCATION_PZONE
,
1
)
end
function
c101003027
.
thfilter
(
c
)
return
(
c
:
IsSetCard
(
0x209
)
or
c
:
IsCode
(
55424270
))
and
c
:
IsLevelBelow
(
7
)
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsAbleToHand
()
end
function
c101003027
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
IsDestructable
()
and
Duel
.
IsExistingMatchingCard
(
c101003027
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
c
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003027
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
and
Duel
.
Destroy
(
c
,
REASON_EFFECT
)
~=
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003027
.
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
function
c101003027
.
acop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
and
re
:
IsActiveType
(
TYPE_SPELL
)
and
e
:
GetHandler
():
GetFlagEffect
(
1
)
>
0
then
e
:
GetHandler
():
AddCounter
(
0x1
,
2
)
end
end
function
c101003027
.
incon
(
e
)
return
Duel
.
GetCounter
(
e
:
GetHandlerPlayer
(),
1
,
0
,
0x1
)
>=
4
end
function
c101003027
.
rmcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
IsCanRemoveCounter
(
tp
,
1
,
0
,
0x1
,
4
,
REASON_COST
)
end
Duel
.
RemoveCounter
(
tp
,
1
,
0
,
0x1
,
4
,
REASON_COST
)
end
function
c101003027
.
rmfilter
(
c
)
return
c
:
IsAbleToRemove
()
end
function
c101003027
.
rmtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
1
-
tp
)
and
c101003027
.
rmfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003027
.
rmfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003027
.
rmfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
1
,
0
,
0
)
end
function
c101003027
.
rmop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
Duel
.
Remove
(
tc
,
POS_FACEUP
,
REASON_EFFECT
)
~=
0
and
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
local
atk
=
tc
:
GetBaseAttack
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetValue
(
atk
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
+
RESET_OPPO_TURN
)
c
:
RegisterEffect
(
e1
)
end
end
expansions/script/c101003032.lua
0 → 100644
View file @
daf33731
--魅幽鳥
--Mikuratori
--Script by nekrozar
function
c101003032
.
initial_effect
(
c
)
--atkup
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCondition
(
c101003032
.
atkcon
)
e1
:
SetValue
(
1000
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
c
:
RegisterEffect
(
e2
)
--extra attack
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e3
:
SetCode
(
EFFECT_EXTRA_ATTACK_MONSTER
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCondition
(
c101003032
.
eacon
)
e3
:
SetValue
(
1
)
c
:
RegisterEffect
(
e3
)
--cannot target
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e4
:
SetCode
(
EFFECT_CANNOT_BE_EFFECT_TARGET
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetCondition
(
c101003032
.
indcon
)
e4
:
SetValue
(
aux
.
tgoval
)
c
:
RegisterEffect
(
e4
)
--indes
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
)
e5
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e5
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e5
:
SetRange
(
LOCATION_MZONE
)
e5
:
SetCondition
(
c101003032
.
indcon
)
e5
:
SetValue
(
c101003032
.
indval
)
c
:
RegisterEffect
(
e5
)
--cannot activate
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_FIELD
)
e6
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e6
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e6
:
SetRange
(
LOCATION_MZONE
)
e6
:
SetTargetRange
(
1
,
1
)
e6
:
SetCondition
(
c101003032
.
actcon
)
e6
:
SetValue
(
c101003032
.
aclimit
)
c
:
RegisterEffect
(
e6
)
end
function
c101003032
.
atkcon
(
e
)
return
e
:
GetHandler
():
GetSequence
()
==
0
end
function
c101003032
.
eacon
(
e
)
return
e
:
GetHandler
():
GetSequence
()
==
4
end
function
c101003032
.
indcon
(
e
)
return
e
:
GetHandler
():
GetSequence
()
==
2
end
function
c101003032
.
indval
(
e
,
re
,
tp
)
return
tp
~=
e
:
GetHandlerPlayer
()
end
function
c101003032
.
actcon
(
e
)
local
c
=
e
:
GetHandler
()
return
c
:
GetSequence
()
==
1
or
c
:
GetSequence
()
==
3
end
function
c101003032
.
aclimit
(
e
,
re
,
tp
)
local
tc
=
re
:
GetHandler
()
return
tc
:
IsLocation
(
LOCATION_MZONE
)
and
re
:
IsActiveType
(
TYPE_MONSTER
)
and
e
:
GetHandler
():
GetColumnGroup
():
IsContains
(
tc
)
and
not
tc
:
IsImmuneToEffect
(
e
)
end
expansions/script/c101003038.lua
0 → 100644
View file @
daf33731
--エクスコード・トーカー
--Excode Talker
--Scripted by Eerie Code
function
c101003038
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsRace
,
RACE_CYBERSE
),
2
)
--lock zones
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003038
,
0
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
,
101003038
)
e1
:
SetCondition
(
c101003038
.
lzcon
)
e1
:
SetTarget
(
c101003038
.
lztg
)
e1
:
SetOperation
(
c101003038
.
lzop
)
c
:
RegisterEffect
(
e1
)
--atk up/indestructable
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e2
:
SetTarget
(
c101003038
.
tgtg
)
e2
:
SetValue
(
1
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e3
:
SetValue
(
500
)
c
:
RegisterEffect
(
e3
)
end
function
c101003038
.
lzcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_LINK
)
end
function
c101003038
.
lzfilter
(
c
)
return
c
:
GetSequence
()
>
4
end
function
c101003038
.
lztg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
ct
=
Duel
.
GetMatchingGroupCount
(
c101003038
.
lzfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>=
ct
end
local
dis
=
Duel
.
SelectDisableField
(
tp
,
ct
,
LOCATION_MZONE
,
LOCATION_MZONE
,
0
)
e
:
SetLabel
(
dis
)
end
function
c101003038
.
lzop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EFFECT_DISABLE_FIELD
)
e1
:
SetOperation
(
c101003038
.
disop
)
e1
:
SetReset
(
RESET_EVENT
+
0x1ff0000
)
e1
:
SetLabel
(
e
:
GetLabel
())
e
:
GetHandler
():
RegisterEffect
(
e1
)
end
function
c101003038
.
disop
(
e
,
tp
)
return
e
:
GetLabel
()
end
function
c101003038
.
tgtg
(
e
,
c
)
return
e
:
GetHandler
():
GetLinkedGroup
():
IsContains
(
c
)
end
expansions/script/c101003039.lua
0 → 100644
View file @
daf33731
--アンダークロックテイカー
--Underclock Taker
--Script by nekrozar
function
c101003039
.
initial_effect
(
c
)
--link summon
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkType
,
TYPE_EFFECT
),
2
,
2
)
c
:
EnableReviveLimit
()
--atkdown
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003039
,
0
))
e1
:
SetCategory
(
CATEGORY_ATKCHANGE
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetTarget
(
c101003039
.
atktg
)
e1
:
SetOperation
(
c101003039
.
atkop
)
c
:
RegisterEffect
(
e1
)
end
function
c101003039
.
atkfilter
(
c
,
g
)
return
c
:
IsFaceup
()
and
c
:
GetAttack
()
>
0
and
g
:
IsContains
(
c
)
end
function
c101003039
.
atktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
lg
=
e
:
GetHandler
():
GetLinkedGroup
()
if
chkc
then
return
false
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003039
.
atkfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
lg
)
and
Duel
.
IsExistingTarget
(
Card
.
IsFaceup
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SELF
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003039
.
atkfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
lg
)
e
:
SetLabelObject
(
g
:
GetFirst
())
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_OPPO
)
Duel
.
SelectTarget
(
tp
,
Card
.
IsFaceup
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
end
function
c101003039
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc1
=
e
:
GetLabelObject
()
local
g
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
)
local
tc2
=
g
:
GetFirst
()
if
tc1
==
tc2
then
tc2
=
g
:
GetNext
()
end
if
tc1
:
IsFaceup
()
and
tc1
:
IsRelateToEffect
(
e
)
and
tc2
:
IsFaceup
()
and
tc2
:
IsRelateToEffect
(
e
)
then
local
atk
=
tc1
:
GetAttack
()
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetValue
(
-
atk
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc2
:
RegisterEffect
(
e1
)
end
end
expansions/script/c101003044.lua
0 → 100644
View file @
daf33731
--スリーバーストショット・ドラゴン
--Three Burst Blast Dragon
--Scripted by Larry126
function
c101003044
.
initial_effect
(
c
)
--link summon
aux
.
AddLinkProcedure
(
c
,
aux
.
NOT
(
aux
.
FilterBoolFunction
(
Card
.
IsType
,
TYPE_TOKEN
)),
2
)
c
:
EnableReviveLimit
()
--Negate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
101003044
,
0
))
e1
:
SetCategory
(
CATEGORY_NEGATE
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DAMAGE_CAL
)
e1
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCondition
(
c101003044
.
negcon
)
e1
:
SetTarget
(
c101003044
.
negtg
)
e1
:
SetOperation
(
c101003044
.
negop
)
c
:
RegisterEffect
(
e1
)
--pierce
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_PIERCE
)
c
:
RegisterEffect
(
e2
)
--special summon
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e0
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e0
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e0
:
SetOperation
(
c101003044
.
regop
)
c
:
RegisterEffect
(
e0
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
101003044
,
1
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_IGNITION
)
e3
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
,
101003044
)
e3
:
SetCondition
(
c101003044
.
spcon
)
e3
:
SetCost
(
c101003044
.
spcost
)
e3
:
SetTarget
(
c101003044
.
sptg
)
e3
:
SetOperation
(
c101003044
.
spop
)
c
:
RegisterEffect
(
e3
)
end
function
c101003044
.
negcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ph
=
Duel
.
GetCurrentPhase
()
return
(
ph
==
PHASE_DAMAGE
or
ph
==
PHASE_DAMAGE_CAL
)
and
not
e
:
GetHandler
():
IsStatus
(
STATUS_BATTLE_DESTROYED
)
and
(
re
:
IsActiveType
(
TYPE_MONSTER
)
or
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
))
and
Duel
.
IsChainNegatable
(
ev
)
end
function
c101003044
.
negtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_NEGATE
,
eg
,
1
,
0
,
0
)
end
function
c101003044
.
negop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
NegateActivation
(
ev
)
end
function
c101003044
.
regop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
e
:
GetHandler
():
RegisterFlagEffect
(
101003044
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
1
)
end
function
c101003044
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetFlagEffect
(
101003044
)
==
0
end
function
c101003044
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsReleasable
()
end
Duel
.
Release
(
e
:
GetHandler
(),
REASON_COST
)
end
function
c101003044
.
spfilter1
(
c
,
e
,
tp
)
return
c
:
IsType
(
TYPE_LINK
)
and
c
:
IsLinkBelow
(
2
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c101003044
.
spfilter2
(
c
,
e
,
tp
)
return
c
:
IsRace
(
RACE_DRAGON
)
and
c
:
IsLevelBelow
(
4
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c101003044
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
tp
)
and
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
c101003044
.
spfilter1
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
(
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
or
e
:
GetHandler
():
GetSequence
()
<
5
)
and
Duel
.
IsExistingTarget
(
c101003044
.
spfilter1
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
e
:
GetHandler
(),
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003044
.
spfilter1
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
end
function
c101003044
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
then
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
local
g
=
Duel
.
GetMatchingGroup
(
c101003044
.
spfilter2
,
tp
,
LOCATION_HAND
,
0
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
101003044
,
2
))
then
Duel
.
BreakEffect
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
end
expansions/script/c101003045.lua
0 → 100644
View file @
daf33731
--ティンダングル・アキュート・ケルベロス
--Tindangle Acute Cerberus
function
c101003045
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsSetCard
,
0x20b
),
3
,
3
)
--atk
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCondition
(
c101003045
.
atkcon
)
e1
:
SetValue
(
3000
)
c
:
RegisterEffect
(
e1
)
--atk
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetValue
(
c101003045
.
atkval
)
c
:
RegisterEffect
(
e2
)
--special summon
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
101003045
,
0
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_TOKEN
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_PHASE
+
PHASE_BATTLE
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetCondition
(
c101003045
.
spcon
)
e3
:
SetTarget
(
c101003045
.
sptg
)
e3
:
SetOperation
(
c101003045
.
spop
)
c
:
RegisterEffect
(
e3
)
end
function
c101003045
.
cfilter
(
c
)
return
c
:
IsSetCard
(
0x20b
)
and
c
:
IsType
(
TYPE_MONSTER
)
end
function
c101003045
.
atkcon
(
e
)
local
g
=
Duel
.
GetMatchingGroup
(
c101003045
.
cfilter
,
e
:
GetHandler
():
GetControler
(),
LOCATION_GRAVE
,
0
,
nil
)
return
g
:
GetClassCount
(
Card
.
GetCode
)
>=
3
and
g
:
IsExists
(
Card
.
IsCode
,
1
,
nil
,
101003010
)
end
function
c101003045
.
atkfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x20b
)
end
function
c101003045
.
atkval
(
e
,
c
)
return
c
:
GetLinkedGroup
():
FilterCount
(
c101003045
.
atkfilter
,
nil
)
*
600
end
function
c101003045
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetAttackedCount
()
>
0
end
function
c101003045
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
101003145
,
0x20b
,
0x4011
,
0
,
0
,
1
,
RACE_FIEND
,
ATTRIBUTE_DARK
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOKEN
,
nil
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
0
)
end
function
c101003045
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
not
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
101003145
,
0x20b
,
0x4011
,
0
,
0
,
1
,
RACE_FIEND
,
ATTRIBUTE_DARK
)
then
return
end
local
token
=
Duel
.
CreateToken
(
tp
,
101003145
)
Duel
.
SpecialSummon
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
expansions/script/c101003046.lua
0 → 100644
View file @
daf33731
--オルターガイスト・ヘクスティア
--Altergeist Hextia
--Scripted by Eerie Code
function
c101003046
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsSetCard
,
0x103
),
2
,
2
)
--atk
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetValue
(
c101003046
.
atkval
)
c
:
RegisterEffect
(
e1
)
--negate
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003046
,
0
))
e2
:
SetCategory
(
CATEGORY_NEGATE
+
CATEGORY_DESTROY
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCode
(
EVENT_CHAINING
)
e2
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DAMAGE_CAL
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
c101003046
.
discon
)
e2
:
SetCost
(
c101003046
.
discost
)
e2
:
SetTarget
(
c101003046
.
distg
)
e2
:
SetOperation
(
c101003046
.
disop
)
c
:
RegisterEffect
(
e2
)
--search
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
101003046
,
1
))
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetCountLimit
(
1
,
101003046
)
e3
:
SetCondition
(
c101003046
.
thcon
)
e3
:
SetTarget
(
c101003046
.
thtg
)
e3
:
SetOperation
(
c101003046
.
thop
)
c
:
RegisterEffect
(
e3
)
end
function
c101003046
.
atkfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x103
)
and
c
:
GetBaseAttack
()
>=
0
end
function
c101003046
.
atkval
(
e
,
c
)
local
lg
=
c
:
GetLinkedGroup
():
Filter
(
c101003046
.
atkfilter
,
nil
)
return
g
:
GetSum
(
Card
.
GetBaseAttack
)
end
function
c101003046
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
e
:
GetHandler
():
IsStatus
(
STATUS_BATTLE_DESTROYED
)
then
return
false
end
return
re
:
IsActiveType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
Duel
.
IsChainNegatable
(
ev
)
end
function
c101003046
.
cfilter
(
c
,
g
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x103
)
and
g
:
IsContains
(
c
)
and
not
c
:
IsStatus
(
STATUS_BATTLE_DESTROYED
)
end
function
c101003046
.
discost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
lg
=
e
:
GetHandler
():
GetLinkedGroup
()
if
chk
==
0
then
return
Duel
.
CheckReleaseGroup
(
tp
,
c101003046
.
cfilter
,
1
,
nil
,
lg
)
end
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
c101003046
.
cfilter
,
1
,
1
,
nil
,
lg
)
Duel
.
Release
(
g
,
REASON_COST
)
end
function
c101003046
.
distg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_NEGATE
,
eg
,
1
,
0
,
0
)
if
re
:
GetHandler
():
IsDestructable
()
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
eg
,
1
,
0
,
0
)
end
end
function
c101003046
.
disop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
NegateActivation
(
ev
)
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
Destroy
(
eg
,
REASON_EFFECT
)
end
end
function
c101003046
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
end
function
c101003046
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x103
)
and
c
:
IsAbleToHand
()
end
function
c101003046
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003046
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003046
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003046
.
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
expansions/script/c101003047.lua
0 → 100644
View file @
daf33731
--星痕の機界騎士
--Mekk-Knight of the World Remains
--Scripted by Eerie Code
function
c101003047
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsSetCard
,
0x20c
),
2
)
--direct attack
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_DIRECT_ATTACK
)
e1
:
SetCondition
(
c101003047
.
dircon
)
c
:
RegisterEffect
(
e1
)
--cannot be target/effect indestructable
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
c101003047
.
indcon
)
e2
:
SetValue
(
1
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EFFECT_CANNOT_BE_EFFECT_TARGET
)
e3
:
SetValue
(
aux
.
tgoval
)
c
:
RegisterEffect
(
e3
)
--special summon
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
101003047
,
0
))
e4
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetCountLimit
(
1
,
101003047
)
e4
:
SetCost
(
c101003047
.
spcost
)
e4
:
SetTarget
(
c101003047
.
sptg
)
e4
:
SetOperation
(
c101003047
.
spop
)
c
:
RegisterEffect
(
e4
)
end
function
c101003047
.
dircon
(
e
)
return
e
:
GetHandler
():
GetColumnGroupCount
()
==
0
end
function
c101003047
.
indcon
(
e
)
local
c
=
e
:
GetHandler
()
return
c
:
GetSequence
()
>
4
and
c
:
GetLinkedGroupCount
()
==
0
end
function
c101003047
.
spcfilter
(
c
,
hc
)
return
c
:
GetColumnGroup
():
IsContains
(
hc
)
and
c
:
IsAbleToGraveAsCost
()
end
function
c101003047
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x20c
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
function
c101003047
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_ONFIELD
if
ft
<=
0
then
loc
=
LOCATION_MZONE
end
if
chk
==
0
then
return
ft
>-
1
and
Duel
.
IsExistingMatchingCard
(
c101003047
.
spcfilter
,
tp
,
loc
,
0
,
1
,
c
,
c
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003047
.
spcfilter
,
tp
,
loc
,
0
,
1
,
1
,
c
,
c
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
end
function
c101003047
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003047
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003047
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003047
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
end
expansions/script/c101003052.lua
0 → 100644
View file @
daf33731
--天火の牢獄
--Fire Prison
--Script by nekrozar
function
c101003052
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--defup
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsRace
,
RACE_DRAGON
))
e2
:
SetValue
(
300
)
c
:
RegisterEffect
(
e2
)
--cannot link summon
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e3
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e3
:
SetRange
(
LOCATION_FZONE
)
e3
:
SetTargetRange
(
1
,
1
)
e3
:
SetTarget
(
c101003052
.
splimit
)
c
:
RegisterEffect
(
e3
)
--cannot attack
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCode
(
EFFECT_CANNOT_ATTACK
)
e4
:
SetRange
(
LOCATION_FZONE
)
e4
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e4
:
SetTarget
(
c101003052
.
atktg
)
c
:
RegisterEffect
(
e4
)
--disable
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e5
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e5
:
SetRange
(
LOCATION_FZONE
)
e5
:
SetCondition
(
c101003052
.
discon
)
e5
:
SetOperation
(
c101003052
.
disop
)
c
:
RegisterEffect
(
e5
)
--cannot attack
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_FIELD
)
e6
:
SetCode
(
EFFECT_CANNOT_ATTACK
)
e6
:
SetRange
(
LOCATION_FZONE
)
e6
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e6
:
SetCondition
(
c101003052
.
limcon
)
e6
:
SetTarget
(
c101003052
.
atlimit
)
c
:
RegisterEffect
(
e6
)
--cannot be battle target
local
e7
=
Effect
.
CreateEffect
(
c
)
e7
:
SetType
(
EFFECT_TYPE_FIELD
)
e7
:
SetCode
(
EFFECT_CANNOT_SELECT_BATTLE_TARGET
)
e7
:
SetRange
(
LOCATION_FZONE
)
e7
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e7
:
SetCondition
(
c101003052
.
limcon
)
e7
:
SetValue
(
c101003052
.
atlimit
)
c
:
RegisterEffect
(
e7
)
--cannot be effect target
local
e8
=
Effect
.
CreateEffect
(
c
)
e8
:
SetType
(
EFFECT_TYPE_FIELD
)
e8
:
SetCode
(
EFFECT_CANNOT_BE_EFFECT_TARGET
)
e8
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e8
:
SetRange
(
LOCATION_FZONE
)
e8
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e8
:
SetCondition
(
c101003052
.
limcon
)
e8
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsRace
,
RACE_CYBERSE
))
e8
:
SetValue
(
1
)
c
:
RegisterEffect
(
e8
)
end
function
c101003052
.
limfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_LINK
)
end
function
c101003052
.
splimit
(
e
,
c
,
tp
,
sumtp
,
sumpos
)
local
g
=
Duel
.
GetMatchingGroup
(
c101003052
.
limfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
if
g
:
GetCount
()
<=
0
then
return
false
end
local
mg
,
lk
=
g
:
GetMinGroup
(
Card
.
GetLink
)
return
lk
>
c
:
GetLink
()
and
bit
.
band
(
sumtp
,
SUMMON_TYPE_LINK
)
==
SUMMON_TYPE_LINK
end
function
c101003052
.
atktg
(
e
,
c
)
return
not
c
:
IsType
(
TYPE_LINK
)
end
function
c101003052
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_CYBERSE
)
and
c
:
IsType
(
TYPE_LINK
)
end
function
c101003052
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetMatchingGroupCount
(
c101003052
.
cfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
>
1
and
re
:
IsActiveType
(
TYPE_MONSTER
)
and
re
:
GetHandler
():
IsRace
(
RACE_CYBERSE
)
end
function
c101003052
.
disop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
NegateEffect
(
ev
)
end
function
c101003052
.
limcon
(
e
)
return
Duel
.
GetMatchingGroupCount
(
c101003052
.
cfilter
,
e
:
GetHandler
():
GetControler
(),
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
>
1
end
function
c101003052
.
atlimit
(
e
,
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_CYBERSE
)
end
expansions/script/c101003054.lua
0 → 100644
View file @
daf33731
--ナーゲルの守護天
--Protected Sky of Nagel
--Scripted by Eerie Code
function
c101003054
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--indes
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_INDESTRUCTABLE_BATTLE
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e2
:
SetTarget
(
c101003054
.
indtg
)
e2
:
SetValue
(
1
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e3
:
SetValue
(
c101003054
.
indval
)
c
:
RegisterEffect
(
e3
)
--double damage
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCode
(
EFFECT_CHANGE_DAMAGE
)
e4
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e4
:
SetTargetRange
(
0
,
1
)
e4
:
SetRange
(
LOCATION_SZONE
)
e4
:
SetValue
(
c101003054
.
damval
)
c
:
RegisterEffect
(
e4
)
--search
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e5
:
SetType
(
EFFECT_TYPE_IGNITION
)
e5
:
SetRange
(
LOCATION_GRAVE
)
e5
:
SetCountLimit
(
1
,
101003054
)
e5
:
SetCost
(
c101003054
.
thcost
)
e5
:
SetTarget
(
c101003054
.
thtg
)
e5
:
SetOperation
(
c101003054
.
thop
)
c
:
RegisterEffect
(
e5
)
end
function
c101003054
.
indtg
(
e
,
c
)
return
c
:
IsSetCard
(
0x20b
)
and
c
:
GetSequence
()
<
5
end
function
c101003054
.
damval
(
e
,
re
,
val
,
r
,
rp
,
rc
)
local
tp
=
e
:
GetHandlerPlayer
()
if
Duel
.
GetFlagEffect
(
tp
,
101003054
)
~=
0
or
bit
.
band
(
r
,
REASON_BATTLE
)
==
0
or
not
rc
:
IsSetCard
(
0x20b
)
or
not
rc
:
IsControler
(
tp
)
then
return
val
end
Duel
.
ResetFlagEffect
(
tp
,
101003054
)
return
val
*
2
end
function
c101003054
.
cfilter
(
c
)
return
c
:
IsSetCard
(
0x20b
)
and
c
:
IsDiscardable
()
end
function
c101003054
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemoveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c101003054
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_COST
)
Duel
.
DiscardHand
(
tp
,
c101003054
.
cfilter
,
1
,
1
,
REASON_COST
+
REASON_DISCARD
)
end
function
c101003054
.
filter
(
c
)
return
c
:
IsCode
(
101003054
)
and
c
:
IsAbleToHand
()
end
function
c101003054
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003054
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003054
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstMatchingCard
(
c101003054
.
filter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
if
tc
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
end
end
expansions/script/c101003055.lua
0 → 100644
View file @
daf33731
--オイラーサーキット
--Euler Circuit
--Scripted by Eerie Code
function
c101003055
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--cannot attack
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_CANNOT_ATTACK
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetTargetRange
(
0
,
LOCATION_MZONE
)
e2
:
SetCondition
(
c101003055
.
atkcon
)
c
:
RegisterEffect
(
e2
)
--give control
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetCategory
(
CATEGORY_CONTROL
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e3
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e3
:
SetRange
(
LOCATION_FZONE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetCondition
(
c101003055
.
ctcon
)
e3
:
SetTarget
(
c101003055
.
cttg
)
e3
:
SetOperation
(
c101003055
.
ctop
)
c
:
RegisterEffect
(
e3
)
--search
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e5
:
SetType
(
EFFECT_TYPE_IGNITION
)
e5
:
SetRange
(
LOCATION_GRAVE
)
e5
:
SetCountLimit
(
1
,
101003055
)
e5
:
SetCost
(
c101003055
.
thcost
)
e5
:
SetTarget
(
c101003055
.
thtg
)
e5
:
SetOperation
(
c101003055
.
thop
)
c
:
RegisterEffect
(
e5
)
end
function
c101003055
.
atkfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x20b
)
end
function
c101003055
.
atkcon
(
e
)
return
Duel
.
IsExistingMatchingCard
(
c101003055
.
atkfilter
,
e
:
GetHandlerPlayer
(),
LOCATION_MZONE
,
0
,
3
,
nil
)
end
function
c101003055
.
ctcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetTurnPlayer
()
==
tp
end
function
c101003055
.
ctfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x20b
)
and
c
:
IsAbleToChangeControler
()
end
function
c101003055
.
cttg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
tp
)
and
c101003055
.
ctfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003055
.
ctfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_CONTROL
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003055
.
ctfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_CONTROL
,
g
,
1
,
0
,
0
)
end
function
c101003055
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsControler
(
tp
)
then
Duel
.
GetControl
(
tc
,
1
-
tp
)
end
end
function
c101003055
.
cfilter
(
c
)
return
c
:
IsSetCard
(
0x20b
)
and
c
:
IsDiscardable
()
end
function
c101003055
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemoveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c101003055
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_COST
)
Duel
.
DiscardHand
(
tp
,
c101003055
.
cfilter
,
1
,
1
,
REASON_COST
+
REASON_DISCARD
)
end
function
c101003055
.
filter
(
c
)
return
c
:
IsCode
(
101003055
)
and
c
:
IsAbleToHand
()
end
function
c101003055
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003055
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003055
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstMatchingCard
(
c101003055
.
filter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
if
tc
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
end
end
expansions/script/c101003056.lua
0 → 100644
View file @
daf33731
--星遺物が刻む傷痕
--Wounds Carved on the World Legacy
--Script by nekrozar
function
c101003056
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--atk/def
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x20c
))
e2
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e2
:
SetValue
(
300
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
c
:
RegisterEffect
(
e3
)
--draw
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
101003056
,
0
))
e4
:
SetCategory
(
CATEGORY_DRAW
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetRange
(
LOCATION_FZONE
)
e4
:
SetCountLimit
(
1
)
e4
:
SetCost
(
c101003056
.
drcost
)
e4
:
SetTarget
(
c101003056
.
drtg
)
e4
:
SetOperation
(
c101003056
.
drop
)
c
:
RegisterEffect
(
e4
)
--to grave
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetDescription
(
aux
.
Stringid
(
101003056
,
1
))
e5
:
SetCategory
(
CATEGORY_TOGRAVE
)
e5
:
SetType
(
EFFECT_TYPE_IGNITION
)
e5
:
SetRange
(
LOCATION_FZONE
)
e5
:
SetCost
(
c101003056
.
tgcost
)
e5
:
SetTarget
(
c101003056
.
tgtg
)
e5
:
SetOperation
(
c101003056
.
tgop
)
c
:
RegisterEffect
(
e5
)
end
function
c101003056
.
costfilter1
(
c
)
return
((
c
:
IsSetCard
(
0x20c
)
and
c
:
IsType
(
TYPE_MONSTER
))
or
c
:
IsSetCard
(
0xfe
))
and
c
:
IsDiscardable
()
end
function
c101003056
.
drcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003056
.
costfilter1
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_OPSELECTED
,
1
-
tp
,
e
:
GetDescription
())
Duel
.
DiscardHand
(
tp
,
c101003056
.
costfilter1
,
1
,
1
,
REASON_DISCARD
+
REASON_COST
)
end
function
c101003056
.
drtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
end
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetTargetParam
(
1
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
end
function
c101003056
.
drop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
p
,
d
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
,
CHAININFO_TARGET_PARAM
)
Duel
.
Draw
(
p
,
d
,
REASON_EFFECT
)
end
function
c101003056
.
costfilter2
(
c
)
return
c
:
IsSetCard
(
0x20c
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
(
c
:
IsLocation
(
LOCATION_GRAVE
)
or
c
:
IsFaceup
())
and
c
:
IsAbleToRemoveAsCost
()
end
function
c101003056
.
tgcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
c101003056
.
costfilter2
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
0
,
nil
)
if
chk
==
0
then
return
g
:
GetClassCount
(
Card
.
GetCode
)
>=
6
end
Duel
.
Hint
(
HINT_OPSELECTED
,
1
-
tp
,
e
:
GetDescription
())
local
rg
=
Group
.
CreateGroup
()
for
i
=
1
,
6
do
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
sg
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
rg
:
AddCard
(
sg
:
GetFirst
())
g
:
Remove
(
Card
.
IsCode
,
nil
,
sg
:
GetFirst
():
GetCode
())
end
Duel
.
Remove
(
rg
,
POS_FACEUP
,
REASON_COST
)
end
function
c101003056
.
tgtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToGrave
,
tp
,
0
,
LOCATION_HAND
+
LOCATION_EXTRA
,
1
,
nil
)
end
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToGrave
,
tp
,
0
,
LOCATION_HAND
+
LOCATION_EXTRA
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
g
,
g
:
GetCount
(),
0
,
0
)
end
function
c101003056
.
tgop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToGrave
,
tp
,
0
,
LOCATION_HAND
+
LOCATION_EXTRA
,
nil
)
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
end
expansions/script/c101003057.lua
0 → 100644
View file @
daf33731
--星遺物へと至る鍵
--Key to World Legacy
--Script by nekrozar
function
c101003057
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetTarget
(
c101003057
.
target
)
c
:
RegisterEffect
(
e1
)
--disable
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetCondition
(
c101003057
.
discon
)
e2
:
SetOperation
(
c101003057
.
disop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003057
.
thfilter
(
c
)
return
((
c
:
IsSetCard
(
0x20c
)
and
c
:
IsType
(
TYPE_MONSTER
))
or
c
:
IsSetCard
(
0xfe
))
and
c
:
IsAbleToHand
()
end
function
c101003057
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_REMOVED
)
and
chkc
:
IsControler
(
tp
)
and
c101003057
.
thfilter
(
chkc
)
end
if
chk
==
0
then
return
true
end
if
Duel
.
IsExistingTarget
(
c101003057
.
thfilter
,
tp
,
LOCATION_REMOVED
,
0
,
1
,
nil
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
101003057
,
0
))
then
e
:
SetCategory
(
CATEGORY_TOHAND
)
e
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e
:
SetOperation
(
c101003057
.
activate
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003057
.
thfilter
,
tp
,
LOCATION_REMOVED
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
g
,
1
,
0
,
0
)
else
e
:
SetCategory
(
0
)
e
:
SetProperty
(
0
)
e
:
SetOperation
(
nil
)
end
end
function
c101003057
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
end
end
function
c101003057
.
cfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x20c
)
end
function
c101003057
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
rp
~=
tp
and
re
:
IsActiveType
(
TYPE_TRAP
)
and
re
:
GetHandler
():
GetColumnGroup
():
FilterCount
(
c101003057
.
cfilter
,
nil
,
tp
)
>
0
end
function
c101003057
.
disop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
NegateEffect
(
ev
)
end
expansions/script/c101003058.lua
0 → 100644
View file @
daf33731
--魔導加速
--Magical Boost
--Scripted by Eerie Code
function
c101003058
.
initial_effect
(
c
)
--counter
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_COUNTER
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCountLimit
(
1
,
101003058
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetCost
(
c101003058
.
cost
)
e1
:
SetTarget
(
c101003058
.
target
)
e1
:
SetOperation
(
c101003058
.
activate
)
c
:
RegisterEffect
(
e1
)
--special summon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_COUNTER
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_DESTROYED
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCondition
(
c101003058
.
spcon
)
e2
:
SetTarget
(
c101003058
.
sptg
)
e2
:
SetOperation
(
c101003058
.
spop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003058
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanDiscardDeckAsCost
(
tp
,
2
)
end
Duel
.
DiscardDeck
(
tp
,
2
,
REASON_COST
)
end
function
c101003058
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCanAddCounter
(
0x1
,
1
)
end
function
c101003058
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsOnField
()
and
c101003058
.
filter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003058
.
filter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
Duel
.
SelectTarget
(
tp
,
c101003058
.
filter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_COUNTER
,
nil
,
1
,
0
,
0x1
)
end
function
c101003058
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
and
tc
:
IsFaceup
()
and
tc
:
IsRelateToEffect
(
e
)
then
if
tc
:
IsCanAddCounter
(
0x1
,
2
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
101003058
,
0
))
then
tc
:
AddCounter
(
0x1
,
2
)
else
tc
:
AddCounter
(
0x1
,
1
)
end
end
end
function
c101003058
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
rp
~=
tp
and
c
:
IsReason
(
REASON_EFFECT
)
and
c
:
GetPreviousControler
()
==
tp
end
function
c101003058
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCanAddCounter
(
0x1
,
1
,
false
,
LOCATION_MZONE
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c101003058
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c101003058
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003058
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
c101003058
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
):
GetFirst
()
if
tc
and
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
then
if
tc
:
IsCanAddCounter
(
0x1
,
2
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
101003058
,
0
))
then
tc
:
AddCounter
(
0x1
,
2
)
else
tc
:
AddCounter
(
0x1
,
1
)
end
end
end
expansions/script/c101003059.lua
0 → 100644
View file @
daf33731
--栄光の聖騎士団
--Glory of the Noble Knights
--Script by nekrozar
function
c101003059
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCountLimit
(
1
,
101003059
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetTarget
(
c101003059
.
target
)
e1
:
SetOperation
(
c101003059
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c101003059
.
filter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x107a
)
and
Duel
.
IsExistingMatchingCard
(
c101003059
.
eqfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
c
,
tp
)
end
function
c101003059
.
eqfilter
(
c
,
tc
,
tp
)
return
c
:
IsType
(
TYPE_EQUIP
)
and
c
:
CheckEquipTarget
(
tc
)
and
c
:
CheckUniqueOnField
(
tp
)
and
not
c
:
IsForbidden
()
end
function
c101003059
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
tp
)
and
c101003059
.
filter
(
chkc
,
tp
)
end
local
ft
=
0
if
e
:
GetHandler
():
IsLocation
(
LOCATION_HAND
)
then
ft
=
1
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
ft
and
Duel
.
IsExistingTarget
(
c101003059
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
Duel
.
SelectTarget
(
tp
,
c101003059
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
end
function
c101003059
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<=
0
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
and
tc
:
IsControler
(
tp
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003059
.
eqfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
tc
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
Equip
(
tp
,
g
:
GetFirst
(),
tc
)
end
end
end
expansions/script/c101003061.lua
0 → 100644
View file @
daf33731
--ペンデュラム・パラドックス
--Pendulum Paradox
--Scripted by Eerie Code
function
c101003061
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_TOHAND
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCountLimit
(
1
,
101003061
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetTarget
(
c101003061
.
target
)
e1
:
SetOperation
(
c101003061
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c101003061
.
filter1
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_PENDULUM
)
and
c
:
IsAbleToHand
()
and
Duel
.
IsExistingMatchingCard
(
c101003061
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
c
,
c
:
GetLeftScale
(),
c
:
GetCode
())
end
function
c101003061
.
filter2
(
c
,
sc
,
cd
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_PENDULUM
)
and
c
:
IsAbleToHand
()
and
c
:
GetLeftScale
()
==
sc
and
not
c
:
IsCode
(
cd
)
end
function
c101003061
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003061
.
filter1
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
2
,
tp
,
LOCATION_EXTRA
)
end
function
c101003061
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
tc1
=
Duel
.
SelectMatchingCard
(
tp
,
c101003061
.
filter1
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
tp
):
GetFirst
()
if
not
tc1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
tc2
=
Duel
.
SelectMatchingCard
(
tp
,
c101003061
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
tc1
,
tc1
:
GetLeftScale
(),
tc1
:
GetCode
()):
GetFirst
()
Duel
.
SendtoHand
(
Group
.
FromCards
(
tc1
,
tc2
),
nil
,
REASON_EFFECT
)
end
expansions/script/c101003063.lua
0 → 100644
View file @
daf33731
--ダウンビート
--Downbeat
--Script by nekrozar
function
c101003063
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCountLimit
(
1
,
101003063
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetCost
(
c101003063
.
cost
)
e1
:
SetTarget
(
c101003063
.
target
)
e1
:
SetOperation
(
c101003063
.
activate
)
e1
:
SetLabel
(
0
)
c
:
RegisterEffect
(
e1
)
end
function
c101003063
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
e
:
SetLabel
(
100
)
if
chk
==
0
then
return
true
end
end
function
c101003063
.
costfilter
(
c
,
e
,
tp
)
return
c
:
IsFaceup
()
and
c
:
GetOriginalLevel
()
>
0
and
Duel
.
IsExistingMatchingCard
(
c101003063
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
c
,
e
,
tp
)
end
function
c101003063
.
spfilter
(
c
,
tc
,
e
,
tp
)
return
c
:
GetOriginalLevel
()
==
tc
:
GetOriginalLevel
()
-
1
and
c
:
GetOriginalRace
()
==
tc
:
GetOriginalRace
()
and
c
:
GetOriginalAttribute
()
==
tc
:
GetOriginalAttribute
()
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c101003063
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
if
e
:
GetLabel
()
~=
100
then
return
false
end
e
:
SetLabel
(
0
)
return
e
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
1
and
Duel
.
CheckReleaseGroup
(
tp
,
c101003063
.
costfilter
,
1
,
nil
,
e
,
tp
)
end
e
:
SetLabel
(
0
)
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
c101003063
.
costfilter
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
SetTargetCard
(
g
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003063
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003063
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
tc
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c101003066.lua
0 → 100644
View file @
daf33731
--パラレルポート・アーマー
--Parallel Port Armor
--Scripted by Larry126
function
c101003066
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetTarget
(
c101003066
.
target
)
e1
:
SetOperation
(
c101003066
.
operation
)
c
:
RegisterEffect
(
e1
)
--extra attack
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003066
,
0
))
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetCondition
(
c101003066
.
atcon
)
e2
:
SetCost
(
c101003066
.
atkcost
)
e2
:
SetTarget
(
c101003066
.
atktg
)
e2
:
SetOperation
(
c101003066
.
atkop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003066
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_LINK
)
end
function
c101003066
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
tp
)
and
c101003066
.
filter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003066
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
Duel
.
SelectTarget
(
tp
,
c101003066
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c101003066
.
eqlimit
(
e
,
c
)
return
c
:
GetControler
()
==
e
:
GetHandlerPlayer
()
and
c
:
IsType
(
TYPE_LINK
)
end
function
c101003066
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
c
:
IsLocation
(
LOCATION_SZONE
)
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
c
:
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
Duel
.
Equip
(
tp
,
c
,
tc
)
c
:
CancelToGrave
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_INDESTRUCTABLE_BATTLE
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetValue
(
1
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_CANNOT_BE_EFFECT_TARGET
)
e2
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e2
:
SetValue
(
aux
.
tgoval
)
tc
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetValue
(
c101003066
.
eqlimit
)
e3
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
c
:
RegisterEffect
(
e3
)
end
end
function
c101003066
.
atcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsAbleToEnterBP
()
or
(
Duel
.
GetCurrentPhase
()
>=
PHASE_BATTLE_START
and
Duel
.
GetCurrentPhase
()
<=
PHASE_BATTLE
)
end
function
c101003066
.
cfilter
(
c
)
return
c
:
IsType
(
TYPE_LINK
)
and
c
:
IsAbleToRemoveAsCost
()
end
function
c101003066
.
atkcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemoveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c101003066
.
cfilter
,
tp
,
LOCATION_GRAVE
,
0
,
2
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003066
.
cfilter
,
tp
,
LOCATION_GRAVE
,
0
,
2
,
2
,
nil
)
g
:
AddCard
(
e
:
GetHandler
())
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
end
function
c101003066
.
atkfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_LINK
)
and
not
c
:
IsHasEffect
(
EFFECT_EXTRA_ATTACK
)
end
function
c101003066
.
atktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
tp
)
and
c101003066
.
filter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003066
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
Duel
.
SelectTarget
(
tp
,
c101003066
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
end
function
c101003066
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_EXTRA_ATTACK
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetValue
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
end
end
expansions/script/c101003069.lua
0 → 100644
View file @
daf33731
--ティンダングル・ドロネー
--Tindangle Dalaunay
--Script by nekrozar
function
c101003069
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_BATTLE_DAMAGE
)
e1
:
SetCondition
(
c101003069
.
condition
)
e1
:
SetTarget
(
c101003069
.
target
)
e1
:
SetOperation
(
c101003069
.
activate
)
c
:
RegisterEffect
(
e1
)
--special summon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003069
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetHintTiming
(
0
,
TIMING_END_PHASE
)
e2
:
SetCondition
(
c101003069
.
spcon
)
e2
:
SetCost
(
aux
.
bfgcost
)
e2
:
SetTarget
(
c101003069
.
sptg
)
e2
:
SetOperation
(
c101003069
.
spop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003069
.
cfilter1
(
c
)
return
c
:
IsSetCard
(
0x20b
)
and
c
:
IsType
(
TYPE_MONSTER
)
end
function
c101003069
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
ep
==
tp
and
Duel
.
GetAttacker
():
IsControler
(
1
-
tp
)
and
Duel
.
IsExistingMatchingCard
(
c101003069
.
cfilter1
,
tp
,
LOCATION_GRAVE
,
0
,
3
,
nil
)
end
function
c101003069
.
filter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
101003045
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c101003069
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tg
=
Duel
.
GetAttacker
()
if
chk
==
0
then
return
tg
:
IsOnField
()
and
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c101003069
.
filter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetTargetCard
(
tg
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tg
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
end
function
c101003069
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToBattle
()
and
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
then
if
Duel
.
GetLocationCountFromEx
(
tp
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003069
.
filter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
end
function
c101003069
.
cfilter2
(
c
)
return
c
:
GetSequence
()
>=
5
end
function
c101003069
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
not
Duel
.
IsExistingMatchingCard
(
c101003069
.
cfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
function
c101003069
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x20b
)
and
c
:
IsCanBeEffectTarget
(
e
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
end
function
c101003069
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
false
end
local
g
=
Duel
.
GetMatchingGroup
(
c101003069
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
nil
,
e
,
tp
)
if
chk
==
0
then
return
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
2
and
g
:
GetClassCount
(
Card
.
GetCode
)
>
2
end
local
tg
=
Group
.
CreateGroup
()
for
i
=
1
,
3
do
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
tg
:
Merge
(
sg
)
g
:
Remove
(
Card
.
IsCode
,
nil
,
sg
:
GetFirst
():
GetCode
())
end
Duel
.
SetTargetCard
(
tg
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
tg
,
tg
:
GetCount
(),
0
,
0
)
end
function
c101003069
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
):
Filter
(
Card
.
IsRelateToEffect
,
nil
,
e
)
if
ft
<=
0
or
g
:
GetCount
()
==
0
or
(
g
:
GetCount
()
>
1
and
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
))
then
return
end
if
g
:
GetCount
()
<=
ft
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
g
:
Select
(
tp
,
ft
,
ft
,
nil
)
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
end
end
expansions/script/c101003070.lua
0 → 100644
View file @
daf33731
--オルターガイスト・マテリアリゼーション
--Altergeist Materialization
--Scripted by Eerie Code
function
c101003070
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetTarget
(
c101003070
.
target
)
e1
:
SetOperation
(
c101003070
.
operation
)
c
:
RegisterEffect
(
e1
)
--Destroy
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EVENT_LEAVE_FIELD
)
e2
:
SetOperation
(
c101003070
.
desop
)
c
:
RegisterEffect
(
e2
)
--to hand
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetCategory
(
CATEGORY_TOHAND
)
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCode
(
EVENT_FREE_CHAIN
)
e3
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e3
:
SetRange
(
LOCATION_GRAVE
)
e3
:
SetCountLimit
(
1
,
101003070
)
e3
:
SetCost
(
aux
.
bfgcost
)
e3
:
SetTarget
(
c101003070
.
thtg
)
e3
:
SetOperation
(
c101003070
.
thop
)
c
:
RegisterEffect
(
e3
)
end
function
c101003070
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x103
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_ATTACK
)
end
function
c101003070
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c101003070
.
spfilter
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c101003070
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003070
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c101003070
.
eqlimit
(
e
,
c
)
return
e
:
GetLabelObject
()
==
c
end
function
c101003070
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
c
:
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
then
if
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_ATTACK
)
==
0
then
return
end
Duel
.
Equip
(
tp
,
c
,
tc
)
c
:
CancelToGrave
()
--Add Equip limit
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetValue
(
c101003070
.
eqlimit
)
e1
:
SetLabelObject
(
tc
)
c
:
RegisterEffect
(
e1
)
end
end
function
c101003070
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
c
:
GetFirstCardTarget
()
if
tc
and
tc
:
IsLocation
(
LOCATION_MZONE
)
then
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
end
end
function
c101003070
.
thfilter
(
c
)
return
c
:
IsType
(
TYPE_TRAP
)
and
c
:
IsSetCard
(
0x103
)
and
c
:
IsAbleToHand
()
end
function
c101003070
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c101003070
.
thfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003070
.
thfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003070
.
thfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
g
,
1
,
0
,
0
)
end
function
c101003070
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
end
end
expansions/script/c101003071.lua
0 → 100644
View file @
daf33731
--星遺物の囁き
--Whisper of the World Legacy
--Script by nekrozar
function
c101003071
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetHintTiming
(
TIMING_DAMAGE_STEP
)
e1
:
SetTarget
(
c101003071
.
target
)
c
:
RegisterEffect
(
e1
)
--disable
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetCondition
(
c101003071
.
discon
)
e2
:
SetOperation
(
c101003071
.
disop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003071
.
atkfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsLevelBelow
(
6
)
end
function
c101003071
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
c101003071
.
atkfilter
(
chkc
)
end
if
chk
==
0
then
if
Duel
.
GetCurrentPhase
()
==
PHASE_DAMAGE
then
return
Duel
.
IsExistingTarget
(
c101003071
.
atkfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
return
true
end
if
Duel
.
GetCurrentPhase
()
==
PHASE_DAMAGE
or
(
Duel
.
IsExistingTarget
(
c101003071
.
atkfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
101003071
,
0
)))
then
e
:
SetCategory
(
CATEGORY_ATKCHANGE
)
e
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_CARD_TARGET
)
e
:
SetOperation
(
c101003071
.
activate
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
Duel
.
SelectTarget
(
tp
,
c101003071
.
atkfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
else
e
:
SetCategory
(
0
)
e
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e
:
SetOperation
(
nil
)
end
end
function
c101003071
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetValue
(
1000
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
tc
:
RegisterEffect
(
e2
)
end
end
function
c101003071
.
cfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x20c
)
end
function
c101003071
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
rp
~=
tp
and
re
:
IsActiveType
(
TYPE_SPELL
)
and
re
:
GetHandler
():
GetColumnGroup
():
FilterCount
(
c101003071
.
cfilter
,
nil
,
tp
)
>
0
end
function
c101003071
.
disop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
NegateEffect
(
ev
)
end
expansions/script/c101003072.lua
0 → 100644
View file @
daf33731
--星遺物に眠る深層
--Deep Depths of the World Legacy's Slumber
--Script by nekrozar
function
c101003072
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetHintTiming
(
0
,
TIMING_END_PHASE
)
e1
:
SetTarget
(
c101003072
.
target
)
c
:
RegisterEffect
(
e1
)
--destroy
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_LEAVE_FIELD_P
)
e2
:
SetOperation
(
c101003072
.
checkop
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EVENT_LEAVE_FIELD
)
e3
:
SetOperation
(
c101003072
.
desop
)
e3
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e3
)
--disable
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e4
:
SetRange
(
LOCATION_SZONE
)
e4
:
SetCondition
(
c101003072
.
discon
)
e4
:
SetOperation
(
c101003072
.
disop
)
c
:
RegisterEffect
(
e4
)
end
function
c101003072
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsLevelAbove
(
5
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c101003072
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c101003072
.
spfilter
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
true
end
if
Duel
.
IsExistingTarget
(
c101003072
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
101003072
,
0
))
then
e
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e
:
SetOperation
(
c101003072
.
activate
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c101003072
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
else
e
:
SetCategory
(
0
)
e
:
SetProperty
(
0
)
e
:
SetOperation
(
nil
)
end
end
function
c101003072
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
c
:
IsRelateToEffect
(
e
)
and
tc
:
IsRelateToEffect
(
e
)
and
Duel
.
SpecialSummonStep
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_ATTACK
)
then
c
:
SetCardTarget
(
tc
)
Duel
.
SpecialSummonComplete
()
end
end
function
c101003072
.
checkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
e
:
GetHandler
():
IsDisabled
()
then
e
:
SetLabel
(
1
)
else
e
:
SetLabel
(
0
)
end
end
function
c101003072
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
e
:
GetLabelObject
():
GetLabel
()
~=
0
then
return
end
local
tc
=
e
:
GetHandler
():
GetFirstCardTarget
()
if
tc
and
tc
:
IsLocation
(
LOCATION_MZONE
)
then
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
end
end
function
c101003072
.
cfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x20c
)
end
function
c101003072
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
rp
~=
tp
and
re
:
IsActiveType
(
TYPE_MONSTER
)
and
re
:
GetHandler
():
GetColumnGroup
():
FilterCount
(
c101003072
.
cfilter
,
nil
,
tp
)
>
0
end
function
c101003072
.
disop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
NegateEffect
(
ev
)
end
expansions/script/c101003073.lua
0 → 100644
View file @
daf33731
--魔導変換
--Magical Burst
--Scripted by Eerie Code
function
c101003073
.
initial_effect
(
c
)
c
:
EnableCounterPermit
(
0x1
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--add counter
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_FIELD
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_CHAINING
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetOperation
(
aux
.
chainreg
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVED
)
e3
:
SetRange
(
LOCATION_SZONE
)
e3
:
SetOperation
(
c101003073
.
acop
)
c
:
RegisterEffect
(
e3
)
--search
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e4
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e4
:
SetCode
(
EVENT_FREE_CHAIN
)
e4
:
SetRange
(
LOCATION_SZONE
)
e4
:
SetCountLimit
(
1
,
101003073
)
e4
:
SetCondition
(
c101003073
.
thcon
)
e4
:
SetCost
(
c101003073
.
thcost
)
e4
:
SetTarget
(
c101003073
.
thtg
)
e4
:
SetOperation
(
c101003073
.
thop
)
c
:
RegisterEffect
(
e4
)
end
c101003073
.
spell_counter_permit
=
99
function
c101003073
.
acop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
p
=
Duel
.
GetChainInfo
(
ev
,
CHAININFO_TRIGGERING_PLAYER
)
local
c
=
e
:
GetHandler
()
if
re
:
IsActiveType
(
TYPE_MONSTER
)
and
p
~=
tp
and
c
:
GetFlagEffect
(
1
)
>
0
then
c
:
AddCounter
(
0x1
,
1
)
end
end
function
c101003073
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetCounter
(
0x1
)
>=
6
end
function
c101003073
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
)
end
function
c101003073
.
thfilter
(
c
)
return
c
:
IsType
(
TYPE_SPELL
)
and
c
:
IsAbleToHand
()
end
function
c101003073
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c101003073
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c101003073
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003073
.
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
expansions/script/c101003074.lua
0 → 100644
View file @
daf33731
--ゴーストリック・リフォーム
--Ghostrick Reform
--Script by nekrozar
function
c101003074
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_TOHAND
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetTarget
(
c101003074
.
target
)
e1
:
SetOperation
(
c101003074
.
activate
)
c
:
RegisterEffect
(
e1
)
--special summon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
101003074
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCountLimit
(
1
,
101003074
)
e2
:
SetCost
(
aux
.
bfgcost
)
e2
:
SetTarget
(
c101003074
.
sptg
)
e2
:
SetOperation
(
c101003074
.
spop
)
c
:
RegisterEffect
(
e2
)
end
function
c101003074
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
tc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_SZONE
,
5
)
if
chkc
then
return
false
end
if
chk
==
0
then
return
tc
and
tc
:
IsFaceup
()
and
tc
:
IsSetCard
(
0x8d
)
and
tc
:
IsAbleToHand
()
and
tc
:
IsCanBeEffectTarget
(
e
)
end
Duel
.
SetTargetCard
(
tc
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
tc
,
1
,
0
,
0
)
end
function
c101003074
.
actfilter
(
c
,
tp
)
return
c
:
IsType
(
TYPE_FIELD
)
and
c
:
GetActivateEffect
():
IsActivatable
(
tp
)
end
function
c101003074
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
~=
0
and
tc
:
IsLocation
(
LOCATION_HAND
)
then
local
g
=
Duel
.
GetMatchingGroup
(
c101003074
.
actfilter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
,
0
,
nil
,
tp
)
if
g
:
GetCount
()
>
0
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
101003074
,
1
))
then
Duel
.
BreakEffect
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
local
sg
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
local
sc
=
sg
:
GetFirst
()
Duel
.
MoveToField
(
sc
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
local
te
=
sc
:
GetActivateEffect
()
local
tep
=
sc
:
GetControler
()
local
cost
=
te
:
GetCost
()
if
cost
then
cost
(
te
,
tep
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
Duel
.
RaiseEvent
(
sc
,
4179255
,
te
,
0
,
tp
,
tp
,
Duel
.
GetCurrentChain
())
end
end
end
function
c101003074
.
filter1
(
c
,
e
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_XYZ
)
and
c
:
IsSetCard
(
0x8d
)
and
Duel
.
IsExistingMatchingCard
(
c101003074
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
c
,
c
:
GetCode
())
and
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
c
)
>
0
end
function
c101003074
.
filter2
(
c
,
e
,
tp
,
mc
,
code
)
return
c
:
IsType
(
TYPE_XYZ
)
and
c
:
IsSetCard
(
0x8d
)
and
not
c
:
IsCode
(
code
)
and
mc
:
IsCanBeXyzMaterial
(
c
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
SUMMON_TYPE_XYZ
,
tp
,
false
,
false
)
end
function
c101003074
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
tp
)
and
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
c101003074
.
filter1
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c101003074
.
filter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
Duel
.
SelectTarget
(
tp
,
c101003074
.
filter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
end
function
c101003074
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
tc
)
<=
0
then
return
end
if
tc
:
IsFacedown
()
or
not
tc
:
IsRelateToEffect
(
e
)
or
tc
:
IsControler
(
1
-
tp
)
or
tc
:
IsImmuneToEffect
(
e
)
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c101003074
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
e
,
tp
,
tc
,
tc
:
GetCode
())
local
sc
=
g
:
GetFirst
()
if
sc
then
local
mg
=
tc
:
GetOverlayGroup
()
if
mg
:
GetCount
()
~=
0
then
Duel
.
Overlay
(
sc
,
mg
)
end
sc
:
SetMaterial
(
Group
.
FromCards
(
tc
))
Duel
.
Overlay
(
sc
,
Group
.
FromCards
(
tc
))
Duel
.
SpecialSummon
(
sc
,
SUMMON_TYPE_XYZ
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
sc
:
CompleteProcedure
()
end
end
expansions/script/c16849715.lua
0 → 100644
View file @
daf33731
--雷の天気模様
--Thunder Weathery Pattern
--Scripted by Eerie Code
--Prototype, might require a core update for full functionality
function
c16849715
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
0
,
16849715
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--adjust
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_ADJUST
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CANNOT_NEGATE
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetOperation
(
c16849715
.
effop
)
c
:
RegisterEffect
(
e2
)
end
function
c16849715
.
efffilter
(
c
,
g
,
ignore_flag
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsSetCard
(
0x109
)
and
c
:
GetSequence
()
<
5
and
g
:
IsContains
(
c
)
and
(
ignore_flag
or
c
:
GetFlagEffect
(
16849715
)
==
0
)
end
function
c16849715
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
cg
=
c
:
GetColumnGroup
(
1
,
1
)
local
g
=
Duel
.
GetMatchingGroup
(
c16849715
.
efffilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
,
cg
)
if
c
:
IsDisabled
()
then
return
end
for
tc
in
aux
.
Next
(
g
)
do
tc
:
RegisterFlagEffect
(
16849715
,
RESET_EVENT
+
0x1fe0000
,
0
,
1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
16849715
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_BATTLE_START
)
e1
:
SetLabelObject
(
c
)
e1
:
SetCost
(
aux
.
bfgcost
)
e1
:
SetTarget
(
c16849715
.
thtg
)
e1
:
SetOperation
(
c16849715
.
thop
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
end
end
function
c16849715
.
thfilter
(
c
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsAbleToHand
()
end
function
c16849715
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
gc
=
e
:
GetLabelObject
()
if
chk
==
0
then
return
gc
and
gc
:
IsFaceup
()
and
gc
:
IsLocation
(
LOCATION_SZONE
)
and
not
gc
:
IsDisabled
()
and
c16849715
.
efffilter
(
c
,
gc
:
GetColumnGroup
(
1
,
1
),
true
)
and
(
Duel
.
GetAttackTarget
()
==
c
or
(
Duel
.
GetAttacker
()
==
c
and
Duel
.
GetAttackTarget
()
~=
nil
))
end
local
tc
=
Duel
.
GetAttacker
()
if
tc
==
c
then
tc
=
Duel
.
GetAttackTarget
()
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
tc
,
1
,
0
,
0
)
end
function
c16849715
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetAttacker
()
if
tc
==
c
then
tc
=
Duel
.
GetAttackTarget
()
end
if
tc
and
tc
:
IsRelateToBattle
()
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
end
end
expansions/script/c20745268.lua
0 → 100644
View file @
daf33731
--魔弾-デスペラード
--Magibullet - Death-perado
--Scripted by Eerie Code
function
c20745268
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCountLimit
(
1
,
20745268
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetCondition
(
c20745268
.
condition
)
e1
:
SetTarget
(
c20745268
.
target
)
e1
:
SetOperation
(
c20745268
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c20745268
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x108
)
end
function
c20745268
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
c20745268
.
cfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
function
c20745268
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
c
=
e
:
GetHandler
()
if
chkc
then
return
chkc
:
IsOnField
()
and
chkc
:
IsFaceup
()
and
chkc
~=
c
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
Card
.
IsFaceup
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
c
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsFaceup
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
1
,
c
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
1
,
0
,
0
)
end
function
c20745268
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
end
end
expansions/script/c27561302.lua
0 → 100644
View file @
daf33731
--雨の天気模様
--Rain Weathery Pattern
--Scripted by Eerie Code
--Prototype, might require a core update for full functionality
function
c27561302
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
0
,
27561302
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--adjust
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_ADJUST
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CANNOT_NEGATE
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetOperation
(
c27561302
.
effop
)
c
:
RegisterEffect
(
e2
)
end
function
c27561302
.
efffilter
(
c
,
g
,
ignore_flag
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsSetCard
(
0x109
)
and
c
:
GetSequence
()
<
5
and
g
:
IsContains
(
c
)
and
(
ignore_flag
or
c
:
GetFlagEffect
(
27561302
)
==
0
)
end
function
c27561302
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
cg
=
c
:
GetColumnGroup
(
1
,
1
)
local
g
=
Duel
.
GetMatchingGroup
(
c27561302
.
efffilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
,
cg
)
if
c
:
IsDisabled
()
then
return
end
for
tc
in
aux
.
Next
(
g
)
do
tc
:
RegisterFlagEffect
(
27561302
,
RESET_EVENT
+
0x1fe0000
,
0
,
1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
27561302
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetLabelObject
(
c
)
e1
:
SetCost
(
aux
.
bfgcost
)
e1
:
SetTarget
(
c27561302
.
thtg
)
e1
:
SetOperation
(
c27561302
.
thop
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
end
end
function
c27561302
.
thfilter
(
c
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsAbleToHand
()
end
function
c27561302
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsOnField
()
and
chkc
:
IsControler
(
1
-
tp
)
and
c27561302
.
thfilter
(
chkc
)
end
local
gc
=
e
:
GetLabelObject
()
if
chk
==
0
then
return
gc
and
gc
:
IsFaceup
()
and
gc
:
IsLocation
(
LOCATION_SZONE
)
and
not
gc
:
IsDisabled
()
and
c27561302
.
efffilter
(
e
:
GetHandler
(),
gc
:
GetColumnGroup
(
1
,
1
),
true
)
and
Duel
.
IsExistingTarget
(
c27561302
.
thfilter
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RTOHAND
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c27561302
.
thfilter
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
g
,
1
,
0
,
0
)
end
function
c27561302
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
end
end
expansions/script/c27784944.lua
0 → 100644
View file @
daf33731
--極天気ランブラ
--Polar Weathery Lampla
--Scripted by Eerie Code
function
c27784944
.
initial_effect
(
c
)
--place
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
27784944
,
0
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetTarget
(
c27784944
.
tftg
)
e1
:
SetOperation
(
c27784944
.
tfop
)
c
:
RegisterEffect
(
e1
)
--Untargetable
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_CANNOT_BE_EFFECT_TARGET
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e2
:
SetTargetRange
(
LOCATION_ONFIELD
,
0
)
e2
:
SetTarget
(
c27784944
.
immtg
)
e2
:
SetValue
(
aux
.
tgoval
)
c
:
RegisterEffect
(
e2
)
--Indes
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e3
:
SetValue
(
c27784944
.
tgvalue
)
c
:
RegisterEffect
(
e3
)
--spsummon
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e4
:
SetCode
(
EVENT_REMOVE
)
e4
:
SetOperation
(
c27784944
.
spreg
)
c
:
RegisterEffect
(
e4
)
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetDescription
(
aux
.
Stringid
(
27784944
,
1
))
e5
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e5
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e5
:
SetRange
(
LOCATION_REMOVED
)
e5
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e5
:
SetCondition
(
c27784944
.
spcon
)
e5
:
SetTarget
(
c27784944
.
sptg
)
e5
:
SetOperation
(
c27784944
.
spop
)
e5
:
SetLabelObject
(
e4
)
c
:
RegisterEffect
(
e5
)
end
function
c27784944
.
tffilter
(
c
,
tp
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsSetCard
(
0x109
)
and
not
c
:
IsForbidden
()
and
c
:
CheckUniqueOnField
(
tp
)
end
function
c27784944
.
tftg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c27784944
.
tffilter
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
nil
,
tp
)
end
end
function
c27784944
.
tfop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c27784944
.
tffilter
),
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
tp
):
GetFirst
()
if
tc
then
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
end
end
function
c27784944
.
immtg
(
e
,
c
)
return
c
:
IsSetCard
(
0x109
)
and
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
end
function
c27784944
.
tgvalue
(
e
,
re
,
rp
)
return
rp
~=
e
:
GetHandlerPlayer
()
end
function
c27784944
.
spreg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
re
then
return
end
local
c
=
e
:
GetHandler
()
local
rc
=
re
:
GetHandler
()
if
c
:
IsReason
(
REASON_COST
)
and
rc
:
IsSetCard
(
0x109
)
then
e
:
SetLabel
(
Duel
.
GetTurnCount
()
+
1
)
c
:
RegisterFlagEffect
(
27784944
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
2
)
end
end
function
c27784944
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetLabelObject
():
GetLabel
()
==
Duel
.
GetTurnCount
()
and
e
:
GetHandler
():
GetFlagEffect
(
27784944
)
>
0
end
function
c27784944
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
e
:
GetHandler
():
ResetFlagEffect
(
27784944
)
end
function
c27784944
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c28806532.lua
0 → 100644
View file @
daf33731
--曇天気スレット
--Cloudy Weathery Sleet
--Scripted by Eerie Code
function
c28806532
.
initial_effect
(
c
)
--place
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
28806532
,
0
))
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_TO_GRAVE
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DELAY
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
,
28806532
)
e1
:
SetCondition
(
c28806532
.
tfcon
)
e1
:
SetTarget
(
c28806532
.
tftg
)
e1
:
SetOperation
(
c28806532
.
tfop
)
c
:
RegisterEffect
(
e1
)
--spsummon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_REMOVE
)
e2
:
SetOperation
(
c28806532
.
spreg
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
28806532
,
1
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetRange
(
LOCATION_REMOVED
)
e3
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e3
:
SetCondition
(
c28806532
.
spcon
)
e3
:
SetTarget
(
c28806532
.
sptg
)
e3
:
SetOperation
(
c28806532
.
spop
)
e3
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e3
)
end
function
c28806532
.
tfcfilter
(
c
,
tp
)
return
c
:
IsPreviousPosition
(
POS_FACEUP
)
and
c
:
IsPreviousSetCard
(
0x109
)
and
c
:
IsPreviousLocation
(
LOCATION_ONFIELD
)
end
function
c28806532
.
tfcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
c28806532
.
tfcfilter
,
1
,
e
:
GetHandler
(),
tp
)
end
function
c28806532
.
tffilter
(
c
,
tp
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsSetCard
(
0x109
)
and
not
c
:
IsForbidden
()
and
c
:
CheckUniqueOnField
(
tp
)
end
function
c28806532
.
tftg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c28806532
.
tffilter
(
chkc
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c28806532
.
tffilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
tp
)
end
local
ct
=
math.min
(
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
),
2
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c28806532
.
tffilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
ct
,
nil
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_LEAVE_GRAVE
,
g
,
g
:
GetCount
(),
0
,
0
)
end
function
c28806532
.
tfop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
):
Filter
(
Card
.
IsRelateToEffect
,
nil
,
e
)
if
g
:
GetCount
()
<=
0
then
return
end
local
ct
=
math.min
(
2
,
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
))
if
ct
<
1
then
return
end
if
g
:
GetCount
()
>
ct
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
g
=
g
:
Select
(
tp
,
1
,
ct
,
nil
)
end
for
tc
in
aux
.
Next
(
g
)
do
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
end
end
function
c28806532
.
spreg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
re
then
return
end
local
c
=
e
:
GetHandler
()
local
rc
=
re
:
GetHandler
()
if
c
:
IsReason
(
REASON_COST
)
and
rc
:
IsSetCard
(
0x109
)
then
e
:
SetLabel
(
Duel
.
GetTurnCount
()
+
1
)
c
:
RegisterFlagEffect
(
28806532
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
2
)
end
end
function
c28806532
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetLabelObject
():
GetLabel
()
==
Duel
.
GetTurnCount
()
and
e
:
GetHandler
():
GetFlagEffect
(
28806532
)
>
0
end
function
c28806532
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
e
:
GetHandler
():
ResetFlagEffect
(
28806532
)
end
function
c28806532
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c29628180.lua
0 → 100644
View file @
daf33731
--魔弾-デッドマンズ・バースト
--Magibullet - Deadman's Burst
--Scripted by Eerie Code
function
c29628180
.
initial_effect
(
c
)
--negate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_NEGATE
+
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetCountLimit
(
1
,
29628180
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetCondition
(
c29628180
.
condition
)
e1
:
SetTarget
(
c29628180
.
target
)
e1
:
SetOperation
(
c29628180
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c29628180
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x108
)
end
function
c29628180
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
rp
~=
tp
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
and
Duel
.
IsChainNegatable
(
ev
)
and
Duel
.
IsExistingMatchingCard
(
c29628180
.
cfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
function
c29628180
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_NEGATE
,
eg
,
1
,
0
,
0
)
if
re
:
GetHandler
():
IsDestructable
()
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
eg
,
1
,
0
,
0
)
end
end
function
c29628180
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
NegateActivation
(
ev
)
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
Destroy
(
eg
,
REASON_EFFECT
)
end
end
expansions/script/c30907810.lua
0 → 100644
View file @
daf33731
--魔弾の悪魔 ザミエル
--Magibullet Fiend Zamiel
--Scripted by Eerie Code
function
c30907810
.
initial_effect
(
c
)
--normal summon with 1 tribute
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
30907810
,
0
))
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SUMMON_PROC
)
e1
:
SetCondition
(
c30907810
.
otcon
)
e1
:
SetOperation
(
c30907810
.
otop
)
e1
:
SetValue
(
SUMMON_TYPE_ADVANCE
)
c
:
RegisterEffect
(
e1
)
--activate from hand
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EFFECT_QP_ACT_IN_NTPHAND
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x108
))
e3
:
SetTargetRange
(
LOCATION_HAND
,
0
)
c
:
RegisterEffect
(
e3
)
local
e4
=
e3
:
Clone
()
e4
:
SetCode
(
EFFECT_TRAP_ACT_IN_HAND
)
c
:
RegisterEffect
(
e4
)
--draw
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetCategory
(
CATEGORY_DRAW
)
e5
:
SetDescription
(
aux
.
Stringid
(
30907810
,
1
))
e5
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e5
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e5
:
SetRange
(
LOCATION_MZONE
)
e5
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e5
:
SetCountLimit
(
1
,
30907810
)
e5
:
SetCondition
(
c30907810
.
drcon
)
e5
:
SetTarget
(
c30907810
.
drtg
)
e5
:
SetOperation
(
c30907810
.
drop
)
c
:
RegisterEffect
(
e5
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e6
:
SetCode
(
EVENT_CHAINING
)
e6
:
SetRange
(
LOCATION_MZONE
)
e6
:
SetLabelObject
(
e5
)
e6
:
SetOperation
(
c30907810
.
regop
)
c
:
RegisterEffect
(
e6
)
local
e7
=
e6
:
Clone
()
e7
:
SetCode
(
EVENT_CHAIN_NEGATED
)
e7
:
SetOperation
(
c30907810
.
regop2
)
c
:
RegisterEffect
(
e7
)
local
e8
=
e6
:
Clone
()
e8
:
SetCode
(
EVENT_PHASE_START
+
PHASE_DRAW
)
e8
:
SetOperation
(
c30907810
.
clearop
)
c
:
RegisterEffect
(
e8
)
end
function
c30907810
.
otfilter
(
c
,
tp
)
return
c
:
IsSetCard
(
0x108
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
end
function
c30907810
.
otcon
(
e
,
c
,
minc
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
mg
=
Duel
.
GetMatchingGroup
(
c30907810
.
otfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
tp
)
return
c
:
GetLevel
()
>
6
and
minc
<=
1
and
Duel
.
CheckTribute
(
c
,
1
,
1
,
mg
)
end
function
c30907810
.
otop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
mg
=
Duel
.
GetMatchingGroup
(
c30907810
.
otfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
,
tp
)
local
sg
=
Duel
.
SelectTribute
(
tp
,
c
,
1
,
1
,
mg
)
c
:
SetMaterial
(
sg
)
Duel
.
Release
(
sg
,
REASON_SUMMON
+
REASON_MATERIAL
)
end
function
c30907810
.
regop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
re
:
GetHandler
():
IsSetCard
(
0x108
)
and
rp
==
tp
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
then
local
val
=
e
:
GetLabelObject
():
GetLabel
()
e
:
GetLabelObject
():
SetLabel
(
val
+
1
)
end
end
function
c30907810
.
regop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
re
:
GetHandler
():
IsSetCard
(
0x108
)
and
rp
==
tp
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
then
local
val
=
e
:
GetLabelObject
():
GetLabel
()
if
val
==
0
then
val
=
1
end
e
:
GetLabelObject
():
SetLabel
(
val
-
1
)
end
end
function
c30907810
.
clearop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
e
:
GetLabelObject
():
SetLabel
(
0
)
end
function
c30907810
.
drcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetTurnPlayer
()
~=
tp
end
function
c30907810
.
drtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
d
=
e
:
GetLabel
()
if
chk
==
0
then
return
d
>
0
and
Duel
.
IsPlayerCanDraw
(
tp
,
d
)
end
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
d
)
end
function
c30907810
.
drop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
p
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
)
local
d
=
e
:
GetLabel
()
if
d
>
0
then
Duel
.
Draw
(
p
,
d
,
REASON_EFFECT
)
end
end
expansions/script/c31629407.lua
0 → 100644
View file @
daf33731
--魔弾の射手 スター
--Magibullet Shooter Star
--Scripted by Eerie Code
function
c31629407
.
initial_effect
(
c
)
--activate from hand
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_QP_ACT_IN_NTPHAND
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x108
))
e1
:
SetTargetRange
(
LOCATION_HAND
,
0
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_TRAP_ACT_IN_HAND
)
c
:
RegisterEffect
(
e2
)
--search
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e0
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e0
:
SetCode
(
EVENT_CHAINING
)
e0
:
SetRange
(
LOCATION_MZONE
)
e0
:
SetOperation
(
aux
.
chainreg
)
c
:
RegisterEffect
(
e0
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
31629407
,
0
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
,
31629407
)
e3
:
SetCondition
(
c31629407
.
spcon
)
e3
:
SetTarget
(
c31629407
.
sptg
)
e3
:
SetOperation
(
c31629407
.
spop
)
c
:
RegisterEffect
(
e3
)
end
function
c31629407
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
or
c
:
GetFlagEffect
(
1
)
<=
0
then
return
false
end
return
c
:
GetColumnGroup
():
IsContains
(
re
:
GetHandler
())
end
function
c31629407
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsLevelBelow
(
4
)
and
c
:
IsSetCard
(
0x108
)
and
not
c
:
IsCode
(
31629407
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
function
c31629407
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c31629407
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c31629407
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
c31629407
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
):
GetFirst
()
if
tg
then
Duel
.
SpecialSummon
(
tg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
end
expansions/script/c32841045.lua
0 → 100644
View file @
daf33731
--魔弾の射手 カスパール
--Magibullet Shooter Caspar
--Scripted by Eerie Code
function
c32841045
.
initial_effect
(
c
)
--activate from hand
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_QP_ACT_IN_NTPHAND
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x108
))
e1
:
SetTargetRange
(
LOCATION_HAND
,
0
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_TRAP_ACT_IN_HAND
)
c
:
RegisterEffect
(
e2
)
--search
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e0
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e0
:
SetCode
(
EVENT_CHAINING
)
e0
:
SetRange
(
LOCATION_MZONE
)
e0
:
SetOperation
(
aux
.
chainreg
)
c
:
RegisterEffect
(
e0
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
32841045
,
0
))
e3
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
,
32841045
)
e3
:
SetCondition
(
c32841045
.
thcon
)
e3
:
SetTarget
(
c32841045
.
thtg
)
e3
:
SetOperation
(
c32841045
.
thop
)
c
:
RegisterEffect
(
e3
)
end
function
c32841045
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
or
c
:
GetFlagEffect
(
1
)
<=
0
then
return
false
end
return
c
:
GetColumnGroup
():
IsContains
(
re
:
GetHandler
())
end
function
c32841045
.
thfilter
(
c
,
rc
)
return
c
:
IsSetCard
(
0x108
)
and
not
c
:
IsCode
(
rc
:
GetCode
())
and
c
:
IsAbleToHand
()
end
function
c32841045
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
rc
=
re
:
GetHandler
()
if
chk
==
0
then
return
rc
and
Duel
.
IsExistingMatchingCard
(
c32841045
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
rc
)
end
e
:
SetLabelObject
(
rc
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c32841045
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c32841045
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
:
GetLabelObject
())
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
expansions/script/c33964637.lua
0 → 100644
View file @
daf33731
--影六武衆-リハン
--Shadow Six Samurai – Rihan
--Scripted by Eerie Code
--Fusion procedure by edo9300
function
c33964637
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
aux
.
AddFusionProcFunRep
(
c
,
c33964637
.
ffilter
,
3
,
true
)
--spsummon condition
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetValue
(
c33964637
.
splimit
)
c
:
RegisterEffect
(
e1
)
--special summon rule
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e2
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_EXTRA
)
e2
:
SetCondition
(
c33964637
.
sprcon
)
e2
:
SetOperation
(
c33964637
.
sprop
)
c
:
RegisterEffect
(
e2
)
--fusion limit
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_CANNOT_BE_FUSION_MATERIAL
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetValue
(
1
)
c
:
RegisterEffect
(
e3
)
--remove
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
33964637
,
0
))
e4
:
SetCategory
(
CATEGORY_REMOVE
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetCountLimit
(
1
)
e4
:
SetCost
(
c33964637
.
rmcost
)
e4
:
SetTarget
(
c33964637
.
rmtg
)
e4
:
SetOperation
(
c33964637
.
rmop
)
c
:
RegisterEffect
(
e4
)
--destroy replace
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e5
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e5
:
SetRange
(
LOCATION_GRAVE
)
e5
:
SetTarget
(
c33964637
.
reptg
)
e5
:
SetValue
(
c33964637
.
repval
)
e5
:
SetOperation
(
c33964637
.
repop
)
c
:
RegisterEffect
(
e5
)
end
function
c33964637
.
splimit
(
e
,
se
,
sp
,
st
)
return
not
e
:
GetHandler
():
IsLocation
(
LOCATION_EXTRA
)
end
function
c33964637
.
ffilter
(
c
,
fc
,
sub
,
mg
,
sg
)
return
c
:
IsFusionSetCard
(
0x3d
)
and
(
not
sg
or
not
sg
:
IsExists
(
Card
.
IsFusionAttribute
,
1
,
c
,
c
:
GetFusionAttribute
()))
end
function
c33964637
.
sprcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
return
Duel
.
IsExistingMatchingCard
(
c33964637
.
sprfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
,
c
)
end
function
c33964637
.
sprfilter1
(
c
,
tp
,
fc
)
return
c
:
IsFusionSetCard
(
0x3d
)
and
c
:
IsAbleToGraveAsCost
()
and
c
:
IsCanBeFusionMaterial
(
fc
)
and
Duel
.
IsExistingMatchingCard
(
c33964637
.
sprfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
,
tp
,
fc
,
c
)
end
function
c33964637
.
sprfilter2
(
c
,
tp
,
fc
,
mc
)
return
c
:
IsFusionSetCard
(
0x3d
)
and
c
:
IsAbleToGraveAsCost
()
and
c
:
IsCanBeFusionMaterial
(
fc
)
and
not
c
:
IsFusionAttribute
(
mc
:
GetFusionAttribute
())
and
Duel
.
IsExistingMatchingCard
(
c33964637
.
sprfilter3
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
,
tp
,
fc
,
mc
,
c
)
end
function
c33964637
.
sprfilter3
(
c
,
tp
,
fc
,
mc1
,
mc2
)
local
g
=
Group
.
FromCards
(
c
,
mc1
,
mc2
)
return
c
:
IsFusionSetCard
(
0x3d
)
and
c
:
IsAbleToGraveAsCost
()
and
c
:
IsCanBeFusionMaterial
(
fc
)
and
not
c
:
IsFusionAttribute
(
mc1
:
GetFusionAttribute
())
and
not
c
:
IsFusionAttribute
(
mc2
:
GetFusionAttribute
())
and
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
g
)
>
0
end
function
c33964637
.
sprop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c33964637
.
sprfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c33964637
.
sprfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
(),
tp
,
c
,
g1
:
GetFirst
())
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g3
=
Duel
.
SelectMatchingCard
(
tp
,
c33964637
.
sprfilter3
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
(),
tp
,
c
,
g1
:
GetFirst
(),
g2
:
GetFirst
())
g1
:
Merge
(
g2
)
g1
:
Merge
(
g3
)
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
end
function
c33964637
.
costfilter
(
c
,
tp
)
return
c
:
IsSetCard
(
0x3d
)
and
c
:
IsAbleToRemoveAsCost
()
and
(
c
:
IsLocation
(
LOCATION_HAND
)
or
c
:
IsFaceup
())
and
Duel
.
IsExistingTarget
(
Card
.
IsAbleToRemove
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
c
)
end
function
c33964637
.
rmcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c33964637
.
costfilter
,
tp
,
LOCATION_ONFIELD
+
LOCATION_HAND
,
0
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c33964637
.
costfilter
,
tp
,
LOCATION_ONFIELD
+
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
end
function
c33964637
.
rmtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
c
=
e
:
GetHandler
()
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_ONFIELD
)
and
chkc
:
IsAbleToRemove
()
end
if
chk
==
0
then
return
true
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsAbleToRemove
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
1
,
0
,
0
)
end
function
c33964637
.
rmop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
Remove
(
tc
,
POS_FACEUP
,
REASON_EFFECT
)
end
end
function
c33964637
.
repfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsControler
(
tp
)
and
c
:
IsReason
(
REASON_EFFECT
+
REASON_BATTLE
)
end
function
c33964637
.
reptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
eg
:
IsExists
(
c33964637
.
repfilter
,
1
,
nil
,
tp
)
end
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
function
c33964637
.
repval
(
e
,
c
)
return
c33964637
.
repfilter
(
c
,
e
:
GetHandlerPlayer
())
end
function
c33964637
.
repop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
end
expansions/script/c44686185.lua
0 → 100644
View file @
daf33731
--影六武衆-ハツメ
--Shadow Six Samurai – Hatsume
--Scripted by Eerie Code
function
c44686185
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
44686185
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetCountLimit
(
1
,
44686185
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCost
(
c44686185
.
cost
)
e1
:
SetTarget
(
c44686185
.
target
)
e1
:
SetOperation
(
c44686185
.
operation
)
c
:
RegisterEffect
(
e1
)
--destroy replace
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetTarget
(
c44686185
.
reptg
)
e2
:
SetValue
(
c44686185
.
repval
)
e2
:
SetOperation
(
c44686185
.
repop
)
c
:
RegisterEffect
(
e2
)
end
function
c44686185
.
filter0
(
c
)
return
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
GetSequence
()
<
5
end
function
c44686185
.
filter1
(
c
)
return
c
:
IsSetCard
(
0x3d
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToRemoveAsCost
()
and
(
c
:
IsLocation
(
LOCATION_GRAVE
)
or
c
:
IsFaceup
())
end
function
c44686185
.
filter3
(
c
,
e
,
tp
)
return
c44686185
.
filter1
(
c
)
and
Duel
.
IsExistingMatchingCard
(
c44686185
.
filter4
,
tp
,
LOCATION_GRAVE
+
LOCATION_ONFIELD
,
0
,
1
,
c
,
e
,
tp
,
c
)
end
function
c44686185
.
filter4
(
c
,
e
,
tp
,
rc
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
Group
.
FromCards
(
c
,
rc
)
local
ct
=
g
:
FilterCount
(
c44686185
.
filter0
,
nil
)
return
c44686185
.
filter1
(
c
)
and
ft
+
ct
>
0
and
Duel
.
IsExistingTarget
(
c44686185
.
filter2
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
g
,
e
,
tp
)
end
function
c44686185
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c44686185
.
filter3
,
tp
,
LOCATION_GRAVE
+
LOCATION_ONFIELD
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c44686185
.
filter3
,
tp
,
LOCATION_GRAVE
+
LOCATION_ONFIELD
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c44686185
.
filter4
,
tp
,
LOCATION_GRAVE
+
LOCATION_ONFIELD
,
0
,
1
,
1
,
g1
:
GetFirst
(),
e
,
tp
,
g1
:
GetFirst
())
g1
:
Merge
(
g2
)
Duel
.
Remove
(
g1
,
POS_FACEUP
,
REASON_COST
)
end
function
c44686185
.
filter2
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x3d
)
and
not
c
:
IsCode
(
44686185
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c44686185
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c44686185
.
filter2
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
true
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c44686185
.
filter2
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
end
function
c44686185
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
and
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
function
c44686185
.
repfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsControler
(
tp
)
and
c
:
IsReason
(
REASON_EFFECT
)
end
function
c44686185
.
reptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
eg
:
IsExists
(
c44686185
.
repfilter
,
1
,
nil
,
tp
)
and
eg
:
GetCount
()
==
1
end
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
function
c44686185
.
repval
(
e
,
c
)
return
c44686185
.
repfilter
(
c
,
e
:
GetHandlerPlayer
())
end
function
c44686185
.
repop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
end
expansions/script/c5230799.lua
0 → 100644
View file @
daf33731
--魔弾の射手 ザ・キッド
--Magibullet Shooter The Kid
--Scripted by Eerie Code
function
c5230799
.
initial_effect
(
c
)
--activate from hand
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_QP_ACT_IN_NTPHAND
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x108
))
e1
:
SetTargetRange
(
LOCATION_HAND
,
0
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_TRAP_ACT_IN_HAND
)
c
:
RegisterEffect
(
e2
)
--search
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e0
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e0
:
SetCode
(
EVENT_CHAINING
)
e0
:
SetRange
(
LOCATION_MZONE
)
e0
:
SetOperation
(
aux
.
chainreg
)
c
:
RegisterEffect
(
e0
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
5230799
,
0
))
e3
:
SetCategory
(
CATEGORY_DRAW
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_PLAYER_TARGET
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
,
5230799
)
e3
:
SetCondition
(
c5230799
.
drcon
)
e3
:
SetCost
(
c5230799
.
drcost
)
e3
:
SetTarget
(
c5230799
.
drtg
)
e3
:
SetOperation
(
c5230799
.
drop
)
c
:
RegisterEffect
(
e3
)
end
function
c5230799
.
drcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
or
c
:
GetFlagEffect
(
1
)
<=
0
then
return
false
end
return
c
:
GetColumnGroup
():
IsContains
(
re
:
GetHandler
())
end
function
c5230799
.
cfilter
(
c
)
return
c
:
IsSetCard
(
0x108
)
and
c
:
IsDiscardable
()
end
function
c5230799
.
drcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c5230799
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
Duel
.
DiscardHand
(
tp
,
c5230799
.
cfilter
,
1
,
1
,
REASON_COST
+
REASON_DISCARD
)
end
function
c5230799
.
drtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
,
2
)
end
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetTargetParam
(
2
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
2
)
end
function
c5230799
.
drop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
p
,
d
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
,
CHAININFO_TARGET_PARAM
)
Duel
.
Draw
(
p
,
d
,
REASON_EFFECT
)
end
expansions/script/c52834429.lua
0 → 100644
View file @
daf33731
--オーロラの天気模様
--Aurora Weathery Pattern
--Scripted by Eerie Code
--Prototype, might require a core update for full functionality
function
c52834429
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
0
,
52834429
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--adjust
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_ADJUST
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CANNOT_NEGATE
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetOperation
(
c52834429
.
effop
)
c
:
RegisterEffect
(
e2
)
end
function
c52834429
.
efffilter
(
c
,
g
,
ignore_flag
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsSetCard
(
0x109
)
and
c
:
GetSequence
()
<
5
and
g
:
IsContains
(
c
)
and
(
ignore_flag
or
c
:
GetFlagEffect
(
52834429
)
==
0
)
end
function
c52834429
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
cg
=
c
:
GetColumnGroup
(
1
,
1
)
local
g
=
Duel
.
GetMatchingGroup
(
c52834429
.
efffilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
,
cg
)
if
c
:
IsDisabled
()
then
return
end
for
tc
in
aux
.
Next
(
g
)
do
tc
:
RegisterFlagEffect
(
52834429
,
RESET_EVENT
+
0x1fe0000
,
0
,
1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
52834429
,
0
))
e1
:
SetCategory
(
CATEGORY_REMOVE
+
CATEGORY_DRAW
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_TO_HAND
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetLabelObject
(
c
)
e1
:
SetCondition
(
c52834429
.
rmcon
)
e1
:
SetCost
(
aux
.
bfgcost
)
e1
:
SetTarget
(
c52834429
.
rmtg
)
e1
:
SetOperation
(
c52834429
.
rmop
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
end
end
function
c52834429
.
rmcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
GetCount
()
==
1
end
function
c52834429
.
rmtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
gc
=
e
:
GetLabelObject
()
local
ec
=
eg
:
GetFirst
()
if
chk
==
0
then
return
gc
and
gc
:
IsFaceup
()
and
gc
:
IsLocation
(
LOCATION_SZONE
)
and
not
gc
:
IsDisabled
()
and
c52834429
.
efffilter
(
c
,
gc
:
GetColumnGroup
(
1
,
1
),
true
)
and
ec
and
ec
:
IsAbleToRemove
()
and
Duel
.
IsPlayerCanDraw
(
ec
:
GetControler
(),
1
)
end
local
htp
=
ec
:
GetControler
()
Duel
.
SetTargetPlayer
(
htp
)
Duel
.
SetTargetParam
(
1
)
e
:
SetLabelObject
(
ec
)
ec
:
CreateEffectRelation
(
e
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
ec
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
htp
,
1
)
end
function
c52834429
.
rmop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
if
not
tc
or
not
tc
:
IsRelateToEffect
(
e
)
then
return
end
local
p
,
d
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
,
CHAININFO_TARGET_PARAM
)
if
Duel
.
Remove
(
tc
,
POS_FACEUP
,
REASON_EFFECT
)
>
0
then
Duel
.
Draw
(
p
,
d
,
REASON_EFFECT
)
end
end
expansions/script/c53956001.lua
0 → 100644
View file @
daf33731
--曇りの天気模様
--Cloudy Weathery Pattern
--Scripted by Eerie Code
--Prototype, might require a core update for full functionality
function
c53956001
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
0
,
53956001
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--adjust
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_ADJUST
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CANNOT_NEGATE
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetOperation
(
c53956001
.
effop
)
c
:
RegisterEffect
(
e2
)
end
function
c53956001
.
efffilter
(
c
,
g
,
ignore_flag
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsSetCard
(
0x109
)
and
c
:
GetSequence
()
<
5
and
g
:
IsContains
(
c
)
and
(
ignore_flag
or
c
:
GetFlagEffect
(
53956001
)
==
0
)
end
function
c53956001
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
cg
=
c
:
GetColumnGroup
(
1
,
1
)
local
g
=
Duel
.
GetMatchingGroup
(
c53956001
.
efffilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
,
cg
)
if
c
:
IsDisabled
()
then
return
end
for
tc
in
aux
.
Next
(
g
)
do
tc
:
RegisterFlagEffect
(
53956001
,
RESET_EVENT
+
0x1fe0000
,
0
,
1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
53956001
,
0
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetLabelObject
(
c
)
e1
:
SetCost
(
aux
.
bfgcost
)
e1
:
SetTarget
(
c53956001
.
datg
)
e1
:
SetOperation
(
c53956001
.
daop
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
end
end
function
c53956001
.
datg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
c
=
e
:
GetHandler
()
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsFaceup
()
and
chkc
~=
c
end
local
gc
=
e
:
GetLabelObject
()
if
chk
==
0
then
return
gc
and
gc
:
IsFaceup
()
and
gc
:
IsLocation
(
LOCATION_SZONE
)
and
not
gc
:
IsDisabled
()
and
c53956001
.
efffilter
(
c
,
gc
:
GetColumnGroup
(
1
,
1
),
true
)
and
Duel
.
IsExistingTarget
(
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
c
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
local
g
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
c
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_ATKCHANGE
,
g
,
1
,
0
,
0
)
end
function
c53956001
.
daop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
local
atk
=
math.floor
(
tc
:
GetAttack
()
/
2
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_DIRECT_ATTACK
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_SET_ATTACK_FINAL
)
e2
:
SetValue
(
atk
)
e2
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e2
)
end
end
expansions/script/c54178659.lua
0 → 100644
View file @
daf33731
--虹天気アルシエル
--Rainbow Weathery Arciel
--Scripted by Eerie Code
--Prototype, might require a core update for full functionality
function
c54178659
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsSetCard
,
0x109
),
3
,
3
)
--disable special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
54178659
,
0
))
e1
:
SetCategory
(
CATEGORY_DISABLE_SUMMON
+
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCode
(
EVENT_SPSUMMON
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCondition
(
c54178659
.
discon
)
e1
:
SetCost
(
c54178659
.
discost
)
e1
:
SetTarget
(
c54178659
.
distg
)
e1
:
SetOperation
(
c54178659
.
disop
)
c
:
RegisterEffect
(
e1
)
--spsummon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_REMOVE
)
e2
:
SetOperation
(
c54178659
.
spreg
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
54178659
,
1
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetRange
(
LOCATION_REMOVED
)
e3
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e3
:
SetCondition
(
c54178659
.
spcon
)
e3
:
SetTarget
(
c54178659
.
sptg
)
e3
:
SetOperation
(
c54178659
.
spop
)
e3
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e3
)
--adjust
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetCode
(
EVENT_ADJUST
)
e4
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CANNOT_NEGATE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetOperation
(
c54178659
.
effop
)
c
:
RegisterEffect
(
e4
)
end
function
c54178659
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
tp
~=
ep
and
Duel
.
GetCurrentChain
()
==
0
and
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_LINK
)
end
function
c54178659
.
discost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
)
end
function
c54178659
.
distg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DISABLE_SUMMON
,
eg
,
eg
:
GetCount
(),
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
eg
,
eg
:
GetCount
(),
0
,
0
)
end
function
c54178659
.
disop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
NegateSummon
(
eg
)
Duel
.
Destroy
(
eg
,
REASON_EFFECT
)
end
function
c54178659
.
spreg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
re
then
return
end
local
c
=
e
:
GetHandler
()
local
rc
=
re
:
GetHandler
()
if
c
:
IsReason
(
REASON_COST
)
and
rc
:
IsSetCard
(
0x109
)
then
e
:
SetLabel
(
Duel
.
GetTurnCount
()
+
1
)
c
:
RegisterFlagEffect
(
54178659
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
2
)
end
end
function
c54178659
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetLabelObject
():
GetLabel
()
==
Duel
.
GetTurnCount
()
and
e
:
GetHandler
():
GetFlagEffect
(
54178659
)
>
0
end
function
c54178659
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
e
:
GetHandler
():
ResetFlagEffect
(
54178659
)
end
function
c54178659
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
function
c54178659
.
efffilter
(
c
,
lg
,
ignore_flag
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsSetCard
(
0x109
)
and
c
:
GetSequence
()
<
5
and
lg
and
lg
:
IsContains
(
c
)
and
(
ignore_flag
or
c
:
GetFlagEffect
(
54178659
)
==
0
)
end
function
c54178659
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
lg
=
c
:
GetLinkedGroup
()
local
g
=
Duel
.
GetMatchingGroup
(
c54178659
.
efffilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
,
lg
)
if
c
:
IsDisabled
()
then
return
end
for
tc
in
aux
.
Next
(
g
)
do
tc
:
RegisterFlagEffect
(
54178659
,
RESET_EVENT
+
0x1fe0000
,
0
,
1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
54178659
,
0
))
e1
:
SetCategory
(
CATEGORY_NEGATE
+
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DAMAGE_CAL
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetLabelObject
(
c
)
e1
:
SetCondition
(
c54178659
.
discon2
)
e1
:
SetCost
(
aux
.
bfgcost
)
e1
:
SetTarget
(
c54178659
.
distg2
)
e1
:
SetOperation
(
c54178659
.
disop2
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
end
end
function
c54178659
.
discon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsStatus
(
STATUS_BATTLE_DESTROYED
)
then
return
false
end
local
gc
=
e
:
GetLabelObject
()
return
Duel
.
IsChainNegatable
(
ev
)
and
gc
and
gc
:
IsFaceup
()
and
gc
:
IsLocation
(
LOCATION_MZONE
)
and
c54178659
.
efffilter
(
c
,
gc
:
GetLinkedGroup
(),
true
)
end
function
c54178659
.
distg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_NEGATE
,
eg
,
1
,
0
,
0
)
if
re
:
GetHandler
():
IsDestructable
()
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
eg
,
1
,
0
,
0
)
end
end
function
c54178659
.
disop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
NegateActivation
(
ev
)
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
Destroy
(
eg
,
REASON_EFFECT
)
end
end
expansions/script/c54895237.lua
0 → 100644
View file @
daf33731
--晴天気ベンガーラ
--Sunny Weathery Bengala
--Scripted by Eerie Code
function
c54895237
.
initial_effect
(
c
)
--spsummon (grave)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
54895237
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_GRAVE
)
e1
:
SetCountLimit
(
1
,
54895237
)
e1
:
SetCost
(
c54895237
.
gspcost
)
e1
:
SetTarget
(
c54895237
.
gsptg
)
e1
:
SetOperation
(
c54895237
.
gspop
)
c
:
RegisterEffect
(
e1
)
--spsummon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_REMOVE
)
e2
:
SetOperation
(
c54895237
.
spreg
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
54895237
,
1
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetRange
(
LOCATION_REMOVED
)
e3
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e3
:
SetCondition
(
c54895237
.
spcon
)
e3
:
SetTarget
(
c54895237
.
sptg
)
e3
:
SetOperation
(
c54895237
.
spop
)
e3
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e3
)
end
function
c54895237
.
gspcfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_CONTINUOUS
)
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c54895237
.
gspfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
c
,
tp
)
end
function
c54895237
.
gspfilter
(
c
,
cc
,
tp
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsSetCard
(
0x109
)
and
not
c
:
IsForbidden
()
and
c
:
CheckUniqueOnField
(
tp
,
LOCATION_ONFIELD
,
cc
)
end
function
c54895237
.
gspcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c54895237
.
gspcfilter
,
tp
,
LOCATION_SZONE
,
0
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c54895237
.
gspcfilter
,
tp
,
LOCATION_SZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
end
function
c54895237
.
gsptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>-
1
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
function
c54895237
.
gspop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsRelateToEffect
(
e
)
and
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
>
0
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
c54895237
.
gspfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
nil
,
tp
):
GetFirst
()
if
tc
then
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
end
end
end
function
c54895237
.
spreg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
re
then
return
end
local
c
=
e
:
GetHandler
()
local
rc
=
re
:
GetHandler
()
if
c
:
IsReason
(
REASON_COST
)
and
rc
:
IsSetCard
(
0x109
)
then
e
:
SetLabel
(
Duel
.
GetTurnCount
()
+
1
)
c
:
RegisterFlagEffect
(
54895237
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
2
)
end
end
function
c54895237
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetLabelObject
():
GetLabel
()
==
Duel
.
GetTurnCount
()
and
e
:
GetHandler
():
GetFlagEffect
(
54895237
)
>
0
end
function
c54895237
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
e
:
GetHandler
():
ResetFlagEffect
(
54895237
)
end
function
c54895237
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c5645210.lua
0 → 100644
View file @
daf33731
--The splendid VENUS
function
c5645210
.
initial_effect
(
c
)
--atk,def
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e1
:
SetTarget
(
c5645210
.
target
)
e1
:
SetValue
(
-
500
)
c
:
RegisterEffect
(
e1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e1
:
SetTarget
(
c5645210
.
target
)
e1
:
SetValue
(
-
500
)
c
:
RegisterEffect
(
e1
)
--inactivatable
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCode
(
EFFECT_CANNOT_INACTIVATE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetValue
(
c5645210
.
effectfilter
)
c
:
RegisterEffect
(
e4
)
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetType
(
EFFECT_TYPE_FIELD
)
e5
:
SetCode
(
EFFECT_CANNOT_DISEFFECT
)
e5
:
SetRange
(
LOCATION_MZONE
)
e5
:
SetValue
(
c5645210
.
effectfilter
)
c
:
RegisterEffect
(
e5
)
end
function
c5645210
.
target
(
e
,
c
)
return
c
:
IsFaceup
()
and
not
c
:
IsRace
(
RACE_FAIRY
)
end
function
c5645210
.
effectfilter
(
e
,
ct
)
local
p
=
e
:
GetHandler
():
GetControler
()
local
te
,
tp
,
loc
=
Duel
.
GetChainInfo
(
ct
,
CHAININFO_TRIGGERING_EFFECT
,
CHAININFO_TRIGGERING_PLAYER
,
CHAININFO_TRIGGERING_LOCATION
)
return
p
==
tp
and
te
:
IsActiveType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
bit
.
band
(
loc
,
LOCATION_ONFIELD
)
~=
0
end
function
c5645210
.
distarget
(
e
,
c
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
end
expansions/script/c63519819.lua
0 → 100644
View file @
daf33731
--サウザンド・アイズ・サクリファイス
function
c63519819
.
initial_effect
(
c
)
--fusion material
c
:
EnableReviveLimit
()
aux
.
AddFusionProcCode2
(
c
,
64631466
,
27125110
,
true
,
true
)
--equip
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
63519819
,
0
))
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCondition
(
c63519819
.
eqcon
)
e1
:
SetTarget
(
c63519819
.
eqtg
)
e1
:
SetOperation
(
c63519819
.
eqop
)
c
:
RegisterEffect
(
e1
)
--cannot attack
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCode
(
EFFECT_CANNOT_ATTACK
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
LOCATION_MZONE
)
e2
:
SetTarget
(
c63519819
.
antarget
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EFFECT_CANNOT_CHANGE_POSITION
)
e3
:
SetProperty
(
EFFECT_FLAG_SET_AVAILABLE
)
c
:
RegisterEffect
(
e3
)
--atk/def
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetCode
(
EFFECT_SET_ATTACK
)
e4
:
SetCondition
(
c63519819
.
adcon
)
e4
:
SetValue
(
c63519819
.
atkval
)
c
:
RegisterEffect
(
e4
)
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
)
e5
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e5
:
SetRange
(
LOCATION_MZONE
)
e5
:
SetCode
(
EFFECT_SET_DEFENSE
)
e5
:
SetCondition
(
c63519819
.
adcon
)
e5
:
SetValue
(
c63519819
.
defval
)
c
:
RegisterEffect
(
e5
)
end
function
c63519819
.
eqcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c63519819
.
CanEquipMonster
(
c
)
end
function
c63519819
.
eqfilter
(
c
)
return
c
:
GetFlagEffect
(
63519819
)
~=
0
end
function
c63519819
.
CanEquipMonster
(
c
)
local
g
=
c
:
GetEquipGroup
():
Filter
(
c63519819
.
eqfilter
,
nil
)
return
g
:
GetCount
()
==
0
end
function
c63519819
.
eqtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
1
-
tp
)
and
chkc
:
IsAbleToChangeControler
()
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingTarget
(
Card
.
IsAbleToChangeControler
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
local
g
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsAbleToChangeControler
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
g
,
1
,
0
,
0
)
end
function
c63519819
.
eqlimit
(
e
,
c
)
return
e
:
GetOwner
()
==
c
end
function
c63519819
.
EquipMonster
(
c
,
tp
,
tc
)
if
not
Duel
.
Equip
(
tp
,
tc
,
c
,
false
)
then
return
end
--Add Equip limit
tc
:
RegisterFlagEffect
(
63519819
,
RESET_EVENT
+
0x1fe0000
,
0
,
0
)
e
:
SetLabelObject
(
tc
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_OWNER_RELATE
)
e1
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetValue
(
c63519819
.
eqlimit
)
tc
:
RegisterEffect
(
e1
)
--substitute
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_EQUIP
)
e2
:
SetCode
(
EFFECT_DESTROY_SUBSTITUTE
)
e2
:
SetProperty
(
EFFECT_FLAG_SET_AVAILABLE
)
e2
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e2
:
SetValue
(
c63519819
.
repval
)
tc
:
RegisterEffect
(
e2
)
end
function
c63519819
.
eqop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsType
(
TYPE_MONSTER
)
and
tc
:
IsControler
(
1
-
tp
)
then
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
c63519819
.
EquipMonster
(
c
,
tp
,
tc
)
else
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
end
end
end
function
c63519819
.
repval
(
e
,
re
,
r
,
rp
)
return
bit
.
band
(
r
,
REASON_BATTLE
)
~=
0
end
function
c63519819
.
antarget
(
e
,
c
)
return
c
~=
e
:
GetHandler
()
end
function
c63519819
.
adcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
g
=
c
:
GetEquipGroup
():
Filter
(
c63519819
.
eqfilter
,
nil
)
return
g
:
GetCount
()
>
0
end
function
c63519819
.
atkval
(
e
,
c
)
local
c
=
e
:
GetHandler
()
local
g
=
c
:
GetEquipGroup
():
Filter
(
c63519819
.
eqfilter
,
nil
)
local
atk
=
g
:
GetFirst
():
GetTextAttack
()
if
g
:
GetFirst
():
IsFacedown
()
or
bit
.
band
(
g
:
GetFirst
():
GetOriginalType
(),
TYPE_MONSTER
)
==
0
or
atk
<
0
then
return
0
else
return
atk
end
end
function
c63519819
.
defval
(
e
,
c
)
local
c
=
e
:
GetHandler
()
local
g
=
c
:
GetEquipGroup
():
Filter
(
c63519819
.
eqfilter
,
nil
)
local
def
=
g
:
GetFirst
():
GetTextDefense
()
if
g
:
GetFirst
():
IsFacedown
()
or
bit
.
band
(
g
:
GetFirst
():
GetOriginalType
(),
TYPE_MONSTER
)
==
0
or
def
<
0
then
return
0
else
return
def
end
end
expansions/script/c6357341.lua
0 → 100644
View file @
daf33731
--忍の六武
--The Six Shinobi
--Scripted by Eerie Code
function
c6357341
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCondition
(
c6357341
.
condition
)
e1
:
SetTarget
(
c6357341
.
target
)
e1
:
SetOperation
(
c6357341
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c6357341
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
end
function
c6357341
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetMatchingGroup
(
c6357341
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
return
g
:
GetClassCount
(
Card
.
GetAttribute
)
==
6
end
function
c6357341
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
not
Duel
.
IsPlayerAffectedByEffect
(
1
-
tp
,
EFFECT_SKIP_TURN
)
end
end
function
c6357341
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetCode
(
EFFECT_SKIP_TURN
)
e1
:
SetTargetRange
(
0
,
1
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
+
RESET_OPPO_TURN
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
expansions/script/c64631466.lua
0 → 100644
View file @
daf33731
--サクリファイス
function
c64631466
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
--equip
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
64631466
,
0
))
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetCondition
(
c64631466
.
eqcon
)
e1
:
SetTarget
(
c64631466
.
eqtg
)
e1
:
SetOperation
(
c64631466
.
eqop
)
c
:
RegisterEffect
(
e1
)
--atk/def
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCode
(
EFFECT_SET_ATTACK
)
e2
:
SetCondition
(
c64631466
.
adcon
)
e2
:
SetValue
(
c64631466
.
atkval
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCode
(
EFFECT_SET_DEFENSE
)
e3
:
SetCondition
(
c64631466
.
adcon
)
e3
:
SetValue
(
c64631466
.
defval
)
c
:
RegisterEffect
(
e3
)
--damage
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetProperty
(
EFFECT_FLAG_AVAILABLE_BD
)
e4
:
SetCode
(
EVENT_DAMAGE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetCondition
(
c64631466
.
damcon
)
e4
:
SetOperation
(
c64631466
.
damop
)
c
:
RegisterEffect
(
e4
)
end
function
c64631466
.
eqcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c64631466
.
CanEquipMonster
(
c
)
end
function
c64631466
.
eqfilter
(
c
)
return
c
:
GetFlagEffect
(
64631466
)
~=
0
end
function
c64631466
.
CanEquipMonster
(
c
)
local
g
=
c
:
GetEquipGroup
():
Filter
(
c64631466
.
eqfilter
,
nil
)
return
g
:
GetCount
()
==
0
end
function
c64631466
.
eqtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
1
-
tp
)
and
chkc
:
IsAbleToChangeControler
()
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingTarget
(
Card
.
IsAbleToChangeControler
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
local
g
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsAbleToChangeControler
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
g
,
1
,
0
,
0
)
end
function
c64631466
.
eqlimit
(
e
,
c
)
return
e
:
GetOwner
()
==
c
end
function
c64631466
.
EquipMonster
(
c
,
tp
,
tc
)
if
not
Duel
.
Equip
(
tp
,
tc
,
c
,
false
)
then
return
end
--Add Equip limit
tc
:
RegisterFlagEffect
(
64631466
,
RESET_EVENT
+
0x1fe0000
,
0
,
0
)
-- e:SetLabelObject(tc)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_OWNER_RELATE
)
e1
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetValue
(
c64631466
.
eqlimit
)
tc
:
RegisterEffect
(
e1
)
--substitute
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_EQUIP
)
e2
:
SetCode
(
EFFECT_DESTROY_SUBSTITUTE
)
e2
:
SetProperty
(
EFFECT_FLAG_SET_AVAILABLE
)
e2
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e2
:
SetValue
(
c64631466
.
repval
)
tc
:
RegisterEffect
(
e2
)
end
function
c64631466
.
eqop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsType
(
TYPE_MONSTER
)
and
tc
:
IsControler
(
1
-
tp
)
then
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
c64631466
.
EquipMonster
(
c
,
tp
,
tc
)
else
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
end
end
end
function
c64631466
.
repval
(
e
,
re
,
r
,
rp
)
return
bit
.
band
(
r
,
REASON_BATTLE
)
~=
0
end
function
c64631466
.
damcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
g
=
c
:
GetEquipGroup
():
Filter
(
c64631466
.
eqfilter
,
nil
)
return
g
:
GetCount
()
>
0
and
ep
==
tp
and
bit
.
band
(
r
,
REASON_BATTLE
)
~=
0
and
(
Duel
.
GetAttacker
()
==
e
:
GetHandler
()
or
Duel
.
GetAttackTarget
()
==
e
:
GetHandler
())
end
function
c64631466
.
damop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Damage
(
1
-
tp
,
ev
,
REASON_EFFECT
)
end
function
c64631466
.
adcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
g
=
c
:
GetEquipGroup
():
Filter
(
c64631466
.
eqfilter
,
nil
)
return
g
:
GetCount
()
>
0
end
function
c64631466
.
atkval
(
e
,
c
)
local
c
=
e
:
GetHandler
()
local
g
=
c
:
GetEquipGroup
():
Filter
(
c64631466
.
eqfilter
,
nil
)
local
atk
=
g
:
GetFirst
():
GetTextAttack
()
if
g
:
GetFirst
():
IsFacedown
()
or
bit
.
band
(
g
:
GetFirst
():
GetOriginalType
(),
TYPE_MONSTER
)
==
0
or
atk
<
0
then
return
0
else
return
atk
end
end
function
c64631466
.
defval
(
e
,
c
)
local
c
=
e
:
GetHandler
()
local
g
=
c
:
GetEquipGroup
():
Filter
(
c64631466
.
eqfilter
,
nil
)
local
def
=
g
:
GetFirst
():
GetTextDefense
()
if
g
:
GetFirst
():
IsFacedown
()
or
bit
.
band
(
g
:
GetFirst
():
GetOriginalType
(),
TYPE_MONSTER
)
==
0
or
def
<
0
then
return
0
else
return
def
end
end
expansions/script/c65017789.lua
0 → 100644
View file @
daf33731
--雪天気シエル
--Snow Weathery Ciel
--Scripted by Eerie Code
function
c65017789
.
initial_effect
(
c
)
--place
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
65017789
,
0
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetCountLimit
(
1
,
65017789
)
e1
:
SetTarget
(
c65017789
.
tftg
)
e1
:
SetOperation
(
c65017789
.
tfop
)
c
:
RegisterEffect
(
e1
)
--spsummon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_REMOVE
)
e2
:
SetOperation
(
c65017789
.
spreg
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
65017789
,
1
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetRange
(
LOCATION_REMOVED
)
e3
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e3
:
SetCondition
(
c65017789
.
spcon
)
e3
:
SetTarget
(
c65017789
.
sptg
)
e3
:
SetOperation
(
c65017789
.
spop
)
e3
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e3
)
end
function
c65017789
.
tffilter
(
c
,
tp
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsSetCard
(
0x109
)
and
not
c
:
IsForbidden
()
and
c
:
CheckUniqueOnField
(
tp
)
end
function
c65017789
.
tftg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c65017789
.
tffilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
tp
)
end
end
function
c65017789
.
tfop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
c65017789
.
tffilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
tp
):
GetFirst
()
if
tc
then
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
end
end
function
c65017789
.
spreg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
re
then
return
end
local
c
=
e
:
GetHandler
()
local
rc
=
re
:
GetHandler
()
if
c
:
IsReason
(
REASON_COST
)
and
rc
:
IsSetCard
(
0x109
)
then
e
:
SetLabel
(
Duel
.
GetTurnCount
()
+
1
)
c
:
RegisterFlagEffect
(
65017789
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
2
)
end
end
function
c65017789
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetLabelObject
():
GetLabel
()
==
Duel
.
GetTurnCount
()
and
e
:
GetHandler
():
GetFlagEffect
(
65017789
)
>
0
end
function
c65017789
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
e
:
GetHandler
():
ResetFlagEffect
(
65017789
)
end
function
c65017789
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c6579928.lua
0 → 100644
View file @
daf33731
--影六武衆-キザル
--Shadow Six Samurai – Kizaru
--Scripted by Eerie Code
function
c6579928
.
initial_effect
(
c
)
--draw
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
6579928
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetTarget
(
c6579928
.
thtg
)
e1
:
SetOperation
(
c6579928
.
thop
)
c
:
RegisterEffect
(
e1
)
--destroy replace
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetTarget
(
c6579928
.
reptg
)
e2
:
SetValue
(
c6579928
.
repval
)
e2
:
SetOperation
(
c6579928
.
repop
)
c
:
RegisterEffect
(
e2
)
end
function
c6579928
.
filter
(
c
,
att
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
att
)
end
function
c6579928
.
thfilter
(
c
,
tp
)
return
c
:
IsSetCard
(
0x3d
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToHand
()
and
not
Duel
.
IsExistingMatchingCard
(
c6579928
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
c
:
GetAttribute
())
end
function
c6579928
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c6579928
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c6579928
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c6579928
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
function
c6579928
.
repfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsControler
(
tp
)
and
c
:
IsReason
(
REASON_EFFECT
)
end
function
c6579928
.
reptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
eg
:
IsExists
(
c6579928
.
repfilter
,
1
,
nil
,
tp
)
and
eg
:
GetCount
()
==
1
end
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
function
c6579928
.
repval
(
e
,
c
)
return
c6579928
.
repfilter
(
c
,
e
:
GetHandlerPlayer
())
end
function
c6579928
.
repop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
end
expansions/script/c66149377.lua
0 → 100644
View file @
daf33731
--魔弾-ダンシング・ニードル
--Magibullet - Dancing Needle
--Scripted by Eerie Code
function
c66149377
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_REMOVE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetCountLimit
(
1
,
66149377
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetCondition
(
c66149377
.
condition
)
e1
:
SetTarget
(
c66149377
.
target
)
e1
:
SetOperation
(
c66149377
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c66149377
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x108
)
end
function
c66149377
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
c66149377
.
cfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
function
c66149377
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsAbleToRemove
()
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
Card
.
IsAbleToRemove
,
tp
,
LOCATION_GRAVE
,
LOCATION_GRAVE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsAbleToRemove
,
tp
,
LOCATION_GRAVE
,
LOCATION_GRAVE
,
1
,
3
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
g
:
GetCount
(),
0
,
0
)
end
function
c66149377
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
)
local
sg
=
g
:
Filter
(
Card
.
IsRelateToEffect
,
nil
,
e
)
Duel
.
Remove
(
sg
,
POS_FACEUP
,
REASON_EFFECT
)
end
expansions/script/c67901914.lua
0 → 100644
View file @
daf33731
--魔弾-ネバー・エンドルフィン
--Magibullet - Never-Endorphin
--Scripted by Eerie Code
function
c67901914
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_ATKCHANGE
+
CATEGORY_DEFCHANGE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetCountLimit
(
1
,
67901914
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetHintTiming
(
TIMING_DAMAGE_STEP
)
e1
:
SetCondition
(
c67901914
.
condition
)
e1
:
SetTarget
(
c67901914
.
target
)
e1
:
SetOperation
(
c67901914
.
activate
)
c
:
RegisterEffect
(
e1
)
if
not
c67901914
.
global_check
then
c67901914
.
global_check
=
true
local
ge1
=
Effect
.
CreateEffect
(
c
)
ge1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
ge1
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
ge1
:
SetOperation
(
c67901914
.
checkop
)
Duel
.
RegisterEffect
(
ge1
,
0
)
end
end
function
c67901914
.
checkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
eg
:
GetFirst
()
if
tc
:
GetFlagEffect
(
67901914
)
==
0
and
Duel
.
GetAttackTarget
()
==
nil
then
tc
:
RegisterFlagEffect
(
67901914
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
1
)
end
end
function
c67901914
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetCurrentPhase
()
~=
PHASE_DAMAGE
or
not
Duel
.
IsDamageCalculated
()
end
function
c67901914
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x108
)
and
c
:
GetFlagEffect
(
67901914
)
==
0
end
function
c67901914
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
tp
)
and
c67901914
.
filter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c67901914
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c67901914
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_CANNOT_DIRECT_ATTACK
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
g
:
GetFirst
():
RegisterEffect
(
e1
)
end
function
c67901914
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_ATTACK_FINAL
)
e1
:
SetValue
(
tc
:
GetBaseAttack
()
*
2
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_SET_DEFENSE_FINAL
)
e2
:
SetValue
(
tc
:
GetBaseDefense
()
*
2
)
tc
:
RegisterEffect
(
e2
)
end
end
expansions/script/c68024506.lua
0 → 100644
View file @
daf33731
--魔弾の射手 カラミティ
--Magibullet Shooter Calamity
--Scripted by Eerie Code
function
c68024506
.
initial_effect
(
c
)
--activate from hand
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_QP_ACT_IN_NTPHAND
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x108
))
e1
:
SetTargetRange
(
LOCATION_HAND
,
0
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_TRAP_ACT_IN_HAND
)
c
:
RegisterEffect
(
e2
)
--search
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e0
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e0
:
SetCode
(
EVENT_CHAINING
)
e0
:
SetRange
(
LOCATION_MZONE
)
e0
:
SetOperation
(
aux
.
chainreg
)
c
:
RegisterEffect
(
e0
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
68024506
,
0
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_CARD_TARGET
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
,
68024506
)
e3
:
SetCondition
(
c68024506
.
spcon
)
e3
:
SetTarget
(
c68024506
.
sptg
)
e3
:
SetOperation
(
c68024506
.
spop
)
c
:
RegisterEffect
(
e3
)
end
function
c68024506
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
or
c
:
GetFlagEffect
(
1
)
<=
0
then
return
false
end
return
c
:
GetColumnGroup
():
IsContains
(
re
:
GetHandler
())
end
function
c68024506
.
filter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x108
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
function
c68024506
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c68024506
.
filter
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c68024506
.
filter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c68024506
.
filter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
end
function
c68024506
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
end
expansions/script/c68246154.lua
0 → 100644
View file @
daf33731
--魔弾の射手 ドクトル
--Magibullet Shooter Doctor
--Scripted by Eerie Code
function
c68246154
.
initial_effect
(
c
)
--activate from hand
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_QP_ACT_IN_NTPHAND
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x108
))
e1
:
SetTargetRange
(
LOCATION_HAND
,
0
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_TRAP_ACT_IN_HAND
)
c
:
RegisterEffect
(
e2
)
--to hand
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e0
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e0
:
SetCode
(
EVENT_CHAINING
)
e0
:
SetRange
(
LOCATION_MZONE
)
e0
:
SetOperation
(
aux
.
chainreg
)
c
:
RegisterEffect
(
e0
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
68246154
,
0
))
e3
:
SetCategory
(
CATEGORY_TOHAND
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
,
68246154
)
e3
:
SetCondition
(
c68246154
.
thcon
)
e3
:
SetTarget
(
c68246154
.
thtg
)
e3
:
SetOperation
(
c68246154
.
thop
)
c
:
RegisterEffect
(
e3
)
end
function
c68246154
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
or
c
:
GetFlagEffect
(
1
)
<=
0
then
return
false
end
return
c
:
GetColumnGroup
():
IsContains
(
re
:
GetHandler
())
end
function
c68246154
.
thfilter
(
c
,
rc
)
return
c
:
IsSetCard
(
0x108
)
and
not
c
:
IsCode
(
rc
:
GetCode
())
and
c
:
IsAbleToHand
()
end
function
c68246154
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
rc
=
re
:
GetHandler
()
if
chk
==
0
then
return
rc
and
Duel
.
IsExistingMatchingCard
(
c68246154
.
thfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
rc
)
end
e
:
SetLabelObject
(
rc
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
end
function
c68246154
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c68246154
.
thfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
:
GetLabelObject
())
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
expansions/script/c70180284.lua
0 → 100644
View file @
daf33731
--影六武衆-ドウジ
--Shadow Six Samurai - Douji
--Scripted by Eerie Code
function
c70180284
.
initial_effect
(
c
)
--to grave
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
70180284
,
0
))
e1
:
SetCategory
(
CATEGORY_TOGRAVE
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCondition
(
c70180284
.
tgcon
)
e1
:
SetTarget
(
c70180284
.
tgtg
)
e1
:
SetOperation
(
c70180284
.
tgop
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
c
:
RegisterEffect
(
e2
)
--destroy replace
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e3
:
SetRange
(
LOCATION_GRAVE
)
e3
:
SetTarget
(
c70180284
.
reptg
)
e3
:
SetValue
(
c70180284
.
repval
)
e3
:
SetOperation
(
c70180284
.
repop
)
c
:
RegisterEffect
(
e3
)
end
function
c70180284
.
tgcfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
and
c
:
IsControler
(
tp
)
end
function
c70180284
.
tgcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
and
eg
:
IsExists
(
c70180284
.
tgcfilter
,
1
,
e
:
GetHandler
(),
tp
)
end
function
c70180284
.
tgfilter
(
c
)
return
c
:
IsSetCard
(
0x3d
)
and
c
:
IsAbleToGrave
()
end
function
c70180284
.
tgtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c70180284
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c70180284
.
tgop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c70180284
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
end
end
function
c70180284
.
repfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsControler
(
tp
)
and
c
:
IsReason
(
REASON_EFFECT
)
end
function
c70180284
.
reptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
eg
:
IsExists
(
c70180284
.
repfilter
,
1
,
nil
,
tp
)
and
eg
:
GetCount
()
==
1
end
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
function
c70180284
.
repval
(
e
,
c
)
return
c70180284
.
repfilter
(
c
,
e
:
GetHandlerPlayer
())
end
function
c70180284
.
repop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
end
expansions/script/c71207871.lua
0 → 100644
View file @
daf33731
--影六武衆-フウマ
--Shadow Six Samurai - Fuhma
--Scripted by Eerie Code
function
c71207871
.
initial_effect
(
c
)
--special summon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
71207871
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCode
(
EVENT_DESTROYED
)
e1
:
SetCondition
(
c71207871
.
spcon
)
e1
:
SetTarget
(
c71207871
.
sptg
)
e1
:
SetOperation
(
c71207871
.
spop
)
c
:
RegisterEffect
(
e1
)
--destroy replace
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetTarget
(
c71207871
.
reptg
)
e2
:
SetValue
(
c71207871
.
repval
)
e2
:
SetOperation
(
c71207871
.
repop
)
c
:
RegisterEffect
(
e2
)
end
function
c71207871
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
bit
.
band
(
r
,
REASON_EFFECT
+
REASON_BATTLE
)
~=
0
end
function
c71207871
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x3d
)
and
not
c
:
IsCode
(
71207871
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c71207871
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c71207871
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c71207871
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
c71207871
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
):
GetFirst
()
if
tg
then
Duel
.
SpecialSummon
(
tg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
function
c71207871
.
repfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsControler
(
tp
)
and
c
:
IsReason
(
REASON_EFFECT
)
end
function
c71207871
.
reptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
eg
:
IsExists
(
c71207871
.
repfilter
,
1
,
nil
,
tp
)
and
eg
:
GetCount
()
==
1
end
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
function
c71207871
.
repval
(
e
,
c
)
return
c71207871
.
repfilter
(
c
,
e
:
GetHandlerPlayer
())
end
function
c71207871
.
repop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
end
expansions/script/c7291576.lua
0 → 100644
View file @
daf33731
--影六武衆-ゲンバ
--Shadow Six Samurai – Genba
--Scripted by Eerie Code
function
c7291576
.
initial_effect
(
c
)
--summon success
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
7291576
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetTarget
(
c7291576
.
thtg
)
e1
:
SetOperation
(
c7291576
.
thop
)
c
:
RegisterEffect
(
e1
)
--destroy replace
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetTarget
(
c7291576
.
reptg
)
e2
:
SetValue
(
c7291576
.
repval
)
e2
:
SetOperation
(
c7291576
.
repop
)
c
:
RegisterEffect
(
e2
)
end
function
c7291576
.
thfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToHand
()
end
function
c7291576
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
tp
)
and
chkc
:
IsLocation
(
LOCATION_REMOVED
)
and
c7291576
.
thfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c7291576
.
thfilter
,
tp
,
LOCATION_REMOVED
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c7291576
.
thfilter
,
tp
,
LOCATION_REMOVED
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
g
,
1
,
0
,
0
)
end
function
c7291576
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
end
end
function
c7291576
.
repfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsControler
(
tp
)
and
c
:
IsReason
(
REASON_EFFECT
)
end
function
c7291576
.
reptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemove
()
and
eg
:
IsExists
(
c7291576
.
repfilter
,
1
,
nil
,
tp
)
and
eg
:
GetCount
()
==
1
end
return
Duel
.
SelectEffectYesNo
(
tp
,
e
:
GetHandler
(),
96
)
end
function
c7291576
.
repval
(
e
,
c
)
return
c7291576
.
repfilter
(
c
,
e
:
GetHandlerPlayer
())
end
function
c7291576
.
repop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_EFFECT
)
end
expansions/script/c79968632.lua
0 → 100644
View file @
daf33731
--六武衆の影忍術
--Shadow Art of the Six Samurai
--Scripted by Eerie Code
function
c79968632
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCountLimit
(
1
,
79968632
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetCost
(
c79968632
.
cost
)
e1
:
SetTarget
(
c79968632
.
target
)
e1
:
SetOperation
(
c79968632
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c79968632
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToGraveAsCost
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
Card
.
IsAbleToGraveAsCost
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
end
function
c79968632
.
filter
(
c
,
e
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x3d
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c79968632
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_REMOVED
)
and
c79968632
.
filter
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
1
and
Duel
.
IsExistingTarget
(
c79968632
.
filter
,
tp
,
LOCATION_REMOVED
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c79968632
.
filter
,
tp
,
LOCATION_REMOVED
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
end
function
c79968632
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c80577258.lua
0 → 100644
View file @
daf33731
--雪の天気模様
--Snowy Weathery Pattern
--Scripted by Eerie Code
--Prototype, might require a core update for full functionality
function
c80577258
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
0
,
80577258
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--adjust
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_ADJUST
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CANNOT_NEGATE
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetOperation
(
c80577258
.
effop
)
c
:
RegisterEffect
(
e2
)
end
function
c80577258
.
efffilter
(
c
,
g
,
ignore_flag
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsSetCard
(
0x109
)
and
c
:
GetSequence
()
<
5
and
g
:
IsContains
(
c
)
and
(
ignore_flag
or
c
:
GetFlagEffect
(
80577258
)
==
0
)
end
function
c80577258
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
cg
=
c
:
GetColumnGroup
(
1
,
1
)
local
g
=
Duel
.
GetMatchingGroup
(
c80577258
.
efffilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
,
cg
)
if
c
:
IsDisabled
()
then
return
end
for
tc
in
aux
.
Next
(
g
)
do
tc
:
RegisterFlagEffect
(
80577258
,
RESET_EVENT
+
0x1fe0000
,
0
,
1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
80577258
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetLabelObject
(
c
)
e1
:
SetCost
(
aux
.
bfgcost
)
e1
:
SetTarget
(
c80577258
.
thtg
)
e1
:
SetOperation
(
c80577258
.
thop
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
end
end
function
c80577258
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x109
)
and
c
:
IsAbleToHand
()
end
function
c80577258
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
gc
=
e
:
GetLabelObject
()
if
chk
==
0
then
return
gc
and
gc
:
IsFaceup
()
and
gc
:
IsLocation
(
LOCATION_SZONE
)
and
not
gc
:
IsDisabled
()
and
c80577258
.
efffilter
(
e
:
GetHandler
(),
gc
:
GetColumnGroup
(
1
,
1
),
true
)
and
Duel
.
IsExistingMatchingCard
(
c80577258
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
0
,
0
)
end
function
c80577258
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c80577258
.
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
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_TO_HAND
)
e1
:
SetTargetRange
(
LOCATION_DECK
,
0
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
expansions/script/c89355716.lua
0 → 100644
View file @
daf33731
--晴れの天気模様
--Sunny Weathery Pattern
--Scripted by Eerie Code
--Prototype, might require a core update for full functionality
function
c89355716
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
0
,
89355716
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e1
)
--adjust
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetCode
(
EVENT_ADJUST
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CANNOT_NEGATE
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetOperation
(
c89355716
.
effop
)
c
:
RegisterEffect
(
e2
)
end
function
c89355716
.
efffilter
(
c
,
g
,
ignore_flag
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsSetCard
(
0x109
)
and
c
:
GetSequence
()
<
5
and
g
:
IsContains
(
c
)
and
(
ignore_flag
or
c
:
GetFlagEffect
(
89355716
)
==
0
)
end
function
c89355716
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
cg
=
c
:
GetColumnGroup
(
1
,
1
)
local
g
=
Duel
.
GetMatchingGroup
(
c89355716
.
efffilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
,
cg
)
if
c
:
IsDisabled
()
then
return
end
for
tc
in
aux
.
Next
(
g
)
do
tc
:
RegisterFlagEffect
(
89355716
,
RESET_EVENT
+
0x1fe0000
,
0
,
1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
89355716
,
0
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetLabelObject
(
c
)
e1
:
SetCost
(
aux
.
bfgcost
)
e1
:
SetTarget
(
c89355716
.
sptg
)
e1
:
SetOperation
(
c89355716
.
spop
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
tc
:
RegisterEffect
(
e1
)
end
end
function
c89355716
.
spcfilter
(
c
,
e
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
c
:
IsReleasableByEffect
()
and
(
ft
>
0
or
c
:
GetSequence
()
<
5
)
and
Duel
.
IsExistingMatchingCard
(
c89355716
.
spfilter
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
,
c
:
GetCode
())
end
function
c89355716
.
spfilter
(
c
,
e
,
tp
,
code
)
return
c
:
IsSetCard
(
0x109
)
and
not
c
:
IsCode
(
code
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c89355716
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
tp
)
and
c89355716
.
spcfilter
(
chkc
,
e
,
tp
)
end
local
gc
=
e
:
GetLabelObject
()
if
chk
==
0
then
return
gc
and
gc
:
IsFaceup
()
and
gc
:
IsLocation
(
LOCATION_SZONE
)
and
not
gc
:
IsDisabled
()
and
c89355716
.
efffilter
(
e
:
GetHandler
(),
gc
:
GetColumnGroup
(
1
,
1
),
true
)
and
Duel
.
IsExistingTarget
(
c89355716
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
e
:
GetHandler
(),
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
Duel
.
SelectTarget
(
tp
,
c89355716
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
e
:
GetHandler
(),
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
)
end
function
c89355716
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsControler
(
tp
)
and
tc
:
IsRelateToEffect
(
e
)
and
Duel
.
Release
(
tc
,
REASON_EFFECT
)
>
0
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c89355716
.
spfilter
),
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
,
tc
:
GetCode
())
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
end
expansions/script/c91299846.lua
0 → 100644
View file @
daf33731
--雷天気ターメル
--Thunder Weathery Turmer
--Scripted by Eerie Code
function
c91299846
.
initial_effect
(
c
)
--place
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
91299846
,
0
))
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCountLimit
(
1
,
91299846
)
e1
:
SetCost
(
c91299846
.
tfcost
)
e1
:
SetTarget
(
c91299846
.
tftg
)
e1
:
SetOperation
(
c91299846
.
tfop
)
c
:
RegisterEffect
(
e1
)
--spsummon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_REMOVE
)
e2
:
SetOperation
(
c91299846
.
spreg
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
91299846
,
1
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetRange
(
LOCATION_REMOVED
)
e3
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e3
:
SetCondition
(
c91299846
.
spcon
)
e3
:
SetTarget
(
c91299846
.
sptg
)
e3
:
SetOperation
(
c91299846
.
spop
)
e3
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e3
)
end
function
c91299846
.
cfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_CONTINUOUS
)
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c91299846
.
tffilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
c
,
tp
)
end
function
c91299846
.
tffilter
(
c
,
cc
,
tp
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsSetCard
(
0x109
)
and
not
c
:
IsForbidden
()
and
c
:
CheckUniqueOnField
(
tp
,
LOCATION_ONFIELD
,
cc
)
end
function
c91299846
.
tfcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c91299846
.
cfilter
,
tp
,
LOCATION_SZONE
,
0
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c91299846
.
cfilter
,
tp
,
LOCATION_SZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
end
function
c91299846
.
tftg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>-
1
end
end
function
c91299846
.
tfop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
c91299846
.
tffilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
nil
,
tp
):
GetFirst
()
if
tc
then
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
end
end
function
c91299846
.
spreg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
re
then
return
end
local
c
=
e
:
GetHandler
()
local
rc
=
re
:
GetHandler
()
if
c
:
IsReason
(
REASON_COST
)
and
rc
:
IsSetCard
(
0x109
)
then
e
:
SetLabel
(
Duel
.
GetTurnCount
()
+
1
)
c
:
RegisterFlagEffect
(
91299846
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
2
)
end
end
function
c91299846
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetLabelObject
():
GetLabel
()
==
Duel
.
GetTurnCount
()
and
e
:
GetHandler
():
GetFlagEffect
(
91299846
)
>
0
end
function
c91299846
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
e
:
GetHandler
():
ResetFlagEffect
(
91299846
)
end
function
c91299846
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c92411493.lua
0 → 100644
View file @
daf33731
--雨天気ラズラ
--Rainy Weathery Lazula
--Scripted by Eerie Code
function
c92411493
.
initial_effect
(
c
)
--place
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
92411493
,
0
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
92411493
)
e1
:
SetTarget
(
c92411493
.
tftg
)
e1
:
SetOperation
(
c92411493
.
tfop
)
c
:
RegisterEffect
(
e1
)
--spsummon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EVENT_REMOVE
)
e2
:
SetOperation
(
c92411493
.
spreg
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
92411493
,
1
))
e3
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetRange
(
LOCATION_REMOVED
)
e3
:
SetCode
(
EVENT_PHASE
+
PHASE_STANDBY
)
e3
:
SetCondition
(
c92411493
.
spcon
)
e3
:
SetTarget
(
c92411493
.
sptg
)
e3
:
SetOperation
(
c92411493
.
spop
)
e3
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e3
)
end
function
c92411493
.
tffilter
(
c
,
tp
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsSetCard
(
0x109
)
and
not
c
:
IsForbidden
()
and
c
:
CheckUniqueOnField
(
tp
)
end
function
c92411493
.
tftg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c92411493
.
tffilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
tp
)
end
end
function
c92411493
.
tfop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<=
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOFIELD
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
c92411493
.
tffilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
tp
):
GetFirst
()
if
tc
then
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
end
end
function
c92411493
.
spreg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
re
then
return
end
local
c
=
e
:
GetHandler
()
local
rc
=
re
:
GetHandler
()
if
c
:
IsReason
(
REASON_COST
)
and
rc
:
IsSetCard
(
0x109
)
then
e
:
SetLabel
(
Duel
.
GetTurnCount
()
+
1
)
c
:
RegisterFlagEffect
(
92411493
,
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
,
0
,
2
)
end
end
function
c92411493
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetLabelObject
():
GetLabel
()
==
Duel
.
GetTurnCount
()
and
e
:
GetHandler
():
GetFlagEffect
(
92411493
)
>
0
end
function
c92411493
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
e
:
GetHandler
():
ResetFlagEffect
(
92411493
)
end
function
c92411493
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
expansions/script/c92534075.lua
0 → 100644
View file @
daf33731
--魔弾-デビルズ・ディール
--Magibullet - Devil's Deal
--Scripted by Eerie Code
function
c92534075
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCountLimit
(
1
,
92534075
+
EFFECT_COUNT_CODE_OATH
)
c
:
RegisterEffect
(
e1
)
--indes
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x108
))
e2
:
SetValue
(
1
)
c
:
RegisterEffect
(
e2
)
--to hand
local
e3
=
Effect
.
CreateEffect
(
c
)
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
)
e3
:
SetCondition
(
c92534075
.
thcon
)
e3
:
SetTarget
(
c92534075
.
thtg
)
e3
:
SetOperation
(
c92534075
.
thop
)
c
:
RegisterEffect
(
e3
)
end
function
c92534075
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
rp
~=
tp
and
c
:
IsReason
(
REASON_EFFECT
)
and
c
:
GetPreviousControler
()
==
tp
end
function
c92534075
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x108
)
and
not
c
:
IsCode
(
92534075
)
and
c
:
IsAbleToHand
()
end
function
c92534075
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c92534075
.
thfilter
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
function
c92534075
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c92534075
.
thfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
expansions/script/c93356623.lua
0 → 100644
View file @
daf33731
--魔弾-クロス・ドミネーター
--Magibullet - Cross-Dominator
--Scripted by Eerie Code
function
c93356623
.
initial_effect
(
c
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_ATKCHANGE
+
CATEGORY_DEFCHANGE
+
CATEGORY_DISABLE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetCountLimit
(
1
,
93356623
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetHintTiming
(
TIMING_DAMAGE_STEP
,
TIMING_DAMAGE_STEP
+
0x1c0
)
e1
:
SetCondition
(
c93356623
.
condition
)
e1
:
SetTarget
(
c93356623
.
target
)
e1
:
SetOperation
(
c93356623
.
activate
)
c
:
RegisterEffect
(
e1
)
end
function
c93356623
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x108
)
end
function
c93356623
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
c93356623
.
cfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
and
(
Duel
.
GetCurrentPhase
()
~=
PHASE_DAMAGE
or
not
Duel
.
IsDamageCalculated
())
end
function
c93356623
.
filter
(
c
)
return
c
:
IsFaceup
()
and
not
(
c
:
GetAttack
()
==
0
and
c
:
GetDefense
()
==
0
and
c
:
IsDisabled
())
end
function
c93356623
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
c93356623
.
filter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c93356623
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
Duel
.
SelectTarget
(
tp
,
c93356623
.
filter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
end
function
c93356623
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsFaceup
()
and
tc
:
IsRelateToEffect
(
e
)
then
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_SINGLE
)
e0
:
SetCode
(
EFFECT_SET_ATTACK_FINAL
)
e0
:
SetValue
(
0
)
e0
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e0
)
local
e1
=
e0
:
Clone
()
e1
:
SetCode
(
EFFECT_SET_DEFENSE_FINAL
)
tc
:
RegisterEffect
(
e1
)
Duel
.
NegateRelatedChain
(
tc
,
RESET_TURN_SET
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_DISABLE
)
e2
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_DISABLE_EFFECT
)
e3
:
SetValue
(
RESET_TURN_SET
)
e3
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e3
)
if
tc
:
IsType
(
TYPE_TRAPMONSTER
)
then
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCode
(
EFFECT_DISABLE_TRAPMONSTER
)
e4
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e4
)
end
end
end
expansions/script/c94418111.lua
0 → 100644
View file @
daf33731
--魔弾の射手 ワイルド
--Magibullet Shooter Wild
--Scripted by Eerie Code
function
c94418111
.
initial_effect
(
c
)
--activate from hand
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_QP_ACT_IN_NTPHAND
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsSetCard
,
0x108
))
e1
:
SetTargetRange
(
LOCATION_HAND
,
0
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_TRAP_ACT_IN_HAND
)
c
:
RegisterEffect
(
e2
)
--search
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e0
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e0
:
SetCode
(
EVENT_CHAINING
)
e0
:
SetRange
(
LOCATION_MZONE
)
e0
:
SetOperation
(
aux
.
chainreg
)
c
:
RegisterEffect
(
e0
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetCategory
(
CATEGORY_TODECK
+
CATEGORY_DRAW
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVING
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_PLAYER_TARGET
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
,
94418111
)
e3
:
SetCondition
(
c94418111
.
tdcon
)
e3
:
SetTarget
(
c94418111
.
tdtg
)
e3
:
SetOperation
(
c94418111
.
tdop
)
c
:
RegisterEffect
(
e3
)
end
function
c94418111
.
tdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
or
c
:
GetFlagEffect
(
1
)
<=
0
then
return
false
end
return
c
:
GetColumnGroup
():
IsContains
(
re
:
GetHandler
())
end
function
c94418111
.
filter
(
c
)
return
c
:
IsSetCard
(
0x108
)
and
c
:
IsAbleToDeck
()
end
function
c94418111
.
tdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c94418111
.
filter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
and
Duel
.
IsExistingTarget
(
c94418111
.
filter
,
tp
,
LOCATION_GRAVE
,
0
,
3
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c94418111
.
filter
,
tp
,
LOCATION_GRAVE
,
0
,
3
,
3
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
g
,
g
:
GetCount
(),
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
end
function
c94418111
.
tdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tg
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
)
if
not
tg
or
tg
:
FilterCount
(
Card
.
IsRelateToEffect
,
nil
,
e
)
~=
3
then
return
end
Duel
.
SendtoDeck
(
tg
,
nil
,
0
,
REASON_EFFECT
)
local
g
=
Duel
.
GetOperatedGroup
()
if
g
:
IsExists
(
Card
.
IsLocation
,
1
,
nil
,
LOCATION_DECK
)
then
Duel
.
ShuffleDeck
(
tp
)
end
local
ct
=
g
:
FilterCount
(
Card
.
IsLocation
,
nil
,
LOCATION_DECK
+
LOCATION_EXTRA
)
if
ct
==
3
then
Duel
.
BreakEffect
()
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
end
end
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