Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-rush-duel
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
Clara Grace Paulsen
ygopro-rush-duel
Commits
090a5f5c
Commit
090a5f5c
authored
Mar 18, 2022
by
未闻皂名
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2022/3/18 模块化部分KP04卡
parent
7afe661f
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
72 additions
and
186 deletions
+72
-186
script/RDAttach.lua
script/RDAttach.lua
+26
-1
script/RDFunction.lua
script/RDFunction.lua
+0
-9
script/c120170023.lua
script/c120170023.lua
+3
-11
script/c120170024.lua
script/c120170024.lua
+2
-3
script/c120170025.lua
script/c120170025.lua
+4
-18
script/c120170026.lua
script/c120170026.lua
+3
-11
script/c120170027.lua
script/c120170027.lua
+4
-7
script/c120170028.lua
script/c120170028.lua
+5
-12
script/c120170029.lua
script/c120170029.lua
+11
-46
script/c120170030.lua
script/c120170030.lua
+4
-18
script/c120170031.lua
script/c120170031.lua
+6
-32
script/c120170032.lua
script/c120170032.lua
+4
-18
No files found.
script/RDAttach.lua
View file @
090a5f5c
...
...
@@ -48,7 +48,7 @@ function RushDuel.AttachIndesCount(e, card, count, value, desc, reset)
e1
:
SetCountLimit
(
count
)
return
e1
end
-- 赋予: 攻击宣言特效
-- 赋予: 攻击宣言
时
特效
function
RushDuel
.
AttachAttackAnnounce
(
e
,
card
,
operation
,
desc
,
reset
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
...
...
@@ -60,6 +60,31 @@ function RushDuel.AttachAttackAnnounce(e, card, operation, desc, reset)
end
e1
:
SetReset
(
reset
)
card
:
RegisterEffect
(
e1
)
return
e1
end
-- 赋予: 回合结束时特效
function
RushDuel
.
AttachEndPhase
(
e
,
card
,
player
,
code
,
operation
,
desc
)
card
:
RegisterFlagEffect
(
0
,
RESET_EVENT
+
RESETS_STANDARD
,
EFFECT_FLAG_CLIENT_HINT
,
1
,
code
,
desc
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e1
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetLabelObject
(
card
)
e1
:
SetCondition
(
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
local
fids
=
{
tc
:
GetFlagEffectLabel
(
tc
,
0
)}
for
i
=
1
,
#
fids
do
if
fids
[
i
]
==
code
then
return
true
end
end
e
:
Reset
()
return
false
end
)
e1
:
SetOperation
(
operation
)
Duel
.
RegisterEffect
(
e1
,
player
)
return
e1
end
-- 赋予: 不能直接攻击
function
RushDuel
.
AttachCannotDirectAttack
(
e
,
card
,
desc
,
reset
)
...
...
script/RDFunction.lua
View file @
090a5f5c
...
...
@@ -5,17 +5,14 @@ RushDuel = RushDuel or {}
function
RushDuel
.
SetCostLabel
(
e
)
e
:
SetLabel
(
1
)
end
-- 重置Cost标签, 无视Cost发动效果需做额外判断时使用
function
RushDuel
.
ResetCostLabel
(
e
)
e
:
SetLabel
(
0
)
end
-- 是否设置了Cost标签
function
RushDuel
.
IsCostLabel
(
e
)
return
e
:
GetLabel
()
==
1
end
-- 为效果设置标签
function
RushDuel
.
SetLabelAndObject
(
effect
,
target
,
set_label
,
set_object
)
if
effect
~=
nil
and
target
~=
nil
then
...
...
@@ -27,7 +24,6 @@ function RushDuel.SetLabelAndObject(effect, target, set_label, set_object)
end
end
end
-- 显示选择动画, 或者展示卡片组
function
RushDuel
.
HintOrConfirm
(
group
,
hint_selection
,
confirm
,
target_player
)
if
hint_selection
then
...
...
@@ -36,7 +32,6 @@ function RushDuel.HintOrConfirm(group, hint_selection, confirm, target_player)
Duel
.
ConfirmCards
(
target_player
,
group
)
end
end
-- 将 卡片组/卡片/效果 转化为卡片组, 对于极大怪兽, 其素材也包含其中
function
RushDuel
.
ToMaximunGroup
(
target
)
local
type
=
aux
.
GetValueType
(
target
)
...
...
@@ -57,7 +52,6 @@ function RushDuel.ToMaximunGroup(target)
g
:
Merge
(
overlay
)
return
g
end
-- 获取可用的主要怪兽区域数量
function
RushDuel
.
GetMZoneCount
(
player
,
max
)
local
ct
=
Duel
.
GetLocationCount
(
player
,
LOCATION_MZONE
)
...
...
@@ -66,20 +60,17 @@ function RushDuel.GetMZoneCount(player, max)
end
return
math.min
(
ct
,
max
)
end
-- 获取可用的魔法与陷阱区域数量
function
RushDuel
.
GetSZoneCount
(
player
,
max
)
local
ct
=
Duel
.
GetLocationCount
(
player
,
LOCATION_SZONE
)
return
math.min
(
ct
,
max
)
end
-- 将玩家卡组最上面的N张卡移到卡组最下面
function
RushDuel
.
SendDeckTopToBottom
(
player
,
count
)
for
i
=
1
,
count
do
Duel
.
MoveSequence
(
Duel
.
GetDecktopGroup
(
player
,
1
):
GetFirst
(),
1
)
end
end
-- 返回卡组并排序
function
RushDuel
.
SendToDeckSort
(
target
,
sequence
,
reason
,
sort_player
,
target_player
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
...
...
script/c120170023.lua
View file @
090a5f5c
...
...
@@ -19,25 +19,17 @@ function cm.confilter(c)
return
c
:
IsFaceup
()
and
c
:
IsLevelAbove
(
7
)
and
c
:
IsRace
(
RACE_FIEND
)
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsLevelAbove
(
7
)
and
c
:
IsRace
(
RACE_FIEND
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
return
c
:
IsLevelAbove
(
7
)
and
c
:
IsRace
(
RACE_FIEND
)
and
RD
.
IsCanBeSpecialSummoned
(
c
,
e
,
tp
,
POS_FACEUP_DEFENSE
)
end
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
confilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToGraveAsCost
()
end
Duel
.
SendtoGrave
(
e
:
GetHandler
(),
REASON_COST
)
end
cm
.
cost
=
RD
.
CostSendSelfToGrave
()
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetMZoneCount
(
tp
,
e
:
GetHandler
())
>
0
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetMZoneCount
(
tp
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
spfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
RD
.
SelectAndSpecialSummon
(
aux
.
NecroValleyFilter
(
cm
.
spfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
POS_FACEUP_DEFENSE
)
end
\ No newline at end of file
script/c120170024.lua
View file @
090a5f5c
...
...
@@ -22,8 +22,7 @@ function cm.initial_effect(c)
end
--Destroy
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsReason
(
REASON_SUMMON
)
and
c
:
IsStatus
(
STATUS_SUMMON_TURN
)
and
e
:
GetLabel
()
==
1
return
RD
.
IsSummonTurn
(
e
:
GetHandler
())
and
e
:
GetLabel
()
==
20170024
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsFaceup
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
...
...
@@ -48,7 +47,7 @@ end
function
cm
.
tricheck
(
e
,
c
)
local
g
=
c
:
GetMaterial
()
if
g
:
IsExists
(
cm
.
trifilter
,
2
,
nil
)
then
e
:
GetLabelObject
():
SetLabel
(
1
)
e
:
GetLabelObject
():
SetLabel
(
20170024
)
else
e
:
GetLabelObject
():
SetLabel
(
0
)
end
...
...
script/c120170025.lua
View file @
090a5f5c
...
...
@@ -20,26 +20,12 @@ end
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsAbleToEnterBP
()
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
CheckLPCost
(
tp
,
1000
)
end
Duel
.
PayLPCost
(
tp
,
1000
)
end
cm
.
cost
=
RD
.
CostPayLP
(
1000
)
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
m
,
1
))
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
HintSelection
(
g
)
local
tc
=
g
:
GetFirst
()
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_EXTRA_ATTACK
)
e1
:
SetProperty
(
EFFECT_FLAG_CLIENT_HINT
)
e1
:
SetValue
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_DISABLE
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
end
RD
.
SelectAndDoAction
(
aux
.
Stringid
(
m
,
1
),
cm
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
function
(
g
)
RD
.
AttachExtraAttack
(
e
,
g
:
GetFirst
(),
1
,
aux
.
Stringid
(
m
,
2
),
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
)
end
)
end
\ No newline at end of file
script/c120170026.lua
View file @
090a5f5c
...
...
@@ -17,12 +17,7 @@ end
function
cm
.
exfilter
(
c
)
return
c
:
IsLevelAbove
(
7
)
and
c
:
IsLocation
(
LOCATION_GRAVE
)
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsAbleToGraveAsCost
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
Card
.
IsAbleToGraveAsCost
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
end
cm
.
cost
=
RD
.
CostSendHandToGrave
(
Card
.
IsAbleToGraveAsCost
,
1
,
1
)
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetFieldGroupCount
(
tp
,
0
,
LOCATION_HAND
)
>
0
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
0
,
1
-
tp
,
LOCATION_HAND
)
...
...
@@ -33,11 +28,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel
.
ConfirmCards
(
tp
,
g
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
sg
=
g
:
Select
(
tp
,
1
,
1
,
nil
)
if
Duel
.
SendtoGrave
(
sg
,
REASON_EFFECT
)
~=
0
then
local
og
=
Duel
.
GetOperatedGroup
()
if
og
:
IsExists
(
cm
.
exfilter
,
1
,
nil
)
then
Duel
.
Recover
(
tp
,
1000
,
REASON_EFFECT
)
end
if
RD
.
SendToGraveAndExists
(
sg
,
cm
.
exfilter
,
1
,
nil
)
then
Duel
.
Recover
(
tp
,
1000
,
REASON_EFFECT
)
end
Duel
.
ShuffleHand
(
1
-
tp
)
end
...
...
script/c120170027.lua
View file @
090a5f5c
...
...
@@ -18,7 +18,7 @@ function cm.confilter(c)
return
c
:
IsFaceup
()
and
c
:
IsLevelAbove
(
7
)
and
c
:
IsRace
(
RACE_PLANT
)
end
function
cm
.
posfilter
(
c
)
return
c
:
IsDefensePos
()
and
c
:
IsCanChangePosition
(
)
return
c
:
IsDefensePos
()
and
RD
.
IsCanChangePosition
(
c
)
end
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
confilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
...
...
@@ -29,12 +29,9 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_POSITION
,
g
,
1
,
0
,
0
)
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_POSCHANGE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
posfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
HintSelection
(
g
)
if
Duel
.
ChangePosition
(
g
,
POS_FACEUP_ATTACK
)
~=
0
then
RD
.
SelectAndDoAction
(
HINTMSG_POSCHANGE
,
cm
.
posfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
,
function
(
g
)
if
RD
.
ChangePosition
(
g
,
POS_FACEUP_ATTACK
)
~=
0
then
Duel
.
Recover
(
tp
,
g
:
GetFirst
():
GetBaseAttack
(),
REASON_EFFECT
)
end
end
end
)
end
\ No newline at end of file
script/c120170028.lua
View file @
090a5f5c
...
...
@@ -19,22 +19,15 @@ function cm.thfilter(c)
return
c
:
IsType
(
TYPE_NORMAL
)
and
c
:
IsAttribute
(
ATTRIBUTE_EARTH
)
and
c
:
IsRace
(
RACE_PLANT
)
and
c
:
IsAbleToHand
()
end
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsReason
(
REASON_SUMMON
)
and
c
:
IsStatus
(
STATUS_SUMMON_TURN
)
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
CheckLPCost
(
tp
,
500
)
end
Duel
.
PayLPCost
(
tp
,
500
)
return
RD
.
IsSummonTurn
(
e
:
GetHandler
())
end
cm
.
cost
=
RD
.
CostPayLP
(
500
)
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
thfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
RD
.
SelectAndDoAction
(
HINTMSG_ATOHAND
,
aux
.
NecroValleyFilter
(
cm
.
thfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
function
(
g
)
RD
.
SendToHandAndExists
(
g
,
1
-
tp
)
end
)
end
\ No newline at end of file
script/c120170029.lua
View file @
090a5f5c
...
...
@@ -8,23 +8,16 @@ function cm.initial_effect(c)
e1
:
SetCategory
(
CATEGORY_TOGRAVE
+
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_GRAVE_SPSUMMON
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCondition
(
cm
.
condition
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetOperation
(
cm
.
operation
)
c
:
RegisterEffect
(
e1
)
end
--Special Summon
function
cm
.
confilter
(
c
)
return
c
:
IsCode
(
m
)
end
function
cm
.
tgfilter
(
c
)
return
c
:
IsRace
(
RACE_PLANT
)
and
c
:
IsAbleToGrave
()
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsCode
(
m
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
cm
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
confilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
return
c
:
IsCode
(
m
)
and
RD
.
IsCanBeSpecialSummoned
(
c
,
e
,
tp
,
POS_FACEUP
)
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetMZoneCount
(
tp
)
>
0
...
...
@@ -34,47 +27,19 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
tgfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
==
0
or
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
==
0
or
Duel
.
GetMZoneCount
(
tp
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
NecroValleyFilter
(
cm
.
spfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
tc
=
sg
:
GetFirst
()
if
tc
then
Duel
.
BreakEffect
()
local
c
=
e
:
GetHandler
()
if
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
then
tc
:
RegisterFlagEffect
(
0
,
RESET_EVENT
+
RESETS_STANDARD
,
EFFECT_FLAG_CLIENT_HINT
,
1
,
m
,
aux
.
Stringid
(
m
,
1
))
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e1
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetLabelObject
(
tc
)
e1
:
SetCondition
(
cm
.
tdcon
)
e1
:
SetOperation
(
cm
.
tdop
)
Duel
.
RegisterEffect
(
e1
,
tp
)
RD
.
SelectAndDoAction
(
HINTMSG_TOGRAVE
,
cm
.
tgfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
function
(
g
)
if
RD
.
SendToGraveAndExists
(
g
)
and
RD
.
SelectAndSpecialSummon
(
aux
.
NecroValleyFilter
(
cm
.
spfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
POS_FACEUP
,
true
)
~=
0
then
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetOperatedGroup
():
GetFirst
()
RD
.
AttachEndPhase
(
e
,
tc
,
tp
,
m
,
cm
.
tdop
,
aux
.
Stringid
(
m
,
1
))
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_CANNOT_DIRECT_ATTACK
)
e2
:
SetProperty
(
EFFECT_FLAG_CLIENT_HINT
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
)
c
:
RegisterEffect
(
e2
)
RD
.
AttachCannotDirectAttack
(
e
,
c
,
aux
.
Stringid
(
m
,
2
),
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
)
end
end
end
end
function
cm
.
tdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
local
fids
=
{
tc
:
GetFlagEffectLabel
(
tc
,
0
)}
for
i
=
1
,
#
fids
do
if
fids
[
i
]
==
m
then
return
true
end
end
e
:
Reset
()
return
false
end
)
end
function
cm
.
tdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
SendtoDeck
(
e
:
GetLabelObject
(),
nil
,
1
,
REASON_EFFECT
)
Duel
.
Hint
(
HINT_CARD
,
0
,
m
)
RD
.
SendToDeckBottom
(
e
:
GetLabelObject
())
end
\ No newline at end of file
script/c120170030.lua
View file @
090a5f5c
...
...
@@ -20,26 +20,12 @@ end
function
cm
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsLevelBelow
(
8
)
and
c
:
IsAttribute
(
ATTRIBUTE_EARTH
)
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
costfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
e
:
GetHandler
())
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
costfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
e
:
GetHandler
())
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
end
cm
.
cost
=
RD
.
CostSendMZoneToGrave
(
cm
.
costfilter
,
1
,
1
,
true
)
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
filter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
m
,
1
))
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
HintSelection
(
g
)
local
tc
=
g
:
GetFirst
()
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_BASE_ATTACK
)
e1
:
SetValue
(
0
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
end
RD
.
SelectAndDoAction
(
aux
.
Stringid
(
m
,
1
),
cm
.
filter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
,
function
(
g
)
RD
.
SetBaseAtkDef
(
e
,
g
:
GetFirst
(),
0
,
nil
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
)
end
)
end
\ No newline at end of file
script/c120170031.lua
View file @
090a5f5c
...
...
@@ -20,45 +20,19 @@ end
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsLevelBelow
(
7
)
and
c
:
IsRace
(
RACE_PLANT
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
SendtoDeck
(
g
,
nil
,
1
,
REASON_COST
)
end
cm
.
cost
=
RD
.
CostSendGraveToDeckBottom
(
cm
.
costfilter
,
1
,
1
)
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetMZoneCount
(
tp
)
>
0
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetMZoneCount
(
tp
)
<
1
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
e
,
tp
)
local
tc
=
g
:
GetFirst
()
if
tc
and
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
~=
0
then
tc
:
RegisterFlagEffect
(
0
,
RESET_EVENT
+
RESETS_STANDARD
,
EFFECT_FLAG_CLIENT_HINT
,
1
,
m
,
aux
.
Stringid
(
m
,
1
))
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e1
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e1
:
SetCountLimit
(
1
)
e1
:
SetLabelObject
(
tc
)
e1
:
SetCondition
(
cm
.
tdcon
)
e1
:
SetOperation
(
cm
.
tdop
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
function
cm
.
tdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
local
fids
=
{
tc
:
GetFlagEffectLabel
(
tc
,
0
)}
for
i
=
1
,
#
fids
do
if
fids
[
i
]
==
m
then
return
true
end
if
RD
.
SelectAndSpecialSummon
(
cm
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
e
,
POS_FACEUP
)
~=
0
then
local
tc
=
Duel
.
GetOperatedGroup
():
GetFirst
()
RD
.
AttachEndPhase
(
e
,
tc
,
tp
,
m
,
cm
.
tdop
,
aux
.
Stringid
(
m
,
1
))
end
e
:
Reset
()
return
false
end
function
cm
.
tdop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
SendtoDeck
(
e
:
GetLabelObject
(),
nil
,
1
,
REASON_EFFECT
)
Duel
.
Hint
(
HINT_CARD
,
0
,
m
)
RD
.
SendToDeckBottom
(
e
:
GetLabelObject
())
end
\ No newline at end of file
script/c120170032.lua
View file @
090a5f5c
...
...
@@ -20,26 +20,20 @@ end
function
cm
.
desfilter
(
c
)
return
c
:
IsPosition
(
POS_FACEUP_ATTACK
)
and
c
:
IsLevelBelow
(
8
)
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
costfilter
,
tp
,
LOCATION_HAND
,
0
,
2
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
costfilter
,
tp
,
LOCATION_HAND
,
0
,
2
,
2
,
nil
)
Duel
.
SendtoGrave
(
g
,
REASON_COST
)
end
cm
.
cost
=
RD
.
CostSendHandToGrave
(
cm
.
costfilter
,
2
,
2
)
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
desfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
desfilter
,
tp
,
0
,
LOCATION_MZONE
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
1
,
0
,
0
)
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
desfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
2
,
nil
)
if
g
:
GetCount
()
>
0
then
RD
.
SelectAndDoAction
(
HINTMSG_DESTROY
,
cm
.
desfilter
,
tp
,
0
,
LOCATION_MZONE
,
1
,
2
,
nil
,
function
(
g
)
local
ct
=
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
if
ct
>
0
then
Duel
.
BreakEffect
()
Duel
.
Damage
(
1
-
tp
,
ct
*
500
,
REASON_EFFECT
)
end
RD
.
CreateHintEffect
(
e
,
aux
.
Stringid
(
m
,
1
),
tp
,
1
,
0
,
RESET_PHASE
+
PHASE_END
)
local
c
=
e
:
GetHandler
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
...
...
@@ -58,15 +52,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
e1
:
SetLabelObject
(
e2
)
e2
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e2
,
tp
)
--Hint
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
+
EFFECT_FLAG_CLIENT_HINT
)
e3
:
SetTargetRange
(
1
,
0
)
e3
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e3
,
tp
)
end
end
)
end
function
cm
.
checkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetFlagEffect
(
tp
,
m
)
~=
0
then
return
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment