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
Nguyễn Anh Kiệt
ygopro-222DIY-cards
Commits
2fd9e2d3
Commit
2fd9e2d3
authored
Aug 07, 2020
by
TanakaKotoha
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
771088d4
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
1607 additions
and
2881 deletions
+1607
-2881
expansions/222DIY.cdb
expansions/222DIY.cdb
+0
-0
expansions/script/c11200034.lua
expansions/script/c11200034.lua
+1
-1
expansions/script/c16104200.lua
expansions/script/c16104200.lua
+117
-57
expansions/script/c16104202.lua
expansions/script/c16104202.lua
+42
-237
expansions/script/c16104204.lua
expansions/script/c16104204.lua
+20
-154
expansions/script/c16104206.lua
expansions/script/c16104206.lua
+83
-63
expansions/script/c16104208.lua
expansions/script/c16104208.lua
+20
-165
expansions/script/c16104210.lua
expansions/script/c16104210.lua
+34
-206
expansions/script/c16104212.lua
expansions/script/c16104212.lua
+9
-63
expansions/script/c16104214.lua
expansions/script/c16104214.lua
+49
-163
expansions/script/c16104216.lua
expansions/script/c16104216.lua
+18
-85
expansions/script/c16104218.lua
expansions/script/c16104218.lua
+17
-77
expansions/script/c16104220.lua
expansions/script/c16104220.lua
+46
-132
expansions/script/c16104224.lua
expansions/script/c16104224.lua
+13
-36
expansions/script/c16104226.lua
expansions/script/c16104226.lua
+31
-93
expansions/script/c16104228.lua
expansions/script/c16104228.lua
+15
-175
expansions/script/c16104230.lua
expansions/script/c16104230.lua
+26
-63
expansions/script/c16104232.lua
expansions/script/c16104232.lua
+56
-113
expansions/script/c16104234.lua
expansions/script/c16104234.lua
+30
-106
expansions/script/c16199990.lua
expansions/script/c16199990.lua
+899
-855
expansions/script/c16199991.lua
expansions/script/c16199991.lua
+51
-18
expansions/script/c16199992.lua
expansions/script/c16199992.lua
+30
-19
No files found.
expansions/222DIY.cdb
View file @
2fd9e2d3
No preview for this file type
expansions/script/c11200034.lua
View file @
2fd9e2d3
--赤口的土著神
local
m
=
1120003
0
local
m
=
1120003
4
local
cm
=
_G
[
"c"
..
m
]
function
cm
.
initial_effect
(
c
)
aux
.
AddCodeList
(
c
,
11200029
)
...
...
expansions/script/c16104200.lua
View file @
2fd9e2d3
--教团的普通骑士
local
m
=
16104200
local
cm
=
_G
[
"c"
..
m
]
c16104200
.
rksetcode
=
"CHURCH_KNIGHT"
function
cm
.
initial_effect
(
c
)
--double tribute
--教团的普通骑士.
if
not
pcall
(
function
()
require
(
"expansions/script/c16199990"
)
end
)
then
require
(
"script/c16199990"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104200
,
"CHURCH_KNIGHT"
)
if
rsch
then
return
end
rsch
=
cm
rscf
.
DefineSet
(
rsch
,
"CHURCH"
,
1
)
rscf
.
DefineSet
(
rsch
,
"CHURCH_KNIGHT"
,
2
)
function
rsch
.
GainEffect
(
c
,
code
)
local
e1
=
rsef
.
STO
(
c
,
EVENT_BATTLE_DESTROYING
,{
m
,
1
},
1
,
nil
,
EFFECT_FLAG_NO_TURN_RESET
,
cm
.
gecon
,
nil
,
nil
,
cm
.
geop
)
e1
:
SetLabel
(
code
)
return
e1
end
function
cm
.
gecon
(
e
,
tp
,
eg
)
local
c
=
e
:
GetHandler
()
local
bc
=
c
:
GetBattleTarget
()
return
bc
:
GetPreviousRaceOnField
()
&
RACE_WARRIOR
==
0
end
function
cm
.
geop
(
e
,
tp
)
local
c
=
rscf
.
GetFaceUpSelf
(
e
)
if
not
c
then
return
end
c
:
RegisterFlagEffect
(
e
:
GetLabel
(),
rsreset
.
est
,
EFFECT_FLAG_CLIENT_HINT
,
1
,
0
,
aux
.
Stringid
(
m
,
1
))
end
function
rsch
.
gaincon
(
code
)
return
function
(
e
)
return
e
:
GetHandler
():
GetFlagEffect
(
code
)
>
0
or
e
:
GetHandler
():
GetFlagEffect
(
code
+
100
)
>
0
end
end
function
rsch
.
SummonEffect
(
c
,
code
,
op
)
local
e1
=
rsef
.
SC
(
c
,
EVENT_SUMMON_SUCCESS
)
e1
:
RegisterSolve
(
cm
.
secon
,
nil
,
nil
,
cm
.
seop
(
code
,
op
))
return
e1
end
function
cm
.
secfilter
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
or
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
end
function
cm
.
secon
(
e
,
tp
)
local
c
=
e
:
GetHandler
()
local
mat
=
c
:
GetMaterial
()
local
b1
=
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
and
mat
:
IsExists
(
cm
.
secfilter
,
1
,
nil
)
local
b2
=
not
mat
or
#
mat
==
0
return
b1
or
b2
end
function
cm
.
seop
(
code
,
op
)
return
function
(
e
,
...
)
rshint
.
Card
(
code
)
op
(
e
,
...
)
end
end
function
rsch
.
SummonEffect2
(
c
,
code
,
cate
,
flag
,
tg
,
op
)
local
e1
=
rsef
.
STO
(
c
,
EVENT_SUMMON_SUCCESS
,{
code
,
0
},
nil
,
cate
,
flag
,
cm
.
secon
,
nil
,
tg
,
op
)
return
e1
end
function
rsch
.
LimitFun
(
c
,
code
)
Duel
.
AddCustomActivityCounter
(
code
,
ACTIVITY_SPSUMMON
,
cm
.
lfct1
)
Duel
.
AddCustomActivityCounter
(
code
,
ACTIVITY_SUMMON
,
cm
.
lfct2
)
end
function
rsch
.
limitcost
(
code
,
cost2
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetCustomActivityCount
(
code
,
tp
,
ACTIVITY_SPSUMMON
)
==
0
and
Duel
.
GetCustomActivityCount
(
code
,
tp
,
ACTIVITY_SUMMON
)
==
0
and
(
not
cost2
or
cost2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
0
))
end
e1
,
e2
=
rsef
.
FV_LIMIT_PLAYER
({
e
:
GetHandler
(),
tp
},
"sum,sp"
,
nil
,
cm
.
sltg
,{
1
,
0
},
nil
,
rsreset
.
pend
)
if
cost2
then
cost2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
end
end
function
cm
.
lfct1
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
lfct2
(
c
)
return
c
:
GetSummonLocation
()
~=
LOCATION_EXTRA
end
function
cm
.
sltg
(
e
,
c
)
if
c
:
IsLocation
(
LOCATION_EXTRA
)
then
return
true
end
return
not
c
:
IsRace
(
RACE_WARRIOR
)
end
function
rsch
.
BetrayFun
(
c
,
code
,
code_sum
)
aux
.
AddCodeList
(
c
,
code_sum
)
c
:
SetUniqueOnField
(
1
,
1
,
code
)
local
e1
=
rscf
.
SetSummonCondition
(
c
,
false
,
aux
.
FALSE
)
local
e2
=
rscf
.
SetSpecialSummonProduce
(
c
,
LOCATION_HAND
,
cm
.
bfcon
,
cm
.
bfop
)
e2
:
SetLabel
(
code_sum
)
return
e1
,
e2
end
function
cm
.
bfcon
(
e
,
c
,
tp
)
return
Duel
.
CheckReleaseGroup
(
tp
,
cm
.
bfcfilter
,
1
,
nil
,
tp
,
e
:
GetLabel
())
end
function
cm
.
bfcfilter
(
c
,
tp
,
code
)
return
c
:
IsCode
(
code
)
and
Duel
.
GetMZoneCount
(
tp
,
c
,
tp
)
>
0
end
function
cm
.
bfop
(
e
,
tp
)
local
rg
=
Duel
.
SelectReleaseGroup
(
tp
,
cm
.
bfcfilter
,
1
,
1
,
nil
,
tp
,
e
:
GetLabel
())
Duel
.
Release
(
rg
,
REASON_COST
)
end
function
rsch
.
DoubleTriFun
(
c
,
tc
,
reset
,
filter
)
tc
=
tc
or
c
local
tg
=
aux
.
TargetBoolFunction
(
rsch
.
IsSet1
)
if
filter
then
tg
=
aux
.
TargetBoolFunction
(
filter
)
end
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_DOUBLE_TRIBUTE
)
e1
:
SetValue
(
cm
.
condition
)
c
:
RegisterEffect
(
e1
)
--to hand
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCountLimit
(
1
,
m
)
e2
:
SetTarget
(
cm
.
sptg
)
e2
:
SetOperation
(
cm
.
spop
)
c
:
RegisterEffect
(
e2
)
local
e3
=
e2
:
Clone
()
e3
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
c
:
RegisterEffect
(
e3
)
if
reset
then
e1
:
SetReset
(
reset
)
end
e1
:
SetValue
(
tg
)
tc
:
RegisterEffect
(
e1
)
return
e1
end
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
GetAttack
()
<=
900
and
c
:
GetLevel
()
<=
3
and
c
:
IsRace
(
RACE_WARRIOR
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP
)
--------------------------------------
function
cm
.
initial_effect
(
c
)
local
e1
=
rsef
.
STO
(
c
,
EVENT_SPSUMMON_SUCCESS
,{
m
,
0
},{
1
,
m
},
"sp"
,
"de,dsp"
,
nil
,
nil
,
rsop
.
target
(
cm
.
spfilter
,
"sp"
,
LOCATION_DECK
),
cm
.
spop
)
local
e3
=
rsef
.
RegisterClone
(
c
,
e1
,
"code"
,
EVENT_SUMMON_SUCCESS
)
local
e4
=
rsch
.
DoubleTriFun
(
c
)
end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsRace
(
RACE_WARRIOR
)
and
c
:
IsAttackBelow
(
899
)
and
c
:
IsLevelBelow
(
3
)
and
rscf
.
spfilter2
()(
c
,
e
,
tp
)
end
function
cm
.
spop
(
e
,
tp
)
local
c
=
e
:
GetHandler
()
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,
e
,
tp
)
if
g
:
GetCount
()
>
0
then
Duel
.
SpecialSummon
(
g
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
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
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetTarget
(
cm
.
splimit
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e2
:
SetCode
(
EFFECT_CANNOT_SUMMON
)
e2
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e2
:
SetTargetRange
(
1
,
0
)
e2
:
SetTarget
(
cm
.
splimit
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
function
cm
.
condition
(
e
,
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
end
function
cm
.
splimit
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
return
c
:
IsLocation
(
LOCATION_EXTRA
)
or
not
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
or
c
:
IsSetCard
(
0xccb
)
or
c
:
IsCode
(
16104222
))
rsop
.
SelectSpecialSummon
(
tp
,
cm
.
spfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,{},
e
,
tp
)
local
e1
,
e2
=
rsef
.
FV_LIMIT_PLAYER
({
c
,
tp
},
"sum,sp"
,
nil
,
cm
.
tg
,{
1
,
0
},
nil
,
rsreset
.
pend
)
end
function
cm
.
tg
(
e
,
c
)
if
c
:
IsCode
(
16104222
)
then
return
false
end
if
c
:
IsLocation
(
LOCATION_EXTRA
)
then
return
true
end
return
not
(
rsch
.
IsSet1
(
c
)
or
c
:
IsSetCard
(
0xccb
))
end
\ No newline at end of file
expansions/script/c16104202.lua
View file @
2fd9e2d3
--教团的灰骑士 格雷
local
m
=
16104202
local
cm
=
_G
[
"c"
..
m
]
c16104202
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104202
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
1
,
m
)
--summon success
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetOperation
(
cm
.
sumsuc
)
c
:
RegisterEffect
(
e1
)
local
e1_1
=
Effect
.
CreateEffect
(
c
)
e1_1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e1_1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1_1
:
SetOperation
(
cm
.
sumsuc1
)
c
:
RegisterEffect
(
e1_1
)
--a d A
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
3
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYED
)
e2
:
SetProperty
(
EFFECT_FLAG_NO_TURN_RESET
)
e2
:
SetCountLimit
(
1
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
cm
.
gacon
)
e2
:
SetTarget
(
cm
.
gatg
)
e2
:
SetOperation
(
cm
.
gaop
)
c
:
RegisterEffect
(
e2
)
--summon with 1 tribute
local
e1
=
rsch
.
SummonEffect
(
c
,
m
,
cm
.
op
)
local
e2
=
rsch
.
GainEffect
(
c
,
m
)
local
e3
=
rsef
.
QO
(
c
,
nil
,{
m
,
0
},
1
,
"eq"
,
"tg"
,
LOCATION_MZONE
,
rsch
.
gaincon
(
m
),
nil
,
rstg
.
target
(
cm
.
eqfilter
,
"eq"
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
c
),
cm
.
eqop
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
Set
Description
(
aux
.
Stringid
(
m
,
4
)
)
e4
:
SetProperty
(
EFFECT_FLAG_
CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABL
E
)
e4
:
Set
Type
(
EFFECT_TYPE_SINGL
E
)
e4
:
SetCode
(
EFFECT_
SUMMON_PROC
)
e4
:
SetCondition
(
cm
.
otcon
)
e4
:
Set
Operation
(
cm
.
otop
)
e4
:
Set
Value
(
SUMMON_TYPE_ADVANCE
)
e4
:
Set
Type
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_SINGLE
)
e4
:
SetProperty
(
EFFECT_FLAG_
SINGLE_RANG
E
)
e4
:
Set
Range
(
LOCATION_MZON
E
)
e4
:
SetCode
(
EFFECT_
DESTROY_REPLACE
)
e4
:
SetCondition
(
rsch
.
gaincon
(
m
)
)
e4
:
Set
Target
(
cm
.
desreptg
)
e4
:
Set
Operation
(
cm
.
desrepop
)
c
:
RegisterEffect
(
e4
)
local
e5
=
e4
:
Clone
()
e5
:
SetCode
(
EFFECT_SET_PROC
)
c
:
RegisterEffect
(
e5
)
--summon with s/t
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
)
e6
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e6
:
SetCode
(
EFFECT_ADD_EXTRA_TRIBUTE
)
e6
:
SetTargetRange
(
LOCATION_SZONE
,
0
)
e6
:
SetCondition
(
cm
.
otcon1
)
e6
:
SetTarget
(
cm
.
reltarget
)
e6
:
SetValue
(
POS_FACEUP_ATTACK
)
c
:
RegisterEffect
(
e6
)
end
function
cm
.
otcon1
(
e
)
return
Duel
.
IsEnvironment
(
16104206
,
e
:
GetOwnerPlayer
(),
LOCATION_FZONE
)
end
function
cm
.
reltarget
(
e
,
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsType
(
TYPE_CONTINUOUS
)
or
c
:
IsType
(
TYPE_EQUIP
))
end
function
cm
.
otfilter
(
c
)
return
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
end
function
cm
.
otcon
(
e
,
c
,
minc
)
if
c
==
nil
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
otfilter
,
0
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
local
mg
=
Duel
.
GetMatchingGroup
(
cm
.
otfilter
,
0
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
return
c
:
IsLevelAbove
(
7
)
and
minc
<=
1
and
Duel
.
CheckTribute
(
c
,
1
,
1
,
mg
)
and
Duel
.
IsEnvironment
(
16104206
,
e
:
GetOwnerPlayer
(),
LOCATION_FZONE
)
end
function
cm
.
otop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
otfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
c
:
SetMaterial
(
sg
)
Duel
.
Release
(
sg
,
REASON_SUMMON
+
REASON_MATERIAL
)
end
function
cm
.
sumsuc
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
r
p
)
function
cm
.
op
(
e
,
t
p
)
local
c
=
e
:
GetHandler
()
if
(
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
and
c
:
GetMaterial
():
IsExists
(
cm
.
adfilter
,
1
,
nil
))
or
not
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetTargetRange
(
0
,
1
)
e1
:
SetValue
(
cm
.
aclimit
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e1
:
SetLabel
(
c
:
GetFieldID
())
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_DISABLE
)
e2
:
SetTargetRange
(
0
,
LOCATION_ONFIELD
)
e2
:
SetTarget
(
cm
.
disable
)
e2
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e2
,
tp
)
end
if
e
:
GetHandler
():
GetFlagEffect
(
16104206
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
cm
.
eqtg
)
e1
:
SetOperation
(
cm
.
eqop
)
e1
:
SetCountLimit
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetTarget
(
cm
.
desreptg
)
e2
:
SetOperation
(
cm
.
desrepop
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e2
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e2
)
end
end
function
cm
.
sumsuc1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
e
:
GetHandler
():
GetFlagEffect
(
16104220
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
cm
.
eqtg
)
e1
:
SetOperation
(
cm
.
eqop
)
e1
:
SetCountLimit
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetTarget
(
cm
.
desreptg
)
e2
:
SetOperation
(
cm
.
desrepop
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e2
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e2
)
end
local
e1
=
rsef
.
FV_LIMIT
({
c
,
tp
},
"dis"
,
nil
,
aux
.
TargetBoolFunction
(
Card
.
IsType
,
TYPE_SPELL
+
TYPE_TRAP
),{
0
,
LOCATION_ONFIELD
},
nil
,
rsreset
.
pend
)
local
e2
=
rsef
.
FV_LIMIT_PLAYER
({
c
,
tp
},
"act"
,
cm
.
val
,
nil
,{
1
,
1
},
nil
,
rsreset
.
pend
)
end
function
cm
.
adfilter
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
or
c
:
IsType
(
TYPE_SPELL
)
or
c
:
IsType
(
TYPE_TRAP
)
function
cm
.
val
(
e
,
re
)
local
rc
=
re
:
GetHandler
()
return
rc
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
rc
:
IsOnField
()
and
rc
:
IsControler
(
1
-
e
:
GetHandlerPlayer
())
end
function
cm
.
aclimit
(
e
,
r
e
,
tp
)
return
re
:
GetHandler
():
IsOnField
()
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
function
cm
.
eqfilter
(
c
,
e
,
tp
)
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
(
c
:
IsControler
(
tp
)
or
c
:
IsAbleToChangeControler
())
end
function
cm
.
disable
(
e
,
c
)
return
c
:
IsType
(
TYPE_SPELL
)
or
c
:
IsType
(
TYPE_TRAP
)
end
function
cm
.
gacon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
des
=
eg
:
GetFirst
()
local
rc
=
des
:
GetReasonCard
()
return
((
not
des
:
IsRace
(
RACE_WARRIOR
))
and
rc
:
IsRelateToBattle
()
and
rc
==
e
:
GetHandler
())
or
re
:
GetHandler
():
GetFlagEffect
(
tp
,
16104206
)
==
1
end
function
cm
.
gacon1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetFlagEffect
(
16104206
)
~=
0
end
function
cm
.
gatg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
end
function
cm
.
gaop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
function
cm
.
eqop
(
e
,
tp
)
local
c
=
rscf
.
GetFaceUpSelf
(
e
)
local
tc
=
rscf
.
GetTargetCard
()
if
not
tc
then
return
end
if
not
rsop
.
Equip
(
e
,
tc
,
c
)
then
return
end
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCategory
(
CATEGORY_EQUIP
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
cm
.
eqtg
)
e1
:
SetOperation
(
cm
.
eqop
)
e1
:
SetCountLimit
(
1
)
e1
:
SetType
(
EFFECT_TYPE_EQUIP
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCode
(
EFFECT_DESTROY_REPLACE
)
e2
:
SetTarget
(
cm
.
desreptg
)
e2
:
SetOperation
(
cm
.
desrepop
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e2
:
SetLabelObject
(
e2
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e3
,
true
)
end
end
function
cm
.
filter1
(
c
)
return
c
:
IsType
(
TYPE_MONSTER
)
and
not
c
:
IsForbidden
()
end
function
cm
.
eqtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
cm
.
filter1
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
e
:
GetHandler
())
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SELECT
)
Duel
.
SelectTarget
(
tp
,
cm
.
filter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
e
:
GetHandler
())
Duel
.
SetOperationInfo
(
0
,
CATEGORY_EQUIP
,
nil
,
1
,
tp
,
LOCATION_MZONE
)
end
function
cm
.
eqop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
sc
=
Duel
.
GetFirstTarget
()
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
<=
0
then
return
end
if
sc
:
IsRelateToEffect
(
e
)
and
c
:
IsRelateToEffect
(
e
)
and
c
:
IsFaceup
()
then
if
not
Duel
.
Equip
(
tp
,
sc
,
c
)
then
return
end
--equip limit
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetCode
(
EFFECT_EQUIP_LIMIT
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetLabelObject
(
c
)
e1
:
SetValue
(
cm
.
eqlimit
)
sc
:
RegisterEffect
(
e1
)
--atk/def up
local
e2
=
Effect
.
CreateEffect
(
sc
)
e2
:
SetType
(
EFFECT_TYPE_EQUIP
)
e2
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e2
:
SetValue
(
1000
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
sc
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
sc
)
e3
:
SetType
(
EFFECT_TYPE_EQUIP
)
e3
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
e3
:
SetValue
(
1000
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
sc
:
RegisterEffect
(
e3
)
end
end
function
cm
.
eqlimit
(
e
,
c
)
return
c
==
e
:
GetLabelObject
()
e1
:
SetValue
(
1000
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
rsef
.
RegisterClone
({
c
,
tc
},
e1
,
"code"
,
EFFECT_UPDATE_DEFENSE
)
end
function
cm
.
repfilter
(
c
)
return
c
:
Is
Faceup
()
and
c
:
IsType
(
TYPE_EQUIP
)
and
not
c
:
IsStatus
(
STATUS_DESTROY_CONFIRMED
)
function
cm
.
repfilter
(
c
,
e
)
return
c
:
Is
Type
(
TYPE_SPELL
)
and
c
:
IsLocation
(
LOCATION_SZONE
)
and
not
c
:
IsStatus
(
STATUS_DESTROY_CONFIRMED
+
STATUS_BATTLE_DESTROYED
)
and
c
:
IsDestructable
(
e
)
end
function
cm
.
desreptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
local
g
=
c
:
GetEquipGroup
()
return
not
c
:
IsReason
(
REASON_REPLACE
)
and
g
:
IsExists
(
cm
.
repfilter
,
1
,
nil
)
return
not
c
:
IsReason
(
REASON_REPLACE
)
and
c
:
IsReason
(
REASON_BATTLE
+
REASON_EFFECT
)
and
g
:
IsExists
(
cm
.
repfilter
,
1
,
nil
,
e
)
end
if
Duel
.
Select
YesNo
(
tp
,
aux
.
Stringid
(
m
,
2
)
)
then
if
Duel
.
Select
EffectYesNo
(
tp
,
c
,
96
)
then
local
g
=
c
:
GetEquipGroup
()
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
sg
=
g
:
FilterSelect
(
tp
,
cm
.
repfilter
,
1
,
1
,
nil
)
Duel
.
SetTargetCard
(
sg
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
tc
=
g
:
FilterSelect
(
tp
,
cm
.
repfilter
,
1
,
1
,
nil
,
e
):
GetFirst
()
e
:
SetLabelObject
(
tc
)
tc
:
SetStatus
(
STATUS_DESTROY_CONFIRMED
,
true
)
return
true
else
return
false
end
end
function
cm
.
desrepop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tg
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_CARDS
)
Duel
.
Destroy
(
tg
,
REASON_EFFECT
+
REASON_REPLACE
)
local
tc
=
e
:
GetLabelObject
()
tc
:
SetStatus
(
STATUS_DESTROY_CONFIRMED
,
false
)
rshint
.
Card
(
m
)
Duel
.
Destroy
(
tc
,
REASON_EFFECT
+
REASON_REPLACE
)
end
\ No newline at end of file
expansions/script/c16104204.lua
View file @
2fd9e2d3
--教团的银骑士 莱特哈尔
local
m
=
16104204
local
cm
=
_G
[
"c"
..
m
]
c16104204
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104204
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
1
,
m
)
--summon success
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetOperation
(
cm
.
sumsuc
)
c
:
RegisterEffect
(
e1
)
local
e1_1
=
Effect
.
CreateEffect
(
c
)
e1_1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e1_1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1_1
:
SetOperation
(
cm
.
sumsuc1
)
c
:
RegisterEffect
(
e1_1
)
--a d A
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYED
)
e2
:
SetProperty
(
EFFECT_FLAG_NO_TURN_RESET
)
e2
:
SetCountLimit
(
1
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
cm
.
gacon
)
e2
:
SetTarget
(
cm
.
gatg
)
e2
:
SetOperation
(
cm
.
gaop
)
c
:
RegisterEffect
(
e2
)
--summon with 1 tribute
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
3
))
e4
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCode
(
EFFECT_SUMMON_PROC
)
e4
:
SetCondition
(
cm
.
otcon
)
e4
:
SetOperation
(
cm
.
otop
)
e4
:
SetValue
(
SUMMON_TYPE_ADVANCE
)
c
:
RegisterEffect
(
e4
)
local
e5
=
e4
:
Clone
()
e5
:
SetCode
(
EFFECT_SET_PROC
)
c
:
RegisterEffect
(
e5
)
--summon with s/t
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
)
e6
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e6
:
SetCode
(
EFFECT_ADD_EXTRA_TRIBUTE
)
e6
:
SetTargetRange
(
LOCATION_SZONE
,
0
)
e6
:
SetCondition
(
cm
.
otcon1
)
e6
:
SetTarget
(
cm
.
reltarget
)
e6
:
SetValue
(
POS_FACEUP_ATTACK
)
c
:
RegisterEffect
(
e6
)
local
e1
=
rsch
.
SummonEffect
(
c
,
m
,
cm
.
op
)
local
e2
=
rsch
.
GainEffect
(
c
,
m
)
local
e3
=
rsef
.
SC
(
c
,
EVENT_BATTLE_START
)
e3
:
RegisterSolve
(
rsch
.
gaincon
(
m
),
nil
,
nil
,
cm
.
desop
)
end
function
cm
.
otcon1
(
e
)
return
Duel
.
IsEnvironment
(
16104206
,
e
:
GetOwnerPlayer
(),
LOCATION_FZONE
)
end
function
cm
.
reltarget
(
e
,
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsType
(
TYPE_CONTINUOUS
)
or
c
:
IsType
(
TYPE_EQUIP
))
end
function
cm
.
otfilter
(
c
)
return
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
end
function
cm
.
otcon
(
e
,
c
,
minc
)
if
c
==
nil
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
otfilter
,
0
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
local
mg
=
Duel
.
GetMatchingGroup
(
cm
.
otfilter
,
0
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
return
c
:
IsLevelAbove
(
7
)
and
minc
<=
1
and
Duel
.
CheckTribute
(
c
,
1
,
1
,
mg
)
and
Duel
.
IsEnvironment
(
16104206
,
e
:
GetOwnerPlayer
(),
LOCATION_FZONE
)
end
function
cm
.
otop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
otfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
c
:
SetMaterial
(
sg
)
Duel
.
Release
(
sg
,
REASON_SUMMON
+
REASON_MATERIAL
)
end
function
cm
.
sumsuc
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op
(
e
,
tp
)
local
c
=
e
:
GetHandler
()
if
c
:
GetMaterial
():
IsExists
(
cm
.
adfilter
,
1
,
nil
)
or
not
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
then
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCode
(
EFFECT_IMMUNE_EFFECT
)
e4
:
SetValue
(
cm
.
val
)
e4
:
SetOwnerPlayer
(
tp
)
e4
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
)
c
:
RegisterEffect
(
e4
)
end
if
e
:
GetHandler
():
GetFlagEffect
(
16104206
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_BATTLE_START
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetTarget
(
cm
.
destg
)
e1
:
SetOperation
(
cm
.
desop
)
c
:
RegisterEffect
(
e1
)
end
end
function
cm
.
sumsuc1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
e
:
GetHandler
():
GetFlagEffect
(
16104220
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_BATTLE_START
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetTarget
(
cm
.
destg
)
e1
:
SetOperation
(
cm
.
desop
)
c
:
RegisterEffect
(
e1
)
end
end
function
cm
.
adfilter
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
or
c
:
IsType
(
TYPE_SPELL
)
or
c
:
IsType
(
TYPE_TRAP
)
end
function
cm
.
val
(
e
,
re
,
tp
)
rsef
.
SV_IMMUNE_EFFECT
(
c
,
cm
.
imval
,
nil
,
rsreset
.
est_pend
)
end
function
cm
.
imval
(
e
,
re
)
return
not
re
:
GetHandler
():
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
gacon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
des
=
eg
:
GetFirst
()
local
rc
=
des
:
GetReasonCard
()
return
(
not
des
:
IsRace
(
RACE_WARRIOR
))
and
rc
:
IsRelateToBattle
()
and
rc
==
e
:
GetHandler
()
end
function
cm
.
gatg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
end
function
cm
.
gaop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_BATTLE_START
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetTarget
(
cm
.
destg
)
e1
:
SetOperation
(
cm
.
desop
)
c
:
RegisterEffect
(
e1
)
local
e3
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e3
,
true
)
end
end
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetAttacker
()
if
tc
==
c
then
tc
=
Duel
.
GetAttackTarget
()
end
if
chk
==
0
then
return
tc
and
tc
:
IsFaceup
()
and
not
tc
:
IsRace
(
RACE_WARRIOR
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tc
,
1
,
0
,
0
)
if
e
:
IsHasType
(
EFFECT_TYPE_TRIGGER_O
)
then
Duel
.
SetChainLimit
(
aux
.
FALSE
)
end
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
desop
(
e
,
tp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetAttacker
()
if
tc
==
c
then
tc
=
Duel
.
GetAttackTarget
()
end
if
tc
:
IsRelateToBattle
()
then
if
Duel
.
Destroy
(
tc
,
REASON_EFFECT
)
~=
0
then
local
LP1
=
Duel
.
GetLP
(
1
-
tp
)
if
tc
:
GetTextAttack
()
>
LP1
then
Duel
.
SetLP
(
1
-
tp
,
0
)
end
Duel
.
SetLP
(
1
-
tp
,
LP1
-
tc
:
GetTextAttack
())
end
local
bc
=
c
:
GetBattleTarget
()
if
bc
:
IsFacedown
()
or
not
bc
:
IsRace
(
RACE_WARRIOR
)
then
rshint
.
Card
(
m
)
if
Duel
.
Destroy
(
bc
,
REASON_EFFECT
)
>
0
then
local
atk
=
bc
:
GetBaseAttack
()
if
atk
>
0
then
Duel
.
Damage
(
1
-
tp
,
atk
,
REASON_EFFECT
)
end
end
end
end
\ No newline at end of file
expansions/script/c16104206.lua
View file @
2fd9e2d3
--不灭的圣光教团国
local
m
=
16104206
local
cm
=
_G
[
"c"
..
m
]
c16104206
.
rksetcode
=
"CHURCH"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104206
,
"CHURCH"
)
function
cm
.
initial_effect
(
c
)
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e0
)
--cannot Disable Sum
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetCode
(
EFFECT_CANNOT_DISABLE_SUMMON
)
e3
:
SetRange
(
LOCATION_FZONE
)
e3
:
SetProperty
(
EFFECT_FLAG_IGNORE_RANGE
+
EFFECT_FLAG_SET_AVAILABLE
)
e3
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
ischurch
))
c
:
RegisterEffect
(
e3
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_CANNOT_DISABLE_SPSUMMON
)
e2
:
SetRange
(
LOCATION_FZONE
)
e2
:
SetProperty
(
EFFECT_FLAG_IGNORE_RANGE
+
EFFECT_FLAG_SET_AVAILABLE
)
e2
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
ischurch
))
c
:
RegisterEffect
(
e2
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_DISABLE_FLIP_SUMMON
)
e1
:
SetRange
(
LOCATION_FZONE
)
e1
:
SetProperty
(
EFFECT_FLAG_IGNORE_RANGE
+
EFFECT_FLAG_SET_AVAILABLE
)
e1
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
ischurch
))
c
:
RegisterEffect
(
e1
)
--Summon
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e4
:
SetCategory
(
CATEGORY_SUMMON
)
e4
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e4
:
SetCode
(
EVENT_FREE_CHAIN
)
e4
:
SetRange
(
LOCATION_FZONE
)
e4
:
SetCountLimit
(
1
)
e4
:
SetTarget
(
cm
.
sumtg
)
e4
:
SetOperation
(
cm
.
sumop
)
c
:
RegisterEffect
(
e4
)
Duel
.
RegisterFlagEffect
(
tp
,
m
,
RESET_EVENT
+
RESETS_STANDARD
,
0
,
0
)
local
e1
=
rsef
.
ACT
(
c
)
local
e2
,
e3
,
e4
=
rsef
.
FV_CANNOT_DISABLE
(
c
,
"sum,sp,fp"
,
nil
,
aux
.
TargetBoolFunction
(
rsch
.
IsSet1
),{
LOCATION_MZONE
,
0
})
local
e11
=
rsef
.
QO
(
c
,
nil
,{
m
,
1
},
1
,
"sum"
,
nil
,
LOCATION_FZONE
,
nil
,
nil
,
rsop
.
target
(
cm
.
sumfilter
,
"sum"
,
LOCATION_HAND
),
cm
.
sumop
)
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e5
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
)
e5
:
SetCode
(
EFFECT_SUMMON_PROC
)
e5
:
SetCondition
(
cm
.
advcon
)
e5
:
SetOperation
(
cm
.
advop
)
e5
:
SetValue
(
SUMMON_TYPE_ADVANCE
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_GRANT
)
e6
:
SetRange
(
LOCATION_FZONE
)
e6
:
SetTargetRange
(
LOCATION_HAND
,
0
)
e6
:
SetTarget
(
cm
.
advtg
)
e6
:
SetLabelObject
(
e5
)
c
:
RegisterEffect
(
e6
)
local
e7
=
Effect
.
CreateEffect
(
c
)
e7
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e7
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e7
:
SetType
(
EFFECT_TYPE_SINGLE
)
e7
:
SetCode
(
EFFECT_SET_PROC
)
e7
:
SetCondition
(
cm
.
advcon
)
e7
:
SetOperation
(
cm
.
advop
)
e7
:
SetValue
(
SUMMON_TYPE_ADVANCE
)
local
e8
=
Effect
.
CreateEffect
(
c
)
e8
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_GRANT
)
e8
:
SetRange
(
LOCATION_FZONE
)
e8
:
SetTargetRange
(
LOCATION_HAND
,
0
)
e8
:
SetTarget
(
cm
.
advtg
)
e8
:
SetLabelObject
(
e7
)
c
:
RegisterEffect
(
e8
)
local
e9
=
Effect
.
CreateEffect
(
c
)
e9
:
SetType
(
EFFECT_TYPE_SINGLE
)
e9
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e9
:
SetCode
(
EFFECT_ADD_EXTRA_TRIBUTE
)
e9
:
SetTargetRange
(
LOCATION_SZONE
,
0
)
e9
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
IsType
,
TYPE_CONTINUOUS
+
TYPE_EQUIP
))
e9
:
SetValue
(
POS_FACEUP_ATTACK
)
e9
:
SetCondition
(
cm
.
excon
)
local
e10
=
Effect
.
CreateEffect
(
c
)
e10
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_GRANT
)
e10
:
SetRange
(
LOCATION_FZONE
)
e10
:
SetTargetRange
(
LOCATION_HAND
,
0
)
e10
:
SetTarget
(
cm
.
advtg
)
e10
:
SetLabelObject
(
e9
)
c
:
RegisterEffect
(
e10
)
end
function
cm
.
filter
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
IsSummonable
(
true
,
nil
)
function
cm
.
excon
(
e
)
return
not
cm
.
check_s
end
function
Card
.
ischurch
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
function
cm
.
advtg
(
e
,
c
)
return
rsch
.
IsSet2
(
c
)
and
c
:
IsLevelAbove
(
7
)
end
function
cm
.
sumtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SUMMON
,
nil
,
1
,
0
,
0
)
function
cm
.
otfilter
(
c
)
return
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
end
function
cm
.
sumop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
advcon
(
e
,
c
,
minc
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
mg
=
Duel
.
GetMatchingGroup
(
cm
.
otfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
cm
.
check_s
=
true
local
res
=
c
:
IsLevelAbove
(
7
)
and
minc
<=
1
and
Duel
.
CheckTribute
(
c
,
1
,
1
,
mg
)
cm
.
check_s
=
false
return
res
end
function
cm
.
advop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
cm
.
check_s
=
true
local
mg
=
Duel
.
GetMatchingGroup
(
cm
.
otfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
local
sg
=
Duel
.
SelectTribute
(
tp
,
c
,
1
,
1
,
mg
)
c
:
SetMaterial
(
sg
)
Duel
.
Release
(
sg
,
REASON_SUMMON
+
REASON_MATERIAL
)
cm
.
check_s
=
false
end
function
cm
.
sumfilter
(
c
,
e
,
tp
)
return
rsch
.
IsSet1
(
c
)
and
c
:
IsSummonable
(
true
,
nil
)
end
function
cm
.
sumop
(
e
,
tp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
<=
0
then
return
end
local
sc
=
g
:
GetFirst
()
if
sc
.
rksetcode
==
"CHURCH_KNIGHT"
and
sc
:
GetOriginalLevel
()
>=
6
then
sc
:
RegisterFlagEffect
(
m
,
RESET_EVENT
+
RESETS_STANDARD
-
RESET_TOFIELD
+
RESET_PHASE
+
PHASE_END
,
0
,
1
)
local
e3
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
-
RESET_TOFIELD
)
sc
:
RegisterEffect
(
e3
,
true
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
sumfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
):
GetFirst
()
if
tc
then
local
code
=
tc
:
GetOriginalCodeRule
()
tc
:
RegisterFlagEffect
(
code
+
100
,
rsreset
.
est
-
RESET_TOFIELD
,
EFFECT_FLAG_CLIENT_HINT
,
1
,
0
,
aux
.
Stringid
(
16104200
,
2
))
Duel
.
Summon
(
tp
,
tc
,
true
,
nil
)
end
Duel
.
Summon
(
tp
,
sc
,
true
,
nil
)
end
\ No newline at end of file
expansions/script/c16104208.lua
View file @
2fd9e2d3
--教团的苍骑士 IO
local
m
=
16104208
local
cm
=
_G
[
"c"
..
m
]
c16104208
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104208
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
1
,
m
)
--summon success
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetCondition
(
cm
.
sucon
)
e1
:
SetOperation
(
cm
.
sumsuc
)
c
:
RegisterEffect
(
e1
)
local
e1_1
=
Effect
.
CreateEffect
(
c
)
e1_1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1_1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e1_1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1_1
:
SetOperation
(
cm
.
sumsuc1
)
c
:
RegisterEffect
(
e1_1
)
--a d A
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYED
)
e2
:
SetProperty
(
EFFECT_FLAG_NO_TURN_RESET
)
e2
:
SetCountLimit
(
1
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
cm
.
gacon
)
e2
:
SetTarget
(
cm
.
gatg
)
e2
:
SetOperation
(
cm
.
gaop
)
c
:
RegisterEffect
(
e2
)
--summon with 1 tribute
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
4
))
e4
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCode
(
EFFECT_SUMMON_PROC
)
e4
:
SetCondition
(
cm
.
otcon
)
e4
:
SetOperation
(
cm
.
otop
)
e4
:
SetValue
(
SUMMON_TYPE_ADVANCE
)
c
:
RegisterEffect
(
e4
)
local
e5
=
e4
:
Clone
()
e5
:
SetCode
(
EFFECT_SET_PROC
)
c
:
RegisterEffect
(
e5
)
--summon with s/t
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
)
e6
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e6
:
SetCode
(
EFFECT_ADD_EXTRA_TRIBUTE
)
e6
:
SetTargetRange
(
LOCATION_SZONE
,
0
)
e6
:
SetCondition
(
cm
.
otcon1
)
e6
:
SetTarget
(
cm
.
reltarget
)
e6
:
SetValue
(
POS_FACEUP_ATTACK
)
c
:
RegisterEffect
(
e6
)
local
e1
=
rsch
.
SummonEffect2
(
c
,
m
,
"tg"
,
nil
,
rsop
.
target
(
cm
.
tgfilter
,
"tg"
,
LOCATION_MZONE
,
LOCATION_MZONE
,
true
),
cm
.
op
)
local
e2
=
rsch
.
GainEffect
(
c
,
m
)
local
e3
=
rsef
.
QO
(
c
,
nil
,{
m
,
1
},
1
,
"des"
,
"tg"
,
LOCATION_MZONE
,
rsch
.
gaincon
(
m
),
nil
,
rstg
.
target2
(
cm
.
fun
,
cm
.
cfilter
,
nil
,
LOCATION_MZONE
,
LOCATION_MZONE
),
cm
.
desop
)
end
function
cm
.
otcon1
(
e
)
return
Duel
.
IsEnvironment
(
16104206
,
e
:
GetOwnerPlayer
(),
LOCATION_FZONE
)
function
cm
.
tgfilter
(
c
)
return
c
:
IsAbleToGrave
()
and
(
c
:
IsFacedown
()
or
not
c
:
IsRace
(
RACE_WARRIOR
)
)
end
function
cm
.
reltarget
(
e
,
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsType
(
TYPE_CONTINUOUS
)
or
c
:
IsType
(
TYPE_EQUIP
))
function
cm
.
op
(
e
,
tp
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
tgfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
end
function
cm
.
otfilter
(
c
)
return
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
function
cm
.
fun
(
g
,
e
,
tp
)
local
tg
=
g
:
GetFirst
():
GetColumnGroup
()
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
tg
,
#
tg
,
0
,
0
)
end
function
cm
.
otcon
(
e
,
c
,
minc
)
if
c
==
nil
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
otfilter
,
0
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
local
mg
=
Duel
.
GetMatchingGroup
(
cm
.
otfilter
,
0
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
return
c
:
IsLevelAbove
(
7
)
and
minc
<=
1
and
Duel
.
CheckTribute
(
c
,
1
,
1
,
mg
)
and
Duel
.
IsEnvironment
(
16104206
,
e
:
GetOwnerPlayer
(),
LOCATION_FZONE
)
function
cm
.
cfilter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_WARRIOR
)
and
c
:
GetColumnGroupCount
()
>
0
end
function
cm
.
otop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
otfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
c
:
SetMaterial
(
sg
)
Duel
.
Release
(
sg
,
REASON_SUMMON
+
REASON_MATERIAL
)
end
function
cm
.
des
(
c
)
return
not
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
sucon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetMaterial
():
IsExists
(
cm
.
adfilter
,
1
,
nil
)
or
not
e
:
GetHandler
():
GetMaterial
():
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
end
function
cm
.
sumsuc
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
des
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
if
e
:
GetHandler
():
GetFlagEffect
(
16104206
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
cm
.
dstg
)
e1
:
SetOperation
(
cm
.
dsop
)
e1
:
SetCountLimit
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e1
)
end
end
function
cm
.
sumsuc1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
e
:
GetHandler
():
GetFlagEffect
(
16104220
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
cm
.
dstg
)
e1
:
SetOperation
(
cm
.
dsop
)
e1
:
SetCountLimit
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e1
)
end
end
function
cm
.
adfilter
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
or
c
:
IsType
(
TYPE_SPELL
)
or
c
:
IsType
(
TYPE_TRAP
)
end
function
cm
.
gacon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
des
=
eg
:
GetFirst
()
local
rc
=
des
:
GetReasonCard
()
return
(
not
des
:
IsRace
(
RACE_WARRIOR
))
and
rc
:
IsRelateToBattle
()
and
rc
==
e
:
GetHandler
()
end
function
cm
.
gatg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
end
function
cm
.
gaop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCategory
(
CATEGORY_DESTROY
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
cm
.
dstg
)
e1
:
SetOperation
(
cm
.
dsop
)
e1
:
SetCountLimit
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e1
)
local
e3
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e3
,
true
)
end
end
function
cm
.
filter1
(
c
)
return
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsFaceup
()
and
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
desfilter
(
c
,
g
)
return
g
:
IsContains
(
c
)
end
function
cm
.
dstg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
cm
.
filter1
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SELECT
)
Duel
.
SelectTarget
(
tp
,
cm
.
filter1
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
nil
,
1
,
tp
,
LOCATION_MZONE
)
end
function
cm
.
dsop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
sc
=
Duel
.
GetFirstTarget
()
local
cg
=
sc
:
GetColumnGroup
()
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
desfilter
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
sc
,
cg
)
if
sc
:
IsRelateToEffect
(
e
)
then
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
end
function
cm
.
desop
(
e
,
tp
)
local
tc
=
rscf
.
GetTargetCard
()
if
not
tc
then
return
end
local
dg
=
tc
:
GetColumnGroup
()
Duel
.
Destroy
(
dg
,
REASON_EFFECT
)
end
\ No newline at end of file
expansions/script/c16104210.lua
View file @
2fd9e2d3
--教团的翼骑士 韦因
local
m
=
16104210
local
cm
=
_G
[
"c"
..
m
]
c16104210
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104210
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
1
,
m
)
--hand
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
3
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCost
(
cm
.
sprcost
)
e1
:
SetTarget
(
cm
.
sprtg
)
e1
:
SetOperation
(
cm
.
sprop
)
c
:
RegisterEffect
(
e1
)
--hand
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetCategory
(
CATEGORY_DRAW
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
5
))
e4
:
SetType
(
EFFECT_TYPE_IGNITION
)
e4
:
SetCode
(
EVENT_FREE_CHAIN
)
e4
:
SetRange
(
LOCATION_HAND
)
e4
:
SetCost
(
cm
.
sprcost
)
e4
:
SetTarget
(
cm
.
sprtg1
)
e4
:
SetOperation
(
cm
.
sprop1
)
c
:
RegisterEffect
(
e4
)
--a d A
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYED
)
e2
:
SetProperty
(
EFFECT_FLAG_NO_TURN_RESET
)
e2
:
SetCountLimit
(
1
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
cm
.
gacon
)
e2
:
SetTarget
(
cm
.
gatg
)
e2
:
SetOperation
(
cm
.
gaop
)
c
:
RegisterEffect
(
e2
)
--summon success
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e0
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e0
:
SetOperation
(
cm
.
sumsuc
)
c
:
RegisterEffect
(
e0
)
local
e0_1
=
Effect
.
CreateEffect
(
c
)
e0_1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e0_1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e0_1
:
SetOperation
(
cm
.
sumsuc1
)
c
:
RegisterEffect
(
e0_1
)
Duel
.
AddCustomActivityCounter
(
m
,
ACTIVITY_SPSUMMON
,
cm
.
counterfilter1
)
Duel
.
AddCustomActivityCounter
(
m
,
ACTIVITY_SUMMON
,
cm
.
counterfilter
)
end
function
cm
.
counterfilter
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
counterfilter1
(
c
)
return
c
:
GetSummonLocation
()
~=
LOCATION_EXTRA
and
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
sumsuc
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
e
:
GetHandler
():
GetFlagEffect
(
16104206
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCategory
(
CATEGORY_REMOVE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
cm
.
eqtg
)
e1
:
SetOperation
(
cm
.
eqop
)
e1
:
SetCountLimit
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e1
)
end
end
function
cm
.
sumsuc1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
e
:
GetHandler
():
GetFlagEffect
(
16104220
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCategory
(
CATEGORY_REMOVE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
cm
.
eqtg
)
e1
:
SetOperation
(
cm
.
eqop
)
e1
:
SetCountLimit
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e1
)
end
end
function
cm
.
filter
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
GetLevel
()
>=
5
end
function
cm
.
filter1
(
c
)
return
c
:
IsAbleToGrave
()
rsch
.
LimitFun
(
c
,
m
)
local
e1
=
rsch
.
GainEffect
(
c
,
m
)
local
e2
=
rsef
.
QO
(
c
,
nil
,{
m
,
0
},
nil
,
nil
,
nil
,
LOCATION_HAND
,
nil
,
rsch
.
limitcost
(
m
,
rscost
.
cost
(
Card
.
IsDiscardable
,
"dish"
)),
rsop
.
target
(
cm
.
cfilter
,
nil
,
LOCATION_HAND
,
0
,
1
,
1
,
c
),
cm
.
sumop
)
local
e3
=
rsef
.
QO
(
c
,
nil
,{
m
,
1
},
nil
,
"dr,tg"
,
nil
,
LOCATION_HAND
,
nil
,
rsch
.
limitcost
(
m
,
rscost
.
cost
(
0
,
"dish"
)),
rsop
.
target
(
1
,
"dr"
),
cm
.
drop
)
local
e4
=
rsef
.
QO
(
c
,
nil
,{
m
,
2
},
1
,
"rm"
,
nil
,
LOCATION_MZONE
,
rsch
.
gaincon
(
m
),
nil
,
rsop
.
target
(
Card
.
IsAbleToRemove
,
"rm"
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
),
cm
.
rmop
)
end
function
cm
.
sprcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
IsDiscardable
()
and
Duel
.
GetCustomActivityCount
(
m
,
tp
,
ACTIVITY_SPSUMMON
)
==
0
and
Duel
.
GetCustomActivityCount
(
m
,
tp
,
ACTIVITY_SUMMON
)
==
0
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
+
EFFECT_FLAG_OATH
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetTarget
(
cm
.
splimit
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_CANNOT_SUMMON
)
Duel
.
RegisterEffect
(
e2
,
tp
)
Duel
.
SendtoGrave
(
c
,
REASON_COST
+
REASON_DISCARD
)
end
function
cm
.
splimit
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
return
c
:
IsLocation
(
LOCATION_EXTRA
)
or
not
c
:
IsRace
(
RACE_WARRIOR
)
function
cm
.
cfilter
(
c
)
return
rsch
.
IsSet1
(
c
)
and
c
:
IsLevelAbove
(
5
)
and
not
c
:
IsPublic
()
end
function
cm
.
sprtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
e
:
GetHandler
())
end
function
cm
.
sumop
(
e
,
tp
)
rsop
.
SelectSolve
(
HINTMSG_SELF
,
tp
,
cm
.
cfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
cm
.
solvefun
,
e
,
tp
)
end
function
cm
.
sprop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
Duel
.
IsExistingMatchingCard
(
cm
.
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
e
:
GetHandler
())
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
m
,
4
))
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
)
function
cm
.
solvefun
(
g
,
e
,
tp
)
Duel
.
HintSelection
(
g
)
local
tc
=
g
:
GetFirst
()
if
tc
then
Duel
.
ConfirmCards
(
1
-
tp
,
tc
)
Duel
.
ShuffleHand
(
tp
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SUMMON_PROC
)
e1
:
SetCondition
(
cm
.
ntcon
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
)
tc
:
RegisterEffect
(
e1
)
end
end
function
cm
.
sprtg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
,
2
)
end
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetTargetParam
(
2
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
2
)
end
function
cm
.
filter2
(
c
)
return
c
:
IsAbleToGrave
()
and
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
end
function
cm
.
filter3
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
end
function
cm
.
sprop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
p
,
d
=
Duel
.
GetChainInfo
(
0
,
CHAININFO_TARGET_PLAYER
,
CHAININFO_TARGET_PARAM
)
if
Duel
.
Draw
(
p
,
d
,
REASON_EFFECT
)
==
2
then
if
Duel
.
IsExistingMatchingCard
(
cm
.
filter3
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
then
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter2
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
)
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
else
local
g
=
Duel
.
GetMatchingGroup
(
Card
.
IsAbleToDeck
,
tp
,
LOCATION_HAND
,
0
,
nil
)
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
end
end
local
c
=
e
:
GetHandler
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_PUBLIC
)
e1
:
SetReset
(
rsreset
.
pend
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_SUMMON_PROC
)
e2
:
SetReset
(
rsreset
.
pend
)
e2
:
SetCondition
(
cm
.
ntcon
)
tc
:
RegisterEffect
(
e2
)
return
true
end
function
cm
.
ntcon
(
e
,
c
,
minc
)
if
c
==
nil
then
return
true
end
return
minc
==
0
and
c
:
IsLevelAbove
(
5
)
and
Duel
.
GetLocationCount
(
c
:
GetControler
(),
LOCATION_MZONE
)
>
0
end
function
cm
.
gacon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
des
=
eg
:
GetFirst
()
local
rc
=
des
:
GetReasonCard
()
return
(
not
des
:
IsRace
(
RACE_WARRIOR
))
and
rc
:
IsRelateToBattle
()
and
rc
==
e
:
GetHandler
()
end
function
cm
.
gatg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
end
function
cm
.
gaop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e1
:
SetCategory
(
CATEGORY_REMOVE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetTarget
(
cm
.
eqtg
)
e1
:
SetOperation
(
cm
.
eqop
)
e1
:
SetCountLimit
(
1
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e1
)
local
e3
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e3
,
true
)
function
cm
.
drop
(
e
,
tp
)
if
Duel
.
Draw
(
tp
,
2
,
REASON_EFFECT
)
>
0
then
rsop
.
SelectToGrave
(
tp
,
Card
.
IsAbleToGrave
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,{})
end
end
function
cm
.
filter1
(
c
)
return
c
:
IsAbleToRemove
()
end
function
cm
.
eqtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter1
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
nil
,
1
,
tp
,
LOCATION_ONFIELD
)
end
function
cm
.
eqop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter1
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
1
,
nil
):
GetFirst
()
if
tc
and
Duel
.
Remove
(
tc
,
POS_FACEUP
,
REASON_EFFECT
)
~=
0
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_CANNOT_TRIGGER
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CLIENT_HINT
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
-
RESET_REMOVE
)
tc
:
RegisterEffect
(
e1
)
function
cm
.
rmop
(
e
,
tp
)
local
ct
,
og
,
tc
=
rsop
.
SelectRemove
(
tp
,
Card
.
IsAbleToRemove
,
tp
,
LOCATION_ONFIELD
,
LOCATION_ONFIELD
,
1
,
1
,
nil
,{})
if
tc
and
tc
:
IsLocation
(
LOCATION_REMOVED
)
then
rsef
.
SV_LIMIT
({
e
:
GetHandler
(),
tc
},
"tri"
,
nil
,
nil
,
rsreset
.
est
)
end
end
\ No newline at end of file
expansions/script/c16104212.lua
View file @
2fd9e2d3
--教团的圣旗手 迪萨贝尔
local
m
=
16104212
local
cm
=
_G
[
"c"
..
m
]
c16104212
.
rksetcode
=
"CHURCH"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104212
,
"CHURCH"
)
function
cm
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
1
,
m
)
--summon success
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
)
e1
:
SetTarget
(
cm
.
thtg
)
e1
:
SetOperation
(
cm
.
thop
)
c
:
RegisterEffect
(
e1
)
local
e3
=
e1
:
Clone
()
e3
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
c
:
RegisterEffect
(
e3
)
--double tribute
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_DOUBLE_TRIBUTE
)
e2
:
SetValue
(
cm
.
condition
)
c
:
RegisterEffect
(
e2
)
Duel
.
AddCustomActivityCounter
(
m
,
ACTIVITY_SUMMON
,
cm
.
counterfilter
)
Duel
.
AddCustomActivityCounter
(
m
,
ACTIVITY_SPSUMMON
,
cm
.
counterfilter1
)
end
function
cm
.
counterfilter
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
counterfilter1
(
c
)
return
c
:
GetSummonLocation
()
~=
LOCATION_EXTRA
and
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetCustomActivityCount
(
m
,
tp
,
ACTIVITY_SPSUMMON
)
==
0
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
+
EFFECT_FLAG_OATH
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetTarget
(
cm
.
splimit
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_CANNOT_SUMMON
)
Duel
.
RegisterEffect
(
e2
,
tp
)
end
function
cm
.
splimit
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
return
c
:
IsLocation
(
LOCATION_EXTRA
)
or
not
c
:
IsRace
(
RACE_WARRIOR
)
rsch
.
LimitFun
(
c
,
m
)
local
e1
=
rsef
.
STO
(
c
,
EVENT_SUMMON_SUCCESS
,{
m
,
0
},
nil
,
"se,th"
,
"de,dsp"
,
nil
,
rsch
.
limitcost
(
m
),
rsop
.
target
(
cm
.
thfilter
,
"th"
,
LOCATION_DECK
),
cm
.
thop
)
local
e2
=
rsef
.
RegisterClone
(
c
,
e1
,
"code"
,
EVENT_SPSUMMON_SUCCESS
)
local
e3
=
rsch
.
DoubleTriFun
(
c
,
nil
,
nil
,
rsch
.
IsSet2
)
end
function
cm
.
thfilter
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
IsAbleToHand
()
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
end
return
rsch
.
IsSet1
(
c
)
and
c
:
IsAbleToHand
()
end
function
cm
.
condition
(
e
,
c
)
r
eturn
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
function
cm
.
thop
(
e
,
tp
)
r
sop
.
SelectToHand
(
tp
,
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,{}
)
end
\ No newline at end of file
expansions/script/c16104214.lua
View file @
2fd9e2d3
--叛教的掠夺骑士 IO
local
m
=
16104214
local
cm
=
_G
[
"c"
..
m
]
c16104214
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104214
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
aux
.
AddCodeList
(
c
,
16104208
)
c
:
SetUniqueOnField
(
1
,
1
,
m
)
--spsummon condition
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_SINGLE
)
e0
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e0
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e0
:
SetValue
(
cm
.
splimit
)
c
:
RegisterEffect
(
e0
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e4
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
+
EFFECT_FLAG_CANNOT_DISABLE
)
e4
:
SetRange
(
LOCATION_HAND
)
e4
:
SetCondition
(
cm
.
sprcon
)
e4
:
SetOperation
(
cm
.
sprop
)
c
:
RegisterEffect
(
e4
)
--indes
--local e1=Effect.CreateEffect(c)
--e1:SetType(EFFECT_TYPE_SINGLE)
--e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
--e1:SetRange(LOCATION_MZONE)
--e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
--e1:SetValue(1)
--c:RegisterEffect(e1)
--cannot target
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCode
(
EFFECT_CANNOT_BE_EFFECT_TARGET
)
e2
:
SetValue
(
aux
.
tgoval
)
c
:
RegisterEffect
(
e2
)
--disef and gain
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e3
:
SetCategory
(
CATEGORY_DISABLE
+
CATEGORY_ATKCHANGE
+
CATEGORY_DEFCHANGE
)
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCode
(
EVENT_FREE_CHAIN
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e3
:
SetCountLimit
(
1
)
e3
:
SetTarget
(
cm
.
distg
)
e3
:
SetOperation
(
cm
.
disop
)
c
:
RegisterEffect
(
e3
)
local
e1
,
e2
=
rsch
.
BetrayFun
(
c
,
m
,
16104208
)
local
e3
=
rsef
.
SV_CANNOT_BE_TARGET
(
c
,
"effect"
,
aux
.
tgoval
)
local
e4
=
rsef
.
QO
(
c
,
nil
,{
m
,
0
},
1
,
"atk,def,dis"
,
"tg"
,
LOCATION_MZONE
,
nil
,
nil
,
rstg
.
target
(
Card
.
IsFaceup
,
nil
,
0
,
LOCATION_MZONE
),
cm
.
op
)
end
function
cm
.
splimit
(
e
,
se
,
sp
,
st
)
return
se
:
GetHandler
():
IsCode
(
16104226
)
end
function
cm
.
spzfilter
(
c
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
16104208
)
and
c
:
IsReleasable
()
and
(
ft
>
0
or
c
:
GetSequence
()
<
5
)
end
function
cm
.
sprcon
(
e
,
c
,
tp
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
ft
>-
1
and
Duel
.
IsExistingMatchingCard
(
cm
.
spzfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
ft
)
end
function
cm
.
sprop
(
e
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
spzfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
ft
)
Duel
.
Release
(
g
,
REASON_COST
)
end
function
cm
.
filter1
(
c
)
return
c
:
IsFaceup
()
and
not
(
c
:
IsDisabled
()
and
c
:
GetAttack
()
==
0
and
c
:
GetDefense
()
==
0
)
end
function
cm
.
distg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_MZONE
)
and
cm
.
filter1
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter1
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SELECT
)
Duel
.
SelectTarget
(
tp
,
cm
.
filter1
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DISABLE
,
nil
,
1
,
tp
,
LOCATION_MZONE
)
end
function
cm
.
disop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op
(
e
,
tp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
Duel
.
NegateRelatedChain
(
tc
,
RESET_TURN_SET
)
local
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
2
),
aux
.
Stringid
(
m
,
3
))
if
op
==
0
then
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
)
e5
:
SetCode
(
EFFECT_SET_ATTACK
)
e5
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e5
:
SetValue
(
0
)
tc
:
RegisterEffect
(
e5
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCode
(
EFFECT_SET_DEFENSE
)
e4
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e4
:
SetValue
(
0
)
tc
:
RegisterEffect
(
e4
)
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
)
e6
:
SetCode
(
EFFECT_CANNOT_ATTACK
)
e6
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e6
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_DISABLE
)
e1
:
SetValue
(
tc
:
GetTextAttack
())
c
:
RegisterEffect
(
e1
)
local
tc
=
rscf
.
GetTargetCard
(
Card
.
IsFaceup
)
if
not
tc
then
return
end
local
b1
=
true
local
b2
=
rscf
.
GetFaceUpSelf
(
e
)
and
not
tc
:
IsType
(
TYPE_TOKEN
)
local
b3
=
b2
and
tc
:
IsType
(
TYPE_EFFECT
)
local
op
=
rsop
.
SelectOption
(
tp
,
b1
,{
m
,
1
},
b2
,{
m
,
2
},
b3
,{
m
,
3
})
if
op
==
1
then
local
e1
,
e2
=
rscf
.
QuickBuff
({
c
,
tc
},
"atkf,deff"
,
0
,
"atk~"
)
if
rscf
.
GetFaceUpSelf
(
e
)
then
local
e3
,
e4
=
rscf
.
QuickBuff
(
c
,
"atk+,def+"
,{
tc
:
GetBaseAttack
(),
tc
:
GetBaseDefense
()})
end
else
local
code
=
tc
:
GetOriginalCodeRule
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetCode
(
EFFECT_CHANGE_CODE
)
e1
:
SetValue
(
code
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
,
2
)
c
:
RegisterEffect
(
e1
)
if
not
tc
:
IsType
(
TYPE_TRAPMONSTER
)
then
local
cid
=
c
:
CopyEffect
(
code
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
,
2
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e3
:
SetCode
(
EFFECT_UPDATE_DEFENSE
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
4
))
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e3
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e3
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_DISABLE
)
e3
:
SetValue
(
tc
:
GetTextDefense
())
c
:
RegisterEffect
(
e3
)
local
e2
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
4
))
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_DISABLE
)
c
:
RegisterEffect
(
e2
,
true
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
,
2
)
e3
:
SetLabelObject
(
e1
)
e3
:
SetLabel
(
cid
)
e3
:
SetOperation
(
cm
.
rstop
)
c
:
RegisterEffect
(
e3
)
end
if
op
==
1
then
local
code
=
tc
:
GetOriginalCodeRule
()
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetCode
(
EFFECT_ADD_CODE
)
e1
:
SetValue
(
code
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_DISABLE
+
RESET_PHASE
+
PHASE_END
,
2
)
c
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
5
))
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_DISABLE
+
RESET_PHASE
+
PHASE_END
,
2
)
c
:
RegisterEffect
(
e2
,
true
)
if
not
tc
:
IsType
(
TYPE_TRAPMONSTER
)
then
local
cid
=
c
:
CopyEffect
(
code
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
,
2
)
end
if
(
not
(
tc
:
IsDisabled
()
or
tc
:
IsType
(
TYPE_NORMAL
)))
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
m
,
1
))
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e1
:
SetCode
(
EFFECT_DISABLE
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
)
e2
:
SetCode
(
EFFECT_DISABLE_EFFECT
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e2
)
local
e5
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e5
:
SetType
(
EFFECT_TYPE_SINGLE
)
e5
:
SetCode
(
EFFECT_CANNOT_TRIGGER
)
e5
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e5
:
SetRange
(
LOCATION_MZONE
)
e5
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e5
)
end
if
op
==
3
then
local
e1
=
rscf
.
QuickBuff
({
c
,
tc
},
"dis,dise,tri~"
)
end
end
end
function
cm
.
rstop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
cid
=
e
:
GetLabel
()
if
cid
~=
0
then
c
:
ResetEffect
(
cid
,
RESET_COPY
)
end
local
e1
=
e
:
GetLabelObject
()
e1
:
Reset
()
Duel
.
HintSelection
(
Group
.
FromCards
(
c
))
Duel
.
Hint
(
HINT_OPSELECTED
,
1
-
tp
,
e
:
GetDescription
())
end
\ No newline at end of file
expansions/script/c16104216.lua
View file @
2fd9e2d3
--叛教的异骑士 迪萨贝尔
local
m
=
16104216
local
cm
=
_G
[
"c"
..
m
]
c16104216
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104216
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
aux
.
AddCodeList
(
c
,
16104212
)
c
:
SetUniqueOnField
(
1
,
1
,
m
)
--spsummon condition
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_SINGLE
)
e0
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e0
:
SetCode
(
EFFECT_SPSUMMON_CONDITION
)
e0
:
SetValue
(
cm
.
splimit
)
c
:
RegisterEffect
(
e0
)
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_FIELD
)
e4
:
SetCode
(
EFFECT_SPSUMMON_PROC
)
e4
:
SetProperty
(
EFFECT_FLAG_UNCOPYABLE
+
EFFECT_FLAG_CANNOT_DISABLE
)
e4
:
SetRange
(
LOCATION_HAND
)
e4
:
SetCondition
(
cm
.
sprcon
)
e4
:
SetOperation
(
cm
.
sprop
)
c
:
RegisterEffect
(
e4
)
--indes
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCode
(
EFFECT_INDESTRUCTABLE_EFFECT
)
e1
:
SetValue
(
1
)
c
:
RegisterEffect
(
e1
)
--cannot target
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCode
(
EFFECT_CANNOT_BE_BATTLE_TARGET
)
e2
:
SetValue
(
1
)
c
:
RegisterEffect
(
e2
)
--disef and gain
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e3
:
SetCategory
(
CATEGORY_DISABLE
+
CATEGORY_SPECIAL_SUMMON
)
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCode
(
EVENT_CHAINING
)
e3
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DAMAGE_CAL
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetCondition
(
cm
.
discon
)
e3
:
SetTarget
(
cm
.
distg
)
e3
:
SetOperation
(
cm
.
disop
)
c
:
RegisterEffect
(
e3
)
local
e1
,
e2
=
rsch
.
BetrayFun
(
c
,
m
,
16104212
)
local
e3
=
rsef
.
SV_INDESTRUCTABLE
(
c
,
"effect"
)
local
e4
=
rsef
.
SV_CANNOT_BE_TARGET
(
c
,
"battle"
)
local
e5
=
rsef
.
QO
(
c
,
EVENT_CHAINING
,{
m
,
0
},
1
,
"neg"
,
"dsp,dcal"
,
LOCATION_MZONE
,
rscon
.
negcon
(
0
),
nil
,
cm
.
negtg
,
cm
.
negop
)
end
function
cm
.
splimit
(
e
,
se
,
sp
,
st
)
return
se
:
GetHandler
():
IsCode
(
16104226
)
end
function
cm
.
spzfilter
(
c
,
ft
)
return
c
:
IsFaceup
()
and
c
:
IsCode
(
16104212
)
and
c
:
IsReleasable
()
and
(
ft
>
0
or
c
:
GetSequence
()
<
5
)
end
function
cm
.
sprcon
(
e
,
c
,
tp
)
if
c
==
nil
then
return
true
end
local
tp
=
c
:
GetControler
()
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
return
ft
>-
1
and
Duel
.
IsExistingMatchingCard
(
cm
.
spzfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
ft
)
end
function
cm
.
sprop
(
e
,
tp
)
local
ft
=
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_RELEASE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
spzfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
ft
)
Duel
.
Release
(
g
,
REASON_COST
)
end
function
cm
.
filter1
(
c
)
return
c
:
IsFaceup
()
and
not
c
:
IsDisabled
()
end
function
cm
.
discon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
not
e
:
GetHandler
():
IsStatus
(
STATUS_BATTLE_DESTROYED
)
and
Duel
.
IsChainNegatable
(
ev
)
end
function
cm
.
distg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
negtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
e
:
SetCategory
(
CATEGORY_NEGATE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_NEGATE
,
eg
,
1
,
0
,
0
)
if
re
:
GetHandler
():
IsRelateToEffect
(
re
)
and
not
re
:
GetHandler
():
IsStatus
(
STATUS_BATTLE_DESTROYED
)
and
re
:
GetHandler
():
IsDestructable
()
and
re
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
then
e
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
eg
,
1
,
0
,
0
)
e
:
SetCategory
(
CATEGORY_NEGATE
)
if
re
:
IsActiveType
(
TYPE_MONSTER
)
and
re
:
GetHandler
():
IsRelateToEffect
(
re
)
then
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
eg
,
1
,
0
,
0
)
if
re
:
GetHandler
():
IsDestructable
()
then
e
:
SetCategory
(
CATEGORY_NEGATE
+
CATEGORY_DESTROY
+
CATEGORY_SPECIAL_SUMMON
)
end
end
end
function
cm
.
dis
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
neg
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
rc
=
re
:
GetHandler
()
if
Duel
.
NegateActivation
(
ev
)
and
rc
:
IsRelateToEffect
(
re
)
and
rc
:
IsType
(
TYPE_MONSTER
)
and
Duel
.
Destroy
(
eg
,
REASON_EFFECT
)
~=
0
and
not
rc
:
IsRelateToEffect
(
e
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
m
,
1
))
then
Duel
.
SpecialSummon
(
re
:
GetHandler
(),
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
Duel
.
SpecialSummon
Complete
(
)
if
not
Duel
.
NegateActivation
(
ev
)
then
return
end
if
rc
:
IsRelateToEffect
(
re
)
and
re
:
IsActiveType
(
TYPE_MONSTER
)
and
Duel
.
Destroy
(
eg
,
REASON_EFFECT
)
~=
0
and
not
rc
:
IsLocation
(
LOCATION_HAND
+
LOCATION_DECK
)
and
not
rc
:
IsHasEffect
(
EFFECT_NECRO_VALLEY
)
and
rscf
.
spfilter2
()(
rc
,
e
,
tp
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
m
,
1
))
then
Duel
.
BreakEffect
(
)
Duel
.
SpecialSummon
(
rc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
end
end
\ No newline at end of file
expansions/script/c16104218.lua
View file @
2fd9e2d3
--骑士的行军
local
m
=
16104218
local
cm
=
_G
[
"c"
..
m
]
c16104218
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104218
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e0
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_SZONE
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetCost
(
cm
.
cost
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetOperation
(
cm
.
activate
)
c
:
RegisterEffect
(
e1
)
--Grave
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetCategory
(
CATEGORY_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCountLimit
(
1
,
m
+
1
)
e2
:
SetCost
(
aux
.
bfgcost
)
e2
:
SetTarget
(
cm
.
target1
)
e2
:
SetOperation
(
cm
.
activate1
)
c
:
RegisterEffect
(
e2
)
Duel
.
AddCustomActivityCounter
(
m
,
ACTIVITY_SUMMON
,
cm
.
counterfilter
)
Duel
.
AddCustomActivityCounter
(
m
,
ACTIVITY_SPSUMMON
,
cm
.
counterfilter1
)
rsch
.
LimitFun
(
c
,
m
)
local
e1
=
rsef
.
ACT
(
c
)
local
e2
=
rsef
.
I
(
c
,{
m
,
0
},{
1
,
m
},
"se,th"
,
nil
,
LOCATION_SZONE
,
nil
,
rsch
.
limitcost
(
m
),
rsop
.
target
(
cm
.
thfilter
,
"th"
,
LOCATION_DECK
),
cm
.
thop
)
local
e3
=
rsef
.
I
(
c
,{
m
,
1
},{
1
,
m
+
100
},
"sum"
,
nil
,
LOCATION_GRAVE
,
nil
,
aux
.
bfgcost
,
rsop
.
target
(
cm
.
sumfilter
,
"sum"
,
LOCATION_HAND
),
cm
.
sumop
)
end
function
cm
.
counter
filter
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
function
cm
.
th
filter
(
c
)
return
rsch
.
IsSetM2
(
c
)
and
c
:
IsAbleToHand
(
)
end
function
cm
.
counterfilter1
(
c
)
return
c
:
GetSummonLocation
()
~=
LOCATION_EXTRA
and
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetCustomActivityCount
(
m
,
tp
,
ACTIVITY_SPSUMMON
)
==
0
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
+
EFFECT_FLAG_OATH
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetTarget
(
cm
.
splimit
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_CANNOT_SUMMON
)
Duel
.
RegisterEffect
(
e2
,
tp
)
end
function
cm
.
splimit
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
return
(
not
c
:
IsRace
(
RACE_WARRIOR
))
or
c
:
IsLocation
(
LOCATION_EXTRA
)
end
function
cm
.
filter
(
c
)
return
c
.
rksetcode
==
"CHURCH_KNIGHT"
and
c
:
IsAbleToHand
()
and
c
:
IsType
(
TYPE_MONSTER
)
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
cm
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
SendtoHand
(
g
,
nil
,
REASON_EFFECT
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
function
cm
.
thop
(
e
,
tp
)
if
rscf
.
GetSelf
(
e
)
then
rsop
.
SelectToHand
(
tp
,
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
1
,
nil
,{})
end
end
function
cm
.
filter1
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
IsSummonable
(
true
,
nil
)
and
c
:
IsType
(
TYPE_MONSTER
)
end
function
cm
.
target1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
filter1
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SUMMON
,
nil
,
1
,
tp
,
LOCATION_HAND
)
function
cm
.
sumfilter
(
c
)
return
rsch
.
IsSet1
(
c
)
and
c
:
IsSummonable
(
true
,
nil
)
end
function
cm
.
activate1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
sumop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SUMMON
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter1
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
Duel
.
Summon
(
tp
,
g
:
GetFirst
(),
true
,
nil
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
sumfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
):
GetFirst
()
if
tc
then
Duel
.
Summon
(
tp
,
tc
,
true
,
nil
)
end
end
\ No newline at end of file
expansions/script/c16104220.lua
View file @
2fd9e2d3
--直到最后一刻
local
m
=
16104220
local
cm
=
_G
[
"c"
..
m
]
c16104220
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104220
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
0
,
m
)
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e0
)
--SpecialSummon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetRange
(
LOCATION_SZONE
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetCountLimit
(
1
,
m
)
e2
:
SetTarget
(
cm
.
sptg
)
e2
:
SetOperation
(
cm
.
spop
)
c
:
RegisterEffect
(
e2
)
local
e5
=
Effect
.
CreateEffect
(
c
)
e5
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e5
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e5
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e5
:
SetCode
(
EVENT_FREE_CHAIN
)
e5
:
SetRange
(
LOCATION_SZONE
)
e5
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e5
:
SetCountLimit
(
1
,
m
)
e5
:
SetTarget
(
cm
.
sptg2
)
e5
:
SetOperation
(
cm
.
spop2
)
c
:
RegisterEffect
(
e5
)
--SpecialSummon Limit
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetRange
(
LOCATION_SZONE
)
e3
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e3
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e3
:
SetTargetRange
(
1
,
0
)
e3
:
SetTarget
(
cm
.
sumlimit
)
c
:
RegisterEffect
(
e3
)
local
e4
=
e3
:
Clone
()
e4
:
SetCode
(
EFFECT_CANNOT_SUMMON
)
c
:
RegisterEffect
(
e4
)
local
e1
=
rsef
.
ACT
(
c
)
local
e2
=
rsef
.
FV_LIMIT
(
c
,
"cp"
,
nil
,
cm
.
tg
,{
LOCATION_MZONE
,
LOCATION_MZONE
})
local
e3
,
e4
=
rsef
.
FV_LIMIT_PLAYER
(
c
,
"sum,sp"
,
nil
,
cm
.
tg2
,{
1
,
0
})
local
e5
=
rsef
.
QO
(
c
,
nil
,{
m
,
0
},{
1
,
m
},
"rm,sp,tk,sum,ga"
,
"tg"
,
LOCATION_SZONE
,
nil
,
nil
,
rstg
.
target
(
cm
.
filter
,
nil
,
LOCATION_GRAVE
),
cm
.
op
)
end
function
cm
.
sumlimit
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
)
return
not
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
spfilter
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
IsAbleToRemove
()
and
c
:
IsType
(
TYPE_MONSTER
)
end
function
cm
.
spfilter1
(
c
,
e
,
tp
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP
)
and
c
:
IsType
(
TYPE_MONSTER
)
end
function
cm
.
smfilter
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
IsSummonable
(
true
,
nil
)
function
cm
.
tg
(
e
,
c
)
return
c
:
IsAttackPos
()
and
rsch
.
IsSet1
(
c
)
end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
16104222
,
nil
,
0x21
,
0
,
0
,
1
,
RACE_WARRIOR
,
ATTRIBUTE_LIGHT
)
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
local
g
=
Duel
.
SelectTarget
(
tp
,
cm
.
spfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
0
)
function
cm
.
tg2
(
e
,
c
)
return
not
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
local
atk
,
def
,
code
=
0
,
0
,
0
if
tc
then
atk
=
tc
:
GetAttack
()
def
=
tc
:
GetDefense
()
end
if
not
(
tc
:
IsRelateToEffect
(
e
)
and
c
:
IsRelateToEffect
(
e
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
)
then
return
end
if
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
16104222
,
nil
,
0x21
,
atk
,
def
,
1
,
RACE_WARRIOR
,
ATTRIBUTE_LIGHT
)
then
if
Duel
.
Remove
(
tc
,
POS_FACEUP
,
REASON_EFFECT
)
~=
0
then
function
cm
.
filter
(
c
,
e
,
tp
)
if
not
rsch
.
IsSetM1
(
c
)
then
return
end
local
b1
=
c
:
IsAbleToRemove
()
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
16104222
,
0
,
0x4011
,
0
,
0
,
1
,
RACE_WARRIOR
,
ATTRIBUTE_LIGHT
)
local
b2
=
rscf
.
spfilter2
()(
c
,
e
,
tp
)
return
b1
or
b2
end
function
cm
.
op
(
e
,
tp
)
local
c
=
rscf
.
GetSelf
(
e
)
local
tc
=
rscf
.
GetTargetCard
()
if
not
c
or
not
tc
then
return
end
local
b1
=
tc
:
IsAbleToRemove
()
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
16104222
,
0
,
0x4011
,
0
,
0
,
1
,
RACE_WARRIOR
,
ATTRIBUTE_LIGHT
)
local
b2
=
rscf
.
spfilter2
()(
tc
,
e
,
tp
)
if
not
b1
and
not
b2
then
return
end
local
op
=
rsop
.
SelectOption
(
tp
,
b1
,{
m
,
1
},
b2
,{
m
,
2
})
if
op
==
1
then
if
Duel
.
Remove
(
tc
,
POS_FACEUP
,
REASON_EFFECT
)
>
0
and
tc
:
IsLocation
(
LOCATION_REMOVED
)
then
local
token
=
Duel
.
CreateToken
(
tp
,
16104222
)
Duel
.
SpecialSummon
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_ATTACK
)
e1
:
SetValue
(
atk
)
token
:
RegisterEffect
(
e1
,
true
)
local
e2
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e2
:
SetCode
(
EFFECT_SET_DEFENSE
)
e2
:
SetValue
(
def
)
token
:
RegisterEffect
(
e2
,
true
)
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetCode
(
EFFECT_DOUBLE_TRIBUTE
)
e3
:
SetValue
(
cm
.
condition
)
token
:
RegisterEffect
(
e3
,
true
)
if
Duel
.
IsExistingMatchingCard
(
cm
.
smfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
m
,
3
))
then
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
smfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
):
GetFirst
()
Duel
.
Summon
(
tp
,
g
,
true
,
nil
)
if
Duel
.
SpecialSummon
(
token
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
>
0
then
local
e1
,
e2
=
rscf
.
QuickBuff
({
c
,
token
,
true
},
"atkf,deff"
,{
tc
:
GetBaseAttack
(),
tc
:
GetBaseDefense
()})
local
e3
=
rsch
.
DoubleTriFun
(
c
,
token
,
rsreset
.
est
)
rsop
.
SelectOC
({
m
,
3
},
true
)
rsop
.
SelectSolve
(
HINTMSG_SUMMON
,
tp
,
cm
.
sumfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
cm
.
sumfun
,
tp
)
end
end
end
end
function
cm
.
sptg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsExistingTarget
(
cm
.
spfilter1
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
local
g
=
Duel
.
SelectTarget
(
tp
,
cm
.
spfilter1
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
0
)
end
function
cm
.
spop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
Duel
.
GetFirstTarget
()
if
not
(
tc
:
IsRelateToEffect
(
e
)
and
c
:
IsRelateToEffect
(
e
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
tc
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP
))
then
return
end
if
tc
.
rksetcode
==
"CHURCH_KNIGHT"
then
tc
:
RegisterFlagEffect
(
m
,
RESET_EVENT
+
RESETS_STANDARD
-
RESET_TOFIELD
+
RESET_PHASE
+
PHASE_END
,
0
,
1
)
local
e1_2
=
Effect
.
CreateEffect
(
c
)
e1_2
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1_2
:
SetDescription
(
aux
.
Stringid
(
m
,
5
))
e1_2
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e1_2
:
SetRange
(
LOCATION_MZONE
)
e1_2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
-
RESET_TOFIELD
)
tc
:
RegisterEffect
(
e1_2
,
true
)
else
if
rssf
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
,
nil
,
nil
,
"th"
)
>
0
then
local
code
=
tc
:
GetOriginalCodeRule
()
tc
:
RegisterFlagEffect
(
code
+
100
,
rsreset
.
est
,
EFFECT_FLAG_CLIENT_HINT
,
1
,
0
,
aux
.
Stringid
(
16104200
,
2
))
end
Duel
.
SpecialSummon
(
tc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
local
fid
=
e
:
GetHandler
():
GetFieldID
()
tc
:
RegisterFlagEffect
(
m
+
1
,
RESET_EVENT
+
RESETS_STANDARD
,
0
,
1
,
fid
)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_PHASE
+
PHASE_END
)
e1
:
SetCountLimit
(
1
)
e1
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e1
:
SetLabel
(
fid
)
e1
:
SetLabelObject
(
tc
)
e1
:
SetCondition
(
cm
.
thacon
)
e1
:
SetOperation
(
cm
.
thaop
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
function
cm
.
thacon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
if
tc
:
GetFlagEffectLabel
(
m
+
1
)
~=
e
:
GetLabel
()
then
e
:
Reset
()
return
false
else
return
true
end
end
end
function
cm
.
thaop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
SendtoHand
(
e
:
GetLabelObject
(),
nil
,
REASON_EFFECT
)
function
cm
.
sumfilter
(
c
)
return
rsch
.
IsSet2
(
c
)
and
c
:
IsSummonable
(
true
,
nil
)
end
function
cm
.
condition
(
e
,
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
function
cm
.
sumfun
(
g
,
tp
)
local
tc
=
g
:
GetFirst
()
if
tc
then
Duel
.
Summon
(
tp
,
tc
,
true
,
nil
)
end
return
true
end
\ No newline at end of file
expansions/script/c16104224.lua
View file @
2fd9e2d3
--异端剿灭
local
m
=
16104224
local
cm
=
_G
[
"c"
..
m
]
c16104224
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104224
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
--ACT
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_CONTROL
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetCondition
(
cm
.
descon
)
e1
:
SetTarget
(
cm
.
destg
)
e1
:
SetOperation
(
cm
.
desop
)
c
:
RegisterEffect
(
e1
)
local
e1
=
rsef
.
ACT
(
c
,
nil
,
nil
,{
1
,
m
,
1
},
"des"
,
nil
,
cm
.
con
,
nil
,
rsop
.
target
(
cm
.
desfilter
,
"des"
,
0
,
LOCATION_ONFIELD
,
true
),
cm
.
act
)
end
function
cm
.
descon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
function
cm
.
cfilter1
(
c
)
return
c
:
IsLevelAbove
(
5
)
and
rsch
.
IsSet2
(
c
)
and
c
:
IsFaceup
(
)
end
function
cm
.
desfilter
(
c
)
return
not
(
c
:
IsRace
(
RACE_WARRIOR
)
and
c
:
IsLocation
(
LOCATION_MZONE
)
and
c
:
IsFaceup
()
)
end
function
cm
.
desfilter1
(
c
)
return
(
not
c
:
IsRace
(
RACE_WARRIOR
))
and
c
:
IsFaceup
(
)
function
cm
.
cfilter2
(
c
)
return
c
:
IsFaceup
()
and
not
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
con
(
e
,
tp
)
return
Duel
.
IsExistingMatchingCard
(
cm
.
cfilter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
and
Duel
.
IsExistingMatchingCard
(
cm
.
cfilter2
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
--function cm.ntrfilter(c)
--return c:IsRace(RACE_WARRIOR) and c:IsControlerCanBeChanged() and c:IsFaceup()
--end
function
cm
.
filter
(
c
)
return
c
.
rksetcode
==
"CHURCH_KNIGHT"
and
c
:
IsFaceup
()
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
GetLevel
()
>=
5
end
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
desfilter1
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
nil
,
1
,
1
-
tp
,
LOCATION_ONFIELD
)
function
cm
.
desfilter
(
c
)
return
c
:
IsFacedown
()
or
not
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
r
p
)
function
cm
.
act
(
e
,
t
p
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
desfilter
,
tp
,
0
,
LOCATION_ONFIELD
,
nil
)
local
num
=
g
:
GetCount
()
if
num
<=
0
then
return
end
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
--if Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_MZONE,0,1,nil,16104228) and Duel.IsExistingMatchingCard(cm.ntrfilter,tp,0,LOCATION_MZONE,1,nil) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
--local tc=Duel.SelectMatchingCard(tp,cm.ntrfilter,tp,0,LOCATION_MZONE,1,1,nil)
--Duel.GetControl(tc,tp)
--end
end
\ No newline at end of file
expansions/script/c16104226.lua
View file @
2fd9e2d3
--前路的抉择
local
m
=
16104226
local
cm
=
_G
[
"c"
..
m
]
c16104226
.
rksetcode
=
"CHURCH"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104226
,
"CHURCH"
)
function
cm
.
initial_effect
(
c
)
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e0
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_TOGRAVE
)
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
e0
:
SetCountLimit
(
1
,
m
)
e0
:
SetTarget
(
cm
.
sptg
)
e0
:
SetOperation
(
cm
.
spop
)
c
:
RegisterEffect
(
e0
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e1
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
+
CATEGORY_TOGRAVE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetTarget
(
cm
.
sptg1
)
e1
:
SetOperation
(
cm
.
spop1
)
c
:
RegisterEffect
(
e1
)
end
function
cm
.
filter
(
c
,
e
,
tp
)
return
c
:
IsFaceup
()
and
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
,
0
,
1
,
nil
,
c
:
GetCode
(),
e
,
tp
)
end
function
cm
.
spfilter
(
c
,
code
,
e
,
tp
)
return
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
aux
.
IsCodeListed
(
c
,
code
)
and
c
:
IsSetCard
(
0xcc4
)
end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
tp
,
LOCATION_MZONE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
)
end
function
cm
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
e
,
tp
):
GetFirst
()
local
code
=
tc
:
GetCode
()
if
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
==
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
spfilter
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
code
,
e
,
tp
)
if
sg
:
GetCount
()
>
0
then
Duel
.
BreakEffect
()
Duel
.
SpecialSummon
(
sg
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
sg
:
GetFirst
():
CompleteProcedure
()
end
end
function
cm
.
filter1
(
c
,
e
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0xcc4
)
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter1
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
,
0
,
1
,
nil
,
c
,
e
,
tp
)
end
function
cm
.
spfilter1
(
c
,
cad
,
e
,
tp
)
return
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
aux
.
IsCodeListed
(
cad
,
c
:
GetCode
())
and
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
not
c
:
IsSetCard
(
0xcc4
)
end
function
cm
.
sptg1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOGRAVE
,
nil
,
1
,
tp
,
LOCATION_MZONE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
)
end
function
cm
.
spop1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TOGRAVE
)
local
tc
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter1
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,
e
,
tp
):
GetFirst
()
if
Duel
.
SendtoGrave
(
tc
,
REASON_EFFECT
)
==
0
then
return
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
spfilter1
,
tp
,
LOCATION_DECK
+
LOCATION_HAND
,
0
,
1
,
1
,
nil
,
tc
,
e
,
tp
)
if
sg
:
GetCount
()
>
0
then
Duel
.
BreakEffect
()
local
sc
=
sg
:
GetFirst
()
if
sc
.
rksetcode
==
"CHURCH_KNIGHT"
then
if
sc
:
GetActivateEffect
()
and
e
:
GetOperation
()
then
local
e
=
sc
:
GetActivateEffect
()
local
op
=
e
:
GetOperation
()
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
e1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
+
EFFECT_FLAG_DAMAGE_STEP
)
e1
:
SetOperation
(
op
)
sc
:
RegisterEffect
(
e1
)
local
e3
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
-
RESET_TOFIELD
)
sc
:
RegisterEffect
(
e3
,
true
)
local
e1
=
rsef
.
ACT
(
c
,
nil
,
nil
,{
1
,
m
,
1
},
"tg,sp"
,
nil
,
nil
,
nil
,
rsop
.
target2
(
cm
.
fun
,
cm
.
tgfilter
,
"tg"
,
LOCATION_MZONE
),
cm
.
act
)
end
function
cm
.
fun
(
g
,
e
,
tp
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
1
,
tp
,
rsloc
.
hd
)
end
function
cm
.
spfilter1
(
c
,
e
,
tp
,
mc
)
return
c
:
IsSetCard
(
0xcc4
)
and
aux
.
IsCodeListed
(
c
,
mc
:
GetOriginalCodeRule
())
and
Duel
.
GetMZoneCount
(
tp
,
mc
,
tp
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
true
,
false
)
end
function
cm
.
spfilter2
(
c
,
e
,
tp
,
mc
)
return
rsch
.
IsSet1
(
c
)
and
aux
.
IsCodeListed
(
mc
,
c
:
GetOriginalCodeRule
())
and
Duel
.
GetMZoneCount
(
tp
,
mc
,
tp
)
>
0
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
end
function
cm
.
tgfilter
(
c
,
e
,
tp
)
if
c
:
IsFacedown
()
or
not
c
:
IsAbleToGrave
()
then
return
false
end
local
b1
=
rsch
.
IsSet1
(
c
)
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter1
,
tp
,
rsloc
.
hd
,
0
,
1
,
nil
,
e
,
tp
,
c
)
local
b2
=
c
:
IsSetCard
(
0xcc4
)
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter2
,
tp
,
rsloc
.
hd
,
0
,
1
,
nil
,
e
,
tp
,
c
)
return
b1
or
b2
end
function
cm
.
act
(
e
,
tp
)
local
ct
,
og
,
tc
=
rsop
.
SelectToGrave
(
tp
,
cm
.
tgfilter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
1
,
nil
,{},
e
,
tp
)
if
not
tc
then
return
end
if
not
tc
:
IsSetCard
(
0xcc4
)
then
rsop
.
SelectSpecialSummon
(
tp
,
cm
.
spfilter1
,
tp
,
rsloc
.
hd
,
0
,
1
,
1
,
nil
,{
0
,
tp
,
tp
,
true
,
false
,
POS_FACEUP
,
nil
,{
"cp"
}},
e
,
tp
,
tc
)
else
local
ct
,
og
,
sc
=
rsop
.
SelectSpecialSummon
(
tp
,
cm
.
spfilter2
,
tp
,
rsloc
.
hd
,
0
,
1
,
1
,
nil
,{},
e
,
tp
,
tc
)
if
sc
then
local
code
=
sc
:
GetOriginalCodeRule
()
sc
:
RegisterFlagEffect
(
code
+
100
,
rsreset
.
est
,
EFFECT_FLAG_CLIENT_HINT
,
1
,
0
,
aux
.
Stringid
(
16104200
,
1
))
end
end
Duel
.
SpecialSummon
(
sc
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP
)
Duel
.
SpecialSummonComplete
()
end
end
\ No newline at end of file
end
end
expansions/script/c16104228.lua
View file @
2fd9e2d3
--教团的异骑士 燎煌
local
m
=
16104228
local
cm
=
_G
[
"c"
..
m
]
c16104228
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104228
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
1
,
m
)
--summon success
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetOperation
(
cm
.
sumsuc
)
c
:
RegisterEffect
(
e1
)
local
e1_1
=
Effect
.
CreateEffect
(
c
)
e1_1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e1_1
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e1_1
:
SetOperation
(
cm
.
sumsuc1
)
c
:
RegisterEffect
(
e1_1
)
--a d A
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYED
)
e2
:
SetProperty
(
EFFECT_FLAG_NO_TURN_RESET
)
e2
:
SetCountLimit
(
1
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCondition
(
cm
.
gacon
)
e2
:
SetTarget
(
cm
.
gatg
)
e2
:
SetOperation
(
cm
.
gaop
)
c
:
RegisterEffect
(
e2
)
--summon with 1 tribute
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetDescription
(
aux
.
Stringid
(
m
,
2
))
e4
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCode
(
EFFECT_SUMMON_PROC
)
e4
:
SetCondition
(
cm
.
otcon
)
e4
:
SetOperation
(
cm
.
otop
)
e4
:
SetValue
(
SUMMON_TYPE_ADVANCE
)
c
:
RegisterEffect
(
e4
)
local
e5
=
e4
:
Clone
()
e5
:
SetCode
(
EFFECT_SET_PROC
)
c
:
RegisterEffect
(
e5
)
--summon with s/t
local
e6
=
Effect
.
CreateEffect
(
c
)
e6
:
SetType
(
EFFECT_TYPE_SINGLE
)
e6
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e6
:
SetCode
(
EFFECT_ADD_EXTRA_TRIBUTE
)
e6
:
SetTargetRange
(
LOCATION_SZONE
,
0
)
e6
:
SetCondition
(
cm
.
otcon1
)
e6
:
SetTarget
(
cm
.
reltarget
)
e6
:
SetValue
(
POS_FACEUP_ATTACK
)
c
:
RegisterEffect
(
e6
)
local
e1
=
rsch
.
SummonEffect
(
c
,
m
,
cm
.
op
)
local
e2
=
rsch
.
GainEffect
(
c
,
m
)
local
e3
=
rsef
.
QO
(
c
,
nil
,{
m
,
0
},
1
,
"des,dam"
,
nil
,
LOCATION_MZONE
,
rsch
.
gaincon
(
m
),
nil
,
rsop
.
target
(
aux
.
TRUE
,
"des"
,
0
,
LOCATION_ONFIELD
),
cm
.
desop
)
end
function
cm
.
otcon1
(
e
)
return
Duel
.
IsEnvironment
(
16104206
,
e
:
GetOwnerPlayer
(),
LOCATION_FZONE
)
end
function
cm
.
reltarget
(
e
,
c
)
return
c
:
IsFaceup
()
and
(
c
:
IsType
(
TYPE_CONTINUOUS
)
or
c
:
IsType
(
TYPE_EQUIP
))
end
function
cm
.
otfilter
(
c
)
return
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
end
function
cm
.
otcon
(
e
,
c
,
minc
)
if
c
==
nil
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
otfilter
,
0
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
nil
)
end
local
mg
=
Duel
.
GetMatchingGroup
(
cm
.
otfilter
,
0
,
LOCATION_MZONE
,
LOCATION_MZONE
,
nil
)
return
c
:
IsLevelAbove
(
7
)
and
minc
<=
1
and
Duel
.
CheckTribute
(
c
,
1
,
1
,
mg
)
and
Duel
.
IsEnvironment
(
16104206
,
e
:
GetOwnerPlayer
(),
LOCATION_FZONE
)
end
function
cm
.
otop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
)
local
sg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
otfilter
,
tp
,
LOCATION_MZONE
,
LOCATION_MZONE
,
1
,
1
,
nil
)
c
:
SetMaterial
(
sg
)
Duel
.
Release
(
sg
,
REASON_SUMMON
+
REASON_MATERIAL
)
end
function
cm
.
sumsuc
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
op
(
e
,
tp
)
local
c
=
e
:
GetHandler
()
if
(
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
and
c
:
GetMaterial
():
IsExists
(
cm
.
adfilter
,
1
,
nil
))
or
not
c
:
IsSummonType
(
SUMMON_TYPE_ADVANCE
)
then
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetTargetRange
(
0
,
1
)
e1
:
SetValue
(
cm
.
aclimit
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetCode
(
EFFECT_DISABLE
)
e2
:
SetTargetRange
(
0
,
LOCATION_MZONE
)
e2
:
SetTarget
(
cm
.
disable
)
e2
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e2
,
tp
)
end
if
e
:
GetHandler
():
GetFlagEffect
(
16104206
)
~=
0
then
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e3
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_DAMAGE
)
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCode
(
EVENT_FREE_CHAIN
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetTarget
(
cm
.
destg
)
e3
:
SetOperation
(
cm
.
desop
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e3
)
end
end
function
cm
.
sumsuc1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
e
:
GetHandler
():
GetFlagEffect
(
16104220
)
~=
0
then
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e3
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_DAMAGE
)
e3
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e3
:
SetCode
(
EVENT_FREE_CHAIN
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetTarget
(
cm
.
destg
)
e3
:
SetOperation
(
cm
.
desop
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e3
)
end
local
e1
=
rsef
.
FV_LIMIT
({
c
,
tp
},
"dis"
,
nil
,
nil
,{
0
,
LOCATION_MZONE
},
nil
,
rsreset
.
pend
)
local
e2
=
rsef
.
FV_LIMIT_PLAYER
({
c
,
tp
},
"act"
,
cm
.
val
,
nil
,{
1
,
1
},
nil
,
rsreset
.
pend
)
end
function
cm
.
adfilter
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
or
c
:
IsType
(
TYPE_SPELL
)
or
c
:
IsType
(
TYPE_TRAP
)
end
function
cm
.
aclimit
(
e
,
re
,
tp
)
return
re
:
GetHandler
():
IsOnField
()
and
re
:
GetHandler
():
IsType
(
TYPE_MONSTER
)
end
function
cm
.
disable
(
e
,
c
)
return
c
:
IsType
(
TYPE_MONSTER
)
end
function
cm
.
gacon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
des
=
eg
:
GetFirst
()
local
rc
=
des
:
GetReasonCard
()
return
(
not
des
:
IsRace
(
RACE_WARRIOR
))
and
rc
:
IsRelateToBattle
()
and
rc
==
e
:
GetHandler
()
end
function
cm
.
gatg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
end
function
cm
.
gaop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
c
:
IsRelateToEffect
(
e
)
then
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e2
:
SetCategory
(
CATEGORY_DESTROY
+
CATEGORY_DAMAGE
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetCountLimit
(
1
)
e2
:
SetTarget
(
cm
.
destg
)
e2
:
SetOperation
(
cm
.
desop
)
e2
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e2
)
local
e3
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e3
:
SetType
(
EFFECT_TYPE_SINGLE
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e3
:
SetProperty
(
EFFECT_FLAG_SINGLE_RANGE
+
EFFECT_FLAG_CLIENT_HINT
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
c
:
RegisterEffect
(
e3
,
true
)
end
end
function
cm
.
destg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
nil
)
end
local
g
=
Duel
.
GetMatchingGroup
(
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DESTROY
,
g
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DAMAGE
,
nil
,
0
,
1
-
tp
,
0
)
function
cm
.
val
(
e
,
re
)
local
rc
=
re
:
GetHandler
()
return
rc
:
IsType
(
TYPE_MONSTER
)
and
rc
:
IsOnField
()
and
rc
:
IsControler
(
1
-
e
:
GetHandlerPlayer
())
end
function
cm
.
desop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_DESTROY
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
1
,
nil
)
if
g
:
GetCount
()
>
0
then
if
g
:
GetFirst
():
IsType
(
TYPE_MONSTER
)
then
local
atk
=
g
:
GetFirst
():
GetTextAttack
()
if
atk
<
0
then
atk
=
0
end
if
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
~=
0
then
Duel
.
Damage
(
1
-
tp
,
atk
,
REASON_EFFECT
)
end
else
Duel
.
Destroy
(
g
,
REASON_EFFECT
)
end
function
cm
.
desop
(
e
,
tp
)
local
ct
,
og
,
tc
=
rsop
.
SelectDestroy
(
tp
,
aux
.
TRUE
,
tp
,
0
,
LOCATION_ONFIELD
,
1
,
1
,
nil
,{})
if
tc
and
tc
:
IsType
(
TYPE_MONSTER
)
and
tc
:
GetBaseAttack
()
>
0
then
Duel
.
Damage
(
1
-
tp
,
tc
:
GetBaseAttack
(),
REASON_EFFECT
)
end
end
\ No newline at end of file
expansions/script/c16104230.lua
View file @
2fd9e2d3
--终末之歌
local
m
=
16104230
local
cm
=
_G
[
"c"
..
m
]
c16104230
.
rksetcode
=
"CHURCH_KNIGHT"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104230
,
"CHURCH_KNIGHT"
)
function
cm
.
initial_effect
(
c
)
--Activate
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetCategory
(
CATEGORY_TOGRAVE
)
e1
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e1
:
SetCode
(
EVENT_FREE_CHAIN
)
e1
:
SetCountLimit
(
1
,
m
+
EFFECT_COUNT_CODE_OATH
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetOperation
(
cm
.
activate
)
c
:
RegisterEffect
(
e1
)
--Activate
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetCategory
(
CATEGORY_TODECK
+
CATEGORY_DRAW
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCountLimit
(
1
,
m
+
1
)
e2
:
SetTarget
(
cm
.
target1
)
e2
:
SetOperation
(
cm
.
activate1
)
c
:
RegisterEffect
(
e2
)
local
e1
=
rsef
.
ACT
(
c
,
nil
,
nil
,{
1
,
m
,
1
},
"tg"
,
nil
,
nil
,
nil
,
rsop
.
target
(
cm
.
tgfilter
,
"tg"
,
LOCATION_MZONE
,
0
,
true
),
cm
.
act
)
local
e2
=
rsef
.
I
(
c
,{
m
,
0
},{
1
,
m
+
100
},
"td,dr"
,
nil
,
LOCATION_GRAVE
,
nil
,
nil
,
rsop
.
target
({
Card
.
IsAbleToDeck
,
"td"
},{
cm
.
tdfilter
,
"td"
,
LOCATION_GRAVE
+
LOCATION_REMOVED
}),
cm
.
drop
)
end
function
cm
.
filter
(
c
)
return
c
.
rksetcode
==
"CHURCH_KNIGHT"
and
c
:
IsType
(
TYPE_MONSTER
)
and
c
:
IsAbleToGrave
()
and
c
:
IsFaceup
()
function
cm
.
tgfilter
(
c
)
return
c
:
IsAbleToGrave
()
and
c
:
IsFaceup
()
and
rsch
.
IsSet1
(
c
)
end
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
local
sg
=
Duel
.
GetMatchingGroup
(
cm
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
if
sg
:
GetCount
()
>
0
then
local
atk
=
sg
:
GetSum
(
Card
.
GetAttack
)
function
cm
.
act
(
e
,
tp
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
tgfilter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
if
#
g
>
0
and
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
>
0
then
local
atk
=
Duel
.
GetOperatedGroup
():
GetSum
(
Card
.
GetBaseAttack
)
for
p
=
0
,
1
do
Duel
.
SetLP
(
p
,
math.max
(
0
,
Duel
.
GetLP
(
p
)
-
atk
))
end
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_RELEASE
,
sg
,
sg
:
GetCount
(),
0
,
0
)
end
function
cm
.
filter2
(
c
)
if
c
:
IsPreviousPosition
(
POS_FACEUP
)
then
return
c
:
GetPreviousAttackOnField
()
else
return
0
end
function
cm
.
tdfilter
(
c
)
return
rsch
.
IsSet1
(
c
)
and
c
:
IsAbleToDeck
()
end
function
cm
.
activate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
nil
)
if
g
:
GetCount
()
>
0
and
Duel
.
SendtoGrave
(
g
,
REASON_EFFECT
)
~=
0
then
local
og
=
Duel
.
GetOperatedGroup
()
local
atk
=
og
:
GetSum
(
cm
.
filter2
)
local
LP1
=
Duel
.
GetLP
(
tp
)
local
LP2
=
Duel
.
GetLP
(
1
-
tp
)
if
LP1
-
atk
<
0
then
Duel
.
SetLP
(
tp
,
0
)
end
if
LP2
-
atk
<
0
then
Duel
.
SetLP
(
1
-
tp
,
0
)
end
if
LP1
-
atk
>=
0
then
Duel
.
SetLP
(
tp
,
LP1
-
atk
)
end
if
LP2
-
atk
>=
0
then
Duel
.
SetLP
(
1
-
tp
,
LP2
-
atk
)
end
end
end
function
cm
.
filter1
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
IsAbleToDeck
()
end
function
cm
.
target1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsLocation
(
LOCATION_REMOVED
+
LOCATION_GRAVE
)
and
chkc
:
IsControler
(
tp
)
and
cm
.
filter1
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
filter1
,
tp
,
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
e
:
GetHandler
())
and
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
2
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_DRAW
,
nil
,
0
,
tp
,
1
)
function
cm
.
drop
(
e
,
tp
)
local
c
=
rscf
.
GetSelf
(
e
)
if
not
c
then
return
end
rsop
.
SelectSolve
(
HINTMSG_TODECK
,
tp
,
aux
.
NecroValleyFilter
(
cm
.
tdfilter
),
tp
,
LOCATION_GRAVE
+
LOCATION_REMOVED
,
0
,
1
,
2
,
c
,
cm
.
solvefun
,
c
)
end
function
cm
.
activate1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
filter1
,
tp
,
LOCATION_REMOVED
+
LOCATION_GRAVE
,
0
,
1
,
2
,
e
:
GetHandler
())
if
Duel
.
SendtoDeck
(
tg
+
e
:
GetHandler
(),
nil
,
2
,
REASON_EFFECT
)
~=
0
then
Duel
.
BreakEffect
()
function
cm
.
solvefun
(
g
,
c
)
g
:
AddCard
(
c
)
if
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
>
0
and
Duel
.
GetOperatedGroup
():
IsExists
(
Card
.
IsLocation
,
1
,
nil
,
rsloc
.
de
)
then
if
Duel
.
GetOperatedGroup
():
IsExists
(
Card
.
IsLocation
,
1
,
nil
,
LOCATION_DECK
)
then
Duel
.
ShuffleDeck
(
tp
)
end
Duel
.
Draw
(
tp
,
1
,
REASON_EFFECT
)
end
return
true
end
\ No newline at end of file
expansions/script/c16104232.lua
View file @
2fd9e2d3
--教团的圣女 让·达克
local
m
=
16104232
local
cm
=
_G
[
"c"
..
m
]
c16104232
.
rksetcode
=
"CHURCH"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104232
,
"CHURCH"
)
function
cm
.
initial_effect
(
c
)
c
:
SetUniqueOnField
(
1
,
1
,
m
)
--Sumeffect
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
e1
:
SetProperty
(
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
m
)
e1
:
SetCost
(
cm
.
cost
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetOperation
(
cm
.
operation
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
c
:
RegisterEffect
(
e2
)
--to hand
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e3
:
SetCategory
(
CATEGORY_TOHAND
)
e3
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DELAY
)
e3
:
SetCode
(
EVENT_TO_GRAVE
)
e3
:
SetCountLimit
(
1
,
m
+
1
)
e3
:
SetCondition
(
cm
.
thcon
)
e3
:
SetTarget
(
cm
.
thtg
)
e3
:
SetOperation
(
cm
.
thop
)
c
:
RegisterEffect
(
e3
)
--double tribute
local
e4
=
Effect
.
CreateEffect
(
c
)
e4
:
SetType
(
EFFECT_TYPE_SINGLE
)
e4
:
SetCode
(
EFFECT_DOUBLE_TRIBUTE
)
e4
:
SetValue
(
cm
.
condition
)
c
:
RegisterEffect
(
e4
)
Duel
.
AddCustomActivityCounter
(
m
,
ACTIVITY_SUMMON
,
cm
.
counterfilter
)
Duel
.
AddCustomActivityCounter
(
m
,
ACTIVITY_SPSUMMON
,
cm
.
counterfilter1
)
end
function
cm
.
counterfilter
(
c
)
return
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
counterfilter1
(
c
)
return
c
:
GetSummonLocation
()
~=
LOCATION_EXTRA
and
c
:
IsRace
(
RACE_WARRIOR
)
end
function
cm
.
condition
(
e
,
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
end
function
cm
.
filter
(
c
)
return
c
:
IsFaceup
()
and
c
:
IsAbleToDeck
()
local
e1
=
rsef
.
STO
(
c
,
EVENT_SUMMON_SUCCESS
,{
m
,
0
},{
1
,
m
},
"disd"
,
"de,dsp"
,
nil
,
nil
,
rsop
.
target
(
cm
.
setfilter
,
nil
,
LOCATION_DECK
,
0
,
3
),
cm
.
setop
)
local
e2
=
rsef
.
RegisterClone
(
c
,
e1
,
"code"
,
EVENT_SPSUMMON_SUCCESS
)
local
e3
=
rsef
.
STO
(
c
,
EVENT_RELEASE
,{
m
,
1
},{
1
,
m
+
1
},
"th"
,
"de,dsp"
,
cm
.
thcon
,
nil
,
rsop
.
target
(
cm
.
thfilter
,
"th"
,
LOCATION_GRAVE
),
cm
.
thop
)
local
e4
=
rsch
.
DoubleTriFun
(
c
)
end
function
cm
.
setfilter
(
c
)
return
c
:
IsType
(
TYPE_SPELL
)
and
c
:
IsSSetable
()
and
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetCustomActivityCount
(
m
,
tp
,
ACTIVITY_SPSUMMON
)
==
0
and
Duel
.
GetCustomActivityCount
(
m
,
tp
,
ACTIVITY_SUMMON
)
==
0
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
+
EFFECT_FLAG_OATH
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetTarget
(
cm
.
splimit
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_CANNOT_SUMMON
)
Duel
.
RegisterEffect
(
e2
,
tp
)
end
function
cm
.
splimit
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
return
(
not
c
:
IsRace
(
RACE_WARRIOR
))
or
c
:
IsLocation
(
LOCATION_EXTRA
)
return
rsch
.
IsSetS1
(
c
)
and
c
:
IsSSetable
()
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
setfilter
,
tp
,
LOCATION_DECK
,
0
,
3
,
nil
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
end
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
(
Duel
.
IsExistingMatchingCard
(
cm
.
setfilter
,
tp
,
LOCATION_DECK
,
0
,
3
,
nil
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
)
then
return
end
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
setfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
if
g
:
GetCount
()
>=
3
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SET
)
local
sg
=
g
:
Select
(
tp
,
3
,
3
,
nil
)
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
Duel
.
Hint
(
HINT_SELECTMSG
,
1
-
tp
,
HINTMSG_SET
)
local
tg
=
sg
:
Select
(
1
-
tp
,
1
,
1
,
nil
)
Duel
.
SSet
(
tp
,
tg
)
Duel
.
ConfirmCards
(
1
-
tp
,
tg
)
Duel
.
SendtoGrave
(
sg
-
tg
,
REASON_EFFECT
)
function
cm
.
setop
(
e
,
tp
)
if
Duel
.
IsPlayerCanSummon
(
tp
)
and
Duel
.
IsPlayerCanAdditionalSummon
(
tp
)
and
Duel
.
GetFlagEffect
(
tp
,
m
)
==
0
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
3
))
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetTargetRange
(
LOCATION_HAND
,
0
)
e1
:
SetCode
(
EFFECT_EXTRA_SUMMON_COUNT
)
e1
:
SetValue
(
0x1
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_EXTRA_SET_COUNT
)
Duel
.
RegisterEffect
(
e2
,
tp
)
Duel
.
RegisterFlagEffect
(
tp
,
m
,
RESET_PHASE
+
PHASE_END
,
0
,
1
)
end
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
3
))
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetTargetRange
(
LOCATION_HAND
,
0
)
e1
:
SetCode
(
EFFECT_EXTRA_SUMMON_COUNT
)
e1
:
SetValue
(
0x1
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
Duel
.
RegisterEffect
(
e1
,
tp
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_EXTRA_SET_COUNT
)
Duel
.
RegisterEffect
(
e2
,
tp
)
Duel
.
RegisterFlagEffect
(
tp
,
m
,
RESET_PHASE
+
PHASE_END
,
0
,
1
)
local
g
=
Duel
.
GetMatchingGroup
(
cm
.
setfilter
,
tp
,
LOCATION_DECK
,
0
,
nil
)
if
#
g
<
3
then
return
end
rshint
.
Select
(
tp
,
HINTMSG_SELF
)
local
sg
=
g
:
Select
(
tp
,
3
,
3
,
nil
)
Duel
.
ConfirmCards
(
1
-
tp
,
sg
)
rshint
.
Select
(
1
-
tp
,
HINTMSG_SET
)
local
tg
=
sg
:
Select
(
1
-
tp
,
1
,
1
,
nil
)
Duel
.
HintSelection
(
tg
)
Duel
.
SSet
(
tp
,
tg
:
GetFirst
())
sg
:
Sub
(
tg
)
Duel
.
SendtoGrave
(
sg
,
REASON_EFFECT
)
end
function
cm
.
thfilter
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
IsAbleToHand
()
function
cm
.
thcon
(
e
,
tp
)
local
c
=
e
:
GetHandler
()
return
c
:
IsComplexReason
(
REASON_SUMMON
+
REASON_MATERIAL
)
end
function
cm
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
return
e
:
GetHandler
():
GetReason
()
==
26
function
cm
.
thfilter
(
c
)
if
not
rsch
.
IsSet2
(
c
)
then
return
false
end
local
b1
=
c
:
IsAbleToHand
()
local
b2
=
c
:
IsComplexType
(
TYPE_SPELL
+
TYPE_CONTINUOUS
)
and
c
:
GetActivateEffect
():
IsActivatable
(
tp
,
true
)
return
b1
or
b2
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
chkc
)
if
chkc
then
return
chkc
:
IsControler
(
tp
)
and
chkc
:
IsLocation
(
LOCATION_GRAVE
)
and
cm
.
thfilter
(
chkc
)
end
if
chk
==
0
then
return
Duel
.
IsExistingTarget
(
cm
.
thfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectTarget
(
tp
,
cm
.
thfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
g
,
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_LEAVE_GRAVE
,
g
,
1
,
0
,
0
)
function
cm
.
thop
(
e
,
tp
)
rsop
.
SelectSolve
(
HINTMSG_SELF
,
tp
,
aux
.
NecroValleyFilter
(
cm
.
thfilter
),
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
,
cm
.
solvefun
,
tp
)
end
function
cm
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
Duel
.
GetFirstTarget
()
if
tc
:
IsRelateToEffect
(
e
)
then
if
tc
:
IsType
(
TYPE_CONTINUOUS
)
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
m
,
2
))
then
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
else
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
end
function
cm
.
solvefun
(
g
,
tp
)
local
tc
=
g
:
GetFirst
()
local
b1
=
tc
:
IsAbleToHand
()
local
b2
=
tc
:
IsComplexType
(
TYPE_SPELL
+
TYPE_CONTINUOUS
)
and
tc
:
GetActivateEffect
():
IsActivatable
(
tp
,
true
)
local
op
=
rsop
.
SelectOption
(
tp
,
b1
,{
m
,
1
},
b2
,{
m
,
2
})
if
op
==
1
then
Duel
.
SendtoHand
(
tc
,
nil
,
REASON_EFFECT
)
else
Duel
.
MoveToField
(
tc
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
local
te
=
tc
:
GetActivateEffect
()
local
tep
=
tc
:
GetControler
()
local
cost
=
te
:
GetCost
()
if
cost
then
cost
(
te
,
tep
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
end
return
true
end
\ No newline at end of file
expansions/script/c16104234.lua
View file @
2fd9e2d3
--于圣殿前起誓
local
m
=
16104234
local
cm
=
_G
[
"c"
..
m
]
c16104234
.
rksetcode
=
"CHURCH"
if
not
pcall
(
function
()
require
(
"expansions/script/c16104200"
)
end
)
then
require
(
"script/c16104200"
)
end
local
m
,
cm
=
rscf
.
DefineCard
(
16104234
,
"CHURCH"
)
function
cm
.
initial_effect
(
c
)
--Activate
local
e0
=
Effect
.
CreateEffect
(
c
)
e0
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
e0
:
SetCode
(
EVENT_FREE_CHAIN
)
c
:
RegisterEffect
(
e0
)
--intg
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_CANNOT_BE_EFFECT_TARGET
)
e1
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e1
:
SetRange
(
LOCATION_SZONE
)
e1
:
SetTargetRange
(
LOCATION_ONFIELD
,
0
)
e1
:
SetTarget
(
cm
.
ntgtg
)
e1
:
SetValue
(
aux
.
tgoval
)
c
:
RegisterEffect
(
e1
)
--indes
local
e1_1
=
Effect
.
CreateEffect
(
c
)
e1_1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1_1
:
SetCode
(
EFFECT_INDESTRUCTABLE
)
e1_1
:
SetRange
(
LOCATION_SZONE
)
e1_1
:
SetTargetRange
(
LOCATION_ONFIELD
,
0
)
e1_1
:
SetTarget
(
aux
.
TargetBoolFunction
(
Card
.
ischurch
))
e1_1
:
SetValue
(
cm
.
indesval
)
c
:
RegisterEffect
(
e1_1
)
--EFFECT_LIMIT
local
e1_2
=
Effect
.
CreateEffect
(
c
)
e1_2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1_2
:
SetCode
(
EVENT_DESTROYED
)
e1_2
:
SetRange
(
LOCATION_SZONE
)
e1_2
:
SetOperation
(
cm
.
operation
)
c
:
RegisterEffect
(
e1_2
)
--SpecialSummon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e2
:
SetCategory
(
CATEGORY_LEAVE_GRAVE
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCountLimit
(
1
)
e2
:
SetTarget
(
cm
.
sptg
)
e2
:
SetOperation
(
cm
.
spop
)
c
:
RegisterEffect
(
e2
)
--SpecialSummon Limit
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
)
e3
:
SetRange
(
LOCATION_SZONE
)
e3
:
SetCode
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
e3
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e3
:
SetTargetRange
(
1
,
0
)
e3
:
SetTarget
(
cm
.
sumlimit
)
c
:
RegisterEffect
(
e3
)
local
e4
=
e3
:
Clone
()
e4
:
SetCode
(
EFFECT_CANNOT_SUMMON
)
c
:
RegisterEffect
(
e4
)
end
function
Card
.
ischurch
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
end
function
cm
.
disfilter
(
c
)
return
(
not
c
:
IsRace
(
RACE_WARRIOR
))
and
c
:
IsType
(
TYPE_MONSTER
)
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
d
=
eg
:
Filter
(
cm
.
disfilter
,
nil
)
if
d
==
nil
then
return
end
local
tc
=
d
:
GetFirst
()
while
tc
do
if
not
tc
then
return
end
if
tc
:
IsReason
(
REASON_DESTROY
)
and
tc
:
IsReason
(
REASON_BATTLE
+
REASON_EFFECT
)
then
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_CANNOT_TRIGGER
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_CLIENT_HINT
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e1
)
tc
=
d
:
GetNext
()
end
end
end
function
cm
.
indesval
(
e
,
re
,
r
,
rp
)
return
bit
.
band
(
r
,
REASON_RULE
+
REASON_BATTLE
)
==
0
end
function
cm
.
ntgtg
(
e
,
c
)
return
c
:
IsFaceup
()
and
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
end
function
cm
.
sumlimit
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
)
return
not
((
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
or
c
:
IsCode
(
16104222
))
end
function
cm
.
tffilter
(
c
)
return
(
c
.
rksetcode
==
"CHURCH_KNIGHT"
or
c
.
rksetcode
==
"CHURCH"
)
and
c
:
IsAbleToDeck
()
end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
and
Duel
.
IsExistingMatchingCard
(
cm
.
tffilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
e
:
GetHandler
())
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TODECK
,
nil
,
1
,
tp
,
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_LEAVE_GRAVE
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
cm
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
IsExistingMatchingCard
(
cm
.
tffilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
e
:
GetHandler
())
and
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SELECT
)
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
tffilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
3
,
e
:
GetHandler
())
if
Duel
.
SendtoDeck
(
tg
,
nil
,
2
,
REASON_EFFECT
)
~=
0
then
Duel
.
MoveToField
(
e
:
GetHandler
(),
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
end
local
e1
=
rsef
.
ACT
(
c
)
local
e2
=
rsef
.
FV_CANNOT_BE_TARGET
(
c
,
"effect"
,
aux
.
tgoval
,
aux
.
TargetBoolFunction
(
rsch
.
IsSet1
),{
LOCATION_ONFIELD
,
0
})
local
e3
=
rsef
.
FV_INDESTRUCTABLE
(
c
,
"effect"
,
1
,
aux
.
TargetBoolFunction
(
rsch
.
IsSet1
),{
LOCATION_ONFIELD
,
0
})
local
e4
=
rsef
.
FV_LIMIT_PLAYER
(
c
,
"act"
,
cm
.
limitval
,
nil
,{
1
,
1
})
local
e5
,
e6
=
rsef
.
FV_LIMIT_PLAYER
(
c
,
"sp,sum"
,
nil
,
cm
.
sptg
,{
1
,
0
})
local
e7
=
rsef
.
QO
(
c
,
nil
,{
m
,
0
},
1
,
"td"
,
nil
,
LOCATION_GRAVE
,
nil
,
nil
,
rsop
.
target
(
cm
.
tdfilter
,
"td"
,
rsloc
.
gr
,
0
,
1
,
1
,
c
),
cm
.
actop
)
end
function
cm
.
limitval
(
e
,
re
)
local
rc
=
re
:
GetHandler
()
if
rc
:
IsRace
(
RACE_WARRIOR
)
then
return
false
end
return
rc
:
IsStatus
(
STATUS_BATTLE_DESTROYED
)
or
rc
:
IsComplexReason
(
REASON_DESTROY
,
true
,
REASON_EFFECT
,
REASON_BATTLE
)
end
function
cm
.
sptg
(
e
,
c
)
if
c
:
IsCode
(
16104222
)
then
return
false
end
return
not
rsch
.
IsSet1
(
c
)
end
function
cm
.
tdfilter
(
c
,
e
,
tp
)
return
rsch
.
IsSet1
(
c
)
and
c
:
IsAbleToDeck
()
and
e
:
GetHandler
():
GetActivateEffect
():
IsActivatable
(
tp
,
true
,
true
)
end
function
cm
.
actop
(
e
,
tp
)
local
c
=
rscf
.
GetSelf
(
e
)
if
c
and
rsop
.
SelectToDeck
(
tp
,
cm
.
tdfilter
,
tp
,
rsloc
.
gr
,
0
,
1
,
3
,
c
,{},
e
,
tp
)
>
0
then
Duel
.
MoveToField
(
c
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
local
te
=
c
:
GetActivateEffect
()
te
:
UseCountLimit
(
tp
,
1
,
true
)
local
tep
=
c
:
GetControler
()
local
cost
=
te
:
GetCost
()
if
cost
then
cost
(
te
,
tep
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
1
)
end
end
end
\ No newline at end of file
expansions/script/c16199990.lua
View file @
2fd9e2d3
This source diff could not be displayed because it is too large. You can
view the blob
instead.
expansions/script/c16199991.lua
View file @
2fd9e2d3
--Real Scl Version - Variable
local
Version_Number
=
20200
430
local
Version_Number
=
20200
807
local
m
=
16199990
local
vm
=
16199991
rsv
=
{}
--"Base Function"
...
...
@@ -21,14 +21,18 @@ rsreset={} --"Reset Function"
rshint
=
{}
--"Hint Function"
rsloc
=
{}
--"Location Function"
rsdv
=
"Divide_Variable"
--Info Variable
rs
ef
.
valinfo
=
{}
--"Value for inside series, inside type etc."
rs
val
.
valinfo
=
{}
--"Value for inside series, inside type etc."
rscost
.
costinfo
=
{}
--"Cost information, for record cost value"
rsef
.
targetlist
=
{}
--"Target group list, for rstg.GetTargetAttribute"
rsop
.
opinfo
=
{}
--"Operation information, for record something"
rsef
.
relationinfo
=
{}
--"Field,Pendulum,Continous leave field"
rstg
.
targetlist
=
{}
--"Target group list, for rstg.GetTargetAttribute"
rsef
.
attacheffect
=
{}
--"Effect information for attach effects"
rsef
.
attacheffectf
=
{}
rsef
.
solveeffect
=
{}
rs
ef
.
baseop
=
{}
rs
op
.
baseop
=
{}
rscf
.
synchro_material_action
=
{}
--"Custom syn material's action"
rscf
.
xyz_material_action
=
{}
--"Custom xyz material's action"
...
...
@@ -55,26 +59,29 @@ rsreset.ered = RESET_EVENT+RESETS_REDIRECT
--Code Variable
rscode
.
Extra_Effect_Activate
=
m
+
100
--"Attach Effect"
rscode
.
Extra_Effect_BSolve
=
m
+
200
rscode
.
Extra_Effect_ASolve
=
m
+
800
rscode
.
Extra_Effect_BSolve
=
m
+
101
rscode
.
Extra_Effect_ASolve
=
m
+
102
rscode
.
Phase_Leave_Flag
=
m
+
200
--"Summon Flag for SummonBuff"
rscode
.
Extra_Synchro_Material
=
m
+
300
--"Extra Synchro Material"
rscode
.
Extra_Xyz_Material
=
m
+
301
--"Extra Xyz Material"
rscode
.
Utility_Xyz_Material
=
m
+
400
--"Utility Xyz Material"
rscode
.
Previous_Set_Code
=
m
+
500
--"Previous Set Code"
rscode
.
Synchro_Material
=
m
+
600
--"Record synchro proceudre target"
rscode
.
Pre_Complete_Proc
=
m
+
700
--"Previous c:CompleteProcedure"
rscode
.
Phase_Leave_Flag
=
m
+
300
--"Summon Flag for SummonBuff"
rscode
.
Extra_Synchro_Material
=
m
+
400
--"Extra Synchro Material"
rscode
.
Extra_Xyz_Material
=
m
+
401
--"Extra Xyz Material"
rscode
.
Utility_Xyz_Material
=
m
+
500
--"Utility Xyz Material"
rscode
.
Previous_Set_Code
=
m
+
600
--"Previous Set Code"
rscode
.
Synchro_Material
=
m
+
700
--"Record synchro proceudre target"
rscode
.
Set
=
m
+
800
--"EVENT_SET"
--Hint Message Variable
rshint
.
act
=
aux
.
Stringid
(
m
,
0
)
--"activate spell/trap"
rshint
.
dis
=
aux
.
Stringid
(
m
,
1
)
--"cards will be disable effects "
rshint
.
dis
=
aux
.
Stringid
(
38265153
,
3
)
--"cards will be disable effects "
rshint
.
ad
=
aux
.
Stringid
(
m
,
2
)
--"cards will be change Atk/Def"
rshint
.
rtg
=
aux
.
Stringid
(
48976825
,
0
)
--"return to grave"
rshint
.
spproc
=
aux
.
Stringid
(
m
,
4
)
--"SS by self produce"
rshint
.
negeffect
=
aux
.
Stringid
(
19502505
,
1
)
--"negate activation"
rshint
.
eq
=
aux
.
Stringid
(
68184115
,
0
)
--"cards will equip"
rshint
.
te
=
aux
.
Stringid
(
24094258
,
3
)
--"add to extra deck"
rshint
.
xyz
=
HINTMSG_XMATERIAL
--"cards will be overlay cards"
rshint
.
xyz
=
HINTMSG_XMATERIAL
--"cards will be
come
overlay cards"
rshint
.
diseffect
=
aux
.
Stringid
(
39185163
,
1
)
--"negate effect"
rshint
.
negsum
=
aux
.
Stringid
(
m
+
1
,
1
)
--"negate summon"
rshint
.
negsp
=
aux
.
Stringid
(
74892653
,
0
)
--"negate special summon"
...
...
@@ -83,12 +90,29 @@ rshint.darksynchro=aux.Stringid(m,15) --"treat as dark synchro"
rshint
.
choose
=
aux
.
Stringid
(
23912837
,
1
)
--"choose 1 effect"
rshint
.
epleave
=
aux
.
Stringid
(
m
,
3
)
--"end phase leave field"
rshint
.
finshcopy
=
aux
.
Stringid
(
43387895
,
1
)
--"reset copy effect"
rshint
.
act2
=
aux
.
Stringid
(
m
,
1
)
--"select card to activate"
rshint
.
tgct
=
aux
.
Stringid
(
83531441
,
2
)
--"select send to the GY number"
rshint
.
drct
=
aux
.
Stringid
(
m
,
5
)
--"select draw number"
--[[
rshint.isss=aux.Stringid(17535764,1) --"would you SS a monster?"
rshint.istg=aux.Stringid(62834295,2) --"would you send to GY?"
rshint.isdes=aux.Stringid(20590515,2) --"would you destroy?"
rshint.istd=aux.Stringid(m,1) --"would you send to Deck?"
rshint.isrm=aux.Stringid(93191801,2) --"would you reomve?"
rshint.isset=aux.Stringid(m,5) --"would you set?"
rshint.istf=aux.Stringid(m,6) --"would you place to field?"
rshint.isth=aux.Stringid(26118970,1) --"would you send to hand?"
rshint.isrh=aux.Stringid(31102447,2) --"would you return to hand"
rshint.isdr=aux.Stringid(3679218,1) --"would you draw?"
--]]
--Property Variable
rsflag
.
flaglist
=
{
EFFECT_FLAG_CARD_TARGET
,
EFFECT_FLAG_PLAYER_TARGET
,
EFFECT_FLAG_DELAY
,
EFFECT_FLAG_DAMAGE_STEP
,
EFFECT_FLAG_DAMAGE_CAL
,
EFFECT_FLAG_IGNORE_IMMUNE
,
EFFECT_FLAG_SET_AVAILABLE
,
EFFECT_FLAG_IGNORE_RANGE
,
EFFECT_FLAG_SINGLE_RANGE
,
EFFECT_FLAG_BOTH_SIDE
,
EFFECT_FLAG_UNCOPYABLE
,
EFFECT_FLAG_CANNOT_DISABLE
,
EFFECT_FLAG_CANNOT_NEGATE
,
EFFECT_FLAG_CLIENT_HINT
,
EFFECT_FLAG_LIMIT_ZONE
,
EFFECT_FLAG_ABSOLUTE_TARGET
,
EFFECT_FLAG_SPSUM_PARAM
}
EFFECT_FLAG_ABSOLUTE_TARGET
,
EFFECT_FLAG_SPSUM_PARAM
,
EFFECT_FLAG_EVENT_PLAYER
}
rsflag
.
tg_d
=
EFFECT_FLAG_CARD_TARGET
+
EFFECT_FLAG_DELAY
rsflag
.
dsp_d
=
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_DELAY
rsflag
.
dsp_tg
=
EFFECT_FLAG_DAMAGE_STEP
+
EFFECT_FLAG_CARD_TARGET
...
...
@@ -110,16 +134,22 @@ rscate.neg_des = CATEGORY_NEGATE+CATEGORY_DESTROY
rscf
.
typelist
=
{
TYPE_MONSTER
,
TYPE_NORMAL
,
TYPE_EFFECT
,
TYPE_DUAL
,
TYPE_UNION
,
TYPE_TOON
,
TYPE_TUNER
,
TYPE_RITUAL
,
TYPE_FUSION
,
TYPE_SYNCHRO
,
TYPE_XYZ
,
TYPE_LINK
,
TYPE_TOKEN
,
TYPE_PENDULUM
,
TYPE_SPSUMMON
,
TYPE_FLIP
,
TYPE_SPIRIT
,
TYPE_SPELL
,
TYPE_EQUIP
,
TYPE_FIELD
,
TYPE_CONTINUOUS
,
TYPE_QUICKPLAY
,
TYPE_TRAP
,
TYPE_COUNTER
,
TYPE_TRAPMONSTER
}
rscf
.
extype
=
TYPE_FUSION
+
TYPE_SYNCHRO
+
TYPE_XYZ
+
TYPE_
PENDULUM
+
TYPE_
LINK
rscf
.
extype
=
TYPE_FUSION
+
TYPE_SYNCHRO
+
TYPE_XYZ
+
TYPE_LINK
rscf
.
extype_r
=
rscf
.
extype
+
TYPE_RITUAL
rscf
.
extype_np
=
rscf
.
extype
-
TYPE_PENDULUM
rscf
.
extype_p
=
rscf
.
extype
+
TYPE_PENDULUM
rscf
.
extype_rp
=
rscf
.
extype
+
TYPE_RITUAL
+
TYPE_PENDULUM
rscf
.
exlist
=
{
TYPE_FUSION
,
TYPE_SYNCHRO
,
TYPE_XYZ
,
TYPE_LINK
}
rscf
.
exlist_r
=
{
TYPE_FUSION
,
TYPE_SYNCHRO
,
TYPE_XYZ
,
TYPE_LINK
,
TYPE_RITUAL
}
rscf
.
exlist_p
=
{
TYPE_FUSION
,
TYPE_SYNCHRO
,
TYPE_XYZ
,
TYPE_LINK
,
TYPE_PENDULUM
}
rscf
.
exlist_rp
=
{
TYPE_FUSION
,
TYPE_SYNCHRO
,
TYPE_XYZ
,
TYPE_LINK
,
TYPE_PENDULUM
,
TYPE_RITUAL
}
--Location Variable
rsloc
.
hd
=
LOCATION_HAND
+
LOCATION_DECK
rsloc
.
ho
=
LOCATION_HAND
+
LOCATION_ONFIELD
rsloc
.
hg
=
LOCATION_HAND
+
LOCATION_GRAVE
rsloc
.
dg
=
LOCATION_DECK
+
LOCATION_GRAVE
rsloc
.
gr
=
LOCATION_GRAVE
+
LOCATION_REMOVED
rsloc
.
dgr
=
LOCATION_DECK
+
LOCATION_GRAVE
+
LOCATION_REMOVED
rsloc
.
hdg
=
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
rsloc
.
de
=
LOCATION_DECK
+
LOCATION_EXTRA
rsloc
.
mg
=
LOCATION_MZONE
+
LOCATION_GRAVE
...
...
@@ -131,6 +161,7 @@ rsloc.all=0xff
--Escape Old Functions
function
rsof
.
Escape_Old_Functions
()
rsof
.
DefineCard
=
rscf
.
DefineCard
rscf
.
FilterFaceUp
=
rscf
.
fufilter
rsof
.
SendtoHand
=
rsop
.
SendtoHand
rsof
.
SendtoDeck
=
rsop
.
SendtoDeck
rsof
.
SendtoGrave
=
rsop
.
SendtoGrave
...
...
@@ -141,7 +172,8 @@ function rsof.Escape_Old_Functions()
rsof
.
SelectOption_Page
=
rsop
.
SelectOption_Page
rsof
.
SelectNumber
=
rsop
.
AnnounceNumber
rsof
.
SelectNumber_List
=
rsop
.
AnnounceNumber_List
rsof
.
IsSet
=
rscf
.
DefineSet
rsof
.
IsSet
=
rscf
.
DefineSet
rscf
.
GetRelationThisCard
=
rscf
.
GetFaceUpSelf
--some card use old SummonBuff's phase leave field parterment, must fix them in their luas
rssf
.
SummonBuff
=
function
(
attlist
,
isdis
,
isdistig
,
selfleave
,
phaseleave
)
local
bufflist
=
{}
...
...
@@ -170,6 +202,7 @@ function rsof.Escape_Old_Functions()
end
return
bufflist
end
rsop
.
eqop
=
rsop
.
Equip
end
expansions/script/c16199992.lua
View file @
2fd9e2d3
--Record Author
local
am
=
16199992
local
Version_Number
=
20200
430
--
Scl
local
Version_Number
=
20200
807
#
Scl
local
rsdka
=
Dakyria
local
rsdio
=
Diablo
local
rsnr
=
Night_Raven
...
...
@@ -10,12 +10,13 @@ local rsem = Eridiument
local
rsxb
=
XB
local
rsos
=
Oracle_Smith
local
rssp
=
Stellar_Pearl
--
local rsgd = Ghostdom_Dragon
//
local
rsgd
=
Ghostdom_Dragon
local
rsed
=
Epic_Dragon
local
rsdh
=
Devil_Hunter
local
rsds
=
Dark_Souls
local
rsca
=
Corona
--
Scl - Special Mode
#
Scl
-
Special
Mode
local
rssm
=
Special_Mode
local
rssmb
=
Special_Mode_Change_Base_Function
local
rssmt
=
Special_Mode_Turbo_Duel
...
...
@@ -26,18 +27,18 @@ local rssmf = Special_Mode_Fast_Duel
local
rssmm
=
Special_Mode_Multiple_Duel
local
rssmu
=
Special_Mode_Universal_Duel
--
Gale 1472676207
#
Gale
1472676207
local
rsve
=
Voison
local
rsneov
=
Neons
local
tfrsv
=
T
.
Fairies
local
rsss
=
Star_Spirit
--
ChiJiang 626386490
#
ChiJiang
626386490
local
rsnm
=
Nightmare
local
rslf
=
Little_Fox
local
rccv
=
Thermonuclear
--
XiaoMi 643865567
#
XiaoMi
643865567
local
rssg
=
Sex_Gun
local
rsps
=
Pseudo_Soul
local
rsdcc
=
Dragon_Chess_Corps
...
...
@@ -50,48 +51,58 @@ local rsik = Infernal_Knight
local
rsvw
=
Virus_Wrom
local
rsia
=
Indolent_Angel
local
rsso
=
Simulated_Organism
local
rstr
=
True_Ritual
--
NianBao 583322404
#
NianBao
583322404
local
rslap
=
Lapin
local
rskh
=
Karehana
--
XiaoDaoHeng 1614895649
#
XiaoDaoHeng
1614895649
local
rslrd
=
Life_DeathRound_Dance
--
Huang 1184387005
#
Huang
1184387005
local
rsts
=
Trinity_Sword
--
Luoxing 1151483512
#
Luoxing
1151483512
local
rsdt
=
Dark_Tale
local
rsod
=
Order
--
YunZeZhun 1587361112
#
YunZeZhun
1587361112
local
rsphh
=
Phantom_Thieves_Of_Hearts
local
rsgc
=
Guard_City
--
ZhenDong
#
ZhenDong
local
rsfv
=
Fgo
/
Assassin
--
JingJing 1772438857
#
JingJing
1772438857
local
rsba
=
BlueAngel
--
Akashic 3204027606
#
Akashic
3204027606
local
rszg
=
Zogu
local
rsgs
=
Gran_Sphere
local
rsoc
=
Oligocene_Civilization
local
rsgol
=
Giant_of_Light
local
rssb
=
Space_Beasts
--
HeiBai 1172777968
#
HeiBai
1172777968
local
rstm
=
Toaru_Majutsu_no_Index
--
2558566212
#
2558566212
local
rsgod
=
God
#
02
1164477469
local
rsva
=
VR_Aqua
#
REIKAI
2404873791
local
rsch
=
Churck
--Set Code
--
Scl
#
Scl
--local = 0x1330
local
Alchement_Bio
=
0x3330
local
Chaos_Alchemy
=
0x5330
local
Azure
_
Wing_Mercenary
=
0x6330
local
Azure
-
Wing_Mercenary
=
0x6330
local
Oracleoath
=
0x9330
local
Zrouf_Mantra
=
0xa330
local
Autumntale
=
0xc330
...
...
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