Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-scripts-888
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vee4
ygopro-scripts-888
Commits
6a9c6e0a
Commit
6a9c6e0a
authored
Mar 15, 2022
by
Chrono-Genex
Committed by
GitHub
Mar 15, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update special summon proc (#1757)
parent
ecdfe759
Changes
54
Hide whitespace changes
Inline
Side-by-side
Showing
54 changed files
with
920 additions
and
938 deletions
+920
-938
c10000040.lua
c10000040.lua
+17
-13
c102380.lua
c102380.lua
+15
-12
c13250922.lua
c13250922.lua
+16
-4
c14466224.lua
c14466224.lua
+22
-9
c14799437.lua
c14799437.lua
+19
-33
c15574615.lua
c15574615.lua
+13
-3
c16306932.lua
c16306932.lua
+15
-31
c16886617.lua
c16886617.lua
+15
-22
c17132130.lua
c17132130.lua
+16
-38
c18631392.lua
c18631392.lua
+21
-11
c19028307.lua
c19028307.lua
+13
-3
c21390858.lua
c21390858.lua
+20
-13
c23440231.lua
c23440231.lua
+19
-33
c2521011.lua
c2521011.lua
+16
-4
c25811989.lua
c25811989.lua
+19
-33
c25833572.lua
c25833572.lua
+17
-10
c31764353.lua
c31764353.lua
+20
-13
c31887905.lua
c31887905.lua
+20
-13
c32750510.lua
c32750510.lua
+14
-22
c34079868.lua
c34079868.lua
+18
-10
c3775068.lua
c3775068.lua
+14
-23
c38369349.lua
c38369349.lua
+14
-22
c40542825.lua
c40542825.lua
+20
-13
c4068622.lua
c4068622.lua
+26
-17
c410904.lua
c410904.lua
+22
-12
c42901635.lua
c42901635.lua
+13
-3
c4335427.lua
c4335427.lua
+13
-3
c4376658.lua
c4376658.lua
+20
-13
c45148985.lua
c45148985.lua
+17
-9
c48948935.lua
c48948935.lua
+16
-23
c4998619.lua
c4998619.lua
+14
-23
c5126490.lua
c5126490.lua
+20
-13
c51316684.lua
c51316684.lua
+19
-33
c52085072.lua
c52085072.lua
+14
-23
c53183600.lua
c53183600.lua
+14
-22
c58330108.lua
c58330108.lua
+15
-20
c5861892.lua
c5861892.lua
+14
-23
c63845230.lua
c63845230.lua
+15
-21
c65268179.lua
c65268179.lua
+22
-12
c68881649.lua
c68881649.lua
+20
-13
c69831560.lua
c69831560.lua
+14
-23
c69890967.lua
c69890967.lua
+14
-23
c74426895.lua
c74426895.lua
+22
-12
c75347539.lua
c75347539.lua
+20
-9
c77387463.lua
c77387463.lua
+14
-22
c78509901.lua
c78509901.lua
+14
-22
c80776622.lua
c80776622.lua
+13
-3
c83965310.lua
c83965310.lua
+14
-23
c88301393.lua
c88301393.lua
+19
-33
c88619463.lua
c88619463.lua
+14
-22
c91588074.lua
c91588074.lua
+20
-8
c92652813.lua
c92652813.lua
+22
-12
c93717133.lua
c93717133.lua
+14
-22
c96055137.lua
c96055137.lua
+19
-33
No files found.
c10000040.lua
View file @
6a9c6e0a
...
@@ -9,6 +9,7 @@ function c10000040.initial_effect(c)
...
@@ -9,6 +9,7 @@ function c10000040.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c10000040
.
spcon
)
e1
:
SetCondition
(
c10000040
.
spcon
)
e1
:
SetTarget
(
c10000040
.
sptg
)
e1
:
SetOperation
(
c10000040
.
spop
)
e1
:
SetOperation
(
c10000040
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--spsummon condition
--spsummon condition
...
@@ -31,24 +32,27 @@ function c10000040.initial_effect(c)
...
@@ -31,24 +32,27 @@ function c10000040.initial_effect(c)
e4
:
SetOperation
(
c10000040
.
winop
)
e4
:
SetOperation
(
c10000040
.
winop
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e4
)
end
end
function
c10000040
.
spfilter
(
c
,
code
)
c10000040
.
spchecks
=
aux
.
CreateChecks
(
Card
.
IsOriginalCodeRule
,{
10000020
,
10000000
,
10000010
})
return
c
:
IsOriginalCodeRule
(
code
)
end
function
c10000040
.
spcon
(
e
,
c
)
function
c10000040
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
3
local
g
=
Duel
.
GetReleaseGroup
(
tp
)
and
Duel
.
CheckReleaseGroup
(
tp
,
c10000040
.
spfilter
,
1
,
nil
,
10000000
)
return
g
:
CheckSubGroupEach
(
c10000040
.
spchecks
,
aux
.
mzctcheckrel
,
tp
)
and
Duel
.
CheckReleaseGroup
(
tp
,
c10000040
.
spfilter
,
1
,
nil
,
10000010
)
end
and
Duel
.
CheckReleaseGroup
(
tp
,
c10000040
.
spfilter
,
1
,
nil
,
10000020
)
function
c10000040
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetReleaseGroup
(
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c10000040
.
spchecks
,
true
,
aux
.
mzctcheckrel
,
tp
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
end
function
c10000040
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c10000040
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g1
=
Duel
.
SelectReleaseGroup
(
tp
,
c10000040
.
spfilter
,
1
,
1
,
nil
,
10000000
)
local
g
=
e
:
GetLabelObject
()
local
g2
=
Duel
.
SelectReleaseGroup
(
tp
,
c10000040
.
spfilter
,
1
,
1
,
nil
,
10000010
)
Duel
.
Release
(
g
,
REASON_COST
)
local
g3
=
Duel
.
SelectReleaseGroup
(
tp
,
c10000040
.
spfilter
,
1
,
1
,
nil
,
10000020
)
g
:
DeleteGroup
()
g1
:
Merge
(
g2
)
g1
:
Merge
(
g3
)
Duel
.
Release
(
g1
,
REASON_COST
)
end
end
function
c10000040
.
winop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c10000040
.
winop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
WIN_REASON_CREATORGOD
=
0x13
local
WIN_REASON_CREATORGOD
=
0x13
...
...
c102380.lua
View file @
6a9c6e0a
...
@@ -10,6 +10,7 @@ function c102380.initial_effect(c)
...
@@ -10,6 +10,7 @@ function c102380.initial_effect(c)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetTargetRange
(
POS_FACEUP
,
1
)
e1
:
SetTargetRange
(
POS_FACEUP
,
1
)
e1
:
SetCondition
(
c102380
.
spcon
)
e1
:
SetCondition
(
c102380
.
spcon
)
e1
:
SetTarget
(
c102380
.
sptg
)
e1
:
SetOperation
(
c102380
.
spop
)
e1
:
SetOperation
(
c102380
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--damage
--damage
...
@@ -33,27 +34,29 @@ function c102380.initial_effect(c)
...
@@ -33,27 +34,29 @@ function c102380.initial_effect(c)
e3
:
SetOperation
(
c102380
.
spcop
)
e3
:
SetOperation
(
c102380
.
spcop
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c102380
.
filter1
(
c
,
tp
,
rg
)
function
c102380
.
fselect
(
g
,
tp
)
return
rg
:
IsExists
(
c102380
.
filter2
,
1
,
c
,
tp
,
c
)
return
Duel
.
GetMZoneCount
(
1
-
tp
,
g
,
tp
)
>
0
end
function
c102380
.
filter2
(
c
,
tp
,
mc
)
local
mg
=
Group
.
FromCards
(
c
,
mc
)
return
Duel
.
GetMZoneCount
(
1
-
tp
,
mg
,
tp
)
>
0
end
end
function
c102380
.
spcon
(
e
,
c
)
function
c102380
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetMatchingGroup
(
Card
.
IsReleasable
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
local
rg
=
Duel
.
GetMatchingGroup
(
Card
.
IsReleasable
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
return
rg
:
IsExists
(
c102380
.
filter1
,
1
,
nil
,
tp
,
rg
)
return
rg
:
CheckSubGroup
(
c102380
.
fselect
,
2
,
2
,
tp
)
end
end
function
c102380
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c102380
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetMatchingGroup
(
Card
.
IsReleasable
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
local
rg
=
Duel
.
GetMatchingGroup
(
Card
.
IsReleasable
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
rg
:
FilterSelect
(
tp
,
c102380
.
filter1
,
1
,
1
,
nil
,
tp
,
rg
)
local
sg
=
rg
:
SelectSubGroup
(
tp
,
c102380
.
fselect
,
true
,
2
,
2
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
if
sg
then
local
g2
=
rg
:
FilterSelect
(
tp
,
c102380
.
filter2
,
1
,
1
,
g
:
GetFirst
(),
tp
,
g
:
GetFirst
())
sg
:
KeepAlive
()
g
:
Merge
(
g2
)
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c102380
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c102380
.
damcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c102380
.
damcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetTurnPlayer
()
==
tp
return
Duel
.
GetTurnPlayer
()
==
tp
...
...
c13250922.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c13250922.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c13250922.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c13250922
.
spcon
)
e2
:
SetCondition
(
c13250922
.
spcon
)
e2
:
SetTarget
(
c13250922
.
sptg
)
e2
:
SetOperation
(
c13250922
.
spop
)
e2
:
SetOperation
(
c13250922
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--destroy
--destroy
...
@@ -34,13 +35,24 @@ function c13250922.spfilter(c)
...
@@ -34,13 +35,24 @@ function c13250922.spfilter(c)
end
end
function
c13250922
.
spcon
(
e
,
c
)
function
c13250922
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
return
Duel
.
GetLocationCount
(
c
:
GetControler
(),
LOCATION_MZONE
)
>
0
local
tp
=
c
:
GetControler
()
and
Duel
.
IsExistingMatchingCard
(
c13250922
.
spfilter
,
c
:
GetControler
(),
LOCATION_ONFIELD
,
0
,
2
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c13250922
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
)
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
2
,
2
,
tp
)
end
end
function
c13250922
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c13250922
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c13250922
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c13250922
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
2
,
2
,
nil
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
2
,
2
,
tp
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c13250922
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c13250922
.
filter
(
c
)
function
c13250922
.
filter
(
c
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
return
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
...
...
c14466224.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c14466224.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c14466224.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c14466224
.
spcon
)
e1
:
SetCondition
(
c14466224
.
spcon
)
e1
:
SetTarget
(
c14466224
.
sptg
)
e1
:
SetOperation
(
c14466224
.
spop
)
e1
:
SetOperation
(
c14466224
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--equip
--equip
...
@@ -26,20 +27,32 @@ end
...
@@ -26,20 +27,32 @@ end
function
c14466224
.
gfilter
(
c
)
function
c14466224
.
gfilter
(
c
)
return
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToRemoveAsCost
()
return
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToRemoveAsCost
()
end
end
function
c14466224
.
fcheck
(
c
,
g
)
return
c
:
IsLocation
(
LOCATION_GRAVE
)
and
g
:
IsExists
(
Card
.
IsLocation
,
2
,
c
,
LOCATION_MZONE
)
end
function
c14466224
.
fselect
(
g
,
tp
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
g
:
IsExists
(
c14466224
.
fcheck
,
1
,
nil
,
g
)
end
function
c14466224
.
spcon
(
e
,
c
)
function
c14466224
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c14466224
.
gfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToRemoveAsCost
,
tp
,
LOCATION_MZONE
,
0
,
2
,
nil
)
return
g
:
CheckSubGroup
(
c14466224
.
fselect
,
3
,
3
,
tp
)
and
Duel
.
IsExistingMatchingCard
(
c14466224
.
gfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
end
function
c14466224
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c14466224
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c14466224
.
gfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
Card
.
IsAbleToRemoveAsCost
,
tp
,
LOCATION_MZONE
,
0
,
2
,
2
,
nil
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c14466224
.
fselect
,
true
,
3
,
3
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
sg
then
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c14466224
.
gfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
sg
:
KeepAlive
()
g1
:
Merge
(
g2
)
e
:
SetLabelObject
(
sg
)
Duel
.
Remove
(
g1
,
POS_FACEUP
,
REASON_COST
)
return
true
else
return
false
end
end
function
c14466224
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c14466224
.
eqcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c14466224
.
eqcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
...
...
c14799437.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c14799437.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c14799437.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetCondition
(
c14799437
.
spcon
)
e2
:
SetCondition
(
c14799437
.
spcon
)
e2
:
SetTarget
(
c14799437
.
sptg
)
e2
:
SetOperation
(
c14799437
.
spop
)
e2
:
SetOperation
(
c14799437
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--destroy
--destroy
...
@@ -55,42 +56,27 @@ function c14799437.spcon(e,c)
...
@@ -55,42 +56,27 @@ function c14799437.spcon(e,c)
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
sum
=
Duel
.
GetMatchingGroup
(
c14799437
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c14799437
.
lv_or_rk
)
local
sum
=
Duel
.
GetMatchingGroup
(
c14799437
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c14799437
.
lv_or_rk
)
if
sum
>
8
then
return
false
end
if
sum
>
8
then
return
false
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
if
ft
<-
2
then
return
false
end
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
if
c
:
IsHasEffect
(
34822850
)
then
local
g
=
Duel
.
GetMatchingGroup
(
c14799437
.
spfilter
,
tp
,
loc
,
0
,
c
)
if
ft
>
0
then
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
3
,
3
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
c14799437
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
c
)
else
local
ct
=-
ft
+
1
return
Duel
.
IsExistingMatchingCard
(
c14799437
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
ct
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c14799437
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
c
)
end
else
return
ft
>
0
and
Duel
.
IsExistingMatchingCard
(
c14799437
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
c
)
end
end
end
function
c14799437
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c14799437
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
local
g
=
nil
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
local
g
=
Duel
.
GetMatchingGroup
(
c14799437
.
spfilter
,
tp
,
loc
,
0
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
c
:
IsHasEffect
(
34822850
)
then
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
3
,
3
,
tp
)
if
ft
>
0
then
if
sg
then
g
=
Duel
.
SelectMatchingCard
(
tp
,
c14799437
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
3
,
c
)
sg
:
KeepAlive
()
else
e
:
SetLabelObject
(
sg
)
local
sg
=
Duel
.
GetMatchingGroup
(
c14799437
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
c
)
return
true
local
ct
=-
ft
+
1
else
return
false
end
g
=
sg
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
ct
,
ct
,
nil
,
LOCATION_MZONE
)
end
if
ct
<
3
then
function
c14799437
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
sg
:
Sub
(
g
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g2
=
sg
:
Select
(
tp
,
3
-
ct
,
3
-
ct
,
nil
)
g
:
Merge
(
g2
)
end
end
else
g
=
Duel
.
SelectMatchingCard
(
tp
,
c14799437
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
3
,
c
)
end
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c14799437
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c14799437
.
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
,
e
:
GetHandler
())
end
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
aux
.
TRUE
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
e
:
GetHandler
())
end
...
...
c15574615.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c15574615.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c15574615.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c15574615
.
spcon
)
e1
:
SetCondition
(
c15574615
.
spcon
)
e1
:
SetTarget
(
c15574615
.
sptg
)
e1
:
SetOperation
(
c15574615
.
spop
)
e1
:
SetOperation
(
c15574615
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--spsummon
--spsummon
...
@@ -33,11 +34,20 @@ function c15574615.spcon(e,c)
...
@@ -33,11 +34,20 @@ function c15574615.spcon(e,c)
local
g
=
Duel
.
GetMatchingGroup
(
c15574615
.
spcostfilter
,
tp
,
LOCATION_HAND
+
LOCATION_MZONE
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c15574615
.
spcostfilter
,
tp
,
LOCATION_HAND
+
LOCATION_MZONE
,
0
,
nil
)
return
g
:
CheckSubGroupEach
(
c15574615
.
spchecks
,
aux
.
mzctcheck
,
tp
)
return
g
:
CheckSubGroupEach
(
c15574615
.
spchecks
,
aux
.
mzctcheck
,
tp
)
end
end
function
c15574615
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c15574615
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c15574615
.
spcostfilter
,
tp
,
LOCATION_HAND
+
LOCATION_MZONE
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c15574615
.
spcostfilter
,
tp
,
LOCATION_HAND
+
LOCATION_MZONE
,
0
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c15574615
.
spchecks
,
false
,
aux
.
mzctcheck
,
tp
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c15574615
.
spchecks
,
true
,
aux
.
mzctcheck
,
tp
)
Duel
.
SendtoGrave
(
sg
,
REASON_COST
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c15574615
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c15574615
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c15574615
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsReleasable
()
end
if
chk
==
0
then
return
e
:
GetHandler
():
IsReleasable
()
end
...
...
c16306932.lua
View file @
6a9c6e0a
...
@@ -36,6 +36,7 @@ function c16306932.initial_effect(c)
...
@@ -36,6 +36,7 @@ function c16306932.initial_effect(c)
e4
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e4
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e4
:
SetRange
(
LOCATION_HAND
)
e4
:
SetRange
(
LOCATION_HAND
)
e4
:
SetCondition
(
c16306932
.
hspcon
)
e4
:
SetCondition
(
c16306932
.
hspcon
)
e4
:
SetTarget
(
c16306932
.
hsptg
)
e4
:
SetOperation
(
c16306932
.
hspop
)
e4
:
SetOperation
(
c16306932
.
hspop
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e4
)
--tohand
--tohand
...
@@ -70,6 +71,7 @@ function c16306932.initial_effect(c)
...
@@ -70,6 +71,7 @@ function c16306932.initial_effect(c)
e8
:
SetOperation
(
c16306932
.
tdop
)
e8
:
SetOperation
(
c16306932
.
tdop
)
c
:
RegisterEffect
(
e8
)
c
:
RegisterEffect
(
e8
)
end
end
c16306932
.
spchecks
=
aux
.
CreateChecks
(
Card
.
IsType
,{
TYPE_FUSION
,
TYPE_SYNCHRO
,
TYPE_XYZ
})
function
c16306932
.
psplimit
(
e
,
c
,
tp
,
sumtp
,
sumpos
)
function
c16306932
.
psplimit
(
e
,
c
,
tp
,
sumtp
,
sumpos
)
return
not
c
:
IsRace
(
RACE_DRAGON
)
and
bit
.
band
(
sumtp
,
SUMMON_TYPE_PENDULUM
)
==
SUMMON_TYPE_PENDULUM
return
not
c
:
IsRace
(
RACE_DRAGON
)
and
bit
.
band
(
sumtp
,
SUMMON_TYPE_PENDULUM
)
==
SUMMON_TYPE_PENDULUM
end
end
...
@@ -92,44 +94,26 @@ function c16306932.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -92,44 +94,26 @@ function c16306932.spop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
end
end
function
c16306932
.
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
(
c16306932
.
hspfilter2
,
1
,
rg
,
g
,
rg
,
ft
)
end
function
c16306932
.
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
(
c16306932
.
hspfilter3
,
1
,
rg2
,
ft
)
end
function
c16306932
.
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
c16306932
.
hspcon
(
e
,
c
)
function
c16306932
.
hspcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
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
)
local
g
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
Card
.
IsRace
,
nil
,
RACE_DRAGON
)
return
g
:
IsExists
(
c16306932
.
hspfilter1
,
1
,
nil
,
g
,
ft
)
return
g
:
CheckSubGroupEach
(
c16306932
.
spchecks
,
aux
.
mzctcheckrel
,
tp
)
end
end
function
c16306932
.
hspop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c16306932
.
hsptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
Card
.
IsRace
,
nil
,
RACE_DRAGON
)
local
g
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
Card
.
IsRace
,
nil
,
RACE_DRAGON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g1
=
g
:
FilterSelect
(
tp
,
c16306932
.
hspfilter1
,
1
,
1
,
nil
,
g
,
ft
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c16306932
.
spchecks
,
true
,
aux
.
mzctcheckrel
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
if
sg
then
local
g2
=
g
:
FilterSelect
(
tp
,
c16306932
.
hspfilter2
,
1
,
1
,
g1
,
g
,
g1
,
ft
)
sg
:
KeepAlive
()
g1
:
Merge
(
g2
)
e
:
SetLabelObject
(
sg
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
return
true
local
g3
=
g
:
FilterSelect
(
tp
,
c16306932
.
hspfilter3
,
1
,
1
,
g1
,
ft
)
else
return
false
end
g1
:
Merge
(
g3
)
end
Duel
.
Release
(
g1
,
REASON_COST
+
REASON_MATERIAL
)
function
c16306932
.
hspop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c16306932
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c16306932
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsDiscardable
()
and
Duel
.
CheckLPCost
(
tp
,
500
)
end
if
chk
==
0
then
return
e
:
GetHandler
():
IsDiscardable
()
and
Duel
.
CheckLPCost
(
tp
,
500
)
end
...
...
c16886617.lua
View file @
6a9c6e0a
...
@@ -16,6 +16,7 @@ function c16886617.initial_effect(c)
...
@@ -16,6 +16,7 @@ function c16886617.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c16886617
.
spcon
)
e2
:
SetCondition
(
c16886617
.
spcon
)
e2
:
SetTarget
(
c16886617
.
sptg
)
e2
:
SetOperation
(
c16886617
.
spop
)
e2
:
SetOperation
(
c16886617
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--destroy
--destroy
...
@@ -33,34 +34,26 @@ end
...
@@ -33,34 +34,26 @@ end
function
c16886617
.
rfilter
(
c
)
function
c16886617
.
rfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsAttack
(
0
)
and
c
:
IsReleasable
()
return
c
:
IsFaceup
()
and
c
:
IsAttack
(
0
)
and
c
:
IsReleasable
()
end
end
function
c16886617
.
mzfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsAttack
(
0
)
and
c
:
IsReleasable
()
and
c
:
GetSequence
()
<
5
end
function
c16886617
.
spcon
(
e
,
c
)
function
c16886617
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
rg
=
Duel
.
GetMatchingGroup
(
c16886617
.
rfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
local
ct
=-
ft
+
1
return
rg
:
CheckSubGroup
(
aux
.
mzctcheck
,
2
,
2
,
tp
)
if
ct
>
2
then
return
false
end
end
if
ct
>
0
and
not
Duel
.
IsExistingMatchingCard
(
c16886617
.
mzfilter
,
tp
,
LOCATION_MZONE
,
0
,
ct
,
nil
)
then
return
false
end
function
c16886617
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
return
Duel
.
IsExistingMatchingCard
(
c16886617
.
rfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
2
,
nil
)
local
rg
=
Duel
.
GetMatchingGroup
(
c16886617
.
rfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
2
,
2
,
tp
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
end
function
c16886617
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c16886617
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
e
:
GetLabelObject
()
local
ct
=-
ft
+
1
if
ct
<
0
then
ct
=
0
end
local
g
=
Group
.
CreateGroup
()
if
ct
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
c16886617
.
mzfilter
,
tp
,
LOCATION_MZONE
,
0
,
ct
,
ct
,
nil
)
g
:
Merge
(
sg
)
end
if
ct
<
2
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
c16886617
.
rfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
2
-
ct
,
2
-
ct
,
g
:
GetFirst
())
g
:
Merge
(
sg
)
end
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c16886617
.
desfilter
(
c
)
function
c16886617
.
desfilter
(
c
)
return
c
:
IsFaceup
()
return
c
:
IsFaceup
()
...
...
c17132130.lua
View file @
6a9c6e0a
...
@@ -16,6 +16,7 @@ function c17132130.initial_effect(c)
...
@@ -16,6 +16,7 @@ function c17132130.initial_effect(c)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetValue
(
SUMMON_VALUE_SELF
)
e2
:
SetValue
(
SUMMON_VALUE_SELF
)
e2
:
SetCondition
(
c17132130
.
spcon
)
e2
:
SetCondition
(
c17132130
.
spcon
)
e2
:
SetTarget
(
c17132130
.
sptg
)
e2
:
SetOperation
(
c17132130
.
spop
)
e2
:
SetOperation
(
c17132130
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--special summon success
--special summon success
...
@@ -30,52 +31,29 @@ end
...
@@ -30,52 +31,29 @@ end
function
c17132130
.
rfilter
(
c
,
tp
)
function
c17132130
.
rfilter
(
c
,
tp
)
return
c
:
IsSetCard
(
0xc008
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
return
c
:
IsSetCard
(
0xc008
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
end
end
function
c17132130
.
mzfilter
(
c
,
tp
)
function
c17132130
.
fselect
(
g
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
return
g
:
IsExists
(
c17132130
.
rfilter
,
1
,
nil
,
tp
)
and
aux
.
mzctcheckrel
(
g
,
tp
)
end
function
c17132130
.
rmzfilter
(
c
,
tp
)
return
c
:
IsSetCard
(
0xc008
)
and
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
end
end
function
c17132130
.
spcon
(
e
,
c
)
function
c17132130
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
rg
:
CheckSubGroup
(
c17132130
.
fselect
,
3
,
3
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
3
and
rg
:
GetCount
()
>
2
and
rg
:
IsExists
(
c17132130
.
rfilter
,
1
,
nil
,
tp
)
and
(
ft
>
0
or
rg
:
IsExists
(
c17132130
.
mzfilter
,
ct
,
nil
,
tp
))
and
(
ft
>-
2
or
rg
:
IsExists
(
c17132130
.
rmzfilter
,
1
,
nil
,
tp
))
end
end
function
c17132130
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c17132130
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
nil
local
sg
=
rg
:
SelectSubGroup
(
tp
,
c17132130
.
fselect
,
true
,
3
,
3
,
tp
)
if
ft
>-
2
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
:
KeepAlive
()
g
=
rg
:
FilterSelect
(
tp
,
Card
.
IsSetCard
,
1
,
1
,
nil
,
0xc008
)
e
:
SetLabelObject
(
sg
)
else
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
else
return
false
end
g
=
rg
:
FilterSelect
(
tp
,
c17132130
.
rmzfilter
,
1
,
1
,
nil
,
tp
)
end
end
function
c17132130
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
tc
=
g
:
GetFirst
()
local
g
=
e
:
GetLabelObject
()
if
tc
:
IsControler
(
tp
)
and
tc
:
GetSequence
()
<
5
then
ft
=
ft
+
1
end
if
ft
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g2
=
rg
:
Select
(
tp
,
2
,
2
,
tc
)
g
:
Merge
(
g2
)
elseif
ft
>-
1
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g2
=
rg
:
FilterSelect
(
tp
,
c17132130
.
mzfilter
,
1
,
1
,
tc
,
tp
)
g
:
Merge
(
g2
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g3
=
rg
:
Select
(
tp
,
1
,
1
,
g
)
g
:
Merge
(
g3
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g2
=
rg
:
FilterSelect
(
tp
,
c17132130
.
mzfilter
,
2
,
2
,
tc
,
tp
)
g
:
Merge
(
g2
)
end
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c17132130
.
lp
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c17132130
.
lp
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
...
...
c18631392.lua
View file @
6a9c6e0a
...
@@ -15,6 +15,7 @@ function c18631392.initial_effect(c)
...
@@ -15,6 +15,7 @@ function c18631392.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c18631392
.
spcon
)
e2
:
SetCondition
(
c18631392
.
spcon
)
e2
:
SetTarget
(
c18631392
.
sptg
)
e2
:
SetOperation
(
c18631392
.
spop
)
e2
:
SetOperation
(
c18631392
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--announce 3 cards
--announce 3 cards
...
@@ -27,23 +28,32 @@ function c18631392.initial_effect(c)
...
@@ -27,23 +28,32 @@ function c18631392.initial_effect(c)
e3
:
SetTarget
(
c18631392
.
anctg
)
e3
:
SetTarget
(
c18631392
.
anctg
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c18631392
.
spfilter
(
c
,
rac
)
function
c18631392
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_LIGHT
)
and
c
:
IsRace
(
rac
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_LIGHT
)
and
c
:
IsAbleToGraveAsCost
()
end
function
c18631392
.
fselect
(
g
,
tp
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gfcheck
(
g
,
Card
.
IsRace
,
RACE_FAIRY
,
RACE_DRAGON
)
end
end
function
c18631392
.
spcon
(
e
,
c
)
function
c18631392
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c18631392
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c18631392
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
RACE_FAIRY
)
return
g
:
CheckSubGroup
(
c18631392
.
fselect
,
2
,
2
,
tp
)
and
Duel
.
IsExistingMatchingCard
(
c18631392
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
RACE_DRAGON
)
end
end
function
c18631392
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c18631392
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c18631392
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c18631392
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
RACE_FAIRY
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c18631392
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
RACE_DRAGON
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c18631392
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c18631392
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c18631392
.
anctg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c18631392
.
anctg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
if
chk
==
0
then
...
...
c19028307.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c19028307.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c19028307.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c19028307
.
spcon
)
e1
:
SetCondition
(
c19028307
.
spcon
)
e1
:
SetTarget
(
c19028307
.
sptg
)
e1
:
SetOperation
(
c19028307
.
spop
)
e1
:
SetOperation
(
c19028307
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--no battle damage
--no battle damage
...
@@ -27,9 +28,18 @@ function c19028307.spcon(e,c)
...
@@ -27,9 +28,18 @@ function c19028307.spcon(e,c)
local
g
=
Duel
.
GetMatchingGroup
(
c19028307
.
spcostfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c19028307
.
spcostfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
c
)
return
g
:
CheckSubGroup
(
c19028307
.
spcheck
,
2
,
2
,
tp
)
return
g
:
CheckSubGroup
(
c19028307
.
spcheck
,
2
,
2
,
tp
)
end
end
function
c19028307
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c19028307
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c19028307
.
spcostfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c19028307
.
spcostfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c19028307
.
spcheck
,
false
,
2
,
2
,
tp
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c19028307
.
spcheck
,
true
,
2
,
2
,
tp
)
Duel
.
Remove
(
sg
,
POS_FACEUP
,
REASON_COST
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c19028307
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
c21390858.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c21390858.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c21390858.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c21390858
.
spcon
)
e1
:
SetCondition
(
c21390858
.
spcon
)
e1
:
SetTarget
(
c21390858
.
sptg
)
e1
:
SetOperation
(
c21390858
.
spop
)
e1
:
SetOperation
(
c21390858
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -27,26 +28,32 @@ function c21390858.initial_effect(c)
...
@@ -27,26 +28,32 @@ function c21390858.initial_effect(c)
e3
:
SetCondition
(
c21390858
.
condition
)
e3
:
SetCondition
(
c21390858
.
condition
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c21390858
.
spfilter1
(
c
,
tp
)
function
c21390858
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
19327348
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c21390858
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c21390858
.
spfilter2
(
c
)
function
c21390858
.
fselect
(
g
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_DARK
)
and
c
:
IsAbleToGraveAsCost
(
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsCode
,
19327348
,
Card
.
IsAttribute
,
ATTRIBUTE_DARK
)
end
end
function
c21390858
.
spcon
(
e
,
c
)
function
c21390858
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c21390858
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c21390858
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c21390858
.
fselect
,
2
,
2
,
tp
)
end
end
function
c21390858
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c21390858
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c21390858
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c21390858
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c21390858
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c21390858
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c21390858
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c21390858
.
tfilter
(
c
)
function
c21390858
.
tfilter
(
c
)
return
c
:
IsLevel
(
3
,
4
)
and
c
:
IsAttribute
(
ATTRIBUTE_LIGHT
)
and
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsAbleToHand
()
return
c
:
IsLevel
(
3
,
4
)
and
c
:
IsAttribute
(
ATTRIBUTE_LIGHT
)
and
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsAbleToHand
()
...
...
c23440231.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c23440231.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c23440231.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetCondition
(
c23440231
.
spcon
)
e2
:
SetCondition
(
c23440231
.
spcon
)
e2
:
SetTarget
(
c23440231
.
sptg
)
e2
:
SetOperation
(
c23440231
.
spop
)
e2
:
SetOperation
(
c23440231
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--destroy
--destroy
...
@@ -53,42 +54,27 @@ function c23440231.spcon(e,c)
...
@@ -53,42 +54,27 @@ function c23440231.spcon(e,c)
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
sum
=
Duel
.
GetMatchingGroup
(
c23440231
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c23440231
.
lv_or_rk
)
local
sum
=
Duel
.
GetMatchingGroup
(
c23440231
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c23440231
.
lv_or_rk
)
if
sum
>
8
then
return
false
end
if
sum
>
8
then
return
false
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
if
ft
<-
2
then
return
false
end
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
if
c
:
IsHasEffect
(
34822850
)
then
local
g
=
Duel
.
GetMatchingGroup
(
c23440231
.
spfilter
,
tp
,
loc
,
0
,
c
)
if
ft
>
0
then
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
3
,
3
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
c23440231
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
c
)
else
local
ct
=-
ft
+
1
return
Duel
.
IsExistingMatchingCard
(
c23440231
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
ct
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c23440231
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
c
)
end
else
return
ft
>
0
and
Duel
.
IsExistingMatchingCard
(
c23440231
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
c
)
end
end
end
function
c23440231
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c23440231
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
local
g
=
nil
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
local
g
=
Duel
.
GetMatchingGroup
(
c23440231
.
spfilter
,
tp
,
loc
,
0
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
c
:
IsHasEffect
(
34822850
)
then
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
3
,
3
,
tp
)
if
ft
>
0
then
if
sg
then
g
=
Duel
.
SelectMatchingCard
(
tp
,
c23440231
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
3
,
c
)
sg
:
KeepAlive
()
else
e
:
SetLabelObject
(
sg
)
local
sg
=
Duel
.
GetMatchingGroup
(
c23440231
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
c
)
return
true
local
ct
=-
ft
+
1
else
return
false
end
g
=
sg
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
ct
,
ct
,
nil
,
LOCATION_MZONE
)
end
if
ct
<
3
then
function
c23440231
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
sg
:
Sub
(
g
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g2
=
sg
:
Select
(
tp
,
3
-
ct
,
3
-
ct
,
nil
)
g
:
Merge
(
g2
)
end
end
else
g
=
Duel
.
SelectMatchingCard
(
tp
,
c23440231
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
3
,
3
,
c
)
end
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c23440231
.
desfilter
(
c
)
function
c23440231
.
desfilter
(
c
)
return
(
c
:
IsFacedown
()
or
not
c
:
IsSetCard
(
0xc5
))
and
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
return
(
c
:
IsFacedown
()
or
not
c
:
IsSetCard
(
0xc5
))
and
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
...
...
c2521011.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c2521011.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c2521011.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c2521011
.
spcon
)
e1
:
SetCondition
(
c2521011
.
spcon
)
e1
:
SetTarget
(
c2521011
.
sptg
)
e1
:
SetOperation
(
c2521011
.
spop
)
e1
:
SetOperation
(
c2521011
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--set
--set
...
@@ -38,13 +39,24 @@ function c2521011.spfilter(c)
...
@@ -38,13 +39,24 @@ function c2521011.spfilter(c)
end
end
function
c2521011
.
spcon
(
e
,
c
)
function
c2521011
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
return
Duel
.
GetLocationCount
(
c
:
GetControler
(),
LOCATION_MZONE
)
>
0
local
tp
=
c
:
GetControler
()
and
Duel
.
IsExistingMatchingCard
(
c2521011
.
spfilter
,
c
:
GetControler
(),
LOCATION_ONFIELD
,
0
,
3
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c2521011
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
)
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
3
,
3
,
tp
)
end
end
function
c2521011
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c2521011
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c2521011
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c2521011
.
spfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
3
,
3
,
nil
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
3
,
3
,
tp
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c2521011
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c2521011
.
filter
(
c
)
function
c2521011
.
filter
(
c
)
return
c
:
IsSetCard
(
0x7c
)
and
c
:
IsType
(
TYPE_TRAP
)
and
c
:
IsSSetable
()
return
c
:
IsSetCard
(
0x7c
)
and
c
:
IsType
(
TYPE_TRAP
)
and
c
:
IsSSetable
()
...
...
c25811989.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c25811989.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c25811989.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetCondition
(
c25811989
.
spcon
)
e2
:
SetCondition
(
c25811989
.
spcon
)
e2
:
SetTarget
(
c25811989
.
sptg
)
e2
:
SetOperation
(
c25811989
.
spop
)
e2
:
SetOperation
(
c25811989
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--handes
--handes
...
@@ -55,42 +56,27 @@ function c25811989.spcon(e,c)
...
@@ -55,42 +56,27 @@ function c25811989.spcon(e,c)
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
sum
=
Duel
.
GetMatchingGroup
(
c25811989
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c25811989
.
lv_or_rk
)
local
sum
=
Duel
.
GetMatchingGroup
(
c25811989
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c25811989
.
lv_or_rk
)
if
sum
>
8
then
return
false
end
if
sum
>
8
then
return
false
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
if
ft
<-
1
then
return
false
end
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
if
c
:
IsHasEffect
(
34822850
)
then
local
g
=
Duel
.
GetMatchingGroup
(
c25811989
.
spfilter
,
tp
,
loc
,
0
,
c
)
if
ft
>
0
then
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
2
,
2
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
c25811989
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
else
local
ct
=-
ft
+
1
return
Duel
.
IsExistingMatchingCard
(
c25811989
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
ct
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c25811989
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
end
else
return
ft
>
0
and
Duel
.
IsExistingMatchingCard
(
c25811989
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
end
end
end
function
c25811989
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c25811989
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
local
g
=
nil
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
local
g
=
Duel
.
GetMatchingGroup
(
c25811989
.
spfilter
,
tp
,
loc
,
0
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
c
:
IsHasEffect
(
34822850
)
then
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
g
=
Duel
.
SelectMatchingCard
(
tp
,
c25811989
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
2
,
c
)
sg
:
KeepAlive
()
else
e
:
SetLabelObject
(
sg
)
local
sg
=
Duel
.
GetMatchingGroup
(
c25811989
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
c
)
return
true
local
ct
=-
ft
+
1
else
return
false
end
g
=
sg
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
ct
,
ct
,
nil
,
LOCATION_MZONE
)
end
if
ct
<
2
then
function
c25811989
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
sg
:
Sub
(
g
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g2
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
g
:
Merge
(
g2
)
end
end
else
g
=
Duel
.
SelectMatchingCard
(
tp
,
c25811989
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
2
,
c
)
end
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c25811989
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c25811989
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
ep
~=
tp
and
Duel
.
GetAttacker
()
==
e
:
GetHandler
()
and
Duel
.
GetAttackTarget
()
~=
nil
return
ep
~=
tp
and
Duel
.
GetAttacker
()
==
e
:
GetHandler
()
and
Duel
.
GetAttackTarget
()
~=
nil
...
...
c25833572.lua
View file @
6a9c6e0a
...
@@ -8,22 +8,29 @@ function c25833572.initial_effect(c)
...
@@ -8,22 +8,29 @@ function c25833572.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c25833572
.
spcon
)
e1
:
SetCondition
(
c25833572
.
spcon
)
e1
:
SetTarget
(
c25833572
.
sptg
)
e1
:
SetOperation
(
c25833572
.
spop
)
e1
:
SetOperation
(
c25833572
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
end
end
c25833572
.
spchecks
=
aux
.
CreateChecks
(
Card
.
IsCode
,{
25955164
,
62340868
,
98434877
})
function
c25833572
.
spcon
(
e
,
c
)
function
c25833572
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
3
local
g
=
Duel
.
GetReleaseGroup
(
tp
)
and
Duel
.
CheckReleaseGroup
(
tp
,
Card
.
IsCode
,
1
,
nil
,
25955164
)
return
g
:
CheckSubGroupEach
(
c25833572
.
spchecks
,
aux
.
mzctcheckrel
,
tp
)
and
Duel
.
CheckReleaseGroup
(
tp
,
Card
.
IsCode
,
1
,
nil
,
62340868
)
end
and
Duel
.
CheckReleaseGroup
(
tp
,
Card
.
IsCode
,
1
,
nil
,
98434877
)
function
c25833572
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetReleaseGroup
(
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c25833572
.
spchecks
,
true
,
aux
.
mzctcheckrel
,
tp
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
end
function
c25833572
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c25833572
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g1
=
Duel
.
SelectReleaseGroup
(
tp
,
Card
.
IsCode
,
1
,
1
,
nil
,
25955164
)
local
g
=
e
:
GetLabelObject
()
local
g2
=
Duel
.
SelectReleaseGroup
(
tp
,
Card
.
IsCode
,
1
,
1
,
nil
,
62340868
)
Duel
.
Release
(
g
,
REASON_COST
)
local
g3
=
Duel
.
SelectReleaseGroup
(
tp
,
Card
.
IsCode
,
1
,
1
,
nil
,
98434877
)
g
:
DeleteGroup
()
g1
:
Merge
(
g2
)
g1
:
Merge
(
g3
)
Duel
.
Release
(
g1
,
REASON_COST
)
end
end
c31764353.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c31764353.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c31764353.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c31764353
.
spcon
)
e1
:
SetCondition
(
c31764353
.
spcon
)
e1
:
SetTarget
(
c31764353
.
sptg
)
e1
:
SetOperation
(
c31764353
.
spop
)
e1
:
SetOperation
(
c31764353
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -17,26 +18,32 @@ function c31764353.initial_effect(c)
...
@@ -17,26 +18,32 @@ function c31764353.initial_effect(c)
e2
:
SetCondition
(
c31764353
.
condition
)
e2
:
SetCondition
(
c31764353
.
condition
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
function
c31764353
.
spfilter1
(
c
,
tp
)
function
c31764353
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
37744402
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c31764353
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c31764353
.
spfilter2
(
c
)
function
c31764353
.
fselect
(
g
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_WIND
)
and
c
:
IsAbleToGraveAsCost
(
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsCode
,
37744402
,
Card
.
IsAttribute
,
ATTRIBUTE_WIND
)
end
end
function
c31764353
.
spcon
(
e
,
c
)
function
c31764353
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c31764353
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c31764353
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c31764353
.
fselect
,
2
,
2
,
tp
)
end
end
function
c31764353
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c31764353
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c31764353
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c31764353
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c31764353
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c31764353
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c31764353
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c31764353
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c31764353
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
...
...
c31887905.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c31887905.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c31887905.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c31887905
.
spcon
)
e1
:
SetCondition
(
c31887905
.
spcon
)
e1
:
SetTarget
(
c31887905
.
sptg
)
e1
:
SetOperation
(
c31887905
.
spop
)
e1
:
SetOperation
(
c31887905
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -17,26 +18,32 @@ function c31887905.initial_effect(c)
...
@@ -17,26 +18,32 @@ function c31887905.initial_effect(c)
e2
:
SetCondition
(
c31887905
.
condition
)
e2
:
SetCondition
(
c31887905
.
condition
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
function
c31887905
.
spfilter1
(
c
,
tp
)
function
c31887905
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
37970940
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c31887905
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c31887905
.
spfilter2
(
c
)
function
c31887905
.
fselect
(
g
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_EARTH
)
and
c
:
IsAbleToGraveAsCost
(
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsCode
,
37970940
,
Card
.
IsAttribute
,
ATTRIBUTE_EARTH
)
end
end
function
c31887905
.
spcon
(
e
,
c
)
function
c31887905
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c31887905
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c31887905
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c31887905
.
fselect
,
2
,
2
,
tp
)
end
end
function
c31887905
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c31887905
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c31887905
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c31887905
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c31887905
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c31887905
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c31887905
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c31887905
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c31887905
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
...
...
c32750510.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c32750510.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c32750510.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c32750510
.
spcon
)
e1
:
SetCondition
(
c32750510
.
spcon
)
e1
:
SetTarget
(
c32750510
.
sptg
)
e1
:
SetOperation
(
c32750510
.
spop
)
e1
:
SetOperation
(
c32750510
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--add counter
--add counter
...
@@ -34,35 +35,26 @@ end
...
@@ -34,35 +35,26 @@ end
function
c32750510
.
rfilter
(
c
,
tp
)
function
c32750510
.
rfilter
(
c
,
tp
)
return
c
:
IsAttribute
(
ATTRIBUTE_WATER
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
return
c
:
IsAttribute
(
ATTRIBUTE_WATER
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
end
end
function
c32750510
.
mzfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
end
function
c32750510
.
spcon
(
e
,
c
)
function
c32750510
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c32750510
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c32750510
.
rfilter
,
nil
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
rg
:
CheckSubGroup
(
aux
.
mzctcheckrel
,
2
,
2
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
2
and
rg
:
GetCount
()
>
1
and
(
ft
>
0
or
rg
:
IsExists
(
c32750510
.
mzfilter
,
ct
,
nil
,
tp
))
end
end
function
c32750510
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c32750510
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c32750510
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c32750510
.
rfilter
,
nil
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
nil
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheckrel
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
:
KeepAlive
()
g
=
rg
:
Select
(
tp
,
2
,
2
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
==
0
then
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
else
return
false
end
g
=
rg
:
FilterSelect
(
tp
,
c32750510
.
mzfilter
,
1
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
function
c32750510
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g2
=
rg
:
Select
(
tp
,
1
,
1
,
g
:
GetFirst
())
local
g
=
e
:
GetLabelObject
()
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
g
=
rg
:
FilterSelect
(
tp
,
c32750510
.
mzfilter
,
2
,
2
,
nil
,
tp
)
end
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c32750510
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
function
c32750510
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsCanAddCounter
(
0x1015
,
1
)
end
if
chkc
then
return
chkc
:
IsCanAddCounter
(
0x1015
,
1
)
end
...
...
c34079868.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c34079868.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c34079868.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c34079868
.
spcon
)
e1
:
SetCondition
(
c34079868
.
spcon
)
e1
:
SetTarget
(
c34079868
.
sptg
)
e1
:
SetOperation
(
c34079868
.
spop
)
e1
:
SetOperation
(
c34079868
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--Negate
--Negate
...
@@ -41,22 +42,29 @@ function c34079868.initial_effect(c)
...
@@ -41,22 +42,29 @@ function c34079868.initial_effect(c)
e3
:
SetOperation
(
c34079868
.
operation
)
e3
:
SetOperation
(
c34079868
.
operation
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c34079868
.
rfilter
(
c
,
tp
)
function
c34079868
.
fselect
(
g
,
tp
)
return
c
:
IsSetCard
(
0xc7
)
and
Duel
.
CheckReleaseGroup
(
tp
,
Card
.
IsSetCard
,
1
,
c
,
0xda
)
return
aux
.
mzctcheckrel
(
g
,
tp
)
and
aux
.
gfcheck
(
g
,
Card
.
IsSetCard
,
0xc7
,
0xda
)
end
end
function
c34079868
.
spcon
(
e
,
c
)
function
c34079868
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetReleaseGroup
(
tp
)
and
Duel
.
CheckReleaseGroup
(
tp
,
c34079868
.
rfilter
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c34079868
.
fselect
,
2
,
2
,
tp
)
end
end
function
c34079868
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c34079868
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
Duel
.
GetReleaseGroup
(
tp
)
local
g1
=
Duel
.
SelectReleaseGroup
(
tp
,
c34079868
.
rfilter
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g2
=
Duel
.
SelectReleaseGroup
(
tp
,
Card
.
IsSetCard
,
1
,
1
,
g1
:
GetFirst
(),
0xda
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c34079868
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
Release
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c34079868
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c34079868
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c34079868
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
...
...
c3775068.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c3775068.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c3775068.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c3775068
.
sprcon
)
e2
:
SetCondition
(
c3775068
.
sprcon
)
e2
:
SetTarget
(
c3775068
.
sprtg
)
e2
:
SetOperation
(
c3775068
.
sprop
)
e2
:
SetOperation
(
c3775068
.
sprop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--damage
--damage
...
@@ -42,36 +43,26 @@ end
...
@@ -42,36 +43,26 @@ end
function
c3775068
.
spcfilter
(
c
)
function
c3775068
.
spcfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xe3
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xe3
)
and
c
:
IsAbleToGraveAsCost
()
end
end
function
c3775068
.
mzfilter
(
c
)
return
c
:
GetSequence
()
<
5
end
function
c3775068
.
sprcon
(
e
,
c
)
function
c3775068
.
sprcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
mg
=
Duel
.
GetMatchingGroup
(
c3775068
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c3775068
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
mg
:
CheckSubGroup
(
aux
.
mzctcheck
,
3
,
3
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
3
and
mg
:
GetCount
()
>
2
and
(
ft
>
0
or
mg
:
IsExists
(
c3775068
.
mzfilter
,
ct
,
nil
))
end
end
function
c3775068
.
spr
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c3775068
.
spr
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
mg
=
Duel
.
GetMatchingGroup
(
c3775068
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c3775068
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
nil
local
sg
=
mg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
3
,
3
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
sg
:
KeepAlive
()
g
=
mg
:
Select
(
tp
,
3
,
3
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
>-
2
then
return
true
local
ct
=-
ft
+
1
else
return
false
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
end
g
=
mg
:
FilterSelect
(
tp
,
c3775068
.
mzfilter
,
ct
,
ct
,
nil
)
function
c3775068
.
sprop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
e
:
GetLabelObject
()
local
g2
=
mg
:
Select
(
tp
,
3
-
ct
,
3
-
ct
,
g
)
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
FilterSelect
(
tp
,
c3775068
.
mzfilter
,
3
,
3
,
nil
)
end
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
...
...
c38369349.lua
View file @
6a9c6e0a
...
@@ -9,6 +9,7 @@ function c38369349.initial_effect(c)
...
@@ -9,6 +9,7 @@ function c38369349.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c38369349
.
spcon
)
e2
:
SetCondition
(
c38369349
.
spcon
)
e2
:
SetTarget
(
c38369349
.
sptg
)
e2
:
SetOperation
(
c38369349
.
spop
)
e2
:
SetOperation
(
c38369349
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--destroy
--destroy
...
@@ -53,36 +54,27 @@ end
...
@@ -53,36 +54,27 @@ end
function
c38369349
.
cfilter
(
c
)
function
c38369349
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
15259703
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
15259703
)
end
end
function
c38369349
.
mzfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
end
function
c38369349
.
spcon
(
e
,
c
)
function
c38369349
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=-
ft
+
1
return
Duel
.
IsExistingMatchingCard
(
c38369349
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
nil
)
return
Duel
.
IsExistingMatchingCard
(
c38369349
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
nil
)
and
ft
>-
2
and
rg
:
GetCount
()
>
1
and
(
ft
>
0
or
rg
:
IsExists
(
c38369349
.
mzfilter
,
ct
,
nil
,
tp
)
)
and
rg
:
CheckSubGroup
(
aux
.
mzctcheckrel
,
2
,
2
,
tp
)
end
end
function
c38369349
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c38369349
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
nil
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheckrel
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
:
KeepAlive
()
g
=
rg
:
Select
(
tp
,
2
,
2
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
==
0
then
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
else
return
false
end
g
=
rg
:
FilterSelect
(
tp
,
c38369349
.
mzfilter
,
1
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
function
c38369349
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g2
=
rg
:
Select
(
tp
,
1
,
1
,
g
:
GetFirst
())
local
g
=
e
:
GetLabelObject
()
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
g
=
rg
:
FilterSelect
(
tp
,
c38369349
.
mzfilter
,
2
,
2
,
nil
,
tp
)
end
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c38369349
.
sfilter
(
c
)
function
c38369349
.
sfilter
(
c
)
return
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsPreviousPosition
(
POS_FACEUP
)
and
c
:
GetPreviousCodeOnField
()
==
15259703
and
c
:
IsPreviousLocation
(
LOCATION_ONFIELD
)
return
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsPreviousPosition
(
POS_FACEUP
)
and
c
:
GetPreviousCodeOnField
()
==
15259703
and
c
:
IsPreviousLocation
(
LOCATION_ONFIELD
)
...
...
c40542825.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c40542825.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c40542825.initial_effect(c)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c40542825
.
spcon
)
e1
:
SetCondition
(
c40542825
.
spcon
)
e1
:
SetTarget
(
c40542825
.
sptg
)
e1
:
SetOperation
(
c40542825
.
spop
)
e1
:
SetOperation
(
c40542825
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -27,26 +28,32 @@ function c40542825.initial_effect(c)
...
@@ -27,26 +28,32 @@ function c40542825.initial_effect(c)
e3
:
SetCondition
(
c40542825
.
condition
)
e3
:
SetCondition
(
c40542825
.
condition
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c40542825
.
spfilter1
(
c
,
tp
)
function
c40542825
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
73318863
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c40542825
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c40542825
.
spfilter2
(
c
)
function
c40542825
.
fselect
(
g
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_LIGHT
)
and
c
:
IsAbleToGraveAsCost
(
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsCode
,
73318863
,
Card
.
IsAttribute
,
ATTRIBUTE_LIGHT
)
end
end
function
c40542825
.
spcon
(
e
,
c
)
function
c40542825
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c40542825
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c40542825
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c40542825
.
fselect
,
2
,
2
,
tp
)
end
end
function
c40542825
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c40542825
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c40542825
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c40542825
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c40542825
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c40542825
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c40542825
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c40542825
.
thfilter
(
c
)
function
c40542825
.
thfilter
(
c
)
return
c
:
IsDefense
(
1500
)
and
c
:
IsRace
(
RACE_SPELLCASTER
)
and
not
c
:
IsCode
(
40542825
)
and
c
:
IsAbleToHand
()
return
c
:
IsDefense
(
1500
)
and
c
:
IsRace
(
RACE_SPELLCASTER
)
and
not
c
:
IsCode
(
40542825
)
and
c
:
IsAbleToHand
()
...
...
c4068622.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c4068622.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c4068622.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c4068622
.
spcon
)
e1
:
SetCondition
(
c4068622
.
spcon
)
e1
:
SetTarget
(
c4068622
.
sptg
)
e1
:
SetOperation
(
c4068622
.
spop
)
e1
:
SetOperation
(
c4068622
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--special summon
--special summon
...
@@ -28,30 +29,38 @@ function c4068622.initial_effect(c)
...
@@ -28,30 +29,38 @@ function c4068622.initial_effect(c)
e3
:
SetValue
(
aux
.
FALSE
)
e3
:
SetValue
(
aux
.
FALSE
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c4068622
.
spfilter1
(
c
,
ft
,
tp
)
function
c4068622
.
spfilter
(
c
)
if
c
:
GetSequence
()
<
5
then
ft
=
ft
+
1
end
return
c
:
IsFaceup
()
and
c
:
IsAbleToRemoveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x33
)
and
c
:
IsType
(
TYPE_TUNER
)
and
c
:
IsAbleToRemove
()
and
ft
>-
1
and
Duel
.
IsExistingMatchingCard
(
c4068622
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
ft
)
end
end
function
c4068622
.
spfilter2
(
c
,
ft
)
function
c4068622
.
spfilter1
(
c
)
return
c
:
IsFaceup
()
and
not
c
:
IsType
(
TYPE_TUNER
)
and
c
:
IsAbleToRemove
()
and
(
ft
>
0
or
c
:
GetSequence
()
<
5
)
return
c
:
IsSetCard
(
0x33
)
and
c
:
IsType
(
TYPE_TUNER
)
end
function
c4068622
.
spfilter2
(
c
)
return
not
c
:
IsType
(
TYPE_TUNER
)
end
function
c4068622
.
fselect
(
g
,
tp
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
c4068622
.
spfilter1
,
nil
,
c4068622
.
spfilter2
,
nil
)
end
end
function
c4068622
.
spcon
(
e
,
c
)
function
c4068622
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
Duel
.
GetMatchingGroup
(
c4068622
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
return
ft
>-
2
and
Duel
.
IsExistingMatchingCard
(
c4068622
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
ft
,
tp
)
return
g
:
CheckSubGroup
(
c4068622
.
fselect
,
2
,
2
,
tp
)
end
end
function
c4068622
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c4068622
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
Duel
.
GetMatchingGroup
(
c4068622
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c4068622
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
ft
,
tp
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c4068622
.
fselect
,
true
,
2
,
2
,
tp
)
local
tc
=
g1
:
GetFirst
()
if
sg
then
if
tc
:
GetSequence
()
<
5
then
ft
=
ft
+
1
end
sg
:
KeepAlive
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
e
:
SetLabelObject
(
sg
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c4068622
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
ft
)
return
true
g1
:
Merge
(
g2
)
else
return
false
end
Duel
.
Remove
(
g1
,
POS_FACEUP
,
REASON_COST
)
end
function
c4068622
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c4068622
.
filter
(
c
)
function
c4068622
.
filter
(
c
)
return
c
:
IsSetCard
(
0x33
)
and
c
:
IsAbleToRemove
()
return
c
:
IsSetCard
(
0x33
)
and
c
:
IsAbleToRemove
()
...
...
c410904.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c410904.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c410904.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c410904
.
spcon
)
e1
:
SetCondition
(
c410904
.
spcon
)
e1
:
SetTarget
(
c410904
.
sptg
)
e1
:
SetOperation
(
c410904
.
spop
)
e1
:
SetOperation
(
c410904
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -34,26 +35,35 @@ function c410904.initial_effect(c)
...
@@ -34,26 +35,35 @@ function c410904.initial_effect(c)
e3
:
SetOperation
(
c410904
.
thop
)
e3
:
SetOperation
(
c410904
.
thop
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c410904
.
spfilter1
(
c
,
tp
)
function
c410904
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c410904
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c410904
.
spfilter2
(
c
)
function
c410904
.
spfilter2
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_WIND
)
and
c
:
IsAbleToGraveAsCost
()
and
c
:
IsLevelBelow
(
4
)
return
c
:
IsAttribute
(
ATTRIBUTE_WIND
)
and
c
:
IsLevelBelow
(
4
)
end
function
c410904
.
fselect
(
g
,
tp
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsRace
,
RACE_SPELLCASTER
,
c410904
.
spfilter2
,
nil
)
end
end
function
c410904
.
spcon
(
e
,
c
)
function
c410904
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c410904
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c410904
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c410904
.
fselect
,
2
,
2
,
tp
)
end
end
function
c410904
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c410904
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c410904
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c410904
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c410904
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c410904
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c410904
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c410904
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c410904
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
...
...
c42901635.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c42901635.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c42901635.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c42901635
.
spcon
)
e1
:
SetCondition
(
c42901635
.
spcon
)
e1
:
SetTarget
(
c42901635
.
sptg
)
e1
:
SetOperation
(
c42901635
.
spop
)
e1
:
SetOperation
(
c42901635
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--destroy
--destroy
...
@@ -42,11 +43,20 @@ function c42901635.spcon(e,c)
...
@@ -42,11 +43,20 @@ function c42901635.spcon(e,c)
local
g
=
Duel
.
GetMatchingGroup
(
c42901635
.
spcostfilter
,
tp
,
LOCATION_HAND
+
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c42901635
.
spcostfilter
,
tp
,
LOCATION_HAND
+
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
nil
)
return
g
:
CheckSubGroupEach
(
c42901635
.
spchecks
,
aux
.
mzctcheck
,
tp
)
return
g
:
CheckSubGroupEach
(
c42901635
.
spchecks
,
aux
.
mzctcheck
,
tp
)
end
end
function
c42901635
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c42901635
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c42901635
.
spcostfilter
,
tp
,
LOCATION_HAND
+
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c42901635
.
spcostfilter
,
tp
,
LOCATION_HAND
+
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c42901635
.
spchecks
,
false
,
aux
.
mzctcheck
,
tp
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c42901635
.
spchecks
,
true
,
aux
.
mzctcheck
,
tp
)
Duel
.
Remove
(
sg
,
POS_FACEUP
,
REASON_COST
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c42901635
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c42901635
.
costfilter
(
c
)
function
c42901635
.
costfilter
(
c
)
return
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsSetCard
(
0x2066
)
and
c
:
IsLevelBelow
(
4
)
and
c
:
IsAbleToRemoveAsCost
()
return
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsSetCard
(
0x2066
)
and
c
:
IsLevelBelow
(
4
)
and
c
:
IsAbleToRemoveAsCost
()
...
...
c4335427.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c4335427.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c4335427.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c4335427
.
spcon
)
e1
:
SetCondition
(
c4335427
.
spcon
)
e1
:
SetTarget
(
c4335427
.
sptg
)
e1
:
SetOperation
(
c4335427
.
spop
)
e1
:
SetOperation
(
c4335427
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
...
@@ -41,11 +42,20 @@ function c4335427.spcon(e,c)
...
@@ -41,11 +42,20 @@ function c4335427.spcon(e,c)
local
g
=
Duel
.
GetMatchingGroup
(
c4335427
.
spcostfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c4335427
.
spcostfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
return
g
:
CheckSubGroupEach
(
c4335427
.
spchecks
,
aux
.
mzctcheck
,
tp
)
return
g
:
CheckSubGroupEach
(
c4335427
.
spchecks
,
aux
.
mzctcheck
,
tp
)
end
end
function
c4335427
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c4335427
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c4335427
.
spcostfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c4335427
.
spcostfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c4335427
.
spchecks
,
false
,
aux
.
mzctcheck
,
tp
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c4335427
.
spchecks
,
true
,
aux
.
mzctcheck
,
tp
)
Duel
.
Remove
(
sg
,
POS_FACEUP
,
REASON_COST
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c4335427
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c4335427
.
rmtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c4335427
.
rmtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
if
chk
==
0
then
return
true
end
...
...
c4376658.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c4376658.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c4376658.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c4376658
.
spcon
)
e1
:
SetCondition
(
c4376658
.
spcon
)
e1
:
SetTarget
(
c4376658
.
sptg
)
e1
:
SetOperation
(
c4376658
.
spop
)
e1
:
SetOperation
(
c4376658
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -17,26 +18,32 @@ function c4376658.initial_effect(c)
...
@@ -17,26 +18,32 @@ function c4376658.initial_effect(c)
e2
:
SetCondition
(
c4376658
.
condition
)
e2
:
SetCondition
(
c4376658
.
condition
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
function
c4376658
.
spfilter1
(
c
,
tp
)
function
c4376658
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
759393
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c4376658
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c4376658
.
spfilter2
(
c
)
function
c4376658
.
fselect
(
g
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_FIRE
)
and
c
:
IsAbleToGraveAsCost
(
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsCode
,
759393
,
Card
.
IsAttribute
,
ATTRIBUTE_FIRE
)
end
end
function
c4376658
.
spcon
(
e
,
c
)
function
c4376658
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c4376658
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c4376658
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c4376658
.
fselect
,
2
,
2
,
tp
)
end
end
function
c4376658
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c4376658
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c4376658
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c4376658
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c4376658
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c4376658
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c4376658
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c4376658
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c4376658
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
...
...
c45148985.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c45148985.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c45148985.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c45148985
.
sprcon
)
e2
:
SetCondition
(
c45148985
.
sprcon
)
e2
:
SetTarget
(
c45148985
.
sprtg
)
e2
:
SetOperation
(
c45148985
.
sprop
)
e2
:
SetOperation
(
c45148985
.
sprop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--indes
--indes
...
@@ -49,24 +50,31 @@ end
...
@@ -49,24 +50,31 @@ end
function
c45148985
.
sprfilter
(
c
)
function
c45148985
.
sprfilter
(
c
)
return
c
:
IsSetCard
(
0x105
)
and
c
:
IsAbleToRemoveAsCost
()
and
(
c
:
IsLocation
(
LOCATION_GRAVE
)
or
c
:
IsFaceup
())
return
c
:
IsSetCard
(
0x105
)
and
c
:
IsAbleToRemoveAsCost
()
and
(
c
:
IsLocation
(
LOCATION_GRAVE
)
or
c
:
IsFaceup
())
end
end
function
c45148985
.
mzfilter
(
c
)
return
c
:
GetSequence
()
<
5
and
c
:
IsLocation
(
LOCATION_MZONE
)
end
function
c45148985
.
sprcon
(
e
,
c
)
function
c45148985
.
sprcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
g
=
Duel
.
GetMatchingGroup
(
c45148985
.
sprfilter
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c45148985
.
sprfilter
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
aux
.
GCheckAdditional
=
aux
.
dncheck
local
ct
=-
ft
+
1
local
res
=
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
5
,
5
,
tp
)
return
ft
>-
5
and
g
:
GetClassCount
(
Card
.
GetCode
)
>=
5
and
(
ft
>
0
or
g
:
IsExists
(
c45148985
.
mzfilter
,
ct
,
nil
))
aux
.
GCheckAdditional
=
nil
return
res
end
end
function
c45148985
.
spr
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c45148985
.
spr
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c45148985
.
sprfilter
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c45148985
.
sprfilter
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
0
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
aux
.
GCheckAdditional
=
aux
.
dncheck
aux
.
GCheckAdditional
=
aux
.
dncheck
local
rg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
fals
e
,
5
,
5
,
tp
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
tru
e
,
5
,
5
,
tp
)
aux
.
GCheckAdditional
=
nil
aux
.
GCheckAdditional
=
nil
Duel
.
Remove
(
rg
,
POS_FACEUP
,
REASON_COST
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c45148985
.
sprop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c45148985
.
rmlimit
(
e
,
c
,
tp
,
r
)
function
c45148985
.
rmlimit
(
e
,
c
,
tp
,
r
)
return
c
==
e
:
GetHandler
()
and
r
==
REASON_EFFECT
return
c
==
e
:
GetHandler
()
and
r
==
REASON_EFFECT
...
...
c48948935.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c48948935.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c48948935.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c48948935
.
spcon
)
e1
:
SetCondition
(
c48948935
.
spcon
)
e1
:
SetTarget
(
c48948935
.
sptg
)
e1
:
SetOperation
(
c48948935
.
spop
)
e1
:
SetOperation
(
c48948935
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--equip
--equip
...
@@ -22,37 +23,29 @@ function c48948935.initial_effect(c)
...
@@ -22,37 +23,29 @@ function c48948935.initial_effect(c)
e2
:
SetOperation
(
c48948935
.
eqop
)
e2
:
SetOperation
(
c48948935
.
eqop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
function
c48948935
.
spfilter
(
c
,
g
,
ft
,
tp
)
function
c48948935
.
fselect
(
g
,
tp
)
if
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
then
ft
=
ft
+
1
end
return
g
:
IsExists
(
Card
.
IsCode
,
1
,
nil
,
13676474
,
86569121
)
and
aux
.
mzctcheckrel
(
g
,
tp
)
return
c
:
IsCode
(
13676474
,
86569121
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
and
(
ft
>
0
or
g
:
IsExists
(
c48948935
.
mzfilter
,
1
,
c
,
tp
))
end
function
c48948935
.
mzfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
end
end
function
c48948935
.
spcon
(
e
,
c
)
function
c48948935
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
rg
:
CheckSubGroup
(
c48948935
.
fselect
,
2
,
2
,
tp
)
return
ft
>-
2
and
rg
:
GetCount
()
>
1
and
rg
:
IsExists
(
c48948935
.
spfilter
,
1
,
nil
,
rg
,
ft
,
tp
)
end
end
function
c48948935
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c48948935
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g1
=
rg
:
FilterSelect
(
tp
,
c48948935
.
spfilter
,
1
,
1
,
nil
,
rg
,
ft
,
tp
)
local
tc
=
g1
:
GetFirst
()
if
tc
:
IsControler
(
tp
)
and
tc
:
GetSequence
()
<
5
then
ft
=
ft
+
1
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
if
ft
>
0
then
local
sg
=
rg
:
SelectSubGroup
(
tp
,
c48948935
.
fselect
,
true
,
2
,
2
,
tp
)
local
g2
=
rg
:
Select
(
tp
,
1
,
1
,
tc
)
if
sg
then
g1
:
Merge
(
g2
)
sg
:
KeepAlive
()
else
e
:
SetLabelObject
(
sg
)
local
g2
=
rg
:
FilterSelect
(
tp
,
c48948935
.
mzfilter
,
1
,
1
,
tc
,
tp
)
return
true
g1
:
Merge
(
g2
)
else
return
false
end
end
end
Duel
.
Release
(
g1
,
REASON_COST
)
function
c48948935
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c48948935
.
eqcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c48948935
.
eqcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
return
e
:
GetHandler
():
IsPreviousLocation
(
LOCATION_ONFIELD
)
...
...
c4998619.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c4998619.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c4998619.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c4998619
.
spcon
)
e2
:
SetCondition
(
c4998619
.
spcon
)
e2
:
SetTarget
(
c4998619
.
sptg
)
e2
:
SetOperation
(
c4998619
.
spop
)
e2
:
SetOperation
(
c4998619
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--extra att
--extra att
...
@@ -36,36 +37,26 @@ end
...
@@ -36,36 +37,26 @@ end
function
c4998619
.
filter
(
c
)
function
c4998619
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xe3
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xe3
)
and
c
:
IsAbleToGraveAsCost
()
end
end
function
c4998619
.
mzfilter
(
c
)
return
c
:
GetSequence
()
<
5
end
function
c4998619
.
spcon
(
e
,
c
)
function
c4998619
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
mg
=
Duel
.
GetMatchingGroup
(
c4998619
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c4998619
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
mg
:
CheckSubGroup
(
aux
.
mzctcheck
,
3
,
3
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
3
and
mg
:
GetCount
()
>
2
and
(
ft
>
0
or
mg
:
IsExists
(
c4998619
.
mzfilter
,
ct
,
nil
))
end
end
function
c4998619
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c4998619
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
mg
=
Duel
.
GetMatchingGroup
(
c4998619
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c4998619
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
ct
=-
ft
+
1
local
sg
=
mg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
3
,
3
,
tp
)
local
g
=
nil
if
sg
then
if
ft
>
0
then
sg
:
KeepAlive
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
e
:
SetLabelObject
(
sg
)
g
=
mg
:
Select
(
tp
,
3
,
3
,
nil
)
return
true
elseif
ft
>-
2
then
else
return
false
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
end
g
=
mg
:
FilterSelect
(
tp
,
c4998619
.
mzfilter
,
ct
,
ct
,
nil
)
function
c4998619
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
e
:
GetLabelObject
()
local
g2
=
mg
:
Select
(
tp
,
3
-
ct
,
3
-
ct
,
g
)
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
FilterSelect
(
tp
,
c4998619
.
mzfilter
,
3
,
3
,
nil
)
end
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
...
...
c5126490.lua
View file @
6a9c6e0a
...
@@ -15,6 +15,7 @@ function c5126490.initial_effect(c)
...
@@ -15,6 +15,7 @@ function c5126490.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c5126490
.
spcon
)
e2
:
SetCondition
(
c5126490
.
spcon
)
e2
:
SetTarget
(
c5126490
.
sptg
)
e2
:
SetOperation
(
c5126490
.
spop
)
e2
:
SetOperation
(
c5126490
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--damage&recover
--damage&recover
...
@@ -36,26 +37,32 @@ function c5126490.initial_effect(c)
...
@@ -36,26 +37,32 @@ function c5126490.initial_effect(c)
e4
:
SetValue
(
1
)
e4
:
SetValue
(
1
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e4
)
end
end
function
c5126490
.
spfilter1
(
c
,
tp
)
function
c5126490
.
spfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
89943723
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c5126490
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c5126490
.
spfilter2
(
c
)
function
c5126490
.
fselect
(
g
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
78371393
)
and
c
:
IsAbleToGraveAsCost
(
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gfcheck
(
g
,
Card
.
IsCode
,
89943723
,
78371393
)
end
end
function
c5126490
.
spcon
(
e
,
c
)
function
c5126490
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c5126490
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c5126490
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c5126490
.
fselect
,
2
,
2
,
tp
)
end
end
function
c5126490
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c5126490
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c5126490
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c5126490
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c5126490
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c5126490
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c5126490
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c5126490
.
damtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c5126490
.
damtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
...
...
c51316684.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c51316684.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c51316684.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetCondition
(
c51316684
.
spcon
)
e2
:
SetCondition
(
c51316684
.
spcon
)
e2
:
SetTarget
(
c51316684
.
sptg
)
e2
:
SetOperation
(
c51316684
.
spop
)
e2
:
SetOperation
(
c51316684
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--remove
--remove
...
@@ -57,42 +58,27 @@ function c51316684.spcon(e,c)
...
@@ -57,42 +58,27 @@ function c51316684.spcon(e,c)
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
sum
=
Duel
.
GetMatchingGroup
(
c51316684
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c51316684
.
lv_or_rk
)
local
sum
=
Duel
.
GetMatchingGroup
(
c51316684
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c51316684
.
lv_or_rk
)
if
sum
>
8
then
return
false
end
if
sum
>
8
then
return
false
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
if
ft
<-
1
then
return
false
end
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
if
c
:
IsHasEffect
(
34822850
)
then
local
g
=
Duel
.
GetMatchingGroup
(
c51316684
.
spfilter
,
tp
,
loc
,
0
,
c
)
if
ft
>
0
then
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
2
,
2
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
c51316684
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
else
local
ct
=-
ft
+
1
return
Duel
.
IsExistingMatchingCard
(
c51316684
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
ct
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c51316684
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
end
else
return
ft
>
0
and
Duel
.
IsExistingMatchingCard
(
c51316684
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
end
end
end
function
c51316684
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c51316684
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
local
g
=
nil
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
local
g
=
Duel
.
GetMatchingGroup
(
c51316684
.
spfilter
,
tp
,
loc
,
0
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
c
:
IsHasEffect
(
34822850
)
then
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
g
=
Duel
.
SelectMatchingCard
(
tp
,
c51316684
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
2
,
c
)
sg
:
KeepAlive
()
else
e
:
SetLabelObject
(
sg
)
local
sg
=
Duel
.
GetMatchingGroup
(
c51316684
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
c
)
return
true
local
ct
=-
ft
+
1
else
return
false
end
g
=
sg
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
ct
,
ct
,
nil
,
LOCATION_MZONE
)
end
if
ct
<
2
then
function
c51316684
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
sg
:
Sub
(
g
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g2
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
g
:
Merge
(
g2
)
end
end
else
g
=
Duel
.
SelectMatchingCard
(
tp
,
c51316684
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
2
,
c
)
end
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c51316684
.
rmcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c51316684
.
rmcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetTurnPlayer
()
==
tp
and
e
:
GetHandler
():
GetBattledGroup
():
GetCount
()
>
0
return
Duel
.
GetTurnPlayer
()
==
tp
and
e
:
GetHandler
():
GetBattledGroup
():
GetCount
()
>
0
...
...
c52085072.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c52085072.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c52085072.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetCondition
(
c52085072
.
spcon
)
e2
:
SetCondition
(
c52085072
.
spcon
)
e2
:
SetTarget
(
c52085072
.
sptg
)
e2
:
SetOperation
(
c52085072
.
spop
)
e2
:
SetOperation
(
c52085072
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--cannot attack
--cannot attack
...
@@ -39,36 +40,26 @@ end
...
@@ -39,36 +40,26 @@ end
function
c52085072
.
spcfilter
(
c
)
function
c52085072
.
spcfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsLevel
(
1
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsLevel
(
1
)
and
c
:
IsAbleToGraveAsCost
()
end
end
function
c52085072
.
mzfilter
(
c
,
tp
)
return
c
:
GetSequence
()
<
5
end
function
c52085072
.
spcon
(
e
,
c
)
function
c52085072
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
sg
=
Duel
.
GetMatchingGroup
(
c52085072
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
sg
=
Duel
.
GetMatchingGroup
(
c52085072
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
sg
:
CheckSubGroup
(
aux
.
mzctcheck
,
4
,
4
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
4
and
sg
:
GetCount
()
>
3
and
(
ft
>
0
or
sg
:
IsExists
(
c52085072
.
mzfilter
,
ct
,
nil
,
tp
))
end
end
function
c52085072
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c52085072
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
sg
=
Duel
.
GetMatchingGroup
(
c52085072
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
sg
=
Duel
.
GetMatchingGroup
(
c52085072
.
spcfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
nil
local
g
=
sg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
4
,
4
,
tp
)
if
ft
>
0
then
if
g
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
:
KeepAlive
()
g
=
sg
:
Select
(
tp
,
4
,
4
,
nil
)
e
:
SetLabelObject
(
g
)
elseif
ft
>-
3
then
return
true
local
ct
=-
ft
+
1
else
return
false
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
end
g
=
sg
:
FilterSelect
(
tp
,
c52085072
.
mzfilter
,
ct
,
ct
,
nil
,
tp
)
function
c52085072
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
e
:
GetLabelObject
()
local
g2
=
sg
:
Select
(
tp
,
4
-
ct
,
4
-
ct
,
g
)
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
sg
:
FilterSelect
(
tp
,
c52085072
.
mzfilter
,
4
,
4
,
nil
,
tp
)
end
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c52085072
.
antarget
(
e
,
c
)
function
c52085072
.
antarget
(
e
,
c
)
return
c
~=
e
:
GetHandler
()
return
c
~=
e
:
GetHandler
()
...
...
c53183600.lua
View file @
6a9c6e0a
...
@@ -9,6 +9,7 @@ function c53183600.initial_effect(c)
...
@@ -9,6 +9,7 @@ function c53183600.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c53183600
.
spcon
)
e2
:
SetCondition
(
c53183600
.
spcon
)
e2
:
SetTarget
(
c53183600
.
sptg
)
e2
:
SetOperation
(
c53183600
.
spop
)
e2
:
SetOperation
(
c53183600
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--destroy
--destroy
...
@@ -53,36 +54,27 @@ end
...
@@ -53,36 +54,27 @@ end
function
c53183600
.
cfilter
(
c
)
function
c53183600
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
15259703
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
15259703
)
end
end
function
c53183600
.
mzfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
end
function
c53183600
.
spcon
(
e
,
c
)
function
c53183600
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=-
ft
+
1
return
Duel
.
IsExistingMatchingCard
(
c53183600
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
nil
)
return
Duel
.
IsExistingMatchingCard
(
c53183600
.
cfilter
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
nil
)
and
ft
>-
2
and
rg
:
GetCount
()
>
1
and
(
ft
>
0
or
rg
:
IsExists
(
c53183600
.
mzfilter
,
ct
,
nil
,
tp
)
)
and
rg
:
CheckSubGroup
(
aux
.
mzctcheckrel
,
2
,
2
,
tp
)
end
end
function
c53183600
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c53183600
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
nil
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheckrel
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
:
KeepAlive
()
g
=
rg
:
Select
(
tp
,
2
,
2
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
==
0
then
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
else
return
false
end
g
=
rg
:
FilterSelect
(
tp
,
c53183600
.
mzfilter
,
1
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
function
c53183600
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g2
=
rg
:
Select
(
tp
,
1
,
1
,
g
:
GetFirst
())
local
g
=
e
:
GetLabelObject
()
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
g
=
rg
:
FilterSelect
(
tp
,
c53183600
.
mzfilter
,
2
,
2
,
nil
,
tp
)
end
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c53183600
.
sfilter
(
c
)
function
c53183600
.
sfilter
(
c
)
return
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsPreviousPosition
(
POS_FACEUP
)
and
c
:
GetPreviousCodeOnField
()
==
15259703
and
c
:
IsPreviousLocation
(
LOCATION_ONFIELD
)
return
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsPreviousPosition
(
POS_FACEUP
)
and
c
:
GetPreviousCodeOnField
()
==
15259703
and
c
:
IsPreviousLocation
(
LOCATION_ONFIELD
)
...
...
c58330108.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c58330108.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c58330108.initial_effect(c)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c58330108
.
spcon
)
e1
:
SetCondition
(
c58330108
.
spcon
)
e1
:
SetTarget
(
c58330108
.
sptg
)
e1
:
SetOperation
(
c58330108
.
spop
)
e1
:
SetOperation
(
c58330108
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--atk gain
--atk gain
...
@@ -35,29 +36,23 @@ end
...
@@ -35,29 +36,23 @@ end
function
c58330108
.
spcon
(
e
,
c
)
function
c58330108
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
Duel
.
GetMatchingGroup
(
c58330108
.
cfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
,
0
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c58330108
.
cfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
,
0
,
c
)
return
g
:
GetCount
()
>=
2
and
ft
>-
2
and
g
:
FilterCount
(
Card
.
IsLocation
,
nil
,
LOCATION_MZONE
)
>-
ft
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
2
,
2
,
tp
)
end
end
function
c58330108
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c58330108
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=-
ft
+
1
local
g
=
Duel
.
GetMatchingGroup
(
c58330108
.
cfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
,
0
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c58330108
.
cfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
,
0
,
c
)
local
sg
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
if
ft
<=
0
then
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
2
,
2
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
if
sg
then
sg
=
g
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
ct
,
ct
,
nil
,
LOCATION_MZONE
)
sg
:
KeepAlive
()
if
ct
<
2
then
e
:
SetLabelObject
(
sg
)
g
:
Sub
(
sg
)
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
else
return
false
end
local
sg1
=
g
:
Select
(
tp
,
2
-
ct
,
2
-
ct
,
nil
)
end
sg
:
Merge
(
sg1
)
function
c58330108
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
end
local
g
=
e
:
GetLabelObject
()
else
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
:
DeleteGroup
()
sg
=
g
:
Select
(
tp
,
2
,
2
,
nil
)
end
Duel
.
SendtoGrave
(
sg
,
REASON_COST
)
end
end
function
c58330108
.
value
(
e
,
c
)
function
c58330108
.
value
(
e
,
c
)
return
Duel
.
GetFieldGroupCount
(
c
:
GetControler
(),
LOCATION_REMOVED
,
LOCATION_REMOVED
)
*
300
return
Duel
.
GetFieldGroupCount
(
c
:
GetControler
(),
LOCATION_REMOVED
,
LOCATION_REMOVED
)
*
300
...
...
c5861892.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c5861892.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c5861892.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c5861892
.
spcon
)
e1
:
SetCondition
(
c5861892
.
spcon
)
e1
:
SetTarget
(
c5861892
.
sptg
)
e1
:
SetOperation
(
c5861892
.
spop
)
e1
:
SetOperation
(
c5861892
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--cannot special summon
--cannot special summon
...
@@ -30,36 +31,26 @@ c5861892.toss_coin=true
...
@@ -30,36 +31,26 @@ c5861892.toss_coin=true
function
c5861892
.
spfilter
(
c
)
function
c5861892
.
spfilter
(
c
)
return
c
:
IsAbleToGraveAsCost
()
return
c
:
IsAbleToGraveAsCost
()
end
end
function
c5861892
.
mzfilter
(
c
)
return
c
:
GetSequence
()
<
5
end
function
c5861892
.
spcon
(
e
,
c
)
function
c5861892
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
mg
=
Duel
.
GetMatchingGroup
(
c5861892
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c5861892
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
mg
:
CheckSubGroup
(
aux
.
mzctcheck
,
3
,
3
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
3
and
mg
:
GetCount
()
>
2
and
(
ft
>
0
or
mg
:
IsExists
(
c5861892
.
mzfilter
,
ct
,
nil
))
end
end
function
c5861892
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c5861892
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
mg
=
Duel
.
GetMatchingGroup
(
c5861892
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c5861892
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
ct
=-
ft
+
1
local
sg
=
mg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
3
,
3
,
tp
)
local
g
=
nil
if
sg
then
if
ft
>
0
then
sg
:
KeepAlive
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
e
:
SetLabelObject
(
sg
)
g
=
mg
:
Select
(
tp
,
3
,
3
,
nil
)
return
true
elseif
ft
>-
2
then
else
return
false
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
end
g
=
mg
:
FilterSelect
(
tp
,
c5861892
.
mzfilter
,
ct
,
ct
,
nil
)
function
c5861892
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
e
:
GetLabelObject
()
local
g2
=
mg
:
Select
(
tp
,
3
-
ct
,
3
-
ct
,
g
)
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
FilterSelect
(
tp
,
c5861892
.
mzfilter
,
3
,
3
,
nil
)
end
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c5861892
.
cointg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c5861892
.
cointg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
if
chk
==
0
then
return
true
end
...
...
c63845230.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c63845230.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c63845230.initial_effect(c)
e2
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e2
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c63845230
.
spcon
)
e2
:
SetCondition
(
c63845230
.
spcon
)
e2
:
SetTarget
(
c63845230
.
sptg
)
e2
:
SetOperation
(
c63845230
.
spop
)
e2
:
SetOperation
(
c63845230
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--atk/def
--atk/def
...
@@ -65,30 +66,23 @@ end
...
@@ -65,30 +66,23 @@ end
function
c63845230
.
spcon
(
e
,
c
)
function
c63845230
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=-
ft
+
1
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToRemoveAsCost
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
+
LOCATION_EXTRA
,
0
,
c
,
POS_FACEDOWN
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToRemoveAsCost
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
+
LOCATION_EXTRA
,
0
,
c
,
POS_FACEDOWN
)
return
g
:
GetCount
()
>=
5
and
(
ft
>
0
or
g
:
IsExists
(
Card
.
IsLocation
,
ct
,
nil
,
LOCATION_MZONE
)
)
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
5
,
#
g
,
tp
)
end
end
function
c63845230
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c63845230
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=-
ft
+
1
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToRemoveAsCost
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
+
LOCATION_EXTRA
,
0
,
c
,
POS_FACEDOWN
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToRemoveAsCost
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
+
LOCATION_EXTRA
,
0
,
c
,
POS_FACEDOWN
)
local
rg
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
ft
<=
0
then
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
5
,
#
g
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
sg
then
rg
=
g
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
ct
,
ct
,
nil
,
LOCATION_MZONE
)
sg
:
KeepAlive
()
if
ct
<
5
then
e
:
SetLabelObject
(
sg
)
g
:
Sub
(
rg
)
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
else
return
false
end
local
g1
=
g
:
Select
(
tp
,
5
-
ct
,
99
-
ct
,
nil
)
end
rg
:
Merge
(
g1
)
function
c63845230
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
end
local
g
=
e
:
GetLabelObject
()
else
Duel
.
Remove
(
g
,
POS_FACEDOWN
,
REASON_COST
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
g
:
DeleteGroup
()
rg
=
g
:
Select
(
tp
,
5
,
99
,
nil
)
end
Duel
.
Remove
(
rg
,
POS_FACEDOWN
,
REASON_COST
)
end
end
function
c63845230
.
val
(
e
,
c
)
function
c63845230
.
val
(
e
,
c
)
return
Duel
.
GetMatchingGroupCount
(
Card
.
IsFacedown
,
0
,
LOCATION_REMOVED
,
LOCATION_REMOVED
,
nil
)
*
100
return
Duel
.
GetMatchingGroupCount
(
Card
.
IsFacedown
,
0
,
LOCATION_REMOVED
,
LOCATION_REMOVED
,
nil
)
*
100
...
...
c65268179.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c65268179.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c65268179.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c65268179
.
spcon
)
e1
:
SetCondition
(
c65268179
.
spcon
)
e1
:
SetTarget
(
c65268179
.
sptg
)
e1
:
SetOperation
(
c65268179
.
spop
)
e1
:
SetOperation
(
c65268179
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -34,26 +35,35 @@ function c65268179.initial_effect(c)
...
@@ -34,26 +35,35 @@ function c65268179.initial_effect(c)
e3
:
SetOperation
(
c65268179
.
thop
)
e3
:
SetOperation
(
c65268179
.
thop
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c65268179
.
spfilter1
(
c
,
tp
)
function
c65268179
.
spfilter1
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c65268179
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c65268179
.
spfilter2
(
c
)
function
c65268179
.
spfilter2
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_EARTH
)
and
c
:
IsAbleToGraveAsCost
()
and
c
:
IsLevelBelow
(
4
)
return
c
:
IsAttribute
(
ATTRIBUTE_EARTH
)
and
c
:
IsLevelBelow
(
4
)
end
function
c65268179
.
fselect
(
g
,
tp
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsRace
,
RACE_SPELLCASTER
,
c65268179
.
spfilter2
,
nil
)
end
end
function
c65268179
.
spcon
(
e
,
c
)
function
c65268179
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c65268179
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c65268179
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c65268179
.
fselect
,
2
,
2
,
tp
)
end
end
function
c65268179
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c65268179
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c65268179
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c65268179
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c65268179
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c65268179
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c65268179
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c65268179
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c65268179
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
...
...
c68881649.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c68881649.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c68881649.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c68881649
.
spcon
)
e1
:
SetCondition
(
c68881649
.
spcon
)
e1
:
SetTarget
(
c68881649
.
sptg
)
e1
:
SetOperation
(
c68881649
.
spop
)
e1
:
SetOperation
(
c68881649
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -17,26 +18,32 @@ function c68881649.initial_effect(c)
...
@@ -17,26 +18,32 @@ function c68881649.initial_effect(c)
e2
:
SetCondition
(
c68881649
.
condition
)
e2
:
SetCondition
(
c68881649
.
condition
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
function
c68881649
.
spfilter1
(
c
,
tp
)
function
c68881649
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
74364659
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c68881649
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c68881649
.
spfilter2
(
c
)
function
c68881649
.
fselect
(
g
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_WATER
)
and
c
:
IsAbleToGraveAsCost
(
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsCode
,
74364659
,
Card
.
IsAttribute
,
ATTRIBUTE_WATER
)
end
end
function
c68881649
.
spcon
(
e
,
c
)
function
c68881649
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c68881649
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c68881649
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c68881649
.
fselect
,
2
,
2
,
tp
)
end
end
function
c68881649
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c68881649
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c68881649
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c68881649
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c68881649
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c68881649
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c68881649
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c68881649
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c68881649
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
...
...
c69831560.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c69831560.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c69831560.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c69831560
.
spcon
)
e1
:
SetCondition
(
c69831560
.
spcon
)
e1
:
SetTarget
(
c69831560
.
sptg
)
e1
:
SetOperation
(
c69831560
.
spop
)
e1
:
SetOperation
(
c69831560
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--cannot special summon
--cannot special summon
...
@@ -30,36 +31,26 @@ c69831560.toss_coin=true
...
@@ -30,36 +31,26 @@ c69831560.toss_coin=true
function
c69831560
.
spfilter
(
c
)
function
c69831560
.
spfilter
(
c
)
return
c
:
IsAbleToGraveAsCost
()
return
c
:
IsAbleToGraveAsCost
()
end
end
function
c69831560
.
mzfilter
(
c
)
return
c
:
GetSequence
()
<
5
end
function
c69831560
.
spcon
(
e
,
c
)
function
c69831560
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
mg
=
Duel
.
GetMatchingGroup
(
c69831560
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c69831560
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
mg
:
CheckSubGroup
(
aux
.
mzctcheck
,
3
,
3
,
tp
)
local
ct
=-
ft
+
1
end
return
ft
>-
3
and
mg
:
GetCount
()
>
2
and
(
ft
>
0
or
mg
:
IsExists
(
c69831560
.
mzfilter
,
ct
,
nil
))
function
c69831560
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
mg
=
Duel
.
GetMatchingGroup
(
c69831560
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
sg
=
mg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
3
,
3
,
tp
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
end
function
c69831560
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c69831560
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
mg
=
Duel
.
GetMatchingGroup
(
c69831560
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g
=
e
:
GetLabelObject
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=-
ft
+
1
local
g
=
nil
if
ft
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
Select
(
tp
,
3
,
3
,
nil
)
elseif
ft
>-
2
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
FilterSelect
(
tp
,
c69831560
.
mzfilter
,
ct
,
ct
,
nil
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
mg
:
Select
(
tp
,
3
-
ct
,
3
-
ct
,
g
)
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
FilterSelect
(
tp
,
c69831560
.
mzfilter
,
3
,
3
,
nil
)
end
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c69831560
.
cointg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c69831560
.
cointg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
if
chk
==
0
then
return
true
end
...
...
c69890967.lua
View file @
6a9c6e0a
...
@@ -15,6 +15,7 @@ function c69890967.initial_effect(c)
...
@@ -15,6 +15,7 @@ function c69890967.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c69890967
.
spcon
)
e2
:
SetCondition
(
c69890967
.
spcon
)
e2
:
SetTarget
(
c69890967
.
sptg
)
e2
:
SetOperation
(
c69890967
.
spop
)
e2
:
SetOperation
(
c69890967
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--token
--token
...
@@ -42,36 +43,26 @@ end
...
@@ -42,36 +43,26 @@ end
function
c69890967
.
rfilter
(
c
,
tp
)
function
c69890967
.
rfilter
(
c
,
tp
)
return
c
:
IsRace
(
RACE_FIEND
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
return
c
:
IsRace
(
RACE_FIEND
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
end
end
function
c69890967
.
mzfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
end
function
c69890967
.
spcon
(
e
,
c
)
function
c69890967
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c69890967
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c69890967
.
rfilter
,
nil
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
rg
:
CheckSubGroup
(
aux
.
mzctcheckrel
,
3
,
3
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
3
and
rg
:
GetCount
()
>
2
and
(
ft
>
0
or
rg
:
IsExists
(
c69890967
.
mzfilter
,
ct
,
nil
,
tp
))
end
end
function
c69890967
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c69890967
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c69890967
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c69890967
.
rfilter
,
nil
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
nil
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheckrel
,
true
,
3
,
3
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
:
KeepAlive
()
g
=
rg
:
Select
(
tp
,
3
,
3
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
>-
2
then
return
true
local
ct
=-
ft
+
1
else
return
false
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
end
g
=
rg
:
FilterSelect
(
tp
,
c69890967
.
mzfilter
,
ct
,
ct
,
nil
,
tp
)
function
c69890967
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
e
:
GetLabelObject
()
local
g2
=
rg
:
Select
(
tp
,
3
-
ct
,
3
-
ct
,
g
)
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
g
=
rg
:
FilterSelect
(
tp
,
c69890967
.
mzfilter
,
3
,
3
,
nil
,
tp
)
end
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c69890967
.
tkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c69890967
.
tkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
ep
~=
tp
return
ep
~=
tp
...
...
c74426895.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c74426895.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c74426895.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c74426895
.
spcon
)
e1
:
SetCondition
(
c74426895
.
spcon
)
e1
:
SetTarget
(
c74426895
.
sptg
)
e1
:
SetOperation
(
c74426895
.
spop
)
e1
:
SetOperation
(
c74426895
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -34,26 +35,35 @@ function c74426895.initial_effect(c)
...
@@ -34,26 +35,35 @@ function c74426895.initial_effect(c)
e3
:
SetOperation
(
c74426895
.
thop
)
e3
:
SetOperation
(
c74426895
.
thop
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c74426895
.
spfilter1
(
c
,
tp
)
function
c74426895
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c74426895
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c74426895
.
spfilter2
(
c
)
function
c74426895
.
spfilter2
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_WATER
)
and
c
:
IsAbleToGraveAsCost
()
and
c
:
IsLevelBelow
(
4
)
return
c
:
IsAttribute
(
ATTRIBUTE_WATER
)
and
c
:
IsLevelBelow
(
4
)
end
function
c74426895
.
fselect
(
g
,
tp
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsRace
,
RACE_SPELLCASTER
,
c74426895
.
spfilter2
,
nil
)
end
end
function
c74426895
.
spcon
(
e
,
c
)
function
c74426895
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c74426895
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c74426895
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c74426895
.
fselect
,
2
,
2
,
tp
)
end
end
function
c74426895
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c74426895
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c74426895
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c74426895
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c74426895
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c74426895
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c74426895
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c74426895
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c74426895
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
...
...
c75347539.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c75347539.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c75347539.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c75347539
.
spcon
)
e1
:
SetCondition
(
c75347539
.
spcon
)
e1
:
SetTarget
(
c75347539
.
sptg
)
e1
:
SetOperation
(
c75347539
.
spop
)
e1
:
SetOperation
(
c75347539
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--special summon
--special summon
...
@@ -22,20 +23,30 @@ function c75347539.initial_effect(c)
...
@@ -22,20 +23,30 @@ function c75347539.initial_effect(c)
e2
:
SetOperation
(
c75347539
.
operation
)
e2
:
SetOperation
(
c75347539
.
operation
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
c75347539
.
spchecks
=
aux
.
CreateChecks
(
Card
.
IsCode
,{
99785935
,
39256679
,
11549357
})
function
c75347539
.
fselect
(
g
,
tp
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
Duel
.
CheckReleaseGroupEx
(
tp
,
aux
.
IsInGroup
,
#
g
,
nil
,
g
)
end
function
c75347539
.
spcon
(
e
,
c
)
function
c75347539
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
CheckReleaseGroupEx
(
tp
,
Card
.
IsCode
,
1
,
nil
,
99785935
)
local
g
=
Duel
.
GetReleaseGroup
(
tp
,
true
)
and
Duel
.
CheckReleaseGroupEx
(
tp
,
Card
.
IsCode
,
1
,
nil
,
39256679
)
return
g
:
CheckSubGroupEach
(
c75347539
.
spchecks
,
c75347539
.
fselect
,
tp
)
and
Duel
.
CheckReleaseGroupEx
(
tp
,
Card
.
IsCode
,
1
,
nil
,
11549357
)
end
function
c75347539
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetReleaseGroup
(
tp
,
true
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
sg
=
g
:
SelectSubGroupEach
(
tp
,
c75347539
.
spchecks
,
true
,
c75347539
.
fselect
,
tp
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
end
function
c75347539
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c75347539
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g1
=
Duel
.
SelectReleaseGroupEx
(
tp
,
Card
.
IsCode
,
1
,
1
,
nil
,
99785935
)
local
g
=
e
:
GetLabelObject
()
local
g2
=
Duel
.
SelectReleaseGroupEx
(
tp
,
Card
.
IsCode
,
1
,
1
,
nil
,
39256679
)
Duel
.
Release
(
g
,
REASON_COST
)
local
g3
=
Duel
.
SelectReleaseGroupEx
(
tp
,
Card
.
IsCode
,
1
,
1
,
nil
,
11549357
)
g
:
DeleteGroup
()
g1
:
Merge
(
g2
)
g1
:
Merge
(
g3
)
Duel
.
Release
(
g1
,
REASON_COST
)
end
end
function
c75347539
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c75347539
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsReleasable
()
end
if
chk
==
0
then
return
e
:
GetHandler
():
IsReleasable
()
end
...
...
c77387463.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c77387463.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c77387463.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c77387463
.
spcon
)
e2
:
SetCondition
(
c77387463
.
spcon
)
e2
:
SetTarget
(
c77387463
.
sptg
)
e2
:
SetOperation
(
c77387463
.
spop
)
e2
:
SetOperation
(
c77387463
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--Damage
--Damage
...
@@ -33,35 +34,26 @@ end
...
@@ -33,35 +34,26 @@ end
function
c77387463
.
filter
(
c
)
function
c77387463
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xe3
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xe3
)
and
c
:
IsAbleToGraveAsCost
()
end
end
function
c77387463
.
mzfilter
(
c
)
return
c
:
GetSequence
()
<
5
end
function
c77387463
.
spcon
(
e
,
c
)
function
c77387463
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
mg
=
Duel
.
GetMatchingGroup
(
c77387463
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c77387463
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
mg
:
CheckSubGroup
(
aux
.
mzctcheck
,
2
,
2
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
2
and
mg
:
GetCount
()
>
1
and
(
ft
>
0
or
mg
:
IsExists
(
c77387463
.
mzfilter
,
ct
,
nil
))
end
end
function
c77387463
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c77387463
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
mg
=
Duel
.
GetMatchingGroup
(
c77387463
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c77387463
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
nil
local
sg
=
mg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
sg
:
KeepAlive
()
g
=
mg
:
Select
(
tp
,
2
,
2
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
==
0
then
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
else
return
false
end
g
=
mg
:
FilterSelect
(
tp
,
c77387463
.
mzfilter
,
1
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
function
c77387463
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g2
=
mg
:
Select
(
tp
,
1
,
1
,
g
)
local
g
=
e
:
GetLabelObject
()
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
FilterSelect
(
tp
,
c77387463
.
mzfilter
,
2
,
2
,
nil
)
end
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
...
...
c78509901.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c78509901.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c78509901.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c78509901
.
spcon
)
e2
:
SetCondition
(
c78509901
.
spcon
)
e2
:
SetTarget
(
c78509901
.
sptg
)
e2
:
SetOperation
(
c78509901
.
spop
)
e2
:
SetOperation
(
c78509901
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--extra att
--extra att
...
@@ -30,35 +31,26 @@ end
...
@@ -30,35 +31,26 @@ end
function
c78509901
.
filter
(
c
)
function
c78509901
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xe3
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xe3
)
and
c
:
IsAbleToGraveAsCost
()
end
end
function
c78509901
.
mzfilter
(
c
)
return
c
:
GetSequence
()
<
5
end
function
c78509901
.
spcon
(
e
,
c
)
function
c78509901
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
mg
=
Duel
.
GetMatchingGroup
(
c78509901
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c78509901
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
mg
:
CheckSubGroup
(
aux
.
mzctcheck
,
2
,
2
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
2
and
mg
:
GetCount
()
>
1
and
(
ft
>
0
or
mg
:
IsExists
(
c78509901
.
mzfilter
,
ct
,
nil
))
end
end
function
c78509901
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c78509901
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
mg
=
Duel
.
GetMatchingGroup
(
c78509901
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
mg
=
Duel
.
GetMatchingGroup
(
c78509901
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
nil
local
sg
=
mg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
sg
:
KeepAlive
()
g
=
mg
:
Select
(
tp
,
2
,
2
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
==
0
then
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
else
return
false
end
g
=
mg
:
FilterSelect
(
tp
,
c78509901
.
mzfilter
,
1
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
function
c78509901
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g2
=
mg
:
Select
(
tp
,
1
,
1
,
g
)
local
g
=
e
:
GetLabelObject
()
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
FilterSelect
(
tp
,
c78509901
.
mzfilter
,
2
,
2
,
nil
)
end
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
...
...
c80776622.lua
View file @
6a9c6e0a
...
@@ -23,6 +23,7 @@ function c80776622.initial_effect(c)
...
@@ -23,6 +23,7 @@ function c80776622.initial_effect(c)
e3
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e3
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e3
:
SetRange
(
LOCATION_HAND
)
e3
:
SetRange
(
LOCATION_HAND
)
e3
:
SetCondition
(
c80776622
.
spcon
)
e3
:
SetCondition
(
c80776622
.
spcon
)
e3
:
SetTarget
(
c80776622
.
sptg
)
e3
:
SetOperation
(
c80776622
.
spop
)
e3
:
SetOperation
(
c80776622
.
spop
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
--disable
--disable
...
@@ -92,11 +93,20 @@ function c80776622.spcon(e,c)
...
@@ -92,11 +93,20 @@ function c80776622.spcon(e,c)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c80776622
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c80776622
.
rfilter
,
nil
,
tp
)
return
rg
:
CheckSubGroup
(
aux
.
mzctcheckrel
,
2
,
2
,
tp
)
return
rg
:
CheckSubGroup
(
aux
.
mzctcheckrel
,
2
,
2
,
tp
)
end
end
function
c80776622
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c80776622
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c80776622
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c80776622
.
rfilter
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheckrel
,
false
,
2
,
2
,
tp
)
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheckrel
,
true
,
2
,
2
,
tp
)
Duel
.
Release
(
sg
,
REASON_COST
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c80776622
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c80776622
.
pfilter
(
c
)
function
c80776622
.
pfilter
(
c
)
return
c
:
GetCurrentScale
()
%
2
~=
0
return
c
:
GetCurrentScale
()
%
2
~=
0
...
...
c83965310.lua
View file @
6a9c6e0a
...
@@ -16,6 +16,7 @@ function c83965310.initial_effect(c)
...
@@ -16,6 +16,7 @@ function c83965310.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c83965310
.
spcon
)
e2
:
SetCondition
(
c83965310
.
spcon
)
e2
:
SetTarget
(
c83965310
.
sptg
)
e2
:
SetOperation
(
c83965310
.
spop
)
e2
:
SetOperation
(
c83965310
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--equip
--equip
...
@@ -38,36 +39,26 @@ function c83965310.initial_effect(c)
...
@@ -38,36 +39,26 @@ function c83965310.initial_effect(c)
e4
:
SetCode
(
EFFECT_DISABLE
)
e4
:
SetCode
(
EFFECT_DISABLE
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e4
)
end
end
function
c83965310
.
mzfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
end
function
c83965310
.
spcon
(
e
,
c
)
function
c83965310
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
rg
:
CheckSubGroup
(
aux
.
mzctcheckrel
,
3
,
3
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
3
and
rg
:
GetCount
()
>
2
and
(
ft
>
0
or
rg
:
IsExists
(
c83965310
.
mzfilter
,
ct
,
nil
,
tp
))
end
end
function
c83965310
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c83965310
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
nil
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheckrel
,
true
,
3
,
3
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
:
KeepAlive
()
g
=
rg
:
Select
(
tp
,
3
,
3
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
>-
2
then
return
true
local
ct
=-
ft
+
1
else
return
false
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
end
g
=
rg
:
FilterSelect
(
tp
,
c83965310
.
mzfilter
,
ct
,
ct
,
nil
,
tp
)
function
c83965310
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
e
:
GetLabelObject
()
local
g2
=
rg
:
Select
(
tp
,
3
-
ct
,
3
-
ct
,
g
)
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
g
=
rg
:
FilterSelect
(
tp
,
c83965310
.
mzfilter
,
3
,
3
,
nil
,
tp
)
end
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c83965310
.
cfilter
(
c
)
function
c83965310
.
cfilter
(
c
)
return
c
:
GetFlagEffect
(
83965310
)
>
0
return
c
:
GetFlagEffect
(
83965310
)
>
0
...
...
c88301393.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c88301393.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c88301393.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetCondition
(
c88301393
.
spcon
)
e2
:
SetCondition
(
c88301393
.
spcon
)
e2
:
SetTarget
(
c88301393
.
sptg
)
e2
:
SetOperation
(
c88301393
.
spop
)
e2
:
SetOperation
(
c88301393
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--chain attack
--chain attack
...
@@ -53,42 +54,27 @@ function c88301393.spcon(e,c)
...
@@ -53,42 +54,27 @@ function c88301393.spcon(e,c)
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
sum
=
Duel
.
GetMatchingGroup
(
c88301393
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c88301393
.
lv_or_rk
)
local
sum
=
Duel
.
GetMatchingGroup
(
c88301393
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c88301393
.
lv_or_rk
)
if
sum
>
8
then
return
false
end
if
sum
>
8
then
return
false
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
if
ft
<-
1
then
return
false
end
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
if
c
:
IsHasEffect
(
34822850
)
then
local
g
=
Duel
.
GetMatchingGroup
(
c88301393
.
spfilter
,
tp
,
loc
,
0
,
c
)
if
ft
>
0
then
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
2
,
2
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
c88301393
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
else
local
ct
=-
ft
+
1
return
Duel
.
IsExistingMatchingCard
(
c88301393
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
ct
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c88301393
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
end
else
return
ft
>
0
and
Duel
.
IsExistingMatchingCard
(
c88301393
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
end
end
end
function
c88301393
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c88301393
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
local
g
=
nil
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
local
g
=
Duel
.
GetMatchingGroup
(
c88301393
.
spfilter
,
tp
,
loc
,
0
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
c
:
IsHasEffect
(
34822850
)
then
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
g
=
Duel
.
SelectMatchingCard
(
tp
,
c88301393
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
2
,
c
)
sg
:
KeepAlive
()
else
e
:
SetLabelObject
(
sg
)
local
sg
=
Duel
.
GetMatchingGroup
(
c88301393
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
c
)
return
true
local
ct
=-
ft
+
1
else
return
false
end
g
=
sg
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
ct
,
ct
,
nil
,
LOCATION_MZONE
)
end
if
ct
<
2
then
function
c88301393
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
sg
:
Sub
(
g
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g2
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
g
:
Merge
(
g2
)
end
end
else
g
=
Duel
.
SelectMatchingCard
(
tp
,
c88301393
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
2
,
c
)
end
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c88301393
.
atcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c88301393
.
atcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
...
...
c88619463.lua
View file @
6a9c6e0a
...
@@ -15,6 +15,7 @@ function c88619463.initial_effect(c)
...
@@ -15,6 +15,7 @@ function c88619463.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCondition
(
c88619463
.
spcon
)
e2
:
SetCondition
(
c88619463
.
spcon
)
e2
:
SetTarget
(
c88619463
.
sptg
)
e2
:
SetOperation
(
c88619463
.
spop
)
e2
:
SetOperation
(
c88619463
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--negate
--negate
...
@@ -33,35 +34,26 @@ end
...
@@ -33,35 +34,26 @@ end
function
c88619463
.
rfilter
(
c
,
tp
)
function
c88619463
.
rfilter
(
c
,
tp
)
return
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsLevelAbove
(
6
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
return
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsLevelAbove
(
6
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
end
end
function
c88619463
.
mzfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
end
function
c88619463
.
spcon
(
e
,
c
)
function
c88619463
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c88619463
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c88619463
.
rfilter
,
nil
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
rg
:
CheckSubGroup
(
aux
.
mzctcheckrel
,
2
,
2
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
2
and
rg
:
GetCount
()
>
1
and
(
ft
>
0
or
rg
:
IsExists
(
c88619463
.
mzfilter
,
ct
,
nil
,
tp
))
end
end
function
c88619463
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c88619463
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c88619463
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c88619463
.
rfilter
,
nil
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
nil
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheckrel
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
:
KeepAlive
()
g
=
rg
:
Select
(
tp
,
2
,
2
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
==
0
then
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
else
return
false
end
g
=
rg
:
FilterSelect
(
tp
,
c88619463
.
mzfilter
,
1
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
function
c88619463
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g2
=
rg
:
Select
(
tp
,
1
,
1
,
g
:
GetFirst
())
local
g
=
e
:
GetLabelObject
()
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
g
=
rg
:
FilterSelect
(
tp
,
c88619463
.
mzfilter
,
2
,
2
,
nil
,
tp
)
end
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c88619463
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c88619463
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
not
e
:
GetHandler
():
IsStatus
(
STATUS_BATTLE_DESTROYED
)
return
not
e
:
GetHandler
():
IsStatus
(
STATUS_BATTLE_DESTROYED
)
...
...
c91588074.lua
View file @
6a9c6e0a
...
@@ -8,6 +8,7 @@ function c91588074.initial_effect(c)
...
@@ -8,6 +8,7 @@ function c91588074.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c91588074
.
spcon
)
e1
:
SetCondition
(
c91588074
.
spcon
)
e1
:
SetTarget
(
c91588074
.
sptg
)
e1
:
SetOperation
(
c91588074
.
spop
)
e1
:
SetOperation
(
c91588074
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
...
@@ -34,22 +35,33 @@ end
...
@@ -34,22 +35,33 @@ end
function
c91588074
.
spcon
(
e
,
c
)
function
c91588074
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToDeckOrExtraAsCost
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
c
)
local
ct
=-
ft
+
1
aux
.
GCheckAdditional
=
aux
.
dncheck
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToDeckOrExtraAsCost
,
c
:
GetControler
(),
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
c
)
local
res
=
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
10
,
10
,
tp
)
return
g
:
GetClassCount
(
Card
.
GetCode
)
>=
10
and
(
ft
>
0
or
g
:
IsExists
(
Card
.
IsLocation
,
ct
,
nil
,
LOCATION_MZONE
))
aux
.
GCheckAdditional
=
nil
return
res
end
end
function
c91588074
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c91588074
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToDeckOrExtraAsCost
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToDeckOrExtraAsCost
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
aux
.
GCheckAdditional
=
aux
.
dncheck
aux
.
GCheckAdditional
=
aux
.
dncheck
local
rg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
fals
e
,
10
,
10
,
tp
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
tru
e
,
10
,
10
,
tp
)
aux
.
GCheckAdditional
=
nil
aux
.
GCheckAdditional
=
nil
local
cg
=
rg
:
Filter
(
Card
.
IsFacedown
,
nil
)
if
sg
then
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c91588074
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
local
cg
=
g
:
Filter
(
Card
.
IsFacedown
,
nil
)
if
cg
:
GetCount
()
>
0
then
if
cg
:
GetCount
()
>
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
cg
)
Duel
.
ConfirmCards
(
1
-
tp
,
cg
)
end
end
Duel
.
SendtoDeck
(
rg
,
nil
,
SEQ_DECKSHUFFLE
,
REASON_COST
)
Duel
.
SendtoDeck
(
g
,
nil
,
SEQ_DECKSHUFFLE
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c91588074
.
tdfilter
(
c
)
function
c91588074
.
tdfilter
(
c
)
return
(
c
:
IsLocation
(
0x1e
)
or
(
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_PENDULUM
)))
and
c
:
IsAbleToDeck
()
return
(
c
:
IsLocation
(
0x1e
)
or
(
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_PENDULUM
)))
and
c
:
IsAbleToDeck
()
...
...
c92652813.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c92652813.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c92652813.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetRange
(
LOCATION_HAND
+
LOCATION_DECK
)
e1
:
SetCondition
(
c92652813
.
spcon
)
e1
:
SetCondition
(
c92652813
.
spcon
)
e1
:
SetTarget
(
c92652813
.
sptg
)
e1
:
SetOperation
(
c92652813
.
spop
)
e1
:
SetOperation
(
c92652813
.
spop
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
e1
:
SetValue
(
SUMMON_VALUE_SELF
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
...
@@ -34,26 +35,35 @@ function c92652813.initial_effect(c)
...
@@ -34,26 +35,35 @@ function c92652813.initial_effect(c)
e3
:
SetOperation
(
c92652813
.
thop
)
e3
:
SetOperation
(
c92652813
.
thop
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c92652813
.
spfilter1
(
c
,
tp
)
function
c92652813
.
spfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsFaceup
()
and
c
:
IsAbleToGraveAsCost
()
and
Duel
.
IsExistingMatchingCard
(
c92652813
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
)
end
end
function
c92652813
.
spfilter2
(
c
)
function
c92652813
.
spfilter2
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsAttribute
(
ATTRIBUTE_FIRE
)
and
c
:
IsAbleToGraveAsCost
()
and
c
:
IsLevelBelow
(
4
)
return
c
:
IsAttribute
(
ATTRIBUTE_FIRE
)
and
c
:
IsLevelBelow
(
4
)
end
function
c92652813
.
fselect
(
g
,
tp
)
return
aux
.
mzctcheck
(
g
,
tp
)
and
aux
.
gffcheck
(
g
,
Card
.
IsRace
,
RACE_SPELLCASTER
,
c92652813
.
spfilter2
,
nil
)
end
end
function
c92652813
.
spcon
(
e
,
c
)
function
c92652813
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>-
2
local
g
=
Duel
.
GetMatchingGroup
(
c92652813
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c92652813
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
tp
)
return
g
:
CheckSubGroup
(
c92652813
.
fselect
,
2
,
2
,
tp
)
end
end
function
c92652813
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c92652813
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
GetMatchingGroup
(
c92652813
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
c92652813
.
spfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
c92652813
.
spfilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
g1
:
GetFirst
())
local
sg
=
g
:
SelectSubGroup
(
tp
,
c92652813
.
fselect
,
true
,
2
,
2
,
tp
)
g1
:
Merge
(
g2
)
if
sg
then
Duel
.
SendtoGrave
(
g1
,
REASON_COST
)
sg
:
KeepAlive
()
e
:
SetLabelObject
(
sg
)
return
true
else
return
false
end
end
function
c92652813
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
e
:
GetLabelObject
()
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c92652813
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c92652813
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
return
e
:
GetHandler
():
GetSummonType
()
==
SUMMON_TYPE_SPECIAL
+
SUMMON_VALUE_SELF
...
...
c93717133.lua
View file @
6a9c6e0a
...
@@ -7,6 +7,7 @@ function c93717133.initial_effect(c)
...
@@ -7,6 +7,7 @@ function c93717133.initial_effect(c)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
c93717133
.
spcon
)
e1
:
SetCondition
(
c93717133
.
spcon
)
e1
:
SetTarget
(
c93717133
.
sptg
)
e1
:
SetOperation
(
c93717133
.
spop
)
e1
:
SetOperation
(
c93717133
.
spop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
--remove
--remove
...
@@ -26,35 +27,26 @@ end
...
@@ -26,35 +27,26 @@ end
function
c93717133
.
rfilter
(
c
,
tp
)
function
c93717133
.
rfilter
(
c
,
tp
)
return
c
:
IsAttackAbove
(
2000
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
return
c
:
IsAttackAbove
(
2000
)
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
end
end
function
c93717133
.
mzfilter
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetSequence
()
<
5
end
function
c93717133
.
spcon
(
e
,
c
)
function
c93717133
.
spcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c93717133
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c93717133
.
rfilter
,
nil
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
rg
:
CheckSubGroup
(
aux
.
mzctcheckrel
,
2
,
2
,
tp
)
local
ct
=-
ft
+
1
return
ft
>-
2
and
rg
:
GetCount
()
>
1
and
(
ft
>
0
or
rg
:
IsExists
(
c93717133
.
mzfilter
,
ct
,
nil
,
tp
))
end
end
function
c93717133
.
sp
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c93717133
.
sp
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c93717133
.
rfilter
,
nil
,
tp
)
local
rg
=
Duel
.
GetReleaseGroup
(
tp
):
Filter
(
c93717133
.
rfilter
,
nil
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
nil
local
sg
=
rg
:
SelectSubGroup
(
tp
,
aux
.
mzctcheckrel
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
sg
:
KeepAlive
()
g
=
rg
:
Select
(
tp
,
2
,
2
,
nil
)
e
:
SetLabelObject
(
sg
)
elseif
ft
==
0
then
return
true
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
else
return
false
end
g
=
rg
:
FilterSelect
(
tp
,
c93717133
.
mzfilter
,
1
,
1
,
nil
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
function
c93717133
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g2
=
rg
:
Select
(
tp
,
1
,
1
,
g
:
GetFirst
())
local
g
=
e
:
GetLabelObject
()
g
:
Merge
(
g2
)
else
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
g
=
rg
:
FilterSelect
(
tp
,
c93717133
.
mzfilter
,
2
,
2
,
nil
,
tp
)
end
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
g
:
DeleteGroup
()
c
:
RegisterFlagEffect
(
0
,
RESET_EVENT
+
0x4fc0000
,
EFFECT_FLAG_CLIENT_HINT
,
1
,
0
,
aux
.
Stringid
(
93717133
,
1
))
c
:
RegisterFlagEffect
(
0
,
RESET_EVENT
+
0x4fc0000
,
EFFECT_FLAG_CLIENT_HINT
,
1
,
0
,
aux
.
Stringid
(
93717133
,
1
))
end
end
function
c93717133
.
rmcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c93717133
.
rmcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
...
c96055137.lua
View file @
6a9c6e0a
...
@@ -14,6 +14,7 @@ function c96055137.initial_effect(c)
...
@@ -14,6 +14,7 @@ function c96055137.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetCondition
(
c96055137
.
spcon
)
e2
:
SetCondition
(
c96055137
.
spcon
)
e2
:
SetTarget
(
c96055137
.
sptg
)
e2
:
SetOperation
(
c96055137
.
spop
)
e2
:
SetOperation
(
c96055137
.
spop
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
--remove
--remove
...
@@ -52,42 +53,27 @@ function c96055137.spcon(e,c)
...
@@ -52,42 +53,27 @@ function c96055137.spcon(e,c)
local
tp
=
c
:
GetControler
()
local
tp
=
c
:
GetControler
()
local
sum
=
Duel
.
GetMatchingGroup
(
c96055137
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c96055137
.
lv_or_rk
)
local
sum
=
Duel
.
GetMatchingGroup
(
c96055137
.
sumfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
):
GetSum
(
c96055137
.
lv_or_rk
)
if
sum
>
8
then
return
false
end
if
sum
>
8
then
return
false
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
if
ft
<-
1
then
return
false
end
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
if
c
:
IsHasEffect
(
34822850
)
then
local
g
=
Duel
.
GetMatchingGroup
(
c96055137
.
spfilter
,
tp
,
loc
,
0
,
c
)
if
ft
>
0
then
return
g
:
CheckSubGroup
(
aux
.
mzctcheck
,
2
,
2
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
c96055137
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
else
local
ct
=-
ft
+
1
return
Duel
.
IsExistingMatchingCard
(
c96055137
.
spfilter
,
tp
,
LOCATION_MZONE
,
0
,
ct
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
c96055137
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
end
else
return
ft
>
0
and
Duel
.
IsExistingMatchingCard
(
c96055137
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
c
)
end
end
end
function
c96055137
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
function
c96055137
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
loc
=
LOCATION_GRAVE
+
LOCATION_HAND
local
g
=
nil
if
c
:
IsHasEffect
(
34822850
)
then
loc
=
loc
+
LOCATION_MZONE
end
local
g
=
Duel
.
GetMatchingGroup
(
c96055137
.
spfilter
,
tp
,
loc
,
0
,
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
c
:
IsHasEffect
(
34822850
)
then
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
mzctcheck
,
true
,
2
,
2
,
tp
)
if
ft
>
0
then
if
sg
then
g
=
Duel
.
SelectMatchingCard
(
tp
,
c96055137
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
2
,
c
)
sg
:
KeepAlive
()
else
e
:
SetLabelObject
(
sg
)
local
sg
=
Duel
.
GetMatchingGroup
(
c96055137
.
spfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
c
)
return
true
local
ct
=-
ft
+
1
else
return
false
end
g
=
sg
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
ct
,
ct
,
nil
,
LOCATION_MZONE
)
end
if
ct
<
2
then
function
c96055137
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
sg
:
Sub
(
g
)
local
g
=
e
:
GetLabelObject
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
g2
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
g
:
Merge
(
g2
)
end
end
else
g
=
Duel
.
SelectMatchingCard
(
tp
,
c96055137
.
spfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_HAND
,
0
,
2
,
2
,
c
)
end
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_COST
)
g
:
DeleteGroup
()
end
end
function
c96055137
.
rmtg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c96055137
.
rmtg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_EXTRA
,
1
,
nil
)
end
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_EXTRA
,
1
,
nil
)
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