Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
no81cards
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
Huangnan
no81cards
Commits
a1118c51
Commit
a1118c51
authored
Jul 07, 2023
by
Nemo Ma
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
5edb25b1
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
222 additions
and
105 deletions
+222
-105
expansions/script/c11451538.lua
expansions/script/c11451538.lua
+9
-3
expansions/script/c11451644.lua
expansions/script/c11451644.lua
+21
-4
expansions/script/c130006035.lua
expansions/script/c130006035.lua
+1
-2
expansions/script/c130006036.lua
expansions/script/c130006036.lua
+1
-2
expansions/script/c29002020.lua
expansions/script/c29002020.lua
+58
-18
expansions/script/c29002021.lua
expansions/script/c29002021.lua
+32
-74
expansions/script/c29002023.lua
expansions/script/c29002023.lua
+19
-1
expansions/script/c29009255.lua
expansions/script/c29009255.lua
+80
-1
expansions/script/c72410180.lua
expansions/script/c72410180.lua
+1
-0
No files found.
expansions/script/c11451538.lua
View file @
a1118c51
...
...
@@ -37,7 +37,7 @@ function cm.spfilter(c,e,tp)
return
c
:
IsRace
(
RACE_MACHINE
)
and
c
:
IsLevel
(
10
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
cm
.
fselect
(
g
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
xyzfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
g
,
tp
)
and
g
:
GetClassCount
(
Card
.
GetAttribute
)
==#
g
return
Duel
.
IsExistingMatchingCard
(
cm
.
xyzfilter
,
tp
,
LOCATION_EXTRA
,
0
,
1
,
nil
,
g
,
tp
)
end
function
cm
.
xyzfilter
(
c
,
g
,
tp
)
return
c
:
IsRace
(
RACE_MACHINE
)
and
c
:
IsXyzSummonable
(
g
,
#
g
,
#
g
)
and
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
g
,
c
)
>
0
...
...
@@ -51,7 +51,10 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
e
,
tp
)
if
#
g
==
0
then
return
false
end
ft
=
math.min
(
g
:
GetClassCount
(
Card
.
GetAttribute
),
ft
)
return
g
:
CheckSubGroup
(
cm
.
fselect
,
1
,
ft
,
tp
)
aux
.
GCheckAdditional
=
aux
.
dabcheck
local
res
=
g
:
CheckSubGroup
(
cm
.
fselect
,
1
,
ft
,
tp
)
aux
.
GCheckAdditional
=
nil
return
res
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
...
...
@@ -65,9 +68,11 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local
g
=
ag
:
Filter
(
cm
.
spfilter
,
nil
,
e
,
tp
)
if
#
g
==
0
then
return
false
end
ft
=
math.min
(
g
:
GetClassCount
(
Card
.
GetAttribute
),
ft
)
aux
.
GCheckAdditional
=
aux
.
dabcheck
if
g
:
CheckSubGroup
(
cm
.
fselect
,
1
,
ft
,
tp
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
g
:
SelectSubGroup
(
tp
,
cm
.
fselect
,
false
,
1
,
ft
,
tp
)
aux
.
GCheckAdditional
=
nil
if
not
sg
then
return
end
for
tc
in
aux
.
Next
(
sg
)
do
Duel
.
DisableShuffleCheck
()
...
...
@@ -87,7 +92,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if
#
og
>
0
then
Duel
.
BreakEffect
()
Duel
.
DisableShuffleCheck
()
if
Duel
.
SendtoHand
(
ag
-
og
,
1
-
tp
,
REASON_EFFECT
)
then
Duel
.
ShuffleHand
(
1
-
tp
)
end
if
Duel
.
SendtoHand
(
ag
-
og
,
1
-
tp
,
REASON_EFFECT
)
>
0
then
Duel
.
ShuffleHand
(
1
-
tp
)
end
if
og
:
FilterCount
(
Card
.
IsLocation
,
nil
,
LOCATION_MZONE
)
==#
sg
then
local
tg
=
Duel
.
GetMatchingGroup
(
cm
.
xyzfilter
,
tp
,
LOCATION_EXTRA
,
0
,
nil
,
og
,
tp
)
if
#
tg
>
0
then
...
...
@@ -98,6 +103,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
else
aux
.
GCheckAdditional
=
nil
Duel
.
ShuffleDeck
(
tp
)
end
end
...
...
expansions/script/c11451644.lua
View file @
a1118c51
--救祓少女·斯塔米罗
--21.12.31
local
m
=
11451644
local
cm
=
_G
[
"c"
..
m
]
local
cm
,
m
=
GetID
()
function
cm
.
initial_effect
(
c
)
--link summon
aux
.
AddLinkProcedure
(
c
,
cm
.
matfilter
,
1
,
1
)
...
...
@@ -32,6 +31,21 @@ function cm.initial_effect(c)
e2
:
SetTarget
(
cm
.
sptg
)
e2
:
SetOperation
(
cm
.
spop
)
c
:
RegisterEffect
(
e2
)
if
cm
.
global_check
==
nil
then
cm
.
global_check
=
true
local
_SpecialSummon
=
Duel
.
SpecialSummon
local
_SpecialSummonStep
=
Duel
.
SpecialSummonStep
function
Duel
.
SpecialSummon
(
tg
,
...
)
tg
:
KeepAlive
()
cm
[
1
]
=
tg
return
_SpecialSummon
(
tg
,
...
)
end
function
Duel
.
SpecialSummonStep
(
tg
,
...
)
tg
:
KeepAlive
()
cm
[
1
]
=
tg
return
_SpecialSummonStep
(
tg
,
...
)
end
end
end
function
cm
.
matfilter
(
c
)
return
c
:
IsLinkSetCard
(
0x172
)
and
not
c
:
IsLinkType
(
TYPE_LINK
)
...
...
@@ -41,13 +55,16 @@ function cm.costcon(e)
if
Duel
.
GetFieldGroupCount
(
tp
,
0
,
LOCATION_GRAVE
)
==
0
then
return
false
end
return
true
end
function
cm
.
tdfilter
(
c
)
return
c
:
IsAbleToDeckOrExtraAsCost
()
and
not
(
cm
[
1
]
and
aux
.
GetValueType
(
cm
[
1
])
==
"Group"
and
cm
[
1
]:
IsContains
(
c
))
end
function
cm
.
costchk
(
e
,
te_or_c
,
tp
)
local
p
=
e
:
GetHandlerPlayer
()
if
p
==
tp
then
return
true
elseif
cm
[
0
]
and
(
cm
[
0
]:
IsStatus
(
STATUS_SPSUMMON_STEP
)
or
cm
[
0
]:
IsStatus
(
STATUS_SUMMONING
))
then
return
true
elseif
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToDeckOrExtraAsCost
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
te_or_c
)
then
elseif
Duel
.
IsExistingMatchingCard
(
cm
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
te_or_c
)
then
e
:
SetLabelObject
(
te_or_c
)
cm
[
0
]
=
nil
return
true
...
...
@@ -60,7 +77,7 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local
tc
=
e
:
GetLabelObject
()
if
cm
[
0
]
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
Card
.
IsAbleToDeckOrExtraAsCost
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
tc
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
tdfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
tc
)
Duel
.
SendtoDeck
(
sg
,
nil
,
2
,
REASON_COST
)
cm
[
0
]
=
tc
end
...
...
expansions/script/c130006035.lua
View file @
a1118c51
...
...
@@ -56,8 +56,7 @@ function s.mixop(e,tp,eg,ep,ev,re,r,rp)
else
local
c
=
e
:
GetHandler
()
if
cct
>=
3
then
if
c
:
IsRelateToChain
(
0
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
>
0
then
if
c
:
IsRelateToChain
(
0
)
and
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
>
0
then
Duel
.
DiscardHand
(
1
-
tp
,
nil
,
1
,
1
,
REASON_EFFECT
,
nil
)
end
end
...
...
expansions/script/c130006036.lua
View file @
a1118c51
...
...
@@ -55,8 +55,7 @@ function s.mixop(e,tp,eg,ep,ev,re,r,rp)
else
local
c
=
e
:
GetHandler
()
if
cct
>=
3
then
if
c
:
IsRelateToChain
(
0
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
>
0
then
if
c
:
IsRelateToChain
(
0
)
and
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
>
0
then
local
dg
=
Duel
.
GetDecktopGroup
(
1
-
tp
,
3
)
if
#
dg
>
0
then
Duel
.
Remove
(
dg
,
POS_FACEDOWN
,
REASON_EFFECT
)
...
...
expansions/script/c29002020.lua
View file @
a1118c51
...
...
@@ -19,34 +19,52 @@ function c29002020.initial_effect(c)
e2
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e2
:
SetValue
(
c29002020
.
splimit
)
c
:
RegisterEffect
(
e2
)
--i
mmune
--i
ndes
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EFFECT_IMMUNE_EFFECT
)
e3
:
SetDescription
(
aux
.
Stringid
(
29002020
,
1
))
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCode
(
EVENT_FREE_CHAIN
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e3
:
SetValue
(
c29002020
.
efilter
)
c
:
RegisterEffect
(
e3
)
end
e3
:
SetHintTiming
(
0
,
TIMINGS_CHECK_MONSTER
+
TIMING_END_PHASE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetTarget
(
c29002020
.
itarget
)
e3
:
SetOperation
(
c29002020
.
ioperation
)
c
:
RegisterEffect
(
e3
)
if
not
c29002020
.
global_check
then
c29002020
.
global_check
=
true
local
ge1
=
Effect
.
CreateEffect
(
c
)
ge1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
ge1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
ge1
:
SetOperation
(
c29002020
.
checkop
)
Duel
.
RegisterEffect
(
ge1
,
0
)
local
ge2
=
ge1
:
Clone
()
ge2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
Duel
.
RegisterEffect
(
ge2
,
0
)
end
end
function
c29002020
.
checkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
eg
:
GetFirst
()
while
tc
do
Duel
.
RegisterFlagEffect
(
0
,
29002020
,
RESET_PHASE
+
PHASE_END
,
0
,
1
)
tc
=
eg
:
GetNext
()
end
end
function
c29002020
.
splimit
(
e
,
se
,
sp
,
st
)
return
not
e
:
GetHandler
():
IsLocation
(
LOCATION_EXTRA
)
end
function
c29002020
.
hspfilter
(
c
,
ft
,
tp
)
return
(
c
:
IsSetCard
(
0x87af
)
or
(
_G
[
"c"
..
c
:
GetCode
()]
and
_G
[
"c"
..
c
:
GetCode
()].
named_with_Arknight
))
and
(
ft
>
0
or
c
:
IsControler
(
tp
))
and
(
c
:
IsControler
(
tp
)
or
c
:
IsFaceup
())
end
function
c29002020
.
sprcon
(
e
,
c
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
g
=
Duel
.
GetReleaseGroup
(
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
x
=
Duel
.
GetActivityCount
(
tp
,
ACTIVITY_SUMMON
)
+
Duel
.
GetActivityCount
(
tp
,
ACTIVITY_SPSUMMON
)
+
Duel
.
GetActivityCount
(
1
-
tp
,
ACTIVITY_SUMMON
)
+
Duel
.
GetActivityCount
(
1
-
tp
,
ACTIVITY_SPSUMMON
)
return
x
>=
12
and
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
nil
,
c
)
>
0
and
Duel
.
CheckReleaseGroup
(
tp
,
c29002020
.
mfilter
,
3
,
nil
,
ft
,
tp
)
local
x
=
Duel
.
GetFlagEffect
(
0
,
29002020
)
return
x
>=
12
and
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
nil
,
c
)
>
0
and
(
Duel
.
IsCanRemoveCounter
(
c
:
GetControler
(),
1
,
0
,
0x10ae
,
3
,
REASON_COST
)
or
(
Duel
.
GetFlagEffect
(
tp
,
29096814
)
==
1
and
Duel
.
IsCanRemoveCounter
(
c
:
GetControler
(),
1
,
0
,
0x10ae
,
2
,
REASON_COST
)))
end
function
c29002020
.
sprop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
c29002020
.
mfilter
,
3
,
3
,
nil
,
ft
,
tp
)
Duel
.
Release
(
g
,
REASON_RULE
)
if
Duel
.
GetFlagEffect
(
tp
,
29096814
)
==
1
then
Duel
.
ResetFlagEffect
(
tp
,
29096814
)
Duel
.
RemoveCounter
(
tp
,
1
,
0
,
0x10ae
,
2
,
REASON_RULE
)
else
Duel
.
RemoveCounter
(
tp
,
1
,
0
,
0x10ae
,
3
,
REASON_RULE
)
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
...
...
@@ -55,6 +73,28 @@ function c29002020.sprop(e,tp,eg,ep,ev,re,r,rp,c)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
function
c29002020
.
itarget
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
true
end
end
function
c29002020
.
ioperation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_IMMUNE_EFFECT
)
e2
:
SetValue
(
c29002020
.
efilter
)
e2
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e2
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e2
:
SetOwnerPlayer
(
tp
)
Duel
.
RegisterEffect
(
e2
,
tp
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
29002020
,
2
))
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
29002020
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetProperty
(
EFFECT_FLAG_CLIENT_HINT
)
e3
:
SetTargetRange
(
1
,
0
)
Duel
.
RegisterEffect
(
e3
,
tp
)
end
function
c29002020
.
efilter
(
e
,
te
)
if
te
:
GetOwnerPlayer
()
==
e
:
GetHandlerPlayer
()
then
return
false
end
if
not
te
:
IsHasProperty
(
EFFECT_FLAG_CARD_TARGET
)
then
return
true
end
...
...
expansions/script/c29002021.lua
View file @
a1118c51
--方舟骑士·夕
c29002021
.
named_with_Arknight
=
1
function
c29002021
.
initial_effect
(
c
)
--xyz summon
c
:
EnableReviveLimit
()
--indes
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
29002021
,
1
))
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCode
(
EVENT_FREE_CHAIN
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetHintTiming
(
0
,
TIMINGS_CHECK_MONSTER
+
TIMING_END_PHASE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetCost
(
c29002021
.
icost
)
e3
:
SetTarget
(
c29002021
.
itarget
)
e3
:
SetOperation
(
c29002021
.
ioperation
)
c
:
RegisterEffect
(
e3
)
--
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e4
:
SetOperation
(
c29002021
.
lrop
)
c
:
RegisterEffect
(
e4
)
end
function
c29002021
.
ovfilter
(
c
)
local
tp
=
c
:
GetControler
()
local
x
=
Duel
.
GetActivityCount
(
tp
,
ACTIVITY_SUMMON
)
+
Duel
.
GetActivityCount
(
tp
,
ACTIVITY_SPSUMMON
)
+
Duel
.
GetActivityCount
(
1
-
tp
,
ACTIVITY_SUMMON
)
+
Duel
.
GetActivityCount
(
1
-
tp
,
ACTIVITY_SPSUMMON
)
return
c
:
IsFaceup
()
and
x
>=
12
and
(
c
:
IsSetCard
(
0x87af
)
or
(
_G
[
"c"
..
c
:
GetCode
()]
and
_G
[
"c"
..
c
:
GetCode
()].
named_with_Arknight
))
end
function
c29002021
.
xyzop
(
e
,
tp
,
chk
)
if
chk
==
0
then
return
true
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
function
c29002021
.
effcon
(
e
)
return
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_XYZ
)
end
function
c29002021
.
icost
(
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
c29002021
.
itarget
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
true
end
end
function
c29002021
.
ioperation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
--
c
:
EnableReviveLimit
()
--spsummon condition
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_IMMUNE_EFFECT
)
e1
:
SetValue
(
c29002021
.
efilter
)
e1
:
SetTargetRange
(
0
,
LOCATION_ONFIELD
)
e1
:
SetProperty
(
EFFECT_FLAG_SET_AVAILABLE
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
--poschange
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsFacedown
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
ChangePosition
(
g
,
POS_FACEUP_ATTACK
,
POS_FACEUP_ATTACK
,
POS_FACEUP_ATTACK
,
POS_FACEUP_ATTACK
,
false
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e1
:
SetValue
(
aux
.
ritlimit
)
c
:
RegisterEffect
(
e1
)
--token
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_TOKEN
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetTarget
(
c29002021
.
tktg
)
e2
:
SetOperation
(
c29002021
.
tkop
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e3
:
SetProperty
(
0
)
c
:
RegisterEffect
(
e3
)
end
function
c29002021
.
tktg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
29020211
,
0
,
TYPES_TOKEN_MONSTER
,
2400
,
2400
,
12
,
RACE_WYRM
,
ATTRIBUTE_WATER
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOKEN
,
nil
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
0
,
0
)
end
function
c29002021
.
tkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
29020211
,
0
,
TYPES_TOKEN_MONSTER
,
2400
,
2400
,
12
,
RACE_WYRM
,
ATTRIBUTE_WATER
)
then
local
token
=
Duel
.
CreateToken
(
tp
,
29020211
)
Duel
.
SpecialSummon
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetType
(
EFFECT_TYPE_FIELD
)
e5
:
SetCode
(
EFFECT_SET_POSITION
)
e5
:
SetTargetRange
(
0
,
LOCATION_MZONE
)
e5
:
SetValue
(
POS_FACEUP_ATTACK
)
e5
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e5
,
tp
)
end
function
c29002021
.
efilter
(
e
,
te
,
c
)
return
te
:
GetOwner
()
~=
c
and
te
:
GetOwnerPlayer
()
~=
e
:
GetOwnerPlayer
()
end
function
c29002021
.
lrop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsSummonType
(
SUMMON_TYPE_XYZ
)
then
return
false
end
end
\ No newline at end of file
expansions/script/c29002023.lua
View file @
a1118c51
...
...
@@ -38,6 +38,24 @@ function c29002023.initial_effect(c)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetOperation
(
c29002023
.
atkop
)
c
:
RegisterEffect
(
e4
)
if
not
c29002023
.
global_check
then
c29002023
.
global_check
=
true
local
ge1
=
Effect
.
CreateEffect
(
c
)
ge1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
ge1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
ge1
:
SetOperation
(
c29002023
.
checkop
)
Duel
.
RegisterEffect
(
ge1
,
0
)
local
ge2
=
ge1
:
Clone
()
ge2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
Duel
.
RegisterEffect
(
ge2
,
0
)
end
end
function
c29002023
.
checkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
eg
:
GetFirst
()
while
tc
do
Duel
.
RegisterFlagEffect
(
0
,
29002023
,
RESET_PHASE
+
PHASE_END
,
0
,
1
)
tc
=
eg
:
GetNext
()
end
end
function
c29002023
.
op0
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
24
,
0
,
aux
.
Stringid
(
29002023
,
0
))
...
...
@@ -54,7 +72,7 @@ function c29002023.damcon(e)
end
function
c29002023
.
ovfilter
(
c
)
local
tp
=
c
:
GetControler
()
local
x
=
Duel
.
Get
ActivityCount
(
tp
,
ACTIVITY_SUMMON
)
+
Duel
.
GetActivityCount
(
tp
,
ACTIVITY_SPSUMMON
)
+
Duel
.
GetActivityCount
(
1
-
tp
,
ACTIVITY_SUMMON
)
+
Duel
.
GetActivityCount
(
1
-
tp
,
ACTIVITY_SPSUMMON
)
local
x
=
Duel
.
Get
FlagEffect
(
0
,
29002023
)
return
c
:
IsFaceup
()
and
x
>=
12
and
(
c
:
IsSetCard
(
0x87af
)
or
(
_G
[
"c"
..
c
:
GetCode
()]
and
_G
[
"c"
..
c
:
GetCode
()].
named_with_Arknight
))
end
function
c29002023
.
xyzop
(
e
,
tp
,
chk
)
...
...
expansions/script/c29009255.lua
View file @
a1118c51
--画中人
function
c29009255
.
initial_effect
(
c
)
aux
.
AddCodeList
(
c
,
29002021
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_DECKDES
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCountLimit
(
1
,
29009255
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetTarget
(
c29009255
.
target
)
e1
:
SetOperation
(
c29009255
.
activate
)
c
:
RegisterEffect
(
e1
)
if
not
c29009255
.
global_check
then
c29009255
.
global_check
=
true
local
ge1
=
Effect
.
CreateEffect
(
c
)
ge1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
ge1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
ge1
:
SetOperation
(
c29009255
.
checkop
)
Duel
.
RegisterEffect
(
ge1
,
0
)
local
ge2
=
ge1
:
Clone
()
ge2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
Duel
.
RegisterEffect
(
ge2
,
0
)
end
end
function
c29009255
.
checkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
eg
:
GetFirst
()
while
tc
do
Duel
.
RegisterFlagEffect
(
0
,
29009255
,
RESET_PHASE
+
PHASE_END
,
0
,
1
)
tc
=
eg
:
GetNext
()
end
end
function
c29009255
.
dfilter
(
c
,
x
)
return
(
c
:
IsSetCard
(
0x87af
)
or
(
_G
[
"c"
..
c
:
GetCode
()]
and
_G
[
"c"
..
c
:
GetCode
()].
named_with_Arknight
))
and
c
:
IsLevelAbove
(
1
)
and
c
:
IsAbleToGrave
()
and
x
>=
12
end
function
c29009255
.
filter
(
c
)
return
(
c
:
IsSetCard
(
0x87af
)
or
(
_G
[
"c"
..
c
:
GetCode
()]
and
_G
[
"c"
..
c
:
GetCode
()].
named_with_Arknight
))
end
function
c29009255
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
local
mg
=
Duel
.
GetRitualMaterial
(
tp
)
local
x
=
Duel
.
GetFlagEffect
(
0
,
29009255
)
local
dg
=
Duel
.
GetMatchingGroup
(
c29009255
.
dfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
x
)
local
res
=
Duel
.
IsExistingMatchingCard
(
aux
.
RitualUltimateFilter
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
c29009255
.
filter
,
e
,
tp
,
mg
,
dg
,
Card
.
GetLevel
,
"Greater"
)
return
res
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
)
end
function
c29009255
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
::
cancel
::
local
m
=
Duel
.
GetRitualMaterial
(
tp
)
local
x
=
Duel
.
GetFlagEffect
(
0
,
29009255
)
local
dg
=
Duel
.
GetMatchingGroup
(
c29009255
.
dfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
,
x
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
aux
.
RitualUltimateFilter
),
tp
,
LOCATION_HAND
+
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
c29009255
.
filter
,
e
,
tp
,
m
,
dg
,
Card
.
GetLevel
,
"Greater"
)
local
tc
=
tg
:
GetFirst
()
if
tc
then
local
mg
=
m
:
Filter
(
Card
.
IsCanBeRitualMaterial
,
tc
,
tc
)
mg
:
Merge
(
dg
)
if
tc
.
mat_filter
then
mg
=
mg
:
Filter
(
tc
.
mat_filter
,
tc
,
tp
)
else
mg
:
RemoveCard
(
tc
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
aux
.
GCheckAdditional
=
aux
.
RitualCheckAdditional
(
tc
,
tc
:
GetLevel
(),
"Greater"
)
local
mat
=
mg
:
SelectSubGroup
(
tp
,
aux
.
RitualCheck
,
true
,
1
,
tc
:
GetLevel
(),
tp
,
tc
,
tc
:
GetLevel
(),
"Greater"
)
aux
.
GCheckAdditional
=
nil
if
not
mat
then
goto
cancel
end
tc
:
SetMaterial
(
mat
)
local
dmat
=
mat
:
Filter
(
Card
.
IsLocation
,
nil
,
LOCATION_DECK
)
if
dmat
:
GetCount
()
>
0
then
mat
:
Sub
(
dmat
)
Duel
.
SendtoGrave
(
dmat
,
REASON_EFFECT
+
REASON_MATERIAL
+
REASON_RITUAL
)
end
Duel
.
ReleaseRitualMaterial
(
mat
)
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
tc
,
SUMMON_TYPE_RITUAL
,
tp
,
tp
,
false
,
true
,
POS_FACEUP
)
tc
:
CompleteProcedure
()
end
end
expansions/script/c72410180.lua
View file @
a1118c51
--方舟骑士 泥岩
c72410180
.
named_with_Arknight
=
1
function
c72410180
.
initial_effect
(
c
)
--special summon rule
local
e1
=
Effect
.
CreateEffect
(
c
)
...
...
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