Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-222DIY-cards
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
alstroemeria-silentlove
ygopro-222DIY-cards
Commits
ecfc84a0
Commit
ecfc84a0
authored
Aug 03, 2022
by
Tachibana
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of git.mycard.moe:alstroemeria-silentlove/ygopro-222DIY-cards
parents
f188b9be
d174295a
Pipeline
#15302
passed with stages
in 28 minutes and 34 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
120 additions
and
182 deletions
+120
-182
expansions/script/c33350003.lua
expansions/script/c33350003.lua
+56
-107
expansions/script/c33350005.lua
expansions/script/c33350005.lua
+5
-7
expansions/script/c33350011.lua
expansions/script/c33350011.lua
+15
-15
expansions/script/c33350012.lua
expansions/script/c33350012.lua
+44
-53
No files found.
expansions/script/c33350003.lua
View file @
ecfc84a0
--传说之魂 诚信
--传说之魂 诚信
local
m
=
33350003
local
cm
,
m
,
o
=
GetID
()
local
cm
=
_G
[
"c"
..
m
]
function
cm
.
initial_effect
(
c
)
function
c33350003
.
initial_effect
(
c
)
local
e0
=
Effect
.
CreateEffect
(
c
)
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e0
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e0
:
SetCategory
(
CATEGORY_TOGRAVE
+
CATEGORY_ATKCHANGE
)
e0
:
SetCategory
(
CATEGORY_TOGRAVE
+
CATEGORY_ATKCHANGE
)
e0
:
SetType
(
EFFECT_TYPE_IGNITION
)
e0
:
SetType
(
EFFECT_TYPE_IGNITION
)
e0
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e0
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e0
:
SetRange
(
LOCATION_MZONE
)
e0
:
SetRange
(
LOCATION_MZONE
)
e0
:
SetCondition
(
cm
.
conditon1
)
e0
:
SetCountLimit
(
4
)
e0
:
SetTarget
(
cm
.
target
)
e0
:
SetCondition
(
cm
.
conditon1
)
e0
:
SetOperation
(
cm
.
operation1
(
200
))
e0
:
SetTarget
(
cm
.
target
)
c
:
RegisterEffect
(
e0
)
e0
:
SetOperation
(
cm
.
operation1
)
local
e1
=
e0
:
Clone
()
c
:
RegisterEffect
(
e0
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
local
e1
=
e0
:
Clone
()
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetHintTiming
(
TIMING_DAMAGE_STEP
,
TIMING_DAMAGE_STEP
+
TIMING_END_PHASE
)
e1
:
SetHintTiming
(
TIMING_DAMAGE_STEP
+
TIMING_DAMAGE_STEP
+
TIMING_END_PHASE
)
e1
:
SetCondition
(
cm
.
conditon2
)
e1
:
SetCondition
(
cm
.
conditon2
)
e1
:
SetOperation
(
cm
.
operation2
)
e1
:
SetOperation
(
cm
.
operation1
(
400
)
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_XMATERIAL
)
e2
:
SetType
(
EFFECT_TYPE_XMATERIAL
)
...
@@ -28,7 +26,7 @@ function c33350003.initial_effect(c)
...
@@ -28,7 +26,7 @@ function c33350003.initial_effect(c)
e2
:
SetCondition
(
cm
.
condition
)
e2
:
SetCondition
(
cm
.
condition
)
e2
:
SetValue
(
1
)
e2
:
SetValue
(
1
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetRange
(
LOCATION_MZONE
)
...
@@ -37,103 +35,54 @@ function c33350003.initial_effect(c)
...
@@ -37,103 +35,54 @@ function c33350003.initial_effect(c)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
cm
.
setname
=
"TaleSouls"
cm
.
setname
=
"TaleSouls"
function
cm
.
tgfilter
(
c
)
return
c
:
IsFaceup
()
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
33350001
)
and
c
:
IsFaceup
()
return
c
:
IsCode
(
33350001
)
and
c
:
IsFaceup
()
end
end
function
cm
.
conditon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
conditon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
not
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
return
not
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
end
function
cm
.
conditon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
conditon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
cm
.
tgfilter
(
chkc
)
end
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
chkc
:
IsFaceup
()
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
tgfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
and
e
:
GetHandler
():
GetFlagEffect
(
m
)
<
4
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_FACEUP
)
local
g
=
Duel
.
SelectTarget
(
tp
,
cm
.
tgfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
g
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
g
,
1
,
0
,
0
)
end
e
:
GetHandler
():
RegisterFlagEffect
(
m
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
,
0
,
1
)
function
cm
.
operation1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
local
op
=
0
local
preatk
=
tc
:
GetAttack
()
local
seq
=
nil
if
tc
:
GetSequence
()
>
0
and
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
tc
:
GetSequence
()
-
1
)
and
tc
:
GetSequence
()
<
4
and
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
tc
:
GetSequence
()
+
1
)
then
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
0
),
aux
.
Stringid
(
m
,
1
))
elseif
tc
:
GetSequence
()
>
0
and
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
tc
:
GetSequence
()
-
1
)
then
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
0
))
elseif
tc
:
GetSequence
()
<
4
and
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
tc
:
GetSequence
()
+
1
)
then
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
0
))
+
1
else
return
end
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
if
op
==
0
then
for
i
=
4
,
0
,
-
1
do
if
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
i
)
then
seq
=
i
end
end
end
if
op
==
1
then
for
i
=
0
,
4
,
1
do
if
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
i
)
then
seq
=
i
end
end
end
Duel
.
MoveSequence
(
tc
,
seq
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetValue
(
-
200
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e1
)
Duel
.
BreakEffect
()
if
preatk
~=
0
and
tc
:
IsAttack
(
0
)
then
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
end
end
end
end
function
cm
.
operation1
(
val
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
operation2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
local
c
=
e
:
GetHandler
()
if
not
(
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
())
then
return
end
local
tc
=
Duel
.
GetFirstTarget
()
local
op
=
{}
local
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
0
),
aux
.
Stringid
(
m
,
1
))
local
os
=
{}
local
preatk
=
tc
:
GetAttack
()
local
n
=
math.abs
(
e
:
GetHandler
():
GetControler
()
-
tc
:
GetControler
())
local
seq
=
nil
if
tc
:
GetSequence
()
>
0
and
Duel
.
CheckLocation
(
tc
:
GetControler
(),
4
,
tc
:
GetSequence
()
-
1
)
then
op
[
1
]
=
aux
.
Stringid
(
m
,
n
);
os
[
1
]
=
4
end
if
tc
:
IsRelateToEffect
(
e
)
and
tc
:
IsFaceup
()
then
if
tc
:
GetSequence
()
<
4
and
Duel
.
CheckLocation
(
tc
:
GetControler
(),
4
,
tc
:
GetSequence
()
+
1
)
then
op
[
#
op
+
1
]
=
aux
.
Stringid
(
m
,
math.abs
(
n
-
1
));
os
[
#
os
+
1
]
=
0
end
if
op
==
0
and
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
tc
:
GetSequence
()
-
1
)
and
tc
:
GetSequence
()
~=
0
then
if
#
op
==
0
then
return
end
for
i
=
4
,
0
,
-
1
do
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_EFFECT
)
if
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
i
)
then
op
=
#
op
==
1
and
os
[
1
]
or
os
[
Duel
.
SelectOption
(
tp
,
table.unpack
(
op
))
+
1
]
seq
=
i
for
i
=
0
,
4
,
1
do
end
if
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
math.abs
(
op
-
i
))
then
end
os
=
math.abs
(
op
-
i
)
end
end
if
op
==
1
and
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
tc
:
GetSequence
()
+
1
)
and
tc
:
GetSequence
()
~=
4
then
end
for
i
=
0
,
4
,
1
do
Duel
.
MoveSequence
(
tc
,
os
)
if
Duel
.
CheckLocation
(
tc
:
GetControler
(),
LOCATION_MZONE
,
i
)
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
seq
=
i
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
end
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
end
e1
:
SetValue
(
-
val
)
end
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
Duel
.
MoveSequence
(
tc
,
seq
)
tc
:
RegisterEffect
(
e1
)
local
e1
=
Effect
.
CreateEffect
(
c
)
if
not
tc
:
IsAttack
(
0
)
then
return
end
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
Duel
.
BreakEffect
()
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
e1
:
SetValue
(
-
400
)
end
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e1
)
if
preatk
~=
0
and
tc
:
IsAttack
(
0
)
then
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
end
end
end
end
--效果1
--效果1
function
cm
.
condition
(
e
)
function
cm
.
condition
(
e
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
return
c
.
setname
==
"TaleSouls"
return
c
.
setname
==
"TaleSouls"
end
end
\ No newline at end of file
expansions/script/c33350005.lua
View file @
ecfc84a0
...
@@ -24,7 +24,7 @@ function c33350005.initial_effect(c)
...
@@ -24,7 +24,7 @@ function c33350005.initial_effect(c)
e4
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e4
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e4
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e4
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetTargetRange
(
0
,
LOCATION_MZONE
)
e4
:
SetTargetRange
(
0
,
1
)
e4
:
SetCondition
(
cm
.
actcon
)
e4
:
SetCondition
(
cm
.
actcon
)
e4
:
SetValue
(
cm
.
atlimit
)
e4
:
SetValue
(
cm
.
atlimit
)
c
:
RegisterEffect
(
e4
)
c
:
RegisterEffect
(
e4
)
...
@@ -79,17 +79,15 @@ end
...
@@ -79,17 +79,15 @@ end
--效果1
--效果1
function
cm
.
atlimit
(
e
,
re
)
function
cm
.
atlimit
(
e
,
re
)
local
tc
=
re
:
GetHandler
()
local
tc
=
re
:
GetHandler
()
return
tc
:
IsLocation
(
LOCATION_MZONE
)
and
re
:
IsActiveType
(
TYPE_MONSTER
)
and
e
:
GetHandler
():
GetColumnGroup
():
IsContains
(
tc
)
and
tc
:
IsAttackBelow
(
e
:
GetHandler
():
GetAttack
())
return
tc
:
IsLocation
(
LOCATION_MZONE
)
and
e
:
GetHandler
():
GetColumnGroup
():
IsContains
(
tc
)
and
tc
:
IsAttackBelow
(
e
:
GetHandler
():
GetAttack
())
end
end
function
cm
.
actcon
(
e
,
tp
)
function
cm
.
actcon
(
e
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
33350001
)
and
c
:
IsFaceup
()
return
c
:
IsCode
(
33350001
)
and
c
:
IsFaceup
()
end
end
function
cm
.
attack
(
e
,
c
)
function
cm
.
attack
(
e
,
c
)
local
ct1
=
aux
.
GetColumn
(
e
:
GetHandler
())
if
not
c
:
IsFaceup
()
then
return
end
local
ct2
=
aux
.
GetColumn
(
c
)
return
e
:
GetHandler
():
GetColumnGroup
():
IsContains
(
c
)
and
c
:
IsAttackBelow
(
e
:
GetHandler
():
GetAttack
())
if
not
ct1
or
not
ct2
then
return
false
end
return
math.abs
(
ct1
-
ct2
)
==
0
end
end
\ No newline at end of file
expansions/script/c33350011.lua
View file @
ecfc84a0
...
@@ -4,7 +4,7 @@ local cm=_G["c"..m]
...
@@ -4,7 +4,7 @@ local cm=_G["c"..m]
function
c33350011
.
initial_effect
(
c
)
function
c33350011
.
initial_effect
(
c
)
c
:
EnableReviveLimit
()
c
:
EnableReviveLimit
()
aux
.
AddXyzProcedure
(
c
,
cm
.
mfilter
,
1
,
6
,
cm
.
xyzop
,
aux
.
Stringid
(
m
,
0
))
aux
.
AddXyzProcedure
(
c
,
cm
.
mfilter
,
1
,
6
,
cm
.
xyzop
,
aux
.
Stringid
(
m
,
0
))
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
...
@@ -13,7 +13,7 @@ function c33350011.initial_effect(c)
...
@@ -13,7 +13,7 @@ function c33350011.initial_effect(c)
e1
:
SetTarget
(
cm
.
efftg
)
e1
:
SetTarget
(
cm
.
efftg
)
e1
:
SetOperation
(
cm
.
effop
)
e1
:
SetOperation
(
cm
.
effop
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetRange
(
LOCATION_MZONE
)
...
@@ -21,7 +21,7 @@ function c33350011.initial_effect(c)
...
@@ -21,7 +21,7 @@ function c33350011.initial_effect(c)
e2
:
SetCondition
(
cm
.
imcon
)
e2
:
SetCondition
(
cm
.
imcon
)
e2
:
SetValue
(
cm
.
efilter
)
e2
:
SetValue
(
cm
.
efilter
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e3
:
SetCategory
(
CATEGORY_DEFCHANGE
+
CATEGORY_ATKCHANGE
+
CATEGORY_DAMAGE
+
CATEGORY_RECOVER
)
e3
:
SetCategory
(
CATEGORY_DEFCHANGE
+
CATEGORY_ATKCHANGE
+
CATEGORY_DAMAGE
+
CATEGORY_RECOVER
)
e3
:
SetType
(
EFFECT_TYPE_IGNITION
)
e3
:
SetType
(
EFFECT_TYPE_IGNITION
)
...
@@ -36,11 +36,11 @@ cm.setname="TaleSouls"
...
@@ -36,11 +36,11 @@ cm.setname="TaleSouls"
function
cm
.
mfilter
(
c
,
xyzc
)
function
cm
.
mfilter
(
c
,
xyzc
)
return
c
.
setname
==
"TaleSouls"
and
c
:
IsLevel
(
1
)
return
c
.
setname
==
"TaleSouls"
and
c
:
IsLevel
(
1
)
end
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
)
return
c
:
IsCode
(
33350007
)
and
c
:
IsFaceup
(
)
return
c
:
IsCode
(
33350007
)
and
(
c
:
IsLocation
(
LOCATION_GRAVE
)
or
c
:
IsFaceup
()
)
end
end
function
cm
.
xyzop
(
c
,
e
,
tp
)
function
cm
.
xyzop
(
c
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
and
c
:
IsFaceup
()
and
c
:
IsCode
(
33350010
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
c
:
GetControler
(),
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
nil
)
and
c
:
IsFaceup
()
and
c
:
IsCode
(
33350010
)
end
end
--叠放要求
--叠放要求
function
cm
.
effcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
effcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
@@ -57,7 +57,7 @@ function cm.tgfilter(c)
...
@@ -57,7 +57,7 @@ function cm.tgfilter(c)
return
c
:
IsCanOverlay
()
and
c
.
setname
==
"TaleSouls"
return
c
:
IsCanOverlay
()
and
c
.
setname
==
"TaleSouls"
end
end
function
cm
.
efftg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
efftg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
mat
=
c
:
GetOverlayGroup
()
local
mat
=
c
:
GetOverlayGroup
()
if
chk
==
0
then
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
tgfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
+
LOCATION_REMOVED
,
0
,
nil
)
if
chk
==
0
then
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
tgfilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
+
LOCATION_REMOVED
,
0
,
nil
)
g
:
Merge
(
mat
)
g
:
Merge
(
mat
)
...
@@ -65,10 +65,10 @@ function cm.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
...
@@ -65,10 +65,10 @@ function cm.efftg(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
function
cm
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
effop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
sg
=
e
:
GetHandler
():
GetOverlayCount
()
local
sg
=
e
:
GetHandler
():
GetOverlayCount
()
local
mat
=
e
:
GetHandler
():
GetOverlayGroup
()
local
mat
=
e
:
GetHandler
():
GetOverlayGroup
()
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
ofilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
+
LOCATION_REMOVED
,
0
,
nil
,
e
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
ofilter
,
tp
,
LOCATION_GRAVE
+
LOCATION_DECK
+
LOCATION_REMOVED
,
0
,
nil
,
e
)
g
:
Merge
(
mat
)
g
:
Merge
(
mat
)
if
g
:
GetClassCount
(
Card
.
GetCode
)
<
6
or
g
:
GetClassCount
(
Card
.
GetOriginalCodeRule
)
<
6
then
if
g
:
GetClassCount
(
Card
.
GetCode
)
<
6
or
g
:
GetClassCount
(
Card
.
GetOriginalCodeRule
)
<
6
then
Duel
.
SendtoGrave
(
c
,
REASON_EFFECT
)
Duel
.
SendtoGrave
(
c
,
REASON_EFFECT
)
else
else
...
@@ -76,9 +76,9 @@ function cm.effop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -76,9 +76,9 @@ function cm.effop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_XMATERIAL
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_XMATERIAL
)
local
tg1
=
g
:
SelectSubGroup
(
tp
,
cm
.
gselect
,
false
,
6
,
6
,
mat
)
local
tg1
=
g
:
SelectSubGroup
(
tp
,
cm
.
gselect
,
false
,
6
,
6
,
mat
)
Duel
.
Overlay
(
c
,
tg1
)
Duel
.
Overlay
(
c
,
tg1
)
if
e
:
GetHandler
():
GetOverlayCount
()
~=
6
then
if
e
:
GetHandler
():
GetOverlayCount
()
~=
6
then
Duel
.
SendtoGrave
(
c
,
REASON_EFFECT
)
Duel
.
SendtoGrave
(
c
,
REASON_EFFECT
)
end
end
end
end
end
end
...
...
expansions/script/c33350012.lua
View file @
ecfc84a0
...
@@ -7,19 +7,20 @@ function c33350012.initial_effect(c)
...
@@ -7,19 +7,20 @@ function c33350012.initial_effect(c)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCost
(
cm
.
actcost
)
e1
:
SetCost
(
cm
.
actcost
)
c
:
RegisterEffect
(
e1
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetCategory
(
CATEGORY_LEAVE_GRAVE
)
e2
:
SetCategory
(
CATEGORY_LEAVE_GRAVE
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYED
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYED
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCondition
(
cm
.
regcon1
)
e2
:
SetCondition
(
cm
.
con2
(
cm
.
f2
)
)
e2
:
SetTarget
(
cm
.
ovtg
)
e2
:
SetTarget
(
cm
.
tg2
)
e2
:
SetOperation
(
cm
.
o
vop
)
e2
:
SetOperation
(
cm
.
o
p2
(
cm
.
f2
)
)
c
:
RegisterEffect
(
e2
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetCondition
(
cm
.
regcon2
)
e3
:
SetCondition
(
cm
.
con2
(
cm
.
f3
))
e3
:
SetOperation
(
cm
.
op2
(
cm
.
f3
))
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
cm
.
setname
=
"TaleSouls"
cm
.
setname
=
"TaleSouls"
...
@@ -32,59 +33,49 @@ function cm.actcost(e,tp,eg,ep,ev,re,r,rp,chk)
...
@@ -32,59 +33,49 @@ function cm.actcost(e,tp,eg,ep,ev,re,r,rp,chk)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
acfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
acfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
end
end
--发动cost
--e2
function
cm
.
cfilter1
(
c
,
tp
)
function
cm
.
f2
(
c
,
tp
)
return
c
:
IsPreviousControler
(
tp
)
and
c
:
IsPreviousLocation
(
LOCATION_MZONE
)
return
c
:
IsPreviousControler
(
tp
)
and
c
.
setname
==
"TaleSouls"
and
c
:
IsLocation
(
LOCATION_GRAVE
)
and
c
:
IsPreviousPosition
(
POS_FACEUP
)
and
c
.
setname
==
"TaleSouls"
end
end
function
cm
.
filter
(
c
)
function
cm
.
con2
(
f
)
return
c
:
IsFaceup
()
and
c
.
setname
==
"TaleSouls"
and
c
:
IsLevelAbove
(
0
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
end
return
eg
:
IsExists
(
f
,
1
,
nil
,
tp
)
function
cm
.
xfilter
(
c
)
end
return
c
:
IsFaceup
()
and
c
:
IsLevelAbove
(
0
)
end
function
cm
.
regcon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
cm
.
cfilter1
,
1
,
nil
,
tp
)
end
function
cm
.
cfilter2
(
c
,
tp
)
return
not
c
:
IsReason
(
REASON_BATTLE
)
and
cm
.
cfilter1
(
c
,
tp
)
end
function
cm
.
regcon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
eg
:
IsExists
(
cm
.
cfilter2
,
1
,
nil
,
tp
)
end
function
cm
.
cfilter
(
c
,
e
,
tp
)
return
c
:
IsPreviousControler
(
tp
)
and
c
.
setname
==
"TaleSouls"
end
end
function
cm
.
ovtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
tg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
tc
=
eg
:
GetFirst
()
local
tc
=
eg
:
GetFirst
()
if
chk
==
0
then
return
eg
:
Filter
(
Card
.
IsAbleToHand
,
nil
,
e
):
GetCount
()
>
0
end
if
chk
==
0
then
return
eg
:
Filter
(
Card
.
IsAbleToHand
,
nil
,
e
):
GetCount
()
>
0
and
Duel
.
GetFlagEffect
(
tp
,
m
)
==
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
eg
,
eg
:
GetCount
(),
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
eg
,
eg
:
GetCount
(),
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_HANDES
,
nil
,
0
,
tp
,
1
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_HANDES
,
nil
,
0
,
tp
,
1
)
Duel
.
RegisterFlagEffect
(
tp
,
m
,
RESET_CHAIN
,
0
,
1
)
end
end
function
cm
.
ovop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op2
(
f
)
local
b1
=
eg
:
Filter
(
cm
.
cfilter
,
nil
,
e
,
tp
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
b2
=
eg
:
Filter
(
cm
.
cfilter
,
nil
,
e
,
tp
)
local
g
=
eg
:
Filter
(
f
,
nil
,
tp
)
local
op
=
0
local
b1
=
g
:
IsExists
(
Card
.
IsAbleToHand
,
1
,
nil
)
and
Duel
.
IsPlayerCanDraw
(
1
-
tp
,
1
)
if
b1
and
b2
and
Duel
.
IsExistingMatchingCard
(
cm
.
xfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
then
op
=
Duel
.
SelectOption
(
1
-
tp
,
aux
.
Stringid
(
m
,
0
),
aux
.
Stringid
(
m
,
1
))
local
b2
=
g
:
IsExists
(
Card
.
IsAbleToRemove
,
1
,
nil
)
and
Duel
.
GetFieldGroup
(
tp
,
0
,
LOCATION_MZONE
):
Filter
(
Card
.
IsFaceup
,
nil
):
IsExists
(
Card
.
IsLevelAbove
,
1
,
nil
,
0
)
elseif
b1
then
op
=
Duel
.
SelectOption
(
1
-
tp
,
aux
.
Stringid
(
m
,
0
))
local
op
elseif
b2
and
Duel
.
IsExistingMatchingCard
(
cm
.
xfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
then
op
=
Duel
.
SelectOption
(
1
-
tp
,
aux
.
Stringid
(
m
,
1
))
+
1
if
b1
and
b2
then
op
=
Duel
.
SelectOption
(
1
-
tp
,
aux
.
Stringid
(
m
,
0
),
aux
.
Stringid
(
m
,
1
))
else
return
end
elseif
b1
then
op
=
Duel
.
SelectOption
(
1
-
tp
,
aux
.
Stringid
(
m
,
0
))
if
op
==
0
then
elseif
b2
then
op
=
Duel
.
SelectOption
(
1
-
tp
,
aux
.
Stringid
(
m
,
1
))
+
1
Duel
.
SendtoHand
(
eg
:
Filter
(
cm
.
cfilter
,
nil
,
e
,
tp
),
nil
,
REASON_EFFECT
)
else
return
end
Duel
.
Draw
(
1
-
tp
,
1
,
REASON_EFFECT
)
if
op
==
0
and
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
>
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
eg
)
Duel
.
ConfirmCards
(
1
-
tp
,
Duel
.
GetOperatedGroup
())
elseif
op
==
1
then
Duel
.
Draw
(
1
-
tp
,
1
,
REASON_EFFECT
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
xfilter
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
elseif
op
==
1
and
Duel
.
Remove
(
g
,
POS_FACEUP
,
REASON_EFFECT
)
>
0
then
local
tc
=
g
:
GetFirst
()
g
=
Duel
.
GetFieldGroup
(
tp
,
0
,
LOCATION_MZONE
):
Filter
(
Card
.
IsFaceup
,
nil
):
Filter
(
Card
.
IsLevelAbove
,
nil
,
0
)
Duel
.
Remove
(
eg
,
POS_FACEUP
,
REASON_EFFECT
)
for
tc
in
aux
.
Next
(
g
)
do
while
tc
do
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_LEVEL
)
e1
:
SetCode
(
EFFECT_UPDATE_LEVEL
)
e1
:
SetValue
(
1
)
e1
:
SetValue
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e1
)
tc
:
RegisterEffect
(
e1
)
end
tc
=
g
:
GetNext
()
end
end
end
end
end
--e3
function
cm
.
f3
(
c
,
tp
)
return
c
:
IsPreviousControler
(
tp
)
and
c
:
IsReason
(
REASON_EFFECT
)
and
c
.
setname
==
"TaleSouls"
end
end
\ No newline at end of file
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