Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-pre-data
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
MyCard
ygopro-pre-data
Commits
366e8449
Commit
366e8449
authored
Nov 19, 2019
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update scripts
parent
7f7e6fcf
Changes
43
Hide whitespace changes
Inline
Side-by-side
Showing
43 changed files
with
408 additions
and
518 deletions
+408
-518
script/c100257001.lua
script/c100257001.lua
+13
-16
script/c100257006.lua
script/c100257006.lua
+7
-7
script/c100257011.lua
script/c100257011.lua
+9
-14
script/c100257021.lua
script/c100257021.lua
+1
-1
script/c100257026.lua
script/c100257026.lua
+3
-5
script/c100257031.lua
script/c100257031.lua
+14
-14
script/c100257036.lua
script/c100257036.lua
+15
-15
script/c100257041.lua
script/c100257041.lua
+10
-16
script/c100257046.lua
script/c100257046.lua
+5
-11
script/c100257051.lua
script/c100257051.lua
+4
-3
script/c100257066.lua
script/c100257066.lua
+18
-19
script/c100257071.lua
script/c100257071.lua
+1
-0
script/c100257076.lua
script/c100257076.lua
+2
-2
script/c100257081.lua
script/c100257081.lua
+1
-0
script/c100257086.lua
script/c100257086.lua
+2
-2
script/c100257091.lua
script/c100257091.lua
+7
-10
script/c100257096.lua
script/c100257096.lua
+1
-1
script/c100337001.lua
script/c100337001.lua
+10
-15
script/c100423001.lua
script/c100423001.lua
+7
-7
script/c100423002.lua
script/c100423002.lua
+4
-4
script/c100423004.lua
script/c100423004.lua
+35
-108
script/c100423005.lua
script/c100423005.lua
+2
-2
script/c100423012.lua
script/c100423012.lua
+17
-3
script/c100423013.lua
script/c100423013.lua
+1
-2
script/c100423014.lua
script/c100423014.lua
+30
-62
script/c100423015.lua
script/c100423015.lua
+3
-5
script/c100423016.lua
script/c100423016.lua
+2
-5
script/c100423023.lua
script/c100423023.lua
+12
-16
script/c100423024.lua
script/c100423024.lua
+3
-3
script/c100423025.lua
script/c100423025.lua
+3
-2
script/c100423026.lua
script/c100423026.lua
+9
-10
script/c100423027.lua
script/c100423027.lua
+3
-3
script/c100423034.lua
script/c100423034.lua
+9
-7
script/c100423035.lua
script/c100423035.lua
+7
-5
script/c100423036.lua
script/c100423036.lua
+4
-2
script/c100423038.lua
script/c100423038.lua
+2
-3
script/c100423045.lua
script/c100423045.lua
+18
-6
script/c100423046.lua
script/c100423046.lua
+14
-22
script/c100423047.lua
script/c100423047.lua
+23
-27
script/c100423048.lua
script/c100423048.lua
+55
-32
script/c100423049.lua
script/c100423049.lua
+3
-3
script/c101012001.lua
script/c101012001.lua
+8
-18
script/c101012049.lua
script/c101012049.lua
+11
-10
No files found.
script/c100257001.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100257001
.
initial_effect
(
c
)
--link summon
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
nil
,
5
,
5
)
--spsummon condition
...
...
@@ -9,7 +10,7 @@ function c100257001.initial_effect(c)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e1
:
SetValue
(
aux
.
lnklimit
)
e1
:
SetValue
(
aux
.
l
i
nklimit
)
c
:
RegisterEffect
(
e1
)
--mat check
local
e2
=
Effect
.
CreateEffect
(
c
)
...
...
@@ -24,10 +25,10 @@ function c100257001.initial_effect(c)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetLabelObject
(
e2
)
e3
:
SetCondition
(
c100257001
.
descon
)
e3
:
SetTarget
(
c100257001
.
destg
)
e3
:
SetOperation
(
c100257001
.
desop
)
e3
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e3
)
--immume
local
e4
=
Effect
.
CreateEffect
(
c
)
...
...
@@ -55,12 +56,6 @@ function c100257001.initial_effect(c)
e6
:
SetOperation
(
c100257001
.
rmop
)
c
:
RegisterEffect
(
e6
)
end
function
c100257001
.
efilter
(
e
,
te
)
return
te
:
GetOwner
()
~=
e
:
GetOwner
()
end
function
c100257001
.
indes
(
e
,
c
)
return
c
:
IsAttribute
(
ATTRIBUTE_DARK
+
ATTRIBUTE_EARTH
+
ATTRIBUTE_WATER
+
ATTRIBUTE_FIRE
+
ATTRIBUTE_WIND
)
end
function
c100257001
.
matcheck
(
e
,
c
)
local
g
=
c
:
GetMaterial
()
local
att
=
0
...
...
@@ -86,6 +81,12 @@ function c100257001.desop(e,tp,eg,ep,ev,re,r,rp)
local
g
=
Duel
.
GetMatchingGroup
(
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
nil
)
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
end
function
c100257001
.
efilter
(
e
,
te
)
return
te
:
GetOwner
()
~=
e
:
GetOwner
()
end
function
c100257001
.
indes
(
e
,
c
)
return
c
:
IsAttribute
(
ATTRIBUTE_DARK
+
ATTRIBUTE_EARTH
+
ATTRIBUTE_WATER
+
ATTRIBUTE_FIRE
+
ATTRIBUTE_WIND
)
end
function
c100257001
.
rmcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetTurnPlayer
()
==
1
-
tp
end
...
...
@@ -96,19 +97,15 @@ function c100257001.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function
c100257001
.
rmop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
res
=
tru
e
local
res
=
fals
e
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToRemove
,
tp
,
LOCATION_GRAVE
,
0
,
nil
)
if
g
:
GetCount
()
>=
5
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
Card
.
IsAbleToRemove
,
tp
,
LOCATION_GRAVE
,
0
,
5
,
5
,
nil
)
Duel
.
Remove
(
sg
,
POS_FACEDOWN
,
REASON_EFFECT
)
local
tc
=
sg
:
GetFirst
()
while
tc
do
res
=
res
and
tc
:
IsLocation
(
LOCATION_REMOVED
)
tc
=
sg
:
GetNext
()
end
else
res
=
false
end
if
res
==
false
and
c
:
IsRelateToEffect
(
e
)
then
if
Duel
.
GetOperatedGroup
():
FilterCount
(
Card
.
IsLocation
,
nil
,
LOCATION_REMOVED
)
==
5
then
res
=
true
end
end
if
not
res
and
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SendtoGrave
(
c
,
REASON_EFFECT
)
end
end
script/c100257006.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100257006
.
initial_effect
(
c
)
--link summon
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
nil
,
2
,
2
)
--to grave
...
...
@@ -36,20 +37,19 @@ end
function
c100257006
.
tgfilter
(
c
)
return
c
:
IsSetCard
(
0xd6
)
and
c
:
IsAbleToGrave
()
end
function
c100257006
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0xd7
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100257006
.
tgtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100257006
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
tp
,
LOCATION_DECK
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
function
c100257006
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0xd7
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100257006
.
tgop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100257006
.
tgfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
local
tc
=
g
:
GetFirst
()
if
tc
and
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
~=
0
and
tc
:
IsLocation
(
LOCATION_GRAVE
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100257006
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
~=
0
and
g
:
GetFirst
():
IsLocation
(
LOCATION_GRAVE
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100257006
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
100257006
,
2
))
then
Duel
.
BreakEffect
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
...
...
@@ -66,7 +66,7 @@ end
function
c100257006
.
damtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
tp
)
and
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
c100257006
.
damfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c100257006
.
damfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_
SELF
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_
FACEUP
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100257006
.
damfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
1
-
tp
,
g
:
GetFirst
():
GetAttack
())
end
...
...
script/c100257011.lua
View file @
366e8449
...
...
@@ -29,7 +29,7 @@ function c100257011.lcheck(g,lc)
end
function
c100257011
.
lmlimit
(
e
)
local
c
=
e
:
GetHandler
()
return
c
:
IsS
ummonType
(
SUMMON_TYPE_LINK
)
and
c
:
GetTurnID
()
==
Duel
.
GetTurnCount
(
)
return
c
:
IsS
tatus
(
STATUS_SPSUMMON_TURN
)
and
c
:
IsSummonType
(
SUMMON_TYPE_LINK
)
end
function
c100257011
.
cfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
...
...
@@ -51,16 +51,11 @@ function c100257011.eqop(e,tp,eg,ep,ev,re,r,rp)
local
tc
=
Duel
.
GetFirstTarget
()
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<=
0
then
return
end
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
local
flag
=
0
local
att
=
tc
:
GetOriginalAttribute
()
local
race
=
tc
:
GetOriginalRace
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EQUIP
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100257011
.
eqfilter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
att
,
race
,
tp
)
local
gc
=
g
:
GetFirst
()
if
gc
:
IsLocation
(
LOCATION_DECK
)
then
flag
=
1
end
if
not
Duel
.
Equip
(
tp
,
gc
,
tc
)
then
return
end
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100257011
.
eqfilter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
tc
:
GetOriginalAttribute
(),
tc
:
GetOriginalRace
(),
tp
)
local
sc
=
g
:
GetFirst
()
local
res
=
sc
:
IsLocation
(
LOCATION_DECK
)
and
true
or
false
if
not
Duel
.
Equip
(
tp
,
sc
,
tc
)
then
return
end
--equip limit
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
...
...
@@ -69,21 +64,21 @@ function c100257011.eqop(e,tp,eg,ep,ev,re,r,rp)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetLabelObject
(
tc
)
e1
:
SetValue
(
c100257011
.
eqlimit
)
g
c
:
RegisterEffect
(
e1
)
s
c
:
RegisterEffect
(
e1
)
--atk up
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_EQUIP
)
e2
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e2
:
SetValue
(
1000
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
g
c
:
RegisterEffect
(
e2
)
if
flag
==
1
then
s
c
:
RegisterEffect
(
e2
)
if
res
then
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e3
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e3
:
SetTargetRange
(
1
,
0
)
e3
:
SetLabel
(
g
c
:
GetCode
())
e3
:
SetLabel
(
s
c
:
GetCode
())
e3
:
SetTarget
(
c100257011
.
splimit
)
e3
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e3
,
tp
)
...
...
script/c100257021.lua
View file @
366e8449
...
...
@@ -74,7 +74,7 @@ function c100257021.thop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
c100257021
.
thfilter
),
tp
,
LOCATION_GRAVE
,
0
,
nil
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
dncheck
,
false
,
1
,
2
)
if
sg
then
if
sg
and
sg
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
sg
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
end
...
...
script/c100257026.lua
View file @
366e8449
...
...
@@ -71,19 +71,17 @@ function c100257026.desrepop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
Destroy
(
tc
,
REASON_EFFECT
+
REASON_REPLACE
)
end
function
c100257026
.
spfilter
(
c
,
e
,
tp
,
lv
)
return
c
:
IsRace
(
RACE_WINDBEAST
)
and
c
:
Is
CanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
c
:
IsLevelBelow
(
lv
)
return
c
:
IsRace
(
RACE_WINDBEAST
)
and
c
:
Is
LevelBelow
(
lv
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100257026
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
ct
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
ct
=
ct
+
Duel
.
GetLocationCount
(
1
-
tp
,
LOCATION_SZONE
)
local
ct
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
,
PLAYER_NONE
,
0
)
+
Duel
.
GetLocationCount
(
1
-
tp
,
LOCATION_SZONE
,
PLAYER_NONE
,
0
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100257026
.
spfilter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
,
ct
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
)
end
function
c100257026
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
local
ct
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
ct
=
ct
+
Duel
.
GetLocationCount
(
1
-
tp
,
LOCATION_SZONE
)
local
ct
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
,
PLAYER_NONE
,
0
)
+
Duel
.
GetLocationCount
(
1
-
tp
,
LOCATION_SZONE
,
PLAYER_NONE
,
0
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100257026
.
spfilter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
,
ct
)
if
g
:
GetCount
()
>
0
then
...
...
script/c100257031.lua
View file @
366e8449
...
...
@@ -32,12 +32,6 @@ function c100257031.initial_effect(c)
c
:
RegisterEffect
(
e3
)
Duel
.
AddCustomActivityCounter
(
100257031
,
ACTIVITY_SPSUMMON
,
c100257031
.
counterfilter
)
end
function
c100257031
.
atktg
(
e
,
c
)
return
e
:
GetHandler
():
GetLinkedGroup
():
IsContains
(
c
)
and
c
:
IsRace
(
RACE_FIEND
)
end
function
c100257031
.
atkval
(
e
,
c
)
return
c
:
GetLevel
()
*
100
end
function
c100257031
.
counterfilter
(
c
)
return
c
:
IsSetCard
(
0x8
)
end
...
...
@@ -59,11 +53,11 @@ function c100257031.splimit(e,c)
return
not
c
:
IsSetCard
(
0x8
)
end
function
c100257031
.
ffilter
(
c
,
tp
)
return
c
:
IsType
(
TYPE_FUSION
)
and
c
:
IsSetCard
(
0x8
)
and
c
.
material
and
Duel
.
IsExistingMatchingCard
(
c100257031
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
c
)
return
c
:
IsType
(
TYPE_FUSION
)
and
c
:
IsSetCard
(
0x8
)
and
Duel
.
IsExistingMatchingCard
(
c100257031
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
c
)
end
function
c100257031
.
thfilter
(
c
,
fc
)
return
c
:
IsCode
(
table.unpack
(
fc
.
material
))
and
c
:
IsAbleToHand
()
and
c
:
IsType
(
TYPE_MONSTER
)
return
aux
.
IsMaterialListCode
(
fc
,
c
:
GetCode
(
))
and
c
:
IsAbleToHand
()
and
c
:
IsType
(
TYPE_MONSTER
)
end
function
c100257031
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100257031
.
ffilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
tp
)
end
...
...
@@ -71,15 +65,21 @@ function c100257031.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function
c100257031
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_CONFIRM
)
local
r
c
=
Duel
.
SelectMatchingCard
(
tp
,
c100257031
.
ffilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
tp
):
GetFirst
()
if
r
c
then
Duel
.
ConfirmCards
(
1
-
tp
,
r
c
)
local
t
c
=
Duel
.
SelectMatchingCard
(
tp
,
c100257031
.
ffilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
tp
):
GetFirst
()
if
t
c
then
Duel
.
ConfirmCards
(
1
-
tp
,
t
c
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
GetMatchingGroup
(
c100257031
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
r
c
)
local
g
=
Duel
.
GetMatchingGroup
(
c100257031
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
t
c
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
dncheck
,
false
,
1
,
2
)
if
sg
then
if
sg
and
sg
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
sg
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
end
end
end
function
c100257031
.
atktg
(
e
,
c
)
return
e
:
GetHandler
():
GetLinkedGroup
():
IsContains
(
c
)
and
c
:
IsRace
(
RACE_FIEND
)
end
function
c100257031
.
atkval
(
e
,
c
)
return
c
:
GetLevel
()
*
100
end
script/c100257036.lua
View file @
366e8449
...
...
@@ -2,9 +2,10 @@
--Scripted by mallu11
function
c100257036
.
initial_effect
(
c
)
c
:
EnableCounterPermit
(
0x1
)
--link summon
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
nil
,
2
,
3
,
c100257036
.
lcheck
)
c
:
EnableCounterPermit
(
0x1
)
--add counter
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100257036
,
0
))
...
...
@@ -41,35 +42,34 @@ end
function
c100257036
.
lcheck
(
g
,
lc
)
return
g
:
IsExists
(
Card
.
IsLinkRace
,
1
,
nil
,
RACE_SPELLCASTER
)
end
function
c100257036
.
atfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x12a
)
end
function
c100257036
.
atcon
(
e
)
return
Duel
.
IsExistingMatchingCard
(
c100257036
.
atfilter
,
e
:
GetHandlerPlayer
(),
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
nil
)
end
function
c100257036
.
ctfilter
(
c
)
return
c
:
IsFaceup
(
)
and
c
:
IsType
(
TYPE_SPELL
)
return
(
c
:
IsLocation
(
LOCATION_GRAVE
)
or
c
:
IsFaceup
()
)
and
c
:
IsType
(
TYPE_SPELL
)
end
function
c100257036
.
ctcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_LINK
)
end
function
c100257036
.
ctop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
loc
=
LOCATION_ONFIELD
+
LOCATION_GRAVE
local
g
=
Duel
.
GetMatchingGroup
(
c100257036
.
ctfilter
,
tp
,
loc
,
loc
,
nil
)
if
c
:
IsRelateToEffect
(
e
)
and
c
:
IsFaceup
()
and
g
:
GetCount
()
>
0
then
local
g
=
Duel
.
GetMatchingGroup
(
c100257036
.
ctfilter
,
tp
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
LOCATION_ONFIELD
+
LOCATION_GRAVE
,
nil
)
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
and
g
:
GetCount
()
>
0
then
c
:
AddCounter
(
0x1
,
g
:
GetCount
())
end
end
function
c100257036
.
spfilter
(
c
,
e
,
tp
,
zone
)
return
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
,
tp
,
zone
)
function
c100257036
.
atfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x12a
)
end
function
c100257036
.
atcon
(
e
)
return
Duel
.
IsExistingMatchingCard
(
c100257036
.
atfilter
,
e
:
GetHandlerPlayer
(),
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
nil
)
end
function
c100257036
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetCurrentPhase
()
==
PHASE_MAIN1
or
Duel
.
GetCurrentPhase
()
==
PHASE_MAIN2
end
function
c100257036
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsCanRemoveCounter
(
tp
,
LOCATION_ONFIELD
,
0
,
0x1
,
3
,
REASON_COST
)
end
Duel
.
RemoveCounter
(
tp
,
LOCATION_ONFIELD
,
0
,
0x1
,
3
,
REASON_COST
)
if
chk
==
0
then
return
Duel
.
IsCanRemoveCounter
(
tp
,
1
,
0
,
0x1
,
3
,
REASON_COST
)
end
Duel
.
RemoveCounter
(
tp
,
1
,
0
,
0x1
,
3
,
REASON_COST
)
end
function
c100257036
.
spfilter
(
c
,
e
,
tp
,
zone
)
return
c
:
IsRace
(
RACE_SPELLCASTER
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
,
tp
,
zone
)
end
function
c100257036
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
zone
=
bit
.
band
(
e
:
GetHandler
():
GetLinkedZone
(
tp
),
0x1f
)
...
...
script/c100257041.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100257041
.
initial_effect
(
c
)
--link summon
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
nil
,
2
,
2
,
c100257041
.
lcheck
)
--spsummon1
...
...
@@ -45,27 +46,20 @@ function c100257041.spfilter1(c,e,tp)
return
c
:
IsType
(
TYPE_SYNCHRO
)
and
(
c
:
IsSetCard
(
0x123
)
or
c
:
IsRace
(
RACE_PLANT
))
and
c
:
IsCanBeSpecialSummoned
(
e
,
SUMMON_TYPE_SYNCHRO
,
tp
,
false
,
false
)
end
function
c100257041
.
spcost1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
e
:
SetLabel
(
1
)
if
chk
==
0
then
return
true
end
end
function
c100257041
.
sptg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
if
e
:
GetLabel
()
==
0
then
return
false
end
e
:
SetLabel
(
0
)
return
c
:
IsReleasable
()
and
Duel
.
CheckReleaseGroup
(
tp
,
c100257041
.
rfilter
,
1
,
c
,
e
,
tp
,
c
)
and
aux
.
MustMaterialCheck
(
nil
,
tp
,
EFFECT_MUST_BE_SMATERIAL
)
and
Duel
.
IsExistingMatchingCard
(
c100257041
.
spfilter1
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
)
end
e
:
SetLabel
(
0
)
if
chk
==
0
then
return
c
:
IsReleasable
()
and
Duel
.
CheckReleaseGroup
(
tp
,
c100257041
.
rfilter
,
1
,
c
,
e
,
tp
,
c
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
c100257041
.
rfilter
,
1
,
1
,
c
,
e
,
tp
,
c
)
g
:
AddCard
(
c
)
Duel
.
Release
(
g
,
REASON_COST
)
end
function
c100257041
.
sptg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
aux
.
MustMaterialCheck
(
nil
,
tp
,
EFFECT_MUST_BE_SMATERIAL
)
and
Duel
.
IsExistingMatchingCard
(
c100257041
.
spfilter1
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_EXTRA
)
end
function
c100257041
.
spop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCountFromEx
(
tp
)
<=
0
then
return
end
if
Duel
.
GetLocationCountFromEx
(
tp
)
<=
0
or
not
aux
.
MustMaterialCheck
(
nil
,
tp
,
EFFECT_MUST_BE_SMATERIAL
)
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100257041
.
spfilter1
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
tc
=
g
:
GetFirst
()
...
...
@@ -76,12 +70,12 @@ end
function
c100257041
.
cfilter
(
c
,
tp
)
return
c
:
IsPreviousLocation
(
LOCATION_MZONE
)
and
c
:
GetPreviousControler
()
==
tp
and
c
:
IsReason
(
REASON_EFFECT
)
end
function
c100257041
.
spfilter2
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x1123
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100257041
.
spcon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
c100257041
.
cfilter
,
1
,
nil
,
tp
)
and
not
eg
:
IsContains
(
e
:
GetHandler
())
end
function
c100257041
.
spfilter2
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x1123
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100257041
.
sptg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100257041
.
spfilter2
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
...
...
script/c100257046.lua
View file @
366e8449
...
...
@@ -35,9 +35,9 @@ function c100257046.atkcon(e,tp,eg,ep,ev,re,r,rp)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_LINK
)
end
function
c100257046
.
atktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
1
-
tp
)
and
chkc
:
IsFaceup
()
and
chkc
:
GetAttack
()
>
0
end
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
1
-
tp
)
and
aux
.
nzatk
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
aux
.
nzatk
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_
OPPO
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_
FACEUP
)
Duel
.
SelectTarget
(
tp
,
aux
.
nzatk
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
end
function
c100257046
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
...
@@ -53,29 +53,23 @@ function c100257046.atkop(e,tp,eg,ep,ev,re,r,rp)
end
end
function
c100257046
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
GetAttack
()
==
0
return
c
:
IsFaceup
()
and
c
:
IsAttack
(
0
)
end
function
c100257046
.
thfilter
(
c
)
return
c
:
IsRace
(
RACE_REPTILE
)
and
c
:
IsAbleToHand
()
end
function
c100257046
.
fselect
(
g
)
if
g
:
GetClassCount
(
Card
.
GetCode
)
==
g
:
GetCount
()
then
Duel
.
SetSelectedCard
(
g
)
return
true
else
return
false
end
end
function
c100257046
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
ct
=
Duel
.
GetMatchingGroupCount
(
c100257046
.
cfilter
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c100257046
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
if
chk
==
0
then
return
ct
>
0
and
g
:
GetCount
()
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
0
,
tp
,
LOCATION_DECK
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c100257046
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ct
=
Duel
.
GetMatchingGroupCount
(
c100257046
.
cfilter
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
c100257046
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
if
ct
>
0
and
g
:
GetCount
()
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c100257046
.
fselect
,
false
,
1
,
ct
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
dncheck
,
false
,
1
,
ct
)
if
sg
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
sg
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
...
...
script/c100257051.lua
View file @
366e8449
...
...
@@ -31,14 +31,15 @@ function c100257051.tkcon(e,tp,eg,ep,ev,re,r,rp)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_LINK
)
end
function
c100257051
.
tktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
2
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
100257151
,
0x101b
,
0x4011
,
0
,
0
,
3
,
RACE_MACHINE
,
ATTRIBUTE_WIND
)
end
if
chk
==
0
then
return
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
2
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
31533705
,
0x101b
,
0x4011
,
0
,
0
,
3
,
RACE_MACHINE
,
ATTRIBUTE_WIND
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
3
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOKEN
,
nil
,
3
,
0
,
0
)
end
function
c100257051
.
tkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
2
and
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
100257151
,
0x101b
,
0x4011
,
0
,
0
,
3
,
RACE_MACHINE
,
ATTRIBUTE_WIND
)
then
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
31533705
,
0x101b
,
0x4011
,
0
,
0
,
3
,
RACE_MACHINE
,
ATTRIBUTE_WIND
)
then
local
ct
=
3
while
ct
>
0
do
local
token
=
Duel
.
CreateToken
(
tp
,
100257151
)
...
...
script/c100257066.lua
View file @
366e8449
--幻奏の華
樂
聖ブルーム・ハーモニスト
--幻奏の華
楽
聖ブルーム・ハーモニスト
--Scripted by mallu11
function
c100257066
.
initial_effect
(
c
)
...
...
@@ -30,13 +30,6 @@ function c100257066.initial_effect(c)
c
:
RegisterEffect
(
e2
)
Duel
.
AddCustomActivityCounter
(
100257066
,
ACTIVITY_SPSUMMON
,
c100257066
.
counterfilter
)
end
function
c100257066
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x9b
)
end
function
c100257066
.
actcon
(
e
)
local
a
=
Duel
.
GetAttacker
()
return
a
and
c100257066
.
cfilter
(
a
)
and
e
:
GetHandler
():
GetLinkedGroup
():
IsContains
(
a
)
end
function
c100257066
.
counterfilter
(
c
)
return
c
:
IsSetCard
(
0x9b
)
end
...
...
@@ -62,28 +55,34 @@ end
function
c100257066
.
spfilter
(
c
,
e
,
tp
,
zone
)
return
c
:
IsSetCard
(
0x9b
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
,
tp
,
zone
)
end
function
c100257066
.
fselect
(
g
)
if
g
:
GetClassCount
(
Card
.
GetLevel
)
==
g
:
GetCount
()
then
Duel
.
SetSelectedCard
(
g
)
return
true
else
return
false
end
end
function
c100257066
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
zone
=
bit
.
band
(
e
:
GetHandler
():
GetLinkedZone
(
tp
),
0x1f
)
local
c
t
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
local
f
t
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
local
g
=
Duel
.
GetMatchingGroup
(
c100257066
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
e
,
tp
,
zone
)
if
chk
==
0
then
return
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
ct
>
1
and
g
:
GetClassCount
(
Card
.
GetLevel
)
>=
2
end
if
chk
==
0
then
return
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
ft
>
1
and
g
:
GetClassCount
(
Card
.
GetLevel
)
>=
2
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
2
,
tp
,
LOCATION_DECK
)
end
function
c100257066
.
fselect
(
g
)
return
g
:
GetClassCount
(
Card
.
GetLevel
)
==
g
:
GetCount
()
end
function
c100257066
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
zone
=
bit
.
band
(
c
:
GetLinkedZone
(
tp
),
0x1f
)
local
c
t
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
local
f
t
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
local
g
=
Duel
.
GetMatchingGroup
(
c100257066
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
e
,
tp
,
zone
)
if
c
:
IsRelateToEffect
(
e
)
and
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
ct
>
1
and
g
:
GetClassCount
(
Card
.
GetLevel
)
>=
2
then
if
c
:
IsRelateToEffect
(
e
)
and
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
ft
>
1
and
g
:
GetClassCount
(
Card
.
GetLevel
)
>=
2
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c100257066
.
fselect
,
false
,
2
,
2
)
if
sg
:
GetCount
()
==
2
then
if
sg
and
sg
:
GetCount
()
==
2
then
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
,
zone
)
end
end
end
function
c100257066
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x9b
)
end
function
c100257066
.
actcon
(
e
)
local
a
=
Duel
.
GetAttacker
()
return
a
and
c100257066
.
cfilter
(
a
)
and
e
:
GetHandler
():
GetLinkedGroup
():
IsContains
(
a
)
end
script/c100257071.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100257071
.
initial_effect
(
c
)
--link summon
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkType
,
TYPE_EFFECT
),
2
,
2
)
--change attribute
...
...
script/c100257076.lua
View file @
366e8449
...
...
@@ -18,14 +18,14 @@ function c100257076.initial_effect(c)
c
:
RegisterEffect
(
e1
)
end
function
c100257076
.
mfilter
(
c
)
return
c
:
IsSetCard
(
0x10ec
)
and
c
:
IsLinkType
(
TYPE_PENDULUM
)
return
c
:
Is
Link
SetCard
(
0x10ec
)
and
c
:
IsLinkType
(
TYPE_PENDULUM
)
end
function
c100257076
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
Duel
.
IsExistingMatchingCard
(
c100257076
.
stfilter
,
tp
,
LOCATION_EXTRA
+
LOCATION_DECK
,
0
,
1
,
nil
,
c
:
GetCode
())
end
function
c100257076
.
stfilter
(
c
,
code
)
return
(
c
:
IsFaceup
()
or
c
:
IsLocation
(
LOCATION_DECK
))
and
c
:
IsType
(
TYPE_PENDULUM
)
and
c
:
IsSetCard
(
0x10ec
)
and
not
c
:
IsCode
(
code
)
return
(
c
:
IsFaceup
()
or
c
:
IsLocation
(
LOCATION_DECK
))
and
c
:
IsType
(
TYPE_PENDULUM
)
and
c
:
IsSetCard
(
0x10ec
)
and
not
c
:
IsCode
(
code
)
and
not
c
:
IsForbidden
()
end
function
c100257076
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_PZONE
)
and
chkc
:
IsControler
(
tp
)
and
c100257076
.
spfilter
(
chkc
,
e
,
tp
)
end
...
...
script/c100257081.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100257081
.
initial_effect
(
c
)
--link summon
c
:
EnableReviveLimit
()
aux
.
AddLinkProcedure
(
c
,
nil
,
2
,
2
)
--spsummon condition
...
...
script/c100257086.lua
View file @
366e8449
...
...
@@ -11,7 +11,7 @@ function c100257086.initial_effect(c)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e1
:
SetValue
(
aux
.
lnklimit
)
e1
:
SetValue
(
aux
.
l
i
nklimit
)
c
:
RegisterEffect
(
e1
)
--remove
local
e2
=
Effect
.
CreateEffect
(
c
)
...
...
@@ -89,7 +89,7 @@ function c100257086.retop(e,tp,eg,ep,ev,re,r,rp)
end
function
c100257086
.
tgtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
c
=
e
:
GetHandler
()
if
chkc
then
return
chkc
:
Is
Location
(
LOCATION_ONFIELD
)
and
chkc
:
IsControler
(
tp
)
and
chkc
~=
c
end
if
chkc
then
return
chkc
:
Is
OnField
(
)
and
chkc
:
IsControler
(
tp
)
and
chkc
~=
c
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
aux
.
TRUE
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
c
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectTarget
(
tp
,
aux
.
TRUE
,
tp
,
LOCATION_ONFIELD
,
0
,
1
,
1
,
c
)
...
...
script/c100257091.lua
View file @
366e8449
...
...
@@ -47,18 +47,18 @@ function c100257091.atkcon(e,tp,eg,ep,ev,re,r,rp)
return
re
:
IsActiveType
(
TYPE_MONSTER
)
and
Duel
.
GetChainInfo
(
ev
,
CHAININFO_TRIGGERING_LOCATION
)
==
LOCATION_GRAVE
and
e
:
GetHandler
():
GetFlagEffect
(
1
)
>
0
end
function
c100257091
.
atkcon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
c100257091
.
spfilter
,
1
,
nil
)
and
not
eg
:
IsContains
(
e
:
GetHandler
())
end
function
c100257091
.
spfilter
(
c
)
return
c
:
GetSummonLocation
()
==
LOCATION_GRAVE
end
function
c100257091
.
atkcon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
c100257091
.
spfilter
,
1
,
nil
)
and
not
eg
:
IsContains
(
e
:
GetHandler
())
end
function
c100257091
.
atkfilter
(
c
)
return
c
:
IsFaceup
()
and
not
(
c
:
GetAttack
()
==
0
and
(
c
:
IsDisabled
()
or
(
not
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
GetOriginalType
()
&
TYPE_EFFECT
==
0
)))
return
c
:
IsFaceup
()
and
c
:
GetAttack
()
>
0
end
function
c100257091
.
atktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
c
=
e
:
GetHandler
()
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
c
hkc
~=
c
and
c100257091
.
atkfilter
(
chkc
)
end
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
c
100257091
.
atkfilter
(
chkc
)
and
chkc
~=
c
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c100257091
.
atkfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
c
)
end
local
g
=
Duel
.
SelectTarget
(
tp
,
c100257091
.
atkfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
c
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DISABLE
,
g
,
1
,
0
,
0
)
...
...
@@ -66,25 +66,22 @@ end
function
c100257091
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
and
tc
:
GetAttack
()
>
0
then
Duel
.
NegateRelatedChain
(
tc
,
RESET_TURN_SET
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_ATTACK_FINAL
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetValue
(
0
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e1
)
Duel
.
NegateRelatedChain
(
tc
,
RESET_TURN_SET
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_DISABLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_DISABLE_EFFECT
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e3
:
SetValue
(
RESET_TURN_SET
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e3
)
...
...
script/c100257096.lua
View file @
366e8449
...
...
@@ -52,7 +52,7 @@ function c100257096.tktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
1
-
tp
)
and
c100257096
.
tkfilter
(
chkc
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c100257096
.
tkfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
,
tp
)
end
local
g
=
Duel
.
SelectTarget
(
tp
,
c100257096
.
tkfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
,
tp
)
Duel
.
SelectTarget
(
tp
,
c100257096
.
tkfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOKEN
,
nil
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
0
)
end
...
...
script/c100337001.lua
View file @
366e8449
...
...
@@ -64,20 +64,15 @@ function c100337001.tgop(e,tp,eg,ep,ev,re,r,rp)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
c100337001
.
tgfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
):
GetFirst
()
if
tc
and
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
~=
0
and
tc
:
IsLocation
(
LOCATION_GRAVE
)
then
local
lv
=
tc
:
GetOriginalLevel
()
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
gc
=
g
:
GetFirst
()
while
gc
do
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
)
e1
:
SetValue
(
lv
*
100
)
gc
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
gc
:
RegisterEffect
(
e2
)
gc
=
g
:
GetNext
()
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e1
:
SetValue
(
lv
*
100
)
e1
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
Duel
.
RegisterEffect
(
e2
,
tp
)
end
end
script/c100423001.lua
View file @
366e8449
...
...
@@ -47,6 +47,7 @@ function c100423001.drop(e,tp,eg,ep,ev,re,r,rp)
local
dc
=
Duel
.
GetOperatedGroup
():
GetFirst
()
if
dc
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
dc
:
IsSSetable
()
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
100423001
,
0
))
then
Duel
.
BreakEffect
()
Duel
.
SSet
(
tp
,
dc
)
if
dc
:
IsType
(
TYPE_QUICKPLAY
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
...
...
@@ -75,19 +76,18 @@ function c100423001.spfilter2(c,e,tp)
return
c
:
IsCode
(
38033121
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423001
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
loc
=
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100423001
.
spfilter1
,
tp
,
loc
,
0
,
1
,
nil
,
e
,
tp
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
and
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
2
,
tp
,
loc
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100423001
.
spfilter1
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
and
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
2
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
)
end
function
c100423001
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
return
end
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<
2
then
return
end
local
loc
=
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c100423001
.
spfilter1
),
tp
,
loc
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
g1
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c100423001
.
spfilter1
),
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c100423001
.
spfilter2
),
tp
,
loc
,
0
,
1
,
1
,
g1
:
GetFirst
(),
e
,
tp
)
local
g2
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c100423001
.
spfilter2
),
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
g1
:
GetFirst
(),
e
,
tp
)
g1
:
Merge
(
g2
)
if
g1
:
GetCount
()
==
2
then
Duel
.
SpecialSummon
(
g1
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
...
...
script/c100423002.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100423002
.
initial_effect
(
c
)
aux
.
AddCodeList
(
c
,
46986414
,
38033121
)
--spsummon
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
...
...
@@ -79,11 +80,10 @@ function c100423002.drfilter(c)
end
function
c100423002
.
drcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100423002
.
drfilter
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
1
,
nil
)
end
local
gc
=
1
if
Duel
.
IsPlayerCanDraw
(
tp
,
2
)
then
gc
=
2
end
local
g1
=
Duel
.
GetMatchingGroup
(
c100423002
.
drfilter
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
nil
)
local
ct
=
1
if
Duel
.
IsPlayerCanDraw
(
tp
,
2
)
then
ct
=
2
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
g1
:
Select
(
tp
,
1
,
gc
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100423002
.
drfilter
,
tp
,
LOCATION_HAND
+
LOCATION_ONFIELD
,
0
,
1
,
ct
,
nil
)
e
:
SetLabel
(
Duel
.
SendtoGrave
(
g
,
REASON_COST
))
end
function
c100423002
.
drtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
...
...
script/c100423004.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100423004
.
initial_effect
(
c
)
aux
.
AddCodeList
(
c
,
46986414
,
38033121
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
...
...
@@ -12,54 +13,38 @@ function c100423004.initial_effect(c)
e1
:
SetOperation
(
c100423004
.
activate
)
c
:
RegisterEffect
(
e1
)
end
c100423004
.
card_code_list
=
{
46986414
,
38033121
}
function
c100423004
.
filter1
(
c
,
e
)
return
not
c
:
IsImmuneToEffect
(
e
)
end
function
c100423004
.
filter2
(
c
,
e
,
tp
,
m
,
f
,
gc
,
chkf
)
return
c
:
IsType
(
TYPE_FUSION
)
and
(
not
f
or
f
(
c
))
and
c
:
IsCanBeSpecialSummoned
(
e
,
SUMMON_TYPE_FUSION
,
tp
,
false
,
false
)
and
c
:
CheckFusionMaterial
(
m
,
gc
,
chkf
)
return
c
:
IsType
(
TYPE_FUSION
)
and
(
not
f
or
f
(
c
))
and
c
:
IsCanBeSpecialSummoned
(
e
,
SUMMON_TYPE_FUSION
,
tp
,
false
,
false
)
and
c
:
CheckFusionMaterial
(
m
,
nil
,
chkf
)
end
function
c100423004
.
fcheck
(
tp
,
sg
,
fc
)
return
sg
:
IsExists
(
Card
.
IsFusionCode
,
1
,
nil
,
46986414
,
38033121
)
end
function
c100423004
.
rcheck
(
tp
,
g
,
c
)
return
g
:
IsExists
(
Card
.
IsCode
,
1
,
nil
,
46986414
,
38033121
)
end
function
c100423004
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
g
=
nil
local
tc
=
nil
local
chkf
=
tp
local
mg1
=
Duel
.
GetFusionMaterial
(
tp
)
local
mg2
=
nil
g
=
mg1
:
Filter
(
Card
.
IsCode
,
nil
,
46986414
,
38033121
)
local
res1
=
false
gc
=
g
:
GetFirst
()
while
gc
do
res1
=
res1
or
Duel
.
IsExistingMatchingCard
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg1
,
nil
,
gc
,
chkf
)
gc
=
g
:
GetNext
()
end
aux
.
FCheckAdditional
=
c100423004
.
fcheck
local
res1
=
Duel
.
IsExistingMatchingCard
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
if
not
res1
then
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
if
ce
~=
nil
then
local
fgroup
=
ce
:
GetTarget
()
local
mg
3
=
fgroup
(
ce
,
e
,
tp
)
local
mg
2
=
fgroup
(
ce
,
e
,
tp
)
local
mf
=
ce
:
GetValue
()
g
=
mg3
:
Filter
(
Card
.
IsCode
,
nil
,
46986414
,
38033121
)
gc
=
g
:
GetFirst
()
while
gc
do
res1
=
res1
or
Duel
.
IsExistingMatchingCard
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg3
,
mf
,
gc
,
chkf
)
gc
=
g
:
GetNext
()
end
res1
=
Duel
.
IsExistingMatchingCard
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg2
,
mf
,
chkf
)
end
end
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
local
sg
=
nil
g
=
mg
:
Filter
(
Card
.
IsCode
,
nil
,
46986414
,
38033121
)
local
res2
=
false
gc
=
g
:
GetFirst
()
while
gc
do
res2
=
res2
or
Duel
.
IsExistingMatchingCard
(
aux
.
RitualUltimateFilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
aux
.
TRUE
,
e
,
tp
,
mg
,
sg
,
Card
.
GetLevel
,
"Greater"
,
gc
)
gc
=
g
:
GetNext
()
end
if
chk
==
0
then
return
res1
or
res2
end
local
mg3
=
Duel
.
GetRitualMaterial
(
tp
)
aux
.
RCheckAdditional
=
c100423004
.
rcheck
local
res2
=
mg3
:
IsExists
(
Card
.
IsCode
,
1
,
nil
,
46986414
,
38033121
)
and
Duel
.
IsExistingMatchingCard
(
aux
.
RitualUltimateFilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
aux
.
TRUE
,
e
,
tp
,
mg3
,
nil
,
Card
.
GetLevel
,
"Greater"
)
aux
.
RCheckAdditional
=
nil
if
chk
==
0
then
return
res1
or
res2
end
local
s
=
0
if
res1
and
not
res2
then
s
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
100423004
,
0
))
...
...
@@ -81,40 +66,19 @@ function c100423004.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
function
c100423004
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
g
=
nil
local
gc
=
nil
if
e
:
GetLabel
()
==
0
then
local
chkf
=
tp
local
mg1
=
Duel
.
GetFusionMaterial
(
tp
):
Filter
(
c100423004
.
filter1
,
nil
,
e
)
aux
.
FCheckAdditional
=
c100423004
.
fcheck
local
sg1
=
Duel
.
GetMatchingGroup
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg1
,
nil
,
chkf
)
local
mg2
=
nil
g
=
mg1
:
Filter
(
Card
.
IsCode
,
nil
,
46986414
,
38033121
)
gc
=
g
:
GetFirst
()
local
sg1
=
Group
.
CreateGroup
()
while
gc
do
sg1
:
Merge
(
Duel
.
GetMatchingGroup
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg1
,
nil
,
gc
,
chkf
))
if
not
Duel
.
IsExistingMatchingCard
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg1
,
nil
,
gc
,
chkf
)
then
mg1
:
RemoveCard
(
gc
)
end
gc
=
g
:
GetNext
()
end
local
mg3
=
nil
local
sg2
=
nil
local
ce
=
Duel
.
GetChainMaterial
(
tp
)
if
ce
~=
nil
then
local
fgroup
=
ce
:
GetTarget
()
mg
3
=
fgroup
(
ce
,
e
,
tp
)
mg
2
=
fgroup
(
ce
,
e
,
tp
)
local
mf
=
ce
:
GetValue
()
g
=
mg3
:
Filter
(
Card
.
IsCode
,
nil
,
46986414
,
38033121
)
gc
=
g
:
GetFirst
()
local
sg2
=
Group
.
CreateGroup
()
while
gc
do
sg2
:
Merge
(
Duel
.
GetMatchingGroup
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg3
,
mf
,
gc
,
chkf
))
if
not
Duel
.
IsExistingMatchingCard
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
e
,
tp
,
mg3
,
nil
,
gc
,
chkf
)
then
mg3
:
RemoveCard
(
gc
)
end
gc
=
g
:
GetNext
()
end
sg2
=
Duel
.
GetMatchingGroup
(
c100423004
.
filter2
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
e
,
tp
,
mg2
,
mf
,
chkf
)
end
if
sg1
:
GetCount
()
>
0
or
(
sg2
~=
nil
and
sg2
:
GetCount
()
>
0
)
then
local
sg
=
sg1
:
Clone
()
...
...
@@ -123,82 +87,45 @@ function c100423004.activate(e,tp,eg,ep,ev,re,r,rp)
local
tg
=
sg
:
Select
(
tp
,
1
,
1
,
nil
)
local
tc
=
tg
:
GetFirst
()
if
sg1
:
IsContains
(
tc
)
and
(
sg2
==
nil
or
not
sg2
:
IsContains
(
tc
)
or
not
Duel
.
SelectYesNo
(
tp
,
ce
:
GetDescription
()))
then
g
=
mg1
:
Filter
(
Card
.
IsCode
,
nil
,
46986414
,
38033121
)
gc
=
g
:
GetFirst
()
local
pg
=
Group
.
CreateGroup
()
while
gc
do
if
tc
:
CheckFusionMaterial
(
mg1
,
gc
,
chkf
)
then
pg
:
AddCard
(
gc
)
end
gc
=
g
:
GetNext
()
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FMATERIAL
)
g
=
pg
:
Select
(
tp
,
1
,
1
,
nil
)
Duel
.
SetSelectedCard
(
g
:
GetFirst
())
local
mat1
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg1
,
nil
,
chkf
)
tc
:
SetMaterial
(
mat1
)
Duel
.
SendtoGrave
(
mat1
,
REASON_EFFECT
+
REASON_MATERIAL
+
REASON_FUSION
)
local
mat
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg1
,
nil
,
chkf
)
tc
:
SetMaterial
(
mat
)
Duel
.
SendtoGrave
(
mat
,
REASON_EFFECT
+
REASON_MATERIAL
+
REASON_FUSION
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_FUSION
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
else
g
=
mg3
:
Filter
(
Card
.
IsCode
,
nil
,
46986414
,
38033121
)
gc
=
g
:
GetFirst
()
local
pg
=
nil
while
gc
do
if
tc
:
CheckFusionMaterial
(
mg3
,
gc
,
chkf
)
then
pg
:
AddCard
(
gc
)
end
gc
=
g
:
GetNext
()
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FMATERIAL
)
g
=
pg
:
Select
(
tp
,
1
,
1
,
nil
)
Duel
.
SetSelectedCard
(
g
:
GetFirst
())
local
mat2
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg3
,
nil
,
chkf
)
local
mat2
=
Duel
.
SelectFusionMaterial
(
tp
,
tc
,
mg2
,
nil
,
chkf
)
local
fop
=
ce
:
GetOperation
()
fop
(
ce
,
e
,
tp
,
tc
,
mat2
)
end
tc
:
CompleteProcedure
()
end
end
if
e
:
GetLabel
()
==
1
then
aux
.
FCheckAdditional
=
nil
else
if
e
:
GetLabel
()
==
1
then
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
local
sg
=
nil
g
=
mg
:
Filter
(
Card
.
IsCode
,
nil
,
46986414
,
38033121
)
local
sg1
=
Group
.
CreateGroup
()
gc
=
g
:
GetFirst
()
while
gc
do
sg1
:
Merge
(
Duel
.
GetMatchingGroup
(
aux
.
RitualUltimateFilter
,
tp
,
LOCATION_HAND
,
0
,
nil
,
aux
.
TRUE
,
e
,
tp
,
mg
,
sg
,
Card
.
GetLevel
,
"Greater"
,
gc
))
if
not
Duel
.
IsExistingMatchingCard
(
aux
.
RitualUltimateFilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
aux
.
TRUE
,
e
,
tp
,
mg
,
sg
,
Card
.
GetLevel
,
"Greater"
,
gc
)
then
mg
:
RemoveCard
(
gc
)
end
gc
=
g
:
GetNext
()
end
aux
.
RCheckAdditional
=
c100423004
.
rcheck
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
sg1
:
Select
(
tp
,
1
,
1
,
nil
)
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
RitualUltimateFilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
aux
.
TRUE
,
e
,
tp
,
mg
,
nil
,
Card
.
GetLevel
,
"Greater"
)
local
tc
=
tg
:
GetFirst
()
if
tc
then
mg
=
mg
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
tc
,
tc
)
if
sg
then
mg
:
Merge
(
sg
)
end
if
tc
.
mat_filter
then
mg
=
mg
:
Filter
(
tc
.
mat_filter
,
tc
,
tp
)
else
mg
:
RemoveCard
(
tc
)
end
g
=
mg
:
Filter
(
Card
.
IsCode
,
nil
,
46986414
,
38033121
)
gc
=
g
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
Duel
.
SetSelectedCard
(
gc
)
aux
.
GCheckAdditional
=
aux
.
RitualCheckAdditional
(
tc
,
tc
:
GetLevel
(),
"Greater"
)
local
mat
=
mg
:
SelectSubGroup
(
tp
,
aux
.
RitualCheck
,
false
,
1
,
tc
:
GetLevel
(),
tp
,
tc
,
tc
:
GetLevel
(),
"Greater"
)
aux
.
GCheckAdditional
=
nil
if
not
mat
or
mat
:
GetCount
()
==
0
then
return
end
if
not
mat
or
mat
:
GetCount
()
==
0
then
aux
.
RCheckAdditional
=
nil
return
end
tc
:
SetMaterial
(
mat
)
Duel
.
ReleaseRitualMaterial
(
mat
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
tc
:
CompleteProcedure
()
end
aux
.
RCheckAdditional
=
nil
end
end
script/c100423005.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100423005
.
initial_effect
(
c
)
aux
.
AddCodeList
(
c
,
46986414
,
38033121
)
--activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
100423005
,
0
))
...
...
@@ -35,7 +36,6 @@ function c100423005.initial_effect(c)
e4
:
SetOperation
(
c100423005
.
desop
)
c
:
RegisterEffect
(
e4
)
end
c100423005
.
card_code_list
=
{
46986414
,
38033121
}
function
c100423005
.
cfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
46986414
,
38033121
)
and
c
:
IsReleasable
()
and
Duel
.
GetMZoneCount
(
tp
,
c
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100423005
.
spfilter
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
,
c
:
GetCode
())
...
...
@@ -68,7 +68,7 @@ end
function
c100423005
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c100423005
.
spfilter
),
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
,
e
:
GetLabel
())
if
g
:
GetCount
()
>
0
and
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
then
if
g
:
GetCount
()
>
0
and
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
then
Duel
.
NegateEffect
(
ev
)
end
end
...
...
script/c100423012.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100423012
.
initial_effect
(
c
)
--fusion material
c
:
EnableReviveLimit
()
aux
.
AddFusionProcFunRep
(
c
,
c100423012
.
ffilter
,
2
,
true
)
--spsummon condition
...
...
@@ -62,10 +63,23 @@ function c100423012.srop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
end
function
c100423012
.
atkfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
GetAttribute
()
~=
0
end
function
c100423012
.
val
(
e
,
c
)
local
g
=
Duel
.
GetFieldGroup
(
e
:
GetHandlerPlayer
(),
LOCATION_MZONE
,
0
)
local
sg
=
g
:
Filter
(
Card
.
IsFaceup
,
nil
)
return
sg
:
GetClassCount
(
Card
.
GetAttribute
)
*
200
local
g
=
Duel
.
GetMatchingGroup
(
c100423012
.
atkfilter
,
e
:
GetHandlerPlayer
(),
LOCATION_MZONE
,
0
,
nil
)
local
att
=
0
local
tc
=
g
:
GetFirst
()
while
tc
do
att
=
bit
.
bor
(
att
,
tc
:
GetAttribute
())
tc
=
g
:
GetNext
()
end
local
ct
=
0
while
att
~=
0
do
if
bit
.
band
(
att
,
0x1
)
~=
0
then
ct
=
ct
+
1
end
att
=
bit
.
rshift
(
att
,
1
)
end
return
ct
*
200
end
function
c100423012
.
descon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
...
...
script/c100423013.lua
View file @
366e8449
...
...
@@ -27,7 +27,7 @@ function c100423013.initial_effect(c)
c
:
RegisterEffect
(
e2
)
end
function
c100423013
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsLevelBelow
(
4
)
and
c
:
IsSetCard
(
0x8
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
return
c
:
IsLevelBelow
(
4
)
and
c
:
IsSetCard
(
0x8
)
and
not
c
:
IsCode
(
100423013
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423013
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
tp
)
and
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
c100423013
.
spfilter
(
chkc
,
e
,
tp
)
end
...
...
@@ -38,7 +38,6 @@ function c100423013.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
end
function
c100423013
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
...
...
script/c100423014.lua
View file @
366e8449
...
...
@@ -17,75 +17,43 @@ end
function
c100423014
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetLP
(
tp
)
<
Duel
.
GetLP
(
1
-
tp
)
end
function
c100423014
.
thfilter
(
c
)
return
(
c
:
IsSetCard
(
0x3008
)
or
c
:
IsSetCard
(
0xa4
)
or
c
:
IsSetCard
(
0x1f
))
and
c
:
IsAttackBelow
(
math.abs
(
Duel
.
GetLP
(
0
)
-
Duel
.
GetLP
(
1
)))
and
c
:
IsAbleToHand
()
end
function
c100423014
.
spfilter
(
c
,
e
,
tp
)
return
(
c
:
IsSetCard
(
0x3008
)
or
c
:
IsSetCard
(
0xa4
)
or
c
:
IsSetCard
(
0x1f
))
and
c
:
IsAttackBelow
(
math.abs
(
Duel
.
GetLP
(
0
)
-
Duel
.
GetLP
(
1
)))
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423014
.
cfilter
(
c
,
e
,
tp
)
return
(
c
:
IsSetCard
(
0x3008
)
or
c
:
IsSetCard
(
0xa4
)
or
c
:
IsSetCard
(
0x1f
))
and
c
:
IsAttackBelow
(
math.abs
(
Duel
.
GetLP
(
0
)
-
Duel
.
GetLP
(
1
)))
and
(
c
:
IsAbleToHand
()
or
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
))
function
c100423014
.
thfilter
(
c
,
e
,
tp
,
ft
,
atk
)
return
c
:
IsSetCard
(
0x3008
,
0xa4
,
0x1f
)
and
c
:
IsAttackBelow
(
atk
)
and
(
c
:
IsAbleToHand
()
or
(
ft
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)))
end
function
c100423014
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
loc
=
LOCATION_DECK
+
LOCATION_GRAVE
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100423014
.
thfilter
,
tp
,
loc
,
0
,
1
,
nil
)
or
(
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100423014
.
spfilter
,
tp
,
loc
,
0
,
1
,
nil
,
e
,
tp
))
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
loc
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
loc
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
atk
=
math.abs
(
Duel
.
GetLP
(
0
)
-
Duel
.
GetLP
(
1
))
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100423014
.
thfilter
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
,
ft
,
atk
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
end
function
c100423014
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
loc
=
LOCATION_DECK
+
LOCATION_GRAVE
local
g
=
nil
local
s
=
0
local
flag
=
0
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SELECT
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c100423014
.
thfilter
),
tp
,
loc
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
local
tc
=
g
:
GetFirst
()
e
:
SetLabelObject
(
tc
)
s
=
Duel
.
SelectOption
(
tp
,
1190
)
end
else
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c100423014
.
cfilter
),
tp
,
loc
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
local
tc
=
g
:
GetFirst
()
e
:
SetLabelObject
(
tc
)
local
b1
=
tc
:
IsAbleToHand
()
local
b2
=
tc
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
if
b1
and
not
b2
then
s
=
Duel
.
SelectOption
(
tp
,
1190
)
end
if
not
b1
and
b2
then
s
=
Duel
.
SelectOption
(
tp
,
1152
)
+
1
end
if
b1
and
b2
then
s
=
Duel
.
SelectOption
(
tp
,
1190
,
1152
)
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
atk
=
math.abs
(
Duel
.
GetLP
(
0
)
-
Duel
.
GetLP
(
1
))
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c100423014
.
thfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
,
ft
,
atk
)
local
tc
=
g
:
GetFirst
()
if
tc
then
local
res
=
nil
if
ft
>
0
and
tc
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
(
not
tc
:
IsAbleToHand
()
or
Duel
.
SelectOption
(
tp
,
1190
,
1152
)
==
1
)
then
res
=
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
else
res
=
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
tc
)
end
end
local
tc
=
e
:
GetLabelObject
()
if
s
==
0
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
tc
)
if
tc
:
IsLocation
(
LOCATION_HAND
)
then
flag
=
1
if
res
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetValue
(
c100423014
.
aclimit
)
e1
:
SetLabel
(
tc
:
GetCode
())
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
if
s
==
1
then
flag
=
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
if
flag
~=
0
then
local
gc
=
e
:
GetLabelObject
()
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetValue
(
c100423014
.
aclimit
)
e1
:
SetLabel
(
gc
:
GetCode
())
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
function
c100423014
.
aclimit
(
e
,
re
,
tp
)
return
re
:
GetHandler
():
IsCode
(
e
:
GetLabel
())
...
...
script/c100423015.lua
View file @
366e8449
...
...
@@ -38,7 +38,7 @@ function c100423015.initial_effect(c)
e5
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e5
:
SetCode
(
EVENT_PHASE
+
PHASE_BATTLE_START
)
e5
:
SetRange
(
LOCATION_SZONE
)
e5
:
SetCountLimit
(
1
)
e5
:
SetCountLimit
(
1
,
100423015
)
e5
:
SetTarget
(
c100423015
.
acttg
)
e5
:
SetOperation
(
c100423015
.
actop
)
c
:
RegisterEffect
(
e5
)
...
...
@@ -113,7 +113,7 @@ function c100423015.actop(e,tp,eg,ep,ev,re,r,rp)
end
function
c100423015
.
chacon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ec
=
e
:
GetHandler
():
GetEquipTarget
()
return
Duel
.
GetAttacker
()
==
ec
and
ec
:
IsRelateToBattle
()
and
ec
:
IsStatus
(
STATUS_OPPO_BATTLE
)
return
Duel
.
GetAttacker
()
==
ec
and
ec
:
IsRelateToBattle
()
and
ec
:
IsStatus
(
STATUS_OPPO_BATTLE
)
and
ec
:
IsChainAttackable
()
end
function
c100423015
.
chacost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
...
...
@@ -121,7 +121,5 @@ function c100423015.chacost(e,tp,eg,ep,ev,re,r,rp,chk)
end
function
c100423015
.
chaop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ec
=
e
:
GetHandler
():
GetPreviousEquipTarget
()
if
ec
:
IsChainAttackable
()
then
Duel
.
ChainAttack
()
end
Duel
.
ChainAttack
()
end
script/c100423016.lua
View file @
366e8449
...
...
@@ -19,13 +19,10 @@ function c100423016.cfilter(c,tp)
return
(
c
:
IsFaceup
()
or
c
:
IsLocation
(
LOCATION_GRAVE
))
and
c
:
IsSetCard
(
0x8
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToRemoveAsCost
()
and
Duel
.
GetMZoneCount
(
tp
,
c
)
>
0
end
function
c100423016
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x8
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
true
,
false
)
return
c
:
IsSetCard
(
0x8
)
and
c
:
Is
Type
(
TYPE_MONSTER
)
and
c
:
Is
CanBeSpecialSummoned
(
e
,
0
,
tp
,
true
,
false
)
end
function
c100423016
.
fselect
(
g
,
e
,
tp
)
if
Duel
.
IsExistingTarget
(
c100423016
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
g
,
e
,
tp
)
then
Duel
.
SetSelectedCard
(
g
)
return
true
else
return
false
end
return
Duel
.
IsExistingTarget
(
c100423016
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
g
,
e
,
tp
)
end
function
c100423016
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
c100423016
.
cfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
nil
,
tp
)
...
...
script/c100423023.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100423023
.
initial_effect
(
c
)
--synchro summon
c
:
EnableReviveLimit
()
aux
.
AddSynchroProcedure
(
c
,
nil
,
aux
.
NonTuner
(
Card
.
IsSynchroType
,
TYPE_SYNCHRO
),
1
)
--destroy
...
...
@@ -29,16 +30,16 @@ function c100423023.initial_effect(c)
e2
:
SetOperation
(
c100423023
.
spop
)
c
:
RegisterEffect
(
e2
)
end
c100423023
.
synmat_syn
=
true
c100423023
.
material_type
=
TYPE_SYNCHRO
function
c100423023
.
descon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_SYNCHRO
)
end
function
c100423023
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
ct
=
Duel
.
GetMatchingGroupCount
(
Card
.
IsType
,
tp
,
LOCATION_GRAVE
,
0
,
nil
,
TYPE_SYNCHRO
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_ONFIELD
)
and
chkc
:
IsControler
(
1
-
tp
)
end
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsType
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
TYPE_SYNCHRO
)
and
Duel
.
IsExistingTarget
(
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
)
end
local
gc
=
Duel
.
GetMatchingGroupCount
(
Card
.
IsType
,
tp
,
LOCATION_GRAVE
,
0
,
nil
,
TYPE_SYNCHRO
)
if
chk
==
0
then
return
ct
>
0
and
Duel
.
IsExistingTarget
(
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g
=
Duel
.
SelectTarget
(
tp
,
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
gc
,
nil
)
local
g
=
Duel
.
SelectTarget
(
tp
,
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
ct
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
g
:
GetCount
(),
0
,
0
)
end
function
c100423023
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
...
@@ -57,26 +58,21 @@ end
function
c100423023
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsLevelBelow
(
8
)
and
c
:
IsSetCard
(
0x66
,
0x1017
,
0xa3
)
and
c
:
IsType
(
TYPE_SYNCHRO
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423023
.
fselect
(
g
)
if
g
:
GetClassCount
(
Card
.
GetCode
)
==
g
:
GetCount
()
then
Duel
.
SetSelectedCard
(
g
)
return
true
else
return
false
end
end
function
c100423023
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsPreviousLocation
(
LOCATION_MZONE
)
and
c
:
IsSummonType
(
SUMMON_TYPE_SYNCHRO
)
end
function
c100423023
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100423023
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100423023
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
0
,
tp
,
LOCATION_GRAVE
)
end
function
c100423023
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
c100423023
.
spfilter
),
tp
,
LOCATION_GRAVE
,
0
,
nil
,
e
,
tp
)
local
mz
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
mz
<=
0
or
g
:
GetCount
()
<=
0
then
return
end
local
c
ount
=
math.min
(
mz
,
3
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
c
oun
t
=
1
end
local
sg
=
g
:
SelectSubGroup
(
tp
,
c100423023
.
fselect
,
false
,
1
,
coun
t
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
ft
<=
0
or
g
:
GetCount
()
<=
0
then
return
end
local
c
t
=
math.min
(
ft
,
3
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
ct
=
1
end
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
dncheck
,
false
,
1
,
c
t
)
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
script/c100423024.lua
View file @
366e8449
...
...
@@ -27,10 +27,10 @@ function c100423024.initial_effect(c)
c
:
RegisterEffect
(
e2
)
end
function
c100423024
.
dfilter
(
c
)
return
c
:
IsType
(
TYPE_TUNER
)
and
c
:
IsDiscardable
()
and
c
:
IsAbleToGraveAsCost
()
return
c
:
IsType
(
TYPE_TUNER
)
and
c
:
IsDiscardable
()
end
function
c100423024
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsDiscardable
()
and
e
:
GetHandler
():
IsAbleToGraveAsCost
()
if
chk
==
0
then
return
e
:
GetHandler
():
IsDiscardable
()
and
Duel
.
IsExistingMatchingCard
(
c100423024
.
dfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
e
:
GetHandler
())
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DISCARD
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100423024
.
dfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
e
:
GetHandler
())
...
...
@@ -38,7 +38,7 @@ function c100423024.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel
.
SendtoGrave
(
g
,
REASON_COST
+
REASON_DISCARD
)
end
function
c100423024
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x1017
)
and
c
:
IsAbleToHand
()
return
c
:
IsSetCard
(
0x1017
)
and
c
:
Is
Type
(
TYPE_MONSTER
)
and
c
:
Is
AbleToHand
()
end
function
c100423024
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c100423024
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
...
...
script/c100423025.lua
View file @
366e8449
...
...
@@ -35,7 +35,8 @@ function c100423025.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function
c100423025
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
function
c100423025
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
...
@@ -45,7 +46,7 @@ function c100423025.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
function
c100423025
.
lvfilter
(
c
)
return
c
:
IsFaceup
(
)
and
c
:
IsOriginalSetCard
(
0x66
,
0x1017
,
0xa3
)
and
c
:
IsType
(
TYPE_SYNCHRO
)
return
(
c
:
IsLocation
(
LOCATION_GRAVE
)
or
c
:
IsFaceup
()
)
and
c
:
IsOriginalSetCard
(
0x66
,
0x1017
,
0xa3
)
and
c
:
IsType
(
TYPE_SYNCHRO
)
end
function
c100423025
.
lvcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
c100423025
.
lvfilter
,
tp
,
LOCATION_MZONE
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
...
...
script/c100423026.lua
View file @
366e8449
...
...
@@ -25,12 +25,11 @@ function c100423026.initial_effect(c)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetCode
(
EVENT_CHAINING
)
e3
:
SetRange
(
LOCATION_SZONE
)
e3
:
SetCondition
(
c100423026
.
ccon
)
e3
:
SetOperation
(
c100423026
.
ccop
)
c
:
RegisterEffect
(
e3
)
end
function
c100423026
.
cfilter
(
c
)
return
c
:
IsSummonType
(
SUMMON_TYPE_SYNCHRO
)
and
c
:
IsType
(
TYPE_SYNCHRO
)
and
(
c
:
IsSetCard
(
0x66
)
or
c
:
IsSetCard
(
0x1017
)
or
c
:
IsSetCard
(
0xa3
)
)
return
c
:
IsSummonType
(
SUMMON_TYPE_SYNCHRO
)
and
c
:
IsType
(
TYPE_SYNCHRO
)
and
c
:
IsSetCard
(
0x66
,
0x1017
,
0xa3
)
end
function
c100423026
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsLocation
(
LOCATION_GRAVE
)
and
c
:
IsControler
(
tp
)
and
c
:
IsCanBeEffectTarget
(
e
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
...
...
@@ -41,7 +40,8 @@ end
function
c100423026
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
local
mg
=
eg
:
Filter
(
c100423026
.
cfilter
,
nil
):
GetFirst
():
GetMaterial
()
if
chkc
then
return
mg
:
IsContains
(
chkc
)
and
c100423026
.
spfilter
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
mg
:
IsExists
(
c100423026
.
spfilter
,
1
,
nil
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
mg
:
IsExists
(
c100423026
.
spfilter
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
mg
:
FilterSelect
(
tp
,
c100423026
.
spfilter
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetTargetCard
(
g
)
...
...
@@ -53,13 +53,12 @@ function c100423026.spop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
end
function
c100423026
.
ccon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
re
:
GetHandler
()
return
re
:
GetHandlerPlayer
()
==
tp
and
tc
:
IsType
(
TYPE_SYNCHRO
)
and
(
tc
:
IsSetCard
(
0x66
)
or
tc
:
IsSetCard
(
0x1017
)
or
tc
:
IsSetCard
(
0xa3
))
end
function
c100423026
.
ccop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
SetChainLimit
(
c100423026
.
chainlm
)
local
tc
=
re
:
GetHandler
()
if
ep
==
tp
and
tc
:
IsType
(
TYPE_SYNCHRO
)
and
tc
:
IsOriginalSetCard
(
0x66
,
0x1017
,
0xa3
)
then
Duel
.
SetChainLimit
(
c100423026
.
chainlm
)
end
end
function
c100423026
.
chainlm
(
e
,
e
p
,
tp
)
return
tp
==
e
p
function
c100423026
.
chainlm
(
e
,
r
p
,
tp
)
return
tp
==
r
p
end
script/c100423027.lua
View file @
366e8449
...
...
@@ -7,7 +7,6 @@ function c100423027.initial_effect(c)
e1
:
SetCategory
(
CATEGORY_NEGATE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DAMAGE_CAL
)
e1
:
SetCountLimit
(
1
,
100423027
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetCondition
(
c100423027
.
condition
)
e1
:
SetTarget
(
c100423027
.
target
)
...
...
@@ -15,10 +14,11 @@ function c100423027.initial_effect(c)
c
:
RegisterEffect
(
e1
)
end
function
c100423027
.
filter
(
c
)
return
(
c
.
synmat_syn
or
c
:
IsCode
(
7841112
,
24696097
,
97489701
,
67030233
,
25165047
,
21123811
,
26268488
,
35952884
,
97836203
,
62242678
,
36857073
,
89907227
,
80896940
,
51447164
,
74892653
,
89474727
,
9753964
,
2743001
,
50954680
,
84305651
)
)
and
c
:
IsFaceup
()
return
c
:
IsType
(
TYPE_SYNCHRO
)
and
aux
.
IsMaterialListType
(
c
,
TYPE_SYNCHRO
)
and
c
:
IsFaceup
()
end
function
c100423027
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
c100423027
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
and
re
:
IsActiveType
(
TYPE_MONSTER
)
and
Duel
.
IsChainNegatable
(
ev
)
and
rp
==
1
-
tp
return
Duel
.
IsExistingMatchingCard
(
c100423027
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
and
re
:
IsActiveType
(
TYPE_MONSTER
)
and
Duel
.
IsChainNegatable
(
ev
)
and
rp
==
1
-
tp
end
function
c100423027
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
...
...
script/c100423034.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100423034
.
initial_effect
(
c
)
--xyz summon
c
:
EnableReviveLimit
()
aux
.
AddXyzProcedure
(
c
,
nil
,
4
,
2
)
--spsummon
...
...
@@ -28,16 +29,17 @@ function c100423034.initial_effect(c)
e2
:
SetOperation
(
c100423034
.
atkop
)
c
:
RegisterEffect
(
e2
)
end
function
c100423034
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsType
(
TYPE_XYZ
)
and
not
c
:
IsCode
(
100423034
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423034
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
CheckRemoveOverlayCard
(
tp
,
1
,
REASON_COST
)
end
e
:
GetHandler
():
RemoveOverlayCard
(
tp
,
1
,
1
,
REASON_COST
)
end
function
c100423034
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsType
(
TYPE_XYZ
)
and
not
c
:
IsCode
(
100423034
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423034
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c100423034
.
spfilter
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c100423034
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c100423034
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100423034
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
...
...
@@ -61,9 +63,6 @@ function c100423034.spop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
SpecialSummonComplete
()
end
end
function
c100423034
.
atkfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_XYZ
)
and
not
(
c
:
GetAttack
()
==
4000
and
(
c
:
IsDisabled
()
or
not
c
:
IsType
(
TYPE_EFFECT
)))
end
function
c100423034
.
atkcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsSetCard
(
0x207f
)
and
c
:
IsType
(
TYPE_XYZ
)
...
...
@@ -72,6 +71,9 @@ function c100423034.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if
chk
==
0
then
return
e
:
GetHandler
():
CheckRemoveOverlayCard
(
tp
,
2
,
REASON_COST
)
end
e
:
GetHandler
():
RemoveOverlayCard
(
tp
,
2
,
2
,
REASON_COST
)
end
function
c100423034
.
atkfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_XYZ
)
and
(
not
c
:
IsAttack
(
4000
)
or
aux
.
disfilter1
(
c
))
end
function
c100423034
.
atktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsControler
(
tp
)
and
c100423034
.
atkfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
c100423034
.
atkfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
...
...
script/c100423035.lua
View file @
366e8449
...
...
@@ -26,14 +26,15 @@ function c100423035.initial_effect(c)
c
:
RegisterEffect
(
e2
)
end
function
c100423035
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsSetCard
(
0x8f
)
or
c
:
IsSetCard
(
0x54
)
)
and
not
c
:
IsCode
(
100423035
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x8f
,
0x54
)
and
not
c
:
IsCode
(
100423035
)
end
function
c100423035
.
spcon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetMatchingGroupCount
(
c100423035
.
cfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
>
0
return
Duel
.
IsExistingMatchingCard
(
c100423035
.
cfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
function
c100423035
.
sptg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
function
c100423035
.
spop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
...
@@ -43,11 +44,12 @@ function c100423035.spop1(e,tp,eg,ep,ev,re,r,rp)
end
end
function
c100423035
.
spfilter
(
c
,
e
,
tp
)
return
(
c
:
IsSetCard
(
0x59
)
or
c
:
IsSetCard
(
0x82
)
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
return
c
:
IsSetCard
(
0x59
,
0x82
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423035
.
sptg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
c100423035
.
spfilter
(
chkc
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c100423035
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingTarget
(
c100423035
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectTarget
(
tp
,
c100423035
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
g
,
1
,
0
,
0
)
...
...
script/c100423036.lua
View file @
366e8449
...
...
@@ -28,7 +28,8 @@ function c100423036.spfilter(c,e,tp)
return
c
:
IsSetCard
(
0x8f
,
0x54
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423036
.
sptg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100423036
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100423036
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
function
c100423036
.
spop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
...
@@ -47,7 +48,8 @@ function c100423036.spcon2(e,tp,eg,ep,ev,re,r,rp)
end
function
c100423036
.
sptg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
function
c100423036
.
spop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
...
script/c100423038.lua
View file @
366e8449
...
...
@@ -24,7 +24,7 @@ end
function
c100423038
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
not
(
tc
:
IsFaceup
()
and
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsControler
(
tp
)
)
then
return
end
if
tc
:
IsFacedown
()
or
not
tc
:
IsRelateToEffect
(
e
)
or
tc
:
IsControler
(
1
-
tp
)
then
return
end
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_ATTACK_ALL
)
...
...
@@ -71,8 +71,7 @@ end
function
c100423038
.
damop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
bc
=
e
:
GetHandler
():
GetBattleTarget
()
if
not
bc
then
return
end
local
dam
=
bc
:
GetBaseAttack
()
if
dam
<
0
then
dam
=
0
end
local
dam
=
math.max
(
bc
:
GetBaseAttack
(),
0
)
if
dam
>
0
then
Duel
.
Hint
(
HINT_CARD
,
0
,
100423038
)
Duel
.
Damage
(
1
-
tp
,
dam
,
REASON_EFFECT
)
...
...
script/c100423045.lua
View file @
366e8449
...
...
@@ -2,6 +2,7 @@
--Scripted by mallu11
function
c100423045
.
initial_effect
(
c
)
--pendulum summon
aux
.
EnablePendulumAttribute
(
c
)
--spsummon
local
e1
=
Effect
.
CreateEffect
(
c
)
...
...
@@ -45,15 +46,23 @@ end
function
c100423045
.
spfilter
(
c
,
tp
,
rp
)
return
(
c
:
IsReason
(
REASON_BATTLE
)
or
(
c
:
IsReason
(
REASON_EFFECT
)
and
rp
==
1
-
tp
))
and
c
:
IsPreviousLocation
(
LOCATION_MZONE
)
and
c
:
GetPreviousControler
()
==
tp
and
c
:
GetSummonLocation
()
==
LOCATION_EXTRA
and
c
:
IsType
(
TYPE_FUSION
+
TYPE_SYNCHRO
+
TYPE_XYZ
)
and
c
:
IsFaceup
(
)
and
bit
.
band
(
c
:
GetPreviousTypeOnField
(),
TYPE_FUSION
+
TYPE_SYNCHRO
+
TYPE_XYZ
)
~=
0
and
c
:
IsPreviousPosition
(
POS_FACEUP
)
end
function
c100423045
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
GetCount
()
==
1
and
eg
:
IsExists
(
c100423045
.
spfilter
,
1
,
nil
,
tp
,
rp
)
end
function
c100423045
.
spfilter2
(
c
,
e
,
tp
)
if
c
:
IsLocation
(
LOCATION_HAND
+
LOCATION_DECK
)
or
(
not
c
:
IsLocation
(
LOCATION_GRAVE
)
and
c
:
IsFacedown
())
or
not
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
or
c
:
IsControler
(
1
-
tp
)
then
return
false
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
if
c
:
IsLocation
(
LOCATION_EXTRA
)
then
ft
=
Duel
.
GetLocationCountFromEx
(
tp
)
end
return
ft
>
0
end
function
c100423045
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
ec
=
eg
:
GetFirst
()
if
chk
==
0
then
return
((
ec
:
IsLocation
(
LOCATION_GRAVE
+
LOCATION_REMOVED
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
)
or
(
ec
:
IsLocation
(
LOCATION_EXTRA
)
and
Duel
.
GetLocationCountFromEx
(
tp
)
>
0
))
and
ec
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
if
chk
==
0
then
return
c100423045
.
spfilter2
(
ec
,
e
,
tp
)
end
Duel
.
SetTargetCard
(
ec
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
ec
,
1
,
0
,
0
)
end
...
...
@@ -83,12 +92,15 @@ function c100423045.metg(e,tp,eg,ep,ev,re,r,rp,chk)
and
Duel
.
IsExistingMatchingCard
(
Card
.
IsType
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
TYPE_PENDULUM
))
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c100423045
.
cfilter
(
c
,
type
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
type
)
end
function
c100423045
.
meop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
g
=
Duel
.
GetMatchingGroup
(
c100423045
.
mefilter1
,
tp
,
LOCATION_MZONE
,
0
,
c
)
local
b1
=
g
:
IsExists
(
Card
.
IsType
,
1
,
c
,
TYPE_FUSION
)
local
b2
=
g
:
IsExists
(
Card
.
IsType
,
1
,
c
,
TYPE_SYNCHRO
)
local
b3
=
g
:
IsExists
(
Card
.
IsType
,
1
,
c
,
TYPE_XYZ
)
local
b1
=
c
:
IsRelateToEffect
(
e
)
and
g
:
IsExists
(
c100423045
.
cfilter
,
1
,
c
,
TYPE_FUSION
)
local
b2
=
g
:
IsExists
(
c100423045
.
cfilter
,
1
,
c
,
TYPE_SYNCHRO
)
local
b3
=
c
:
IsRelateToEffect
(
e
)
and
c
:
IsFaceup
()
and
g
:
IsExists
(
c100423045
.
cfilter
,
1
,
c
,
TYPE_XYZ
)
local
b4
=
Duel
.
IsExistingMatchingCard
(
c100423045
.
mefilter2
,
tp
,
LOCATION_MZONE
,
0
,
1
,
e
:
GetHandler
())
and
Duel
.
IsExistingMatchingCard
(
Card
.
IsType
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
TYPE_PENDULUM
)
if
b1
then
...
...
script/c100423046.lua
View file @
366e8449
...
...
@@ -26,14 +26,12 @@ function c100423046.initial_effect(c)
end
function
c100423046
.
cfilter
(
c
,
tp
)
return
c
:
IsAttribute
(
ATTRIBUTE_DARK
)
and
(
c
:
GetSequence
()
>
4
and
Duel
.
IsExistingMatchingCard
(
c100423046
.
filter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
c
,
tp
)
or
(
Duel
.
GetMZoneCount
(
tp
,
c
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100423046
.
filter2
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_MZONE
,
0
,
1
,
c
)))
and
Duel
.
IsExistingMatchingCard
(
c100423046
.
filter1
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_MZONE
,
0
,
1
,
c
,
tp
,
c
)
end
function
c100423046
.
filter1
(
c
,
tp
)
return
c
:
IsCode
(
53025096
)
and
c
:
IsAbleToGrave
()
and
c
:
IsFaceup
()
and
Duel
.
GetMZoneCount
(
tp
,
c
)
>
0
end
function
c100423046
.
filter2
(
c
)
return
c
:
IsCode
(
53025096
)
and
c
:
IsAbleToGrave
()
and
(
c
:
IsFaceup
()
or
c
:
IsLocation
(
LOCATION_HAND
+
LOCATION_DECK
))
function
c100423046
.
filter1
(
c
,
tp
,
mc
)
local
g
=
Group
.
FromCards
(
c
)
if
mc
then
g
:
AddCard
(
mc
)
end
return
(
c
:
IsLocation
(
LOCATION_HAND
+
LOCATION_DECK
)
or
c
:
IsFaceup
())
and
c
:
IsCode
(
53025096
)
and
c
:
IsAbleToGrave
()
and
Duel
.
GetMZoneCount
(
tp
,
g
)
>
0
end
function
c100423046
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
CheckReleaseGroup
(
tp
,
c100423046
.
cfilter
,
1
,
nil
,
tp
)
end
...
...
@@ -47,37 +45,31 @@ function c100423046.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function
c100423046
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
g
=
nil
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100423046
.
filter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
else
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100423046
.
filter2
,
tp
,
LOCATION_MZONE
+
LOCATION_HAND
+
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
end
local
tc
=
g
:
GetFirst
()
if
tc
and
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
~=
0
and
tc
:
IsLocation
(
LOCATION_GRAVE
)
and
c
:
IsRelateToEffect
(
e
)
then
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100423046
.
filter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
tp
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
~=
0
and
g
:
GetFirst
():
IsLocation
(
LOCATION_GRAVE
)
and
c
:
IsRelateToEffect
(
e
)
then
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
function
c100423046
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x99
)
and
not
c
:
IsCode
(
100423046
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423046
.
thfilter
(
c
)
return
c
:
IsCode
(
82768499
)
and
c
:
IsAbleToHand
()
end
function
c100423046
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
:
GetPreviousControler
()
==
tp
and
c
:
IsReason
(
REASON_DESTROY
)
and
rp
==
1
-
tp
end
function
c100423046
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsSetCard
(
0x99
)
and
not
c
:
IsCode
(
100423046
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
c100423046
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
c100423046
.
spfilter
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c100423046
.
thfilter
(
c
)
return
c
:
IsCode
(
82768499
)
and
c
:
IsAbleToHand
()
end
function
c100423046
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
then
Duel
.
Hint
(
HINT_
OPSELECTED
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_
SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
c100423046
.
spfilter
),
tp
,
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
and
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
and
Duel
.
IsExistingMatchingCard
(
c100423046
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
...
...
script/c100423047.lua
View file @
366e8449
...
...
@@ -15,24 +15,18 @@ function c100423047.initial_effect(c)
end
function
c100423047
.
cfilter
(
c
,
e
,
tp
,
lsc
,
rsc
)
local
lv
=
c
:
GetLevel
()
return
(
c
:
IsSetCard
(
0x9f
)
or
(
c
:
IsSetCard
(
0x98
)
and
c
:
IsType
(
TYPE_PENDULUM
))
or
c
:
IsSetCard
(
0x99
))
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
lv
>
lsc
and
lv
<
rsc
end
function
c100423047
.
fselect
(
g
)
if
g
:
GetClassCount
(
Card
.
GetCode
)
==
g
:
GetCount
()
then
Duel
.
SetSelectedCard
(
g
)
return
true
else
return
false
end
return
(
c
:
IsSetCard
(
0x9f
,
0x99
)
or
(
c
:
IsSetCard
(
0x98
)
and
c
:
IsType
(
TYPE_PENDULUM
)))
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
lv
>
0
and
lv
>
lsc
and
lv
<
rsc
end
function
c100423047
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
h
=
Duel
.
GetMatchingGroupCount
(
Card
.
IsAbleToGraveAsCost
,
tp
,
LOCATION_HAND
,
0
,
nil
)
if
e
:
GetHandler
():
IsLocation
(
LOCATION_HAND
)
then
h
=
h
-
1
end
if
chk
==
0
then
return
h
>
0
end
local
gc
=
1
if
Duel
.
IsPlayerCanDraw
(
tp
,
2
)
then
gc
=
2
end
if
Duel
.
IsPlayerCanDraw
(
tp
,
3
)
then
gc
=
3
end
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToGraveAsCost
,
tp
,
LOCATION_HAND
,
0
,
nil
)
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToGraveAsCost
,
tp
,
LOCATION_HAND
,
0
,
e
:
GetHandler
())
if
chk
==
0
then
return
g
:
GetCount
()
>
0
end
local
ct
=
1
for
i
=
2
,
3
do
if
Duel
.
IsPlayerCanDraw
(
tp
,
i
)
then
ct
=
i
end
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
sg
=
g
:
Select
(
tp
,
1
,
gc
,
nil
)
local
sg
=
g
:
Select
(
tp
,
1
,
ct
,
nil
)
e
:
SetLabel
(
Duel
.
SendtoGrave
(
sg
,
REASON_COST
))
end
function
c100423047
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
...
...
@@ -46,23 +40,25 @@ end
function
c100423047
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
p
,
d
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
,
CHAININFO_TARGET_PARAM
)
local
ct
=
Duel
.
Draw
(
p
,
d
,
REASON_EFFECT
)
local
mz
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
flag
=
0
if
ct
>
0
and
mz
>
0
and
Duel
.
GetFieldCard
(
tp
,
LOCATION_PZONE
,
0
)
and
Duel
.
GetFieldCard
(
tp
,
LOCATION_PZONE
,
1
)
then
local
lsc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_PZONE
,
0
):
GetLeftScale
()
local
rsc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_PZONE
,
1
):
GetRightScale
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
res
=
false
local
lc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_PZONE
,
0
)
local
rc
=
Duel
.
GetFieldCard
(
tp
,
LOCATION_PZONE
,
1
)
if
ct
>
0
and
ft
>
0
and
lc
and
rc
then
local
lsc
=
lc
:
GetLeftScale
()
local
rsc
=
rc
:
GetRightScale
()
if
lsc
>
rsc
then
lsc
,
rsc
=
rsc
,
lsc
end
if
Duel
.
IsExistingMatchingCard
(
c100423047
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
,
lsc
,
rsc
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
100423047
,
0
))
then
Duel
.
BreakEffect
()
local
count
=
math.min
(
ct
,
mz
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
c
oun
t
=
1
end
ct
=
math.min
(
ct
,
ft
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
ct
=
1
end
local
g
=
Duel
.
GetMatchingGroup
(
c100423047
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
nil
,
e
,
tp
,
lsc
,
rsc
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
c100423047
.
fselect
,
false
,
1
,
count
,
tp
)
flag
=
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
aux
.
dncheck
,
false
,
1
,
ct
)
res
=
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
if
flag
==
0
then
local
h
=
Duel
.
GetFieldGroupCount
(
tp
,
LOCATION_HAND
,
0
)
Duel
.
SetLP
(
tp
,
Duel
.
GetLP
(
tp
)
-
h
*
1000
)
if
not
res
then
local
lp
=
Duel
.
GetFieldGroupCount
(
tp
,
LOCATION_HAND
,
0
)
Duel
.
SetLP
(
tp
,
Duel
.
GetLP
(
tp
)
-
lp
*
1000
)
end
end
script/c100423048.lua
View file @
366e8449
...
...
@@ -7,6 +7,7 @@ function c100423048.initial_effect(c)
e1
:
SetCategory
(
CATEGORY_REMOVE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetTarget
(
c100423048
.
target
)
e1
:
SetOperation
(
c100423048
.
activate
)
c
:
RegisterEffect
(
e1
)
--disable attack
...
...
@@ -18,65 +19,87 @@ function c100423048.initial_effect(c)
e2
:
SetTarget
(
c100423048
.
atktg
)
e2
:
SetOperation
(
c100423048
.
atkop
)
c
:
RegisterEffect
(
e2
)
e1
:
SetLabelObject
(
e2
)
local
ng
=
Group
.
CreateGroup
()
ng
:
KeepAlive
()
e1
:
SetLabelObject
(
ng
)
e2
:
SetLabelObject
(
ng
)
end
function
c100423048
.
rmfilter
(
c
)
return
c
:
IsType
(
TYPE_SPELL
)
and
c
:
IsAbleToRemove
()
function
c100423048
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
nil
,
1
,
PLAYER_ALL
,
LOCATION_GRAVE
)
end
function
c100423048
.
rmfilter
(
c
,
tp
)
return
c
:
IsType
(
TYPE_SPELL
)
and
c
:
IsAbleToRemove
(
tp
)
end
function
c100423048
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
g
1
=
Duel
.
GetMatchingGroup
(
c100423048
.
rmfilter
,
tp
,
LOCATION_GRAVE
,
0
,
nil
)
local
g
2
=
Duel
.
GetMatchingGroup
(
c100423048
.
rmfilter
,
tp
,
0
,
LOCATION_GRAVE
,
nil
)
local
sg
=
Group
.
CreateGroup
(
)
local
c
=
e
:
GetHandler
()
local
g
=
Group
.
CreateGroup
(
)
local
g
1
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
c100423048
.
rmfilter
),
tp
,
LOCATION_GRAVE
,
0
,
nil
,
tp
)
local
g2
=
Duel
.
GetMatchingGroup
(
aux
.
NecroValleyFilter
(
c100423048
.
rmfilter
),
tp
,
0
,
LOCATION_GRAVE
,
nil
,
1
-
tp
)
if
g1
:
GetCount
()
>
0
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
100423048
,
0
))
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_REMOVE
)
local
sg1
=
g1
:
Select
(
tp
,
1
,
5
,
nil
)
s
g
:
Merge
(
sg1
)
g
:
Merge
(
sg1
)
end
if
g2
:
GetCount
()
>
0
and
Duel
.
SelectYesNo
(
1
-
tp
,
aux
.
Stringid
(
100423048
,
0
))
then
Duel
.
Hint
(
HINT_SELECTMSG
,
1
-
tp
,
HINTMSG_REMOVE
)
local
sg2
=
g2
:
Select
(
1
-
tp
,
1
,
5
,
nil
)
s
g
:
Merge
(
sg2
)
g
:
Merge
(
sg2
)
end
if
sg
:
GetCount
()
>
0
then
Duel
.
Remove
(
sg
,
POS_FACEDOWN
,
REASON_EFFECT
)
local
rg
=
sg
:
Filter
(
Card
.
IsLocation
,
nil
,
LOCATION_REMOVED
)
rg
:
KeepAlive
()
e
:
GetLabelObject
():
SetLabelObject
(
rg
)
local
rc
=
rg
:
GetFirst
()
while
rc
do
rc
:
RegisterFlagEffect
(
100423048
,
RESET_EVENT
+
RESETS_STANDARD
,
0
,
1
)
rc
=
rg
:
GetNext
()
if
g
:
GetCount
()
>
0
then
Duel
.
Remove
(
g
,
POS_FACEDOWN
,
REASON_EFFECT
)
local
og
=
Duel
.
GetOperatedGroup
()
if
og
:
GetCount
()
==
0
then
return
end
local
sg
=
e
:
GetLabelObject
()
if
c
:
GetFlagEffect
(
100423048
)
==
0
then
sg
:
Clear
()
c
:
RegisterFlagEffect
(
100423048
,
RESET_EVENT
+
RESETS_STANDARD
,
0
,
1
)
end
local
tc
=
og
:
GetFirst
()
while
tc
do
if
tc
:
IsLocation
(
LOCATION_REMOVED
)
then
sg
:
AddCard
(
tc
)
tc
:
CreateRelation
(
c
,
RESET_EVENT
+
RESETS_STANDARD
)
end
tc
=
og
:
GetNext
()
end
else
local
sg
=
e
:
GetLabelObject
()
if
sg
:
GetCount
()
>
0
then
sg
:
Clear
()
end
end
end
function
c100423048
.
thfilter
(
c
,
p
)
return
c
:
GetFlagEffect
(
100423048
)
>
0
and
c
:
IsControler
(
p
)
and
c
:
IsAbleToHand
()
end
function
c100423048
.
atktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
local
p
=
1
-
ep
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
p
,
LOCATION_REMOVED
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_HANDES
,
nil
,
1
,
p
,
LOCATION_HAND
)
end
function
c100423048
.
thfilter
(
c
,
rc
,
p
)
return
c
:
IsRelateToCard
(
rc
)
and
c
:
IsControler
(
p
)
and
c
:
IsAbleToHand
()
end
function
c100423048
.
atkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
GetFlagEffect
(
100423048
)
==
0
then
return
end
local
p
=
1
-
ep
local
g
=
e
:
GetLabelObject
():
Filter
(
c100423048
.
thfilter
,
nil
,
p
)
local
g
=
e
:
GetLabelObject
():
Filter
(
c100423048
.
thfilter
,
nil
,
c
,
p
)
if
g
:
GetCount
()
>
0
and
Duel
.
SelectYesNo
(
p
,
aux
.
Stringid
(
100423048
,
1
))
then
local
flag
=
false
local
res
=
false
local
sg
=
g
:
RandomSelect
(
1
-
p
,
1
)
local
sc
=
sg
:
GetFirst
()
if
Duel
.
SendtoHand
(
sc
,
nil
,
REASON_EFFECT
)
~=
0
and
sc
:
IsLocation
(
LOCATION_HAND
)
and
sc
:
IsControler
(
p
)
then
Duel
.
ConfirmCards
(
1
-
p
,
sc
)
if
sc
:
IsDiscardable
()
and
Duel
.
SelectYesNo
(
p
,
aux
.
Stringid
(
100423048
,
2
))
then
flag
=
true
local
tc
=
sg
:
GetFirst
()
if
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
~=
0
and
tc
:
IsLocation
(
LOCATION_HAND
)
then
Duel
.
ConfirmCards
(
1
-
p
,
tc
)
if
tc
:
IsControler
(
p
)
and
tc
:
IsDiscardable
(
REASON_EFFECT
)
and
Duel
.
SelectYesNo
(
p
,
aux
.
Stringid
(
100423048
,
2
))
then
Duel
.
BreakEffect
()
Duel
.
SendtoGrave
(
sc
,
REASON_EFFECT
+
REASON_DISCARD
)
Duel
.
NegateAttack
()
if
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
+
REASON_DISCARD
)
~=
0
then
res
=
true
Duel
.
NegateAttack
()
end
end
end
if
flag
==
false
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
()
)
if
not
res
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CHANGE_DAMAGE
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
...
...
script/c100423049.lua
View file @
366e8449
...
...
@@ -49,7 +49,7 @@ function c100423049.valcheck(e,c)
end
end
function
c100423049
.
effcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
GetCount
()
==
1
and
eg
:
GetFirst
():
IsType
(
e
:
GetLabel
())
and
eg
:
GetFirst
():
GetFlagEffect
(
100423049
)
~=
0
return
eg
:
GetCount
()
==
1
and
eg
:
GetFirst
():
Is
Faceup
()
and
eg
:
GetFirst
():
Is
Type
(
e
:
GetLabel
())
and
eg
:
GetFirst
():
GetFlagEffect
(
100423049
)
~=
0
end
function
c100423049
.
spfilter
(
c
,
e
,
tp
,
lv
)
local
lvl
=
c
:
GetOriginalLevel
()
...
...
@@ -64,7 +64,7 @@ end
function
c100423049
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetFlagEffect
(
tp
,
100423049
)
~=
0
then
return
end
local
c
=
e
:
GetHandler
()
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
then
if
eg
:
GetFirst
():
IsFaceup
()
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
then
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100423049
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
,
eg
:
GetFirst
():
GetOriginalLevel
())
local
tc
=
g
:
GetFirst
()
if
tc
and
Duel
.
SpecialSummonStep
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
then
...
...
@@ -110,7 +110,7 @@ function c100423049.thtg2(e,tp,eg,ep,ev,re,r,rp,chk)
and
Duel
.
GetFlagEffect
(
tp
,
100423249
)
==
0
end
end
function
c100423049
.
thop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetFlagEffect
(
tp
,
100423249
)
~=
0
then
return
end
if
Duel
.
GetFlagEffect
(
tp
,
100423249
)
~=
0
or
eg
:
GetFirst
():
IsFacedown
()
then
return
end
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c100423049
.
thfilter2
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
,
ft
,
eg
:
GetFirst
():
GetRank
())
...
...
script/c101012001.lua
View file @
366e8449
...
...
@@ -60,9 +60,6 @@ function c101012001.lvop(e,tp,eg,ep,ev,re,r,rp)
e3
:
SetValue
(
c
:
GetBaseDefense
()
/
2
)
c
:
RegisterEffect
(
e3
)
end
function
c101012001
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_LINK
)
end
function
c101012001
.
cfilter1
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSummonType
(
SUMMON_TYPE_LINK
)
and
c
:
GetSummonPlayer
()
==
tp
end
...
...
@@ -70,28 +67,21 @@ function c101012001.spcon1(e,tp,eg,ep,ev,re,r,rp)
return
eg
:
IsExists
(
c101012001
.
cfilter1
,
1
,
nil
,
tp
)
end
function
c101012001
.
sptg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
g
=
Duel
.
GetMatchingGroup
(
c101012001
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
if
g
:
GetCount
()
<=
0
then
return
false
end
local
zone
=
0
for
tc
in
aux
.
Next
(
g
)
do
zone
=
bit
.
bor
(
zone
,
tc
:
GetLinkedZone
(
tp
))
end
zone
=
bit
.
band
(
zone
,
0x1f
)
if
eg
:
GetCount
()
~=
1
then
return
false
end
local
tc
=
eg
:
GetFirst
()
local
zone
=
bit
.
band
(
tc
:
GetLinkedZone
(
tp
),
0x1f
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
,
tp
,
LOCATION_REASON_TOFIELD
,
zone
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP
,
tp
,
zone
)
end
Duel
.
SetTargetCard
(
tc
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
function
c101012001
.
spop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
local
g
=
Duel
.
GetMatchingGroup
(
c101012001
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
if
g
:
GetCount
()
<=
0
then
return
end
local
zone
=
0
for
tc
in
aux
.
Next
(
g
)
do
zone
=
bit
.
bor
(
zone
,
tc
:
GetLinkedZone
(
tp
))
end
zone
=
bit
.
band
(
zone
,
0x1f
)
local
tc
=
Duel
.
GetFirstTarget
()
if
not
tc
:
IsRelateToEffect
(
e
)
then
return
end
local
zone
=
bit
.
band
(
tc
:
GetLinkedZone
(
tp
),
0x1f
)
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
,
zone
)
end
end
...
...
script/c101012049.lua
View file @
366e8449
...
...
@@ -28,7 +28,7 @@ function c101012049.tktg(e,tp,eg,ep,ev,re,r,rp,chk)
local
mg
=
e
:
GetHandler
():
GetMaterial
()
if
mg
:
GetCount
()
~=
1
then
return
false
end
if
chk
==
0
then
return
mg
:
IsExists
(
Card
.
IsType
,
1
,
nil
,
TYPE_LINK
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
10101214
9
,
0
,
0x4011
,
0
,
0
,
1
,
RACE_CYBERSE
,
ATTRIBUTE_LIGHT
)
end
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
4806837
9
,
0
,
0x4011
,
0
,
0
,
1
,
RACE_CYBERSE
,
ATTRIBUTE_LIGHT
)
end
e
:
SetLabel
(
mg
:
GetFirst
():
GetLink
())
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOKEN
,
nil
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
0
)
...
...
@@ -36,15 +36,16 @@ end
function
c101012049
.
tkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
ct
=
e
:
GetLabel
()
if
ft
<=
0
or
ct
<=
0
or
not
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
101012149
,
0
,
0x4011
,
0
,
0
,
1
,
RACE_CYBERSE
,
ATTRIBUTE_LIGHT
)
then
return
end
local
count
=
math.min
(
ft
,
ct
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
count
=
1
end
repeat
local
token
=
Duel
.
CreateToken
(
tp
,
101012149
)
Duel
.
SpecialSummonStep
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
count
=
count
-
1
until
count
==
0
or
not
Duel
.
SelectYesNo
(
tp
,
210
)
Duel
.
SpecialSummonComplete
()
if
ft
>
0
and
ct
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
48068379
,
0
,
0x4011
,
0
,
0
,
1
,
RACE_CYBERSE
,
ATTRIBUTE_LIGHT
)
then
local
count
=
math.min
(
ft
,
ct
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
then
count
=
1
end
repeat
local
token
=
Duel
.
CreateToken
(
tp
,
101012149
)
Duel
.
SpecialSummonStep
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
count
=
count
-
1
until
count
==
0
or
not
Duel
.
SelectYesNo
(
tp
,
210
)
Duel
.
SpecialSummonComplete
()
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_BE_LINK_MATERIAL
)
...
...
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