Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-scripts
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
八宫一月
ygopro-scripts
Commits
b2835ebe
Commit
b2835ebe
authored
Nov 29, 2019
by
mercury233
Committed by
nekrozar
Nov 29, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more update to use SelectSubGroup (#1252)
* update * update * update * update
parent
9f429dbc
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
69 additions
and
183 deletions
+69
-183
c15083304.lua
c15083304.lua
+4
-12
c23187256.lua
c23187256.lua
+4
-7
c24010609.lua
c24010609.lua
+6
-26
c28265983.lua
c28265983.lua
+5
-9
c28577986.lua
c28577986.lua
+7
-10
c36328300.lua
c36328300.lua
+5
-16
c45148985.lua
c45148985.lua
+5
-15
c50766506.lua
c50766506.lua
+8
-13
c72883039.lua
c72883039.lua
+7
-25
c84869738.lua
c84869738.lua
+8
-18
c91588074.lua
c91588074.lua
+5
-17
c95403418.lua
c95403418.lua
+5
-15
No files found.
c15083304.lua
View file @
b2835ebe
...
...
@@ -17,8 +17,8 @@ function c15083304.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel
.
SetTargetParam
(
3
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
3
)
end
function
c15083304
.
filter
(
c
)
return
not
c
:
IsSetCard
(
0x11e
)
function
c15083304
.
gselect
(
g
)
return
g
:
IsExists
(
Card
.
IsSetCard
,
1
,
nil
,
0x11e
)
end
function
c15083304
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
p
,
d
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
,
CHAININFO_TARGET_PARAM
)
...
...
@@ -26,17 +26,9 @@ function c15083304.activate(e,tp,eg,ep,ev,re,r,rp)
Duel
.
ShuffleHand
(
p
)
Duel
.
BreakEffect
()
local
g
=
Duel
.
GetFieldGroup
(
p
,
LOCATION_HAND
,
0
)
if
g
:
IsExists
(
Card
.
IsSetCard
,
1
,
nil
,
0x11e
)
then
if
#
g
>=
2
and
g
:
IsExists
(
Card
.
IsSetCard
,
1
,
nil
,
0x11e
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
p
,
HINTMSG_DISCARD
)
local
g1
=
g
:
Select
(
p
,
1
,
1
,
nil
)
if
g1
:
GetFirst
():
IsSetCard
(
0x11e
)
then
g
:
RemoveCard
(
g1
:
GetFirst
())
else
g
:
Remove
(
c15083304
.
filter
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
p
,
HINTMSG_DISCARD
)
local
g2
=
g
:
Select
(
p
,
1
,
1
,
nil
)
g1
:
Merge
(
g2
)
local
g1
=
g
:
SelectSubGroup
(
tp
,
c15083304
.
gselect
,
false
,
2
,
2
)
Duel
.
SendtoGrave
(
g1
,
REASON_DISCARD
+
REASON_EFFECT
)
else
Duel
.
ConfirmCards
(
1
-
p
,
g
)
...
...
c23187256.lua
View file @
b2835ebe
...
...
@@ -55,10 +55,9 @@ function c23187256.operation(e,tp,eg,ep,ev,re,r,rp)
local
ct
=
c
:
GetOverlayGroup
():
GetClassCount
(
Card
.
GetCode
)
if
ct
>
ft
then
ct
=
ft
end
if
g1
:
GetCount
()
>
0
and
ct
>
0
then
repeat
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g2
=
g1
:
Select
(
tp
,
1
,
1
,
nil
)
local
tc
=
g2
:
GetFirst
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g2
=
g1
:
SelectSubGroup
(
tp
,
aux
.
drkcheck
,
false
,
1
,
ct
)
for
tc
in
aux
.
Next
(
g2
)
do
Duel
.
SpecialSummonStep
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
...
...
@@ -70,9 +69,7 @@ function c23187256.operation(e,tp,eg,ep,ev,re,r,rp)
e2
:
SetCode
(
EFFECT_DISABLE_EFFECT
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e2
)
g1
:
Remove
(
c23187256
.
gfilter
,
nil
,
tc
:
GetRank
())
ct
=
ct
-
1
until
g1
:
GetCount
()
==
0
or
ct
==
0
or
not
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
23187256
,
1
))
end
Duel
.
SpecialSummonComplete
()
Duel
.
BreakEffect
()
c
:
RemoveOverlayCard
(
tp
,
1
,
1
,
REASON_EFFECT
)
...
...
c24010609.lua
View file @
b2835ebe
...
...
@@ -96,38 +96,18 @@ function c24010609.settg(e,tp,eg,ep,ev,re,r,rp,chk)
if
chk
==
0
then
return
ct
and
ct
>
0
and
Duel
.
IsExistingMatchingCard
(
c24010609
.
setfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_LEAVE_GRAVE
,
nil
,
1
,
tp
,
0
)
end
function
c24010609
.
gselect
(
g
,
ft
)
local
fc
=
g
:
FilterCount
(
Card
.
IsType
,
nil
,
TYPE_FIELD
)
return
fc
<=
1
and
aux
.
dncheck
(
g
)
and
#
g
-
fc
<
ft
end
function
c24010609
.
setop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
then
return
end
local
g
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
c24010609
.
setfilter
),
tp
,
LOCATION_GRAVE
,
0
,
nil
)
local
ct
=
e
:
GetHandler
():
GetFlagEffectLabel
(
24010609
)
or
0
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
local
tg
=
Group
.
CreateGroup
()
local
tg1
=
Group
.
CreateGroup
()
local
field
=
false
local
init
=
1
if
g
:
IsExists
(
Card
.
IsType
,
1
,
nil
,
TYPE_FIELD
)
then
field
=
true
end
while
ct
>
0
and
(
ft
>
0
or
field
)
and
g
:
GetCount
()
>
0
do
if
ft
==
0
then
g
=
g
:
Filter
(
Card
.
IsType
,
nil
,
TYPE_FIELD
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SET
)
local
sg
=
g
:
Select
(
tp
,
init
,
1
,
nil
)
if
sg
:
GetCount
()
>
0
then
if
sg
:
GetFirst
():
IsType
(
TYPE_FIELD
)
then
tg
:
Merge
(
sg
)
g
:
Remove
(
Card
.
IsType
,
nil
,
TYPE_FIELD
)
field
=
false
else
tg1
:
Merge
(
sg
)
g
:
Remove
(
Card
.
IsCode
,
nil
,
sg
:
GetFirst
():
GetCode
())
ft
=
ft
-
1
end
init
=
0
ct
=
ct
-
1
else
break
end
end
tg
:
Merge
(
tg1
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SET
)
local
tg
=
g
:
SelectSubGroup
(
tp
,
c24010609
.
gselect
,
false
,
1
,
math.min
(
ct
,
ft
+
1
),
ft
)
Duel
.
SSet
(
tp
,
tg
)
local
tc
=
tg
:
GetFirst
()
while
tc
do
...
...
c28265983.lua
View file @
b2835ebe
...
...
@@ -73,19 +73,15 @@ function c28265983.destg2(e,tp,eg,ep,ev,re,r,rp,chk)
local
g
=
Duel
.
GetMatchingGroup
(
c28265983
.
desfilter2
,
tp
,
0
,
LOCATION_MZONE
,
nil
,
e
:
GetLabel
())
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
1
,
0
,
0
)
end
function
c28265983
.
gselect
(
g
,
num
)
return
g
:
GetSum
(
Card
.
GetAttack
)
<=
num
end
function
c28265983
.
desop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
num
=
e
:
GetLabel
()
local
g
=
Duel
.
GetMatchingGroup
(
c28265983
.
desfilter2
,
tp
,
0
,
LOCATION_MZONE
,
nil
,
num
)
if
g
:
GetCount
()
==
0
then
return
end
local
dg
=
Group
.
CreateGroup
()
repeat
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
tg
=
g
:
FilterSelect
(
tp
,
c28265983
.
desfilter2
,
1
,
1
,
nil
,
num
)
local
tc
=
tg
:
GetFirst
()
num
=
num
-
tc
:
GetAttack
()
g
:
RemoveCard
(
tc
)
dg
:
AddCard
(
tc
)
until
not
g
:
IsExists
(
c28265983
.
desfilter2
,
1
,
nil
,
num
)
or
not
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
28265983
,
3
))
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
dg
=
g
:
SelectSubGroup
(
tp
,
c28265983
.
gselect
,
false
,
1
,
#
g
,
num
)
Duel
.
Destroy
(
dg
,
REASON_EFFECT
)
end
c28577986.lua
View file @
b2835ebe
...
...
@@ -30,24 +30,21 @@ function c28577986.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
g
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c28577986
.
gselect
(
g
,
slv
)
return
g
:
GetSum
(
Card
.
GetLevel
)
<=
slv
end
function
c28577986
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
not
tc
:
IsRelateToEffect
(
e
)
then
return
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
ft
<=
0
then
return
end
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
ft
=
1
end
local
slv
=
tc
:
GetLevel
()
local
sg
=
Duel
.
GetMatchingGroup
(
c28577986
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
slv
,
e
,
tp
)
if
sg
:
GetCount
()
==
0
then
return
end
repeat
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tc
=
sg
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
sg
:
RemoveCard
(
tc
)
slv
=
slv
-
tc
:
GetLevel
()
Duel
.
SpecialSummonStep
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
sg
:
Remove
(
Card
.
IsLevelAbove
,
nil
,
slv
+
1
)
ft
=
ft
-
1
until
ft
<=
0
or
sg
:
GetCount
()
==
0
or
not
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
28577986
,
1
))
Duel
.
SpecialSummonComplete
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
sg
:
SelectSubGroup
(
tp
,
c28577986
.
gselect
,
false
,
1
,
ft
,
slv
)
Duel
.
SpecialSummon
(
tg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
Duel
.
BreakEffect
()
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
end
c36328300.lua
View file @
b2835ebe
...
...
@@ -34,26 +34,15 @@ end
function
c36328300
.
exfilter
(
c
,
tp
)
return
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
Group
.
FromCards
(
c
))
>
0
end
function
c36328300
.
gselect
(
g
,
tp
)
return
aux
.
dncheck
(
g
)
and
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
g
)
>
0
end
function
c36328300
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
c36328300
.
cfilter
,
tp
,
LOCATION_ONFIELD
+
LOCATION_HAND
+
LOCATION_DECK
,
0
,
nil
)
if
chk
==
0
then
return
g
:
GetClassCount
(
Card
.
GetCode
)
>=
7
and
(
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
or
g
:
IsExists
(
c36328300
.
exfilter
,
1
,
nil
,
tp
))
end
local
rg
=
Group
.
CreateGroup
()
local
ft
=
Duel
.
GetLocationCountFromEx
(
tp
)
for
i
=
1
,
7
do
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
tc
=
nil
if
ft
<
1
then
tc
=
g
:
FilterSelect
(
tp
,
c36328300
.
exfilter
,
1
,
1
,
nil
,
tp
):
GetFirst
()
ft
=
1
else
tc
=
g
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
end
if
tc
then
rg
:
AddCard
(
tc
)
g
:
Remove
(
Card
.
IsCode
,
nil
,
tc
:
GetCode
())
end
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
rg
=
g
:
SelectSubGroup
(
tp
,
c36328300
.
gselect
,
false
,
7
,
7
,
tp
)
Duel
.
SendtoGrave
(
rg
,
REASON_COST
)
end
function
c36328300
.
filter
(
c
,
e
,
tp
)
...
...
c45148985.lua
View file @
b2835ebe
...
...
@@ -54,23 +54,13 @@ function c45148985.sprcon(e,c)
local
ct
=-
ft
+
1
return
ft
>-
5
and
g
:
GetClassCount
(
Card
.
GetCode
)
>=
5
and
(
ft
>
0
or
g
:
IsExists
(
c45148985
.
mzfilter
,
ct
,
nil
))
end
function
c45148985
.
gselect
(
g
,
tp
)
return
aux
.
dncheck
(
g
)
and
Duel
.
GetMZoneCount
(
tp
,
g
)
>
0
end
function
c45148985
.
sprop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c45148985
.
sprfilter
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=-
ft
+
1
local
rg
=
Group
.
CreateGroup
()
for
i
=
1
,
5
do
local
sc
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
if
ct
>
0
then
sc
=
g
:
FilterSelect
(
tp
,
c45148985
.
mzfilter
,
1
,
1
,
nil
):
GetFirst
()
else
sc
=
g
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
end
rg
:
AddCard
(
sc
)
g
:
Remove
(
Card
.
IsCode
,
nil
,
sc
:
GetCode
())
ct
=
ct
-
1
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
rg
=
g
:
SelectSubGroup
(
tp
,
c45148985
.
gselect
,
false
,
5
,
5
,
tp
)
Duel
.
Remove
(
rg
,
POS_FACEUP
,
REASON_COST
)
end
function
c45148985
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
...
c50766506.lua
View file @
b2835ebe
...
...
@@ -34,34 +34,29 @@ function c50766506.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel
.
Release
(
rg
,
REASON_COST
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c50766506
.
spfilter2
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x2b
)
and
(
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_ATTACK
)
or
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
))
function
c50766506
.
gselect
(
g
,
slv
)
return
g
:
GetSum
(
Card
.
GetLevel
)
<=
slv
end
function
c50766506
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
ft
<=
0
then
return
end
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
ft
=
1
end
local
c
=
e
:
GetHandler
()
local
slv
=
e
:
GetLabel
()
local
sg
=
Duel
.
GetMatchingGroup
(
c50766506
.
spfilter2
,
tp
,
LOCATION_DECK
,
0
,
nil
,
e
,
tp
)
sg
:
Remove
(
Card
.
IsLevelAbove
,
nil
,
slv
+
1
)
local
sg
=
Duel
.
GetMatchingGroup
(
c50766506
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
slv
,
e
,
tp
)
if
sg
:
GetCount
()
==
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
sg
:
SelectSubGroup
(
tp
,
c50766506
.
gselect
,
false
,
1
,
ft
,
slv
)
local
cg
=
Group
.
CreateGroup
()
repeat
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tc
=
sg
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
sg
:
RemoveCard
(
tc
)
slv
=
slv
-
tc
:
GetLevel
()
for
tc
in
aux
.
Next
(
tg
)
do
local
spos
=
0
if
tc
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_ATTACK
)
then
spos
=
spos
+
POS_FACEUP_ATTACK
end
if
tc
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
then
spos
=
spos
+
POS_FACEDOWN_DEFENSE
end
Duel
.
SpecialSummonStep
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
spos
)
if
tc
:
IsFacedown
()
then
cg
:
AddCard
(
tc
)
end
c
:
SetCardTarget
(
tc
)
sg
:
Remove
(
Card
.
IsLevelAbove
,
nil
,
slv
+
1
)
ft
=
ft
-
1
until
ft
<=
0
or
sg
:
GetCount
()
==
0
or
not
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
50766506
,
0
))
end
Duel
.
SpecialSummonComplete
()
Duel
.
ConfirmCards
(
1
-
tp
,
cg
)
end
...
...
c72883039.lua
View file @
b2835ebe
...
...
@@ -87,34 +87,16 @@ function c72883039.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
and
Duel
.
IsExistingMatchingCard
(
c72883039
.
spfilter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
)
end
function
c72883039
.
gselect
(
g
)
return
aux
.
dncheck
(
g
)
and
g
:
GetClassCount
(
Card
.
GetLocation
)
==#
g
end
function
c72883039
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
ft
=
=
0
then
return
end
if
ft
<
=
0
then
return
end
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
ft
=
1
end
local
g1
=
Duel
.
GetMatchingGroup
(
c72883039
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
nil
,
e
,
tp
)
local
g2
=
Duel
.
GetMatchingGroup
(
c72883039
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
e
,
tp
)
local
g3
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
c72883039
.
spfilter
),
tp
,
LOCATION_GRAVE
,
0
,
nil
,
e
,
tp
)
local
sg
=
Group
.
CreateGroup
()
if
g1
:
GetCount
()
>
0
and
((
g2
:
GetCount
()
==
0
and
g3
:
GetCount
()
==
0
)
or
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
72883039
,
1
)))
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg1
=
g1
:
Select
(
tp
,
1
,
1
,
nil
)
sg
:
Merge
(
sg1
)
g2
:
Remove
(
Card
.
IsCode
,
nil
,
sg1
:
GetFirst
():
GetCode
())
g3
:
Remove
(
Card
.
IsCode
,
nil
,
sg1
:
GetFirst
():
GetCode
())
ft
=
ft
-
1
end
if
g2
:
GetCount
()
>
0
and
ft
>
0
and
((
sg
:
GetCount
()
==
0
and
g3
:
GetCount
()
==
0
)
or
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
72883039
,
2
)))
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg2
=
g2
:
Select
(
tp
,
1
,
1
,
nil
)
sg
:
Merge
(
sg2
)
g3
:
Remove
(
Card
.
IsCode
,
nil
,
sg2
:
GetFirst
():
GetCode
())
ft
=
ft
-
1
end
if
g3
:
GetCount
()
>
0
and
ft
>
0
and
(
sg
:
GetCount
()
==
0
or
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
72883039
,
3
)))
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg3
=
g3
:
Select
(
tp
,
1
,
1
,
nil
)
sg
:
Merge
(
sg3
)
end
local
g
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
c72883039
.
spfilter
),
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
nil
,
e
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c72883039
.
gselect
,
false
,
1
,
math.min
(
ft
,
3
))
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
true
,
false
,
POS_FACEUP
)
end
c84869738.lua
View file @
b2835ebe
...
...
@@ -29,9 +29,6 @@ end
function
c84869738
.
desfilter
(
c
)
return
not
c84869738
.
cfilter
(
c
)
end
function
c84869738
.
mzfilter
(
c
)
return
c
:
GetSequence
()
<
5
end
function
c84869738
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x20f8
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
true
,
false
)
end
...
...
@@ -39,7 +36,7 @@ function c84869738.target(e,tp,eg,ep,ev,re,r,rp,chk)
local
g
=
Duel
.
GetMatchingGroup
(
c84869738
.
desfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
if
chk
==
0
then
local
loc
=
0
if
Duel
.
Get
LocationCount
(
tp
,
LOCATION_MZONE
)
>-
g
:
FilterCount
(
c84869738
.
mzfilter
,
nil
)
then
loc
=
loc
+
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
end
if
Duel
.
Get
MZoneCount
(
tp
,
g
)
>
0
then
loc
=
loc
+
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
end
if
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
g
)
>
0
then
loc
=
loc
+
LOCATION_EXTRA
end
return
g
:
GetCount
()
>
0
and
loc
~=
0
and
Duel
.
IsExistingMatchingCard
(
c84869738
.
spfilter
,
tp
,
loc
,
0
,
1
,
nil
,
e
,
tp
)
...
...
@@ -47,6 +44,11 @@ function c84869738.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
g
:
GetCount
(),
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
+
LOCATION_EXTRA
)
end
function
c84869738
.
gcheck
(
g
,
ft1
,
ft2
,
ft
)
return
aux
.
dncheck
(
g
)
and
#
g
<=
ft
and
g
:
FilterCount
(
Card
.
IsLocation
,
nil
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
)
<=
ft1
and
g
:
FilterCount
(
Card
.
IsLocation
,
nil
,
LOCATION_EXTRA
)
<=
ft2
end
function
c84869738
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
dg
=
Duel
.
GetMatchingGroup
(
c84869738
.
desfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
if
Duel
.
Destroy
(
dg
,
REASON_EFFECT
)
==
0
then
return
end
...
...
@@ -64,22 +66,10 @@ function c84869738.activate(e,tp,eg,ep,ev,re,r,rp)
if
loc
==
0
then
return
end
local
ect
=
c29724053
and
Duel
.
IsPlayerAffectedByEffect
(
tp
,
29724053
)
and
c29724053
[
tp
]
if
ect
and
ect
<
ft2
then
ft2
=
ect
end
local
ct
=
4
local
sg
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
c84869738
.
spfilter
),
tp
,
loc
,
0
,
nil
,
e
,
tp
)
if
sg
:
GetCount
()
==
0
then
return
end
local
rg
=
Group
.
CreateGroup
()
repeat
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tc
=
sg
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
rg
:
AddCard
(
tc
)
sg
:
Remove
(
Card
.
IsCode
,
nil
,
tc
:
GetCode
())
if
tc
:
IsLocation
(
LOCATION_EXTRA
)
then
ft2
=
ft2
-
1
else
ft1
=
ft1
-
1
end
if
ft1
<=
0
then
sg
:
Remove
(
Card
.
IsLocation
,
nil
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
)
end
if
ft2
<=
0
then
sg
:
Remove
(
Card
.
IsLocation
,
nil
,
LOCATION_EXTRA
)
end
ft
=
ft
-
1
ct
=
ct
-
1
until
ct
==
0
or
sg
:
GetCount
()
==
0
or
ft
==
0
or
not
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
84869738
,
0
))
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
rg
=
sg
:
SelectSubGroup
(
tp
,
c84869738
.
gcheck
,
false
,
1
,
4
,
ft1
,
ft2
,
ft
)
Duel
.
SpecialSummon
(
rg
,
0
,
tp
,
tp
,
true
,
false
,
POS_FACEUP
)
end
function
c84869738
.
xyzfilter
(
c
)
...
...
c91588074.lua
View file @
b2835ebe
...
...
@@ -39,25 +39,13 @@ function c91588074.spcon(e,c)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToDeckOrExtraAsCost
,
c
:
GetControler
(),
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
c
)
return
g
:
GetClassCount
(
Card
.
GetCode
)
>=
10
and
(
ft
>
0
or
g
:
IsExists
(
Card
.
IsLocation
,
ct
,
nil
,
LOCATION_MZONE
))
end
function
c91588074
.
gselect
(
g
,
tp
)
return
aux
.
dncheck
(
g
)
and
Duel
.
GetMZoneCount
(
tp
,
g
)
>
0
end
function
c91588074
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=-
ft
+
1
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToDeckOrExtraAsCost
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
c
)
local
rg
=
Group
.
CreateGroup
()
for
i
=
1
,
10
do
local
tc
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
if
ct
>
0
then
tc
=
g
:
FilterSelect
(
tp
,
Card
.
IsLocation
,
1
,
1
,
nil
,
LOCATION_MZONE
):
GetFirst
()
else
tc
=
g
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
end
if
tc
then
rg
:
AddCard
(
tc
)
g
:
Remove
(
Card
.
IsCode
,
nil
,
tc
:
GetCode
())
end
ct
=
ct
-
1
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
rg
=
g
:
SelectSubGroup
(
tp
,
c91588074
.
gselect
,
false
,
10
,
10
,
tp
)
local
cg
=
rg
:
Filter
(
Card
.
IsFacedown
,
nil
)
if
cg
:
GetCount
()
>
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
cg
)
...
...
c95403418.lua
View file @
b2835ebe
...
...
@@ -62,23 +62,13 @@ function c95403418.spcon(e,c)
local
ct
=-
ft
+
1
return
mg
:
GetCount
()
>
0
and
(
ft
>
0
or
mg
:
IsExists
(
c95403418
.
mzfilter
,
ct
,
nil
))
end
function
c95403418
.
gselect
(
g
,
tp
)
return
Duel
.
GetMZoneCount
(
tp
,
g
)
>
0
end
function
c95403418
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
mg
=
Duel
.
GetMatchingGroup
(
c95403418
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
nil
if
ft
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
Select
(
tp
,
1
,
7
,
nil
)
else
local
ct
=-
ft
+
1
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
g
=
mg
:
FilterSelect
(
tp
,
c95403418
.
mzfilter
,
ct
,
ct
,
nil
)
if
mg
:
GetCount
()
>
ct
and
Duel
.
SelectYesNo
(
tp
,
210
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g2
=
mg
:
Select
(
tp
,
1
,
7
,
g
)
g
:
Merge
(
g2
)
end
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
mg
:
SelectSubGroup
(
tp
,
c95403418
.
gselect
,
false
,
1
,
#
mg
,
tp
)
local
ct
=
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
...
...
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