Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
no81cards
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nemo Ma
no81cards
Commits
b5208630
Commit
b5208630
authored
Sep 22, 2024
by
POLYMER
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
6e8bd36a
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
447 additions
and
287 deletions
+447
-287
expansions/no81.cdb
expansions/no81.cdb
+0
-0
expansions/pics/65979995.jpg
expansions/pics/65979995.jpg
+0
-0
expansions/script/c11450993.lua
expansions/script/c11450993.lua
+1
-0
expansions/script/c11451475.lua
expansions/script/c11451475.lua
+1
-2
expansions/script/c11451481.lua
expansions/script/c11451481.lua
+4
-2
expansions/script/c11451482.lua
expansions/script/c11451482.lua
+3
-3
expansions/script/c11451751.lua
expansions/script/c11451751.lua
+5
-1
expansions/script/c11451834.lua
expansions/script/c11451834.lua
+1
-0
expansions/script/c11451838.lua
expansions/script/c11451838.lua
+4
-0
expansions/script/c11451841.lua
expansions/script/c11451841.lua
+1
-0
expansions/script/c11451867.lua
expansions/script/c11451867.lua
+1
-0
expansions/script/c11451911.lua
expansions/script/c11451911.lua
+4
-0
expansions/script/c11451912.lua
expansions/script/c11451912.lua
+6
-3
expansions/script/c11451918.lua
expansions/script/c11451918.lua
+2
-1
expansions/script/c11451924.lua
expansions/script/c11451924.lua
+1
-0
expansions/script/c21185825.lua
expansions/script/c21185825.lua
+1
-1
expansions/script/c21185845.lua
expansions/script/c21185845.lua
+2
-2
expansions/script/c21185848.lua
expansions/script/c21185848.lua
+1
-1
expansions/script/c49811353.lua
expansions/script/c49811353.lua
+1
-0
expansions/script/c65123333.lua
expansions/script/c65123333.lua
+408
-83
expansions/script/c65979995.lua
expansions/script/c65979995.lua
+0
-188
No files found.
expansions/no81.cdb
View file @
b5208630
No preview for this file type
expansions/pics/65979995.jpg
deleted
100644 → 0
View file @
6e8bd36a
137 KB
expansions/script/c11450993.lua
View file @
b5208630
...
@@ -8,6 +8,7 @@ function cm.initial_effect(c)
...
@@ -8,6 +8,7 @@ function cm.initial_effect(c)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetCode
(
EVENT_RELEASE
)
e1
:
SetCode
(
EVENT_RELEASE
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
EFFECT_COUNT_CODE_CHAIN
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetRange
(
LOCATION_HAND
)
e1
:
SetCondition
(
cm
.
adcon
)
e1
:
SetCondition
(
cm
.
adcon
)
e1
:
SetTarget
(
cm
.
adtg
)
e1
:
SetTarget
(
cm
.
adtg
)
...
...
expansions/script/c11451475.lua
View file @
b5208630
...
@@ -292,7 +292,6 @@ function cm.efop2(e,tp,eg,ep,ev,re,r,rp)
...
@@ -292,7 +292,6 @@ function cm.efop2(e,tp,eg,ep,ev,re,r,rp)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYING
)
e2
:
SetCode
(
EVENT_BATTLE_DESTROYING
)
e2
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e2
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCondition
(
cm
.
drcon1
)
e2
:
SetCondition
(
cm
.
drcon1
)
e2
:
SetTarget
(
cm
.
drtg
)
e2
:
SetTarget
(
cm
.
drtg
)
e2
:
SetOperation
(
cm
.
drop
)
e2
:
SetOperation
(
cm
.
drop
)
...
@@ -360,7 +359,7 @@ function cm.drcon2(e,tp,eg,ep,ev,re,r,rp)
...
@@ -360,7 +359,7 @@ function cm.drcon2(e,tp,eg,ep,ev,re,r,rp)
end
end
function
cm
.
drtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
drtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
GetFlagEffect
(
m
+
1
)
<
2
end
if
chk
==
0
then
return
true
end
--
c:GetFlagEffect(m+1)<2 end
c
:
RegisterFlagEffect
(
m
+
1
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
,
0
,
1
)
c
:
RegisterFlagEffect
(
m
+
1
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
,
0
,
1
)
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetTargetPlayer
(
tp
)
Duel
.
SetTargetParam
(
1
)
Duel
.
SetTargetParam
(
1
)
...
...
expansions/script/c11451481.lua
View file @
b5208630
...
@@ -57,7 +57,8 @@ function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
...
@@ -57,7 +57,8 @@ function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local
num
=
eg
:
FilterCount
(
Card
.
IsType
,
nil
,
TYPE_MONSTER
)
local
num
=
eg
:
FilterCount
(
Card
.
IsType
,
nil
,
TYPE_MONSTER
)
local
tg
=
eg
:
Filter
(
cm
.
tgfilter
,
nil
)
local
tg
=
eg
:
Filter
(
cm
.
tgfilter
,
nil
)
local
spg
=
tg
:
Filter
(
cm
.
spfilter
,
nil
,
e
,
tp
)
local
spg
=
tg
:
Filter
(
cm
.
spfilter
,
nil
,
e
,
tp
)
if
chk
==
0
then
return
(
num
>=
2
or
(
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451481
)
and
num
>=
1
))
and
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
#
spg
>
0
end
if
chk
==
0
then
return
(
num
>=
2
or
(
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451481
)
and
num
>=
1
))
and
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
#
spg
>
0
and
c
:
GetFlagEffect
(
m
)
==
0
end
c
:
RegisterFlagEffect
(
m
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_CHAIN
,
0
,
1
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451481
)
then
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451481
)
then
if
num
>=
2
then
if
num
>=
2
then
local
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
11451483
,
2
),
aux
.
Stringid
(
11451483
,
3
))
local
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
11451483
,
2
),
aux
.
Stringid
(
11451483
,
3
))
...
@@ -93,7 +94,8 @@ function cm.thfilter(c)
...
@@ -93,7 +94,8 @@ function cm.thfilter(c)
end
end
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
(
#
eg
>=
2
or
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451481
))
and
c
:
IsAbleToHand
()
and
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
and
not
e
:
GetHandler
():
IsStatus
(
STATUS_CHAINING
)
end
if
chk
==
0
then
return
(
#
eg
>=
2
or
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451481
))
and
c
:
IsAbleToHand
()
and
Duel
.
IsExistingMatchingCard
(
cm
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
and
c
:
GetFlagEffect
(
m
)
==
0
end
c
:
RegisterFlagEffect
(
m
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_CHAIN
,
0
,
1
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451481
)
then
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451481
)
then
if
#
eg
>=
2
then
if
#
eg
>=
2
then
local
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
11451483
,
2
),
aux
.
Stringid
(
11451483
,
3
))
local
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
11451483
,
2
),
aux
.
Stringid
(
11451483
,
3
))
...
...
expansions/script/c11451482.lua
View file @
b5208630
--魔人★双子 菈·赛泽尔
--魔人★双子 菈·赛泽尔
local
m
=
11451482
local
cm
,
m
=
GetID
()
local
cm
=
_G
[
"c"
..
m
]
function
cm
.
initial_effect
(
c
)
function
cm
.
initial_effect
(
c
)
--effect1
--effect1
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
...
@@ -140,7 +139,8 @@ end
...
@@ -140,7 +139,8 @@ end
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
num
=
e
:
GetLabel
()
local
num
=
e
:
GetLabel
()
if
chk
==
0
then
return
(
num
>=
2
or
(
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451482
)
and
num
>=
1
))
and
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
end
if
chk
==
0
then
return
(
num
>=
2
or
(
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451482
)
and
num
>=
1
))
and
not
Duel
.
IsPlayerAffectedByEffect
(
tp
,
59822133
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
Duel
.
IsExistingMatchingCard
(
cm
.
spfilter
,
tp
,
LOCATION_HAND
,
0
,
1
,
nil
,
e
,
tp
)
and
c
:
GetFlagEffect
(
m
)
==
0
end
c
:
RegisterFlagEffect
(
m
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_CHAIN
,
0
,
1
)
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451482
)
then
if
Duel
.
IsPlayerAffectedByEffect
(
tp
,
11451482
)
then
if
num
>=
2
then
if
num
>=
2
then
local
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
11451483
,
2
),
aux
.
Stringid
(
11451483
,
3
))
local
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
11451483
,
2
),
aux
.
Stringid
(
11451483
,
3
))
...
...
expansions/script/c11451751.lua
View file @
b5208630
...
@@ -115,11 +115,11 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -115,11 +115,11 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
3
))
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
3
))
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_ADJUST
)
e1
:
SetCode
(
EVENT_ADJUST
)
--e1:SetCountLimit(1)
e1
:
SetLabel
(
Duel
.
GetCurrentPhase
())
e1
:
SetLabel
(
Duel
.
GetCurrentPhase
())
e1
:
SetLabelObject
(
tc
)
e1
:
SetLabelObject
(
tc
)
e1
:
SetCondition
(
cm
.
retcon
)
e1
:
SetCondition
(
cm
.
retcon
)
e1
:
SetOperation
(
cm
.
retop
)
e1
:
SetOperation
(
cm
.
retop
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
,
2
)
Duel
.
RegisterEffect
(
e1
,
tp
)
Duel
.
RegisterEffect
(
e1
,
tp
)
if
c
:
IsRelateToEffect
(
e
)
then
if
c
:
IsRelateToEffect
(
e
)
then
Duel
.
BreakEffect
()
Duel
.
BreakEffect
()
...
@@ -128,6 +128,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -128,6 +128,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
end
end
function
cm
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
pnfl_adjusting
then
return
false
end
local
tc
=
e
:
GetLabelObject
()
local
tc
=
e
:
GetLabelObject
()
if
tc
:
GetFlagEffect
(
m
)
==
0
then
if
tc
:
GetFlagEffect
(
m
)
==
0
then
e
:
Reset
()
e
:
Reset
()
...
@@ -137,9 +138,12 @@ function cm.retcon(e,tp,eg,ep,ev,re,r,rp)
...
@@ -137,9 +138,12 @@ function cm.retcon(e,tp,eg,ep,ev,re,r,rp)
end
end
end
end
function
cm
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
pnfl_adjusting
then
return
end
pnfl_adjusting
=
true
local
tc
=
e
:
GetLabelObject
()
local
tc
=
e
:
GetLabelObject
()
local
ph
,
ph2
=
Duel
.
GetCurrentPhase
(),
e
:
GetLabel
()
local
ph
,
ph2
=
Duel
.
GetCurrentPhase
(),
e
:
GetLabel
()
if
ph
~=
ph2
and
(
ph
<=
PHASE_MAIN1
or
ph
>=
PHASE_MAIN2
or
ph2
<=
PHASE_MAIN1
or
ph2
>=
PHASE_MAIN2
)
then
if
ph
~=
ph2
and
(
ph
<=
PHASE_MAIN1
or
ph
>=
PHASE_MAIN2
or
ph2
<=
PHASE_MAIN1
or
ph2
>=
PHASE_MAIN2
)
then
Duel
.
SendtoHand
(
tc
,
1
-
tp
,
REASON_EFFECT
)
Duel
.
SendtoHand
(
tc
,
1
-
tp
,
REASON_EFFECT
)
end
end
pnfl_adjusting
=
false
end
end
\ No newline at end of file
expansions/script/c11451834.lua
View file @
b5208630
...
@@ -29,6 +29,7 @@ function cm.initial_effect(c)
...
@@ -29,6 +29,7 @@ function cm.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_GRAVE
)
e2
:
SetCode
(
EVENT_MOVE
)
e2
:
SetCode
(
EVENT_MOVE
)
e2
:
SetCountLimit
(
1
,
EFFECT_COUNT_CODE_CHAIN
)
e2
:
SetCondition
(
cm
.
actcon
)
e2
:
SetCondition
(
cm
.
actcon
)
e2
:
SetCost
(
cm
.
bfgcost
)
e2
:
SetCost
(
cm
.
bfgcost
)
e2
:
SetOperation
(
cm
.
actop
)
e2
:
SetOperation
(
cm
.
actop
)
...
...
expansions/script/c11451838.lua
View file @
b5208630
...
@@ -59,10 +59,13 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -59,10 +59,13 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_ADJUST
)
e1
:
SetCode
(
EVENT_ADJUST
)
e1
:
SetLabel
(
Duel
.
GetCurrentPhase
())
e1
:
SetLabel
(
Duel
.
GetCurrentPhase
())
e1
:
SetCondition
(
function
()
return
not
pnfl_adjusting
end
)
e1
:
SetOperation
(
cm
.
adjustop
)
e1
:
SetOperation
(
cm
.
adjustop
)
Duel
.
RegisterEffect
(
e1
,
tp
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
function
cm
.
adjustop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
adjustop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
pnfl_adjusting
then
return
end
pnfl_adjusting
=
true
local
ph
,
ph2
=
Duel
.
GetCurrentPhase
(),
e
:
GetLabel
()
local
ph
,
ph2
=
Duel
.
GetCurrentPhase
(),
e
:
GetLabel
()
if
ph
~=
ph2
and
(
ph
<=
PHASE_MAIN1
or
ph
>=
PHASE_MAIN2
or
ph2
<=
PHASE_MAIN1
or
ph2
>=
PHASE_MAIN2
)
then
if
ph
~=
ph2
and
(
ph
<=
PHASE_MAIN1
or
ph
>=
PHASE_MAIN2
or
ph2
<=
PHASE_MAIN1
or
ph2
>=
PHASE_MAIN2
)
then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_SPSUMMON
)
...
@@ -78,6 +81,7 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -78,6 +81,7 @@ function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
end
end
e
:
Reset
()
e
:
Reset
()
end
end
pnfl_adjusting
=
false
end
end
function
cm
.
setfilter
(
c
,
e
,
tp
)
function
cm
.
setfilter
(
c
,
e
,
tp
)
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x9977
)
and
((
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
)
or
c
:
IsSSetable
())
return
c
:
IsFaceup
()
and
c
:
IsSetCard
(
0x9977
)
and
((
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEDOWN_DEFENSE
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
)
or
c
:
IsSSetable
())
...
...
expansions/script/c11451841.lua
View file @
b5208630
...
@@ -16,6 +16,7 @@ function cm.initial_effect(c)
...
@@ -16,6 +16,7 @@ function cm.initial_effect(c)
e2
:
SetCode
(
EVENT_CHAINING
)
e2
:
SetCode
(
EVENT_CHAINING
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCountLimit
(
1
,
EFFECT_COUNT_CODE_CHAIN
)
e2
:
SetCondition
(
cm
.
con
)
e2
:
SetCondition
(
cm
.
con
)
e2
:
SetTarget
(
cm
.
tg
)
e2
:
SetTarget
(
cm
.
tg
)
e2
:
SetOperation
(
cm
.
op
)
e2
:
SetOperation
(
cm
.
op
)
...
...
expansions/script/c11451867.lua
View file @
b5208630
...
@@ -17,6 +17,7 @@ function cm.initial_effect(c)
...
@@ -17,6 +17,7 @@ function cm.initial_effect(c)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e2
:
SetCode
(
EVENT_MOVE
)
e2
:
SetCode
(
EVENT_MOVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_MZONE
+
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_HAND
+
LOCATION_MZONE
+
LOCATION_GRAVE
)
e2
:
SetCountLimit
(
1
,
EFFECT_COUNT_CODE_CHAIN
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCondition
(
cm
.
spcon
)
e2
:
SetCondition
(
cm
.
spcon
)
e2
:
SetTarget
(
cm
.
sptg
)
e2
:
SetTarget
(
cm
.
sptg
)
...
...
expansions/script/c11451911.lua
View file @
b5208630
...
@@ -267,6 +267,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -267,6 +267,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
end
end
function
cm
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
pnfl_adjusting
then
return
false
end
local
g
=
e
:
GetLabelObject
()
local
g
=
e
:
GetLabelObject
()
if
not
g
:
IsExists
(
cm
.
filter6
,
1
,
nil
)
then
if
not
g
:
IsExists
(
cm
.
filter6
,
1
,
nil
)
then
g
:
DeleteGroup
()
g
:
DeleteGroup
()
...
@@ -303,6 +304,8 @@ function cm.returntofield(tc)
...
@@ -303,6 +304,8 @@ function cm.returntofield(tc)
end
end
end
end
function
cm
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
pnfl_adjusting
then
return
end
pnfl_adjusting
=
true
local
g
=
e
:
GetLabelObject
()
local
g
=
e
:
GetLabelObject
()
local
sg
=
g
:
Filter
(
cm
.
filter6
,
nil
,
e
)
local
sg
=
g
:
Filter
(
cm
.
filter6
,
nil
,
e
)
local
ph
,
ph2
=
Duel
.
GetCurrentPhase
(),
e
:
GetLabel
()
local
ph
,
ph2
=
Duel
.
GetCurrentPhase
(),
e
:
GetLabel
()
...
@@ -357,4 +360,5 @@ function cm.retop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -357,4 +360,5 @@ function cm.retop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
SendtoHand
(
tc
,
tc
:
GetPreviousControler
(),
REASON_EFFECT
)
Duel
.
SendtoHand
(
tc
,
tc
:
GetPreviousControler
(),
REASON_EFFECT
)
end
end
end
end
pnfl_adjusting
=
false
end
end
\ No newline at end of file
expansions/script/c11451912.lua
View file @
b5208630
...
@@ -74,7 +74,7 @@ function cm.initial_effect(c)
...
@@ -74,7 +74,7 @@ function cm.initial_effect(c)
local
tc
=
obj
local
tc
=
obj
if
aux
.
GetValueType
(
obj
)
==
"Group"
then
tc
=
obj
:
GetFirst
()
end
if
aux
.
GetValueType
(
obj
)
==
"Group"
then
tc
=
obj
:
GetFirst
()
end
local
tp
=
tc
:
GetControler
()
local
tp
=
tc
:
GetControler
()
if
tc
:
IsLevel
(
3
)
then
--and not Duel.IsPlayerAffectedByEffect(tp,59822133) then
if
1
==
1
then
--and not Duel.IsPlayerAffectedByEffect(tp,59822133) then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
11451912
,
0
))
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
11451912
,
0
))
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
tspfilter
,
tp
,
LOCATION_HAND
+
LOCATION_EXTRA
,
0
,
0
,
1
,
nil
,
cm
[
1
],
tp
,
tc
)
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
tspfilter
,
tp
,
LOCATION_HAND
+
LOCATION_EXTRA
,
0
,
0
,
1
,
nil
,
cm
[
1
],
tp
,
tc
)
if
#
tg
>
0
then
Duel
.
RegisterFlagEffect
(
tp
,
tg
:
GetFirst
():
GetOriginalCode
(),
RESET_PHASE
+
PHASE_END
,
0
,
1
)
cm
[
1
]
=
nil
return
_Merge
(
sg
,
tg
)
end
if
#
tg
>
0
then
Duel
.
RegisterFlagEffect
(
tp
,
tg
:
GetFirst
():
GetOriginalCode
(),
RESET_PHASE
+
PHASE_END
,
0
,
1
)
cm
[
1
]
=
nil
return
_Merge
(
sg
,
tg
)
end
...
@@ -86,7 +86,7 @@ function cm.initial_effect(c)
...
@@ -86,7 +86,7 @@ function cm.initial_effect(c)
function
Duel
.
SpecialSummonRule
(
tp
,
tc
,
sumtype
)
function
Duel
.
SpecialSummonRule
(
tp
,
tc
,
sumtype
)
if
sumtype
~=
SUMMON_TYPE_PENDULUM
then
_SpecialSummonRule
(
tp
,
tc
,
sumtype
)
end
if
sumtype
~=
SUMMON_TYPE_PENDULUM
then
_SpecialSummonRule
(
tp
,
tc
,
sumtype
)
end
local
tp
=
tc
:
GetControler
()
local
tp
=
tc
:
GetControler
()
if
tc
:
IsLevel
(
3
)
then
--and not Duel.IsPlayerAffectedByEffect(tp,59822133) then
if
1
==
1
then
--and not Duel.IsPlayerAffectedByEffect(tp,59822133) then
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
11451912
,
0
))
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
aux
.
Stringid
(
11451912
,
0
))
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
tspfilter
,
tp
,
LOCATION_HAND
+
LOCATION_EXTRA
,
0
,
0
,
1
,
nil
,
nil
,
tp
,
tc
)
local
tg
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
tspfilter
,
tp
,
LOCATION_HAND
+
LOCATION_EXTRA
,
0
,
0
,
1
,
nil
,
nil
,
tp
,
tc
)
if
#
tg
>
0
then
Duel
.
RegisterFlagEffect
(
tp
,
tg
:
GetFirst
():
GetOriginalCode
(),
RESET_PHASE
+
PHASE_END
,
0
,
1
)
local
tc2
=
tg
:
GetFirst
()
tc2
.
pendulum_rule
[
tc2
]:
SetLabel
(
1
)
if
tc
.
pendulum_rule
and
tc
.
pendulum_rule
[
tc
]
then
tc
.
pendulum_rule
[
tc
]:
SetLabel
(
0
)
end
return
_SpecialSummonRule
(
tp
,
tc2
,
SUMMON_TYPE_PENDULUM
)
end
if
#
tg
>
0
then
Duel
.
RegisterFlagEffect
(
tp
,
tg
:
GetFirst
():
GetOriginalCode
(),
RESET_PHASE
+
PHASE_END
,
0
,
1
)
local
tc2
=
tg
:
GetFirst
()
tc2
.
pendulum_rule
[
tc2
]:
SetLabel
(
1
)
if
tc
.
pendulum_rule
and
tc
.
pendulum_rule
[
tc
]
then
tc
.
pendulum_rule
[
tc
]:
SetLabel
(
0
)
end
return
_SpecialSummonRule
(
tp
,
tc2
,
SUMMON_TYPE_PENDULUM
)
end
...
@@ -212,7 +212,6 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -212,7 +212,6 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
1
))
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetCode
(
EVENT_ADJUST
)
e1
:
SetCode
(
EVENT_ADJUST
)
e1
:
SetCountLimit
(
1
)
e1
:
SetLabel
(
Duel
.
GetCurrentPhase
())
e1
:
SetLabel
(
Duel
.
GetCurrentPhase
())
e1
:
SetLabelObject
(
og
)
e1
:
SetLabelObject
(
og
)
e1
:
SetCondition
(
cm
.
retcon
)
e1
:
SetCondition
(
cm
.
retcon
)
...
@@ -223,6 +222,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -223,6 +222,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end
end
end
end
function
cm
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
retcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
pnfl_adjusting
then
return
false
end
local
g
=
e
:
GetLabelObject
()
local
g
=
e
:
GetLabelObject
()
if
not
g
:
IsExists
(
cm
.
filter6
,
1
,
nil
)
then
if
not
g
:
IsExists
(
cm
.
filter6
,
1
,
nil
)
then
g
:
DeleteGroup
()
g
:
DeleteGroup
()
...
@@ -259,6 +259,8 @@ function cm.returntofield(tc)
...
@@ -259,6 +259,8 @@ function cm.returntofield(tc)
end
end
end
end
function
cm
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
retop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
pnfl_adjusting
then
return
end
pnfl_adjusting
=
true
local
g
=
e
:
GetLabelObject
()
local
g
=
e
:
GetLabelObject
()
local
sg
=
g
:
Filter
(
cm
.
filter6
,
nil
,
e
)
local
sg
=
g
:
Filter
(
cm
.
filter6
,
nil
,
e
)
local
ph
,
ph2
=
Duel
.
GetCurrentPhase
(),
e
:
GetLabel
()
local
ph
,
ph2
=
Duel
.
GetCurrentPhase
(),
e
:
GetLabel
()
...
@@ -313,4 +315,5 @@ function cm.retop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -313,4 +315,5 @@ function cm.retop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
SendtoHand
(
tc
,
tc
:
GetPreviousControler
(),
REASON_EFFECT
)
Duel
.
SendtoHand
(
tc
,
tc
:
GetPreviousControler
(),
REASON_EFFECT
)
end
end
end
end
pnfl_adjusting
=
false
end
end
\ No newline at end of file
expansions/script/c11451918.lua
View file @
b5208630
...
@@ -66,6 +66,7 @@ function cm.initial_effect(c)
...
@@ -66,6 +66,7 @@ function cm.initial_effect(c)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCountLimit
(
1
,
EFFECT_COUNT_CODE_CHAIN
)
e2
:
SetCondition
(
cm
.
rmcon
)
e2
:
SetCondition
(
cm
.
rmcon
)
e2
:
SetTarget
(
cm
.
rmtg
)
e2
:
SetTarget
(
cm
.
rmtg
)
e2
:
SetOperation
(
cm
.
rmop
)
e2
:
SetOperation
(
cm
.
rmop
)
...
@@ -87,7 +88,7 @@ end
...
@@ -87,7 +88,7 @@ end
function
cm
.
checkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
checkop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
eg
:
Filter
(
Card
.
IsPreviousLocation
,
nil
,
LOCATION_ONFIELD
):
Filter
(
Card
.
IsPreviousPosition
,
nil
,
POS_FACEUP
)
local
g
=
eg
:
Filter
(
Card
.
IsPreviousLocation
,
nil
,
LOCATION_ONFIELD
):
Filter
(
Card
.
IsPreviousPosition
,
nil
,
POS_FACEUP
)
for
tc
in
aux
.
Next
(
g
)
do
for
tc
in
aux
.
Next
(
g
)
do
local
code
,
code2
=
tc
:
Get
Code
()
local
code
,
code2
=
tc
:
Get
PreviousCodeOnField
()
PNFL_TURN_TOHAND_CHECK
[
code
]
=
true
PNFL_TURN_TOHAND_CHECK
[
code
]
=
true
if
code2
then
PNFL_TURN_TOHAND_CHECK
[
code2
]
=
true
end
if
code2
then
PNFL_TURN_TOHAND_CHECK
[
code2
]
=
true
end
end
end
...
...
expansions/script/c11451924.lua
View file @
b5208630
...
@@ -24,6 +24,7 @@ function cm.initial_effect(c)
...
@@ -24,6 +24,7 @@ function cm.initial_effect(c)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e2
:
SetCode
(
EVENT_CHAIN_SOLVED
)
e2
:
SetCode
(
EVENT_CHAIN_SOLVED
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e2
:
SetCountLimit
(
1
,
EFFECT_COUNT_CODE_CHAIN
)
e2
:
SetRange
(
LOCATION_GRAVE
+
LOCATION_REMOVED
)
e2
:
SetRange
(
LOCATION_GRAVE
+
LOCATION_REMOVED
)
e2
:
SetLabelObject
(
e0
)
e2
:
SetLabelObject
(
e0
)
e2
:
SetCondition
(
cm
.
adcon2
)
e2
:
SetCondition
(
cm
.
adcon2
)
...
...
expansions/script/c21185825.lua
View file @
b5208630
...
@@ -90,7 +90,7 @@ function c21185825.LCheckGoal2(sg,tp,lc,lmat)
...
@@ -90,7 +90,7 @@ function c21185825.LCheckGoal2(sg,tp,lc,lmat)
and
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
sg
,
lc
)
>
0
and
Duel
.
GetLocationCountFromEx
(
tp
,
tp
,
sg
,
lc
)
>
0
and
not
sg
:
IsExists
(
aux
.
LUncompatibilityFilter
,
1
,
nil
,
sg
,
lc
,
tp
)
and
not
sg
:
IsExists
(
aux
.
LUncompatibilityFilter
,
1
,
nil
,
sg
,
lc
,
tp
)
and
(
not
lmat
or
sg
:
IsContains
(
lmat
))
and
(
not
lmat
or
sg
:
IsContains
(
lmat
))
and
#
sg
==
sg
:
Filter
(
Card
.
IsLinkType
,
nil
,
TYPE_EFFECT
)
and
#
sg
==
sg
:
Filter
(
Card
.
IsLinkType
,
nil
,
TYPE_EFFECT
)
:
GetCount
()
end
end
function
c21185825
.
linkcon
()
function
c21185825
.
linkcon
()
return
function
(
e
,
c
,
og
,
lmat
,
min
,
max
)
return
function
(
e
,
c
,
og
,
lmat
,
min
,
max
)
...
...
expansions/script/c21185845.lua
View file @
b5208630
...
@@ -27,9 +27,9 @@ end
...
@@ -27,9 +27,9 @@ end
function
c21185845
.
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c21185845
.
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
ct
=
c
:
GetMutualLinkedGroupCount
()
local
ct
=
c
:
GetMutualLinkedGroupCount
()
if
chk
==
0
then
return
ct
>
0
and
Duel
.
IsExistingTarget
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_
MZONE
+
LOCATION_GRAVE
,
1
,
nil
)
end
if
chk
==
0
then
return
ct
>
0
and
Duel
.
IsExistingTarget
(
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_
ONFIELD
+
LOCATION_GRAVE
,
1
,
nil
)
end
Duel
.
Hint
(
3
,
tp
,
HINTMSG_RTOHAND
)
Duel
.
Hint
(
3
,
tp
,
HINTMSG_RTOHAND
)
local
g
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_
MZONE
+
LOCATION_GRAVE
,
1
,
ct
,
nil
)
local
g
=
Duel
.
SelectTarget
(
tp
,
Card
.
IsAbleToRemove
,
tp
,
0
,
LOCATION_
ONFIELD
+
LOCATION_GRAVE
,
1
,
ct
,
nil
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
#
g
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_REMOVE
,
g
,
#
g
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_ATKCHANGE
,
c
,
1
,
0
,
800
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_ATKCHANGE
,
c
,
1
,
0
,
800
)
end
end
...
...
expansions/script/c21185848.lua
View file @
b5208630
...
@@ -4,7 +4,7 @@ function c21185848.initial_effect(c)
...
@@ -4,7 +4,7 @@ function c21185848.initial_effect(c)
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkType
,
TYPE_EFFECT
),
2
)
aux
.
AddLinkProcedure
(
c
,
aux
.
FilterBoolFunction
(
Card
.
IsLinkType
,
TYPE_EFFECT
),
2
)
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
)
e1
:
SetCode
(
EFFECT_INDESTRUCTABLE_
BATTLE
)
e1
:
SetCode
(
EFFECT_INDESTRUCTABLE_
EFFECT
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e1
:
SetTargetRange
(
LOCATION_MZONE
,
0
)
e1
:
SetTarget
(
c21185848
.
tg
)
e1
:
SetTarget
(
c21185848
.
tg
)
...
...
expansions/script/c49811353.lua
View file @
b5208630
...
@@ -157,6 +157,7 @@ function s.drop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -157,6 +157,7 @@ function s.drop(e,tp,eg,ep,ev,re,r,rp)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetProperty
(
EFFECT_FLAG_PLAYER_TARGET
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetCode
(
EFFECT_CANNOT_ACTIVATE
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetTargetRange
(
1
,
0
)
e1
:
SetReset
(
RESET_PHASE
+
PHASE_END
)
e1
:
SetValue
(
s
.
aclimit2
)
e1
:
SetValue
(
s
.
aclimit2
)
Duel
.
RegisterEffect
(
e1
,
tp
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
...
...
expansions/script/c65123333.lua
View file @
b5208630
...
@@ -67,6 +67,36 @@ function s.initial_effect(c)
...
@@ -67,6 +67,36 @@ function s.initial_effect(c)
ge3
:
SetCondition
(
s
.
hintcon
)
ge3
:
SetCondition
(
s
.
hintcon
)
ge3
:
SetOperation
(
s
.
hintop
)
ge3
:
SetOperation
(
s
.
hintop
)
Duel
.
RegisterEffect
(
ge3
,
0
)
Duel
.
RegisterEffect
(
ge3
,
0
)
--save rg
s
.
sumgroup
=
Group
.
CreateGroup
()
s
.
sumgroup
:
KeepAlive
()
local
sge1
=
Effect
.
CreateEffect
(
c
)
sge1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
sge1
:
SetCode
(
EVENT_SUMMON
)
sge1
:
SetOperation
(
s
.
sumop
)
Duel
.
RegisterEffect
(
sge1
,
0
)
local
sge2
=
sge1
:
Clone
()
sge2
:
SetCode
(
EVENT_FLIP_SUMMON
)
Duel
.
RegisterEffect
(
sge2
,
0
)
local
sge3
=
sge1
:
Clone
()
sge3
:
SetCode
(
EVENT_SPSUMMON
)
Duel
.
RegisterEffect
(
sge3
,
0
)
s
.
sumsgroup
=
Group
.
CreateGroup
()
s
.
sumsgroup
:
KeepAlive
()
local
sge4
=
Effect
.
CreateEffect
(
c
)
sge4
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
sge4
:
SetCode
(
EVENT_SUMMON_SUCCESS
)
sge4
:
SetOperation
(
s
.
sumsop
)
Duel
.
RegisterEffect
(
sge1
,
0
)
local
sge5
=
sge4
:
Clone
()
sge5
:
SetCode
(
EVENT_FLIP_SUMMON_SUCCESS
)
Duel
.
RegisterEffect
(
sge5
,
0
)
local
sge6
=
sge4
:
Clone
()
sge6
:
SetCode
(
EVENT_SPSUMMON_SUCCESS
)
Duel
.
RegisterEffect
(
sge6
,
0
)
s
.
RandomSelect
=
Group
.
RandomSelect
s
.
RandomSelect
=
Group
.
RandomSelect
s
.
TossCoin
=
Duel
.
TossCoin
s
.
TossCoin
=
Duel
.
TossCoin
s
.
TossDice
=
Duel
.
TossDice
s
.
TossDice
=
Duel
.
TossDice
...
@@ -86,6 +116,11 @@ function s.initial_effect(c)
...
@@ -86,6 +116,11 @@ function s.initial_effect(c)
s
.
SpecialSummon
=
Duel
.
SpecialSummon
s
.
SpecialSummon
=
Duel
.
SpecialSummon
s
.
SpecialSummonStep
=
Duel
.
SpecialSummonStep
s
.
SpecialSummonStep
=
Duel
.
SpecialSummonStep
s
.
MoveToField
=
Duel
.
MoveToField
s
.
SSet
=
Duel
.
SSet
s
.
GetControl
=
Duel
.
GetControl
s
.
SelectDisableField
=
Duel
.
SelectDisableField
s
.
SelectField
=
Duel
.
SelectField
s
.
SelectEffectYesNo
=
Duel
.
SelectEffectYesNo
s
.
SelectEffectYesNo
=
Duel
.
SelectEffectYesNo
s
.
SelectYesNo
=
Duel
.
SelectYesNo
s
.
SelectYesNo
=
Duel
.
SelectYesNo
...
@@ -112,10 +147,8 @@ function s.startcon(e,tp,eg,ep,ev,re,r,rp)
...
@@ -112,10 +147,8 @@ function s.startcon(e,tp,eg,ep,ev,re,r,rp)
end
end
function
s
.
startop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
s
.
startop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
xg
=
Duel
.
GetFieldGroup
(
0
,
0x4d
,
0x4d
)
local
xg
=
Duel
.
GetOverlayGroup
(
0
,
0x7f
,
0x7f
)
for
xc
in
aux
.
Next
(
xg
)
do
g
:
Merge
(
xg
)
g
:
Merge
(
xc
:
GetOverlayGroup
())
end
g
=
g
:
Filter
(
s
.
cfilter
,
nil
)
g
=
g
:
Filter
(
s
.
cfilter
,
nil
)
for
tc
in
aux
.
Next
(
g
)
do
for
tc
in
aux
.
Next
(
g
)
do
local
e1
=
Effect
.
CreateEffect
(
tc
)
local
e1
=
Effect
.
CreateEffect
(
tc
)
...
@@ -132,6 +165,24 @@ function s.startop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -132,6 +165,24 @@ function s.startop(e,tp,eg,ep,ev,re,r,rp)
e2
:
SetCondition
(
s
.
menucon
)
e2
:
SetCondition
(
s
.
menucon
)
e2
:
SetOperation
(
s
.
menuop
)
e2
:
SetOperation
(
s
.
menuop
)
tc
:
RegisterEffect
(
e2
,
true
)
tc
:
RegisterEffect
(
e2
,
true
)
--be material
local
e4
=
Effect
.
CreateEffect
(
tc
)
e4
:
SetType
(
EFFECT_TYPE_XMATERIAL
+
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e4
:
SetCode
(
EVENT_ADJUST
)
e4
:
SetRange
(
LOCATION_MZONE
)
e4
:
SetLabelObject
(
tc
)
e4
:
SetCondition
(
s
.
matcon
)
e4
:
SetOperation
(
s
.
matop
)
tc
:
RegisterEffect
(
e4
)
--move
local
e5
=
Effect
.
CreateEffect
(
tc
)
e5
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e5
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e5
:
SetCode
(
EVENT_MOVE
)
e5
:
SetCondition
(
s
.
mvcon
)
e5
:
SetOperation
(
s
.
mvop
)
tc
:
RegisterEffect
(
e5
)
local
effect_list
=
{
local
effect_list
=
{
EFFECT_CANNOT_TO_DECK
,
EFFECT_CANNOT_TO_DECK
,
EFFECT_CANNOT_TO_HAND
,
EFFECT_CANNOT_TO_HAND
,
...
@@ -142,6 +193,10 @@ function s.startop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -142,6 +193,10 @@ function s.startop(e,tp,eg,ep,ev,re,r,rp)
EFFECT_CANNOT_SSET
,
EFFECT_CANNOT_SSET
,
EFFECT_IMMUNE_EFFECT
,
EFFECT_IMMUNE_EFFECT
,
EFFECT_CANNOT_BE_EFFECT_TARGET
,
EFFECT_CANNOT_BE_EFFECT_TARGET
,
EFFECT_CANNOT_BE_FUSION_MATERIAL
,
EFFECT_CANNOT_BE_SYNCHRO_MATERIAL
,
EFFECT_CANNOT_BE_XYZ_MATERIAL
,
EFFECT_CANNOT_BE_LINK_MATERIAL
,
EFFECT_CANNOT_CHANGE_CONTROL
,
EFFECT_CANNOT_CHANGE_CONTROL
,
}
}
for
_
,
v
in
pairs
(
effect_list
)
do
for
_
,
v
in
pairs
(
effect_list
)
do
...
@@ -156,6 +211,7 @@ function s.startop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -156,6 +211,7 @@ function s.startop(e,tp,eg,ep,ev,re,r,rp)
tc
:
SetStatus
(
STATUS_SUMMONING
,
true
)
tc
:
SetStatus
(
STATUS_SUMMONING
,
true
)
tc
:
SetStatus
(
STATUS_SUMMON_DISABLED
,
true
)
tc
:
SetStatus
(
STATUS_SUMMON_DISABLED
,
true
)
tc
:
SetStatus
(
STATUS_ACTIVATE_DISABLED
,
true
)
tc
:
SetStatus
(
STATUS_ACTIVATE_DISABLED
,
true
)
tc
:
SetStatus
(
STATUS_INITIALIZING
,
true
)
end
end
e
:
Reset
()
e
:
Reset
()
end
end
...
@@ -167,10 +223,8 @@ function s.cfilter2(c)
...
@@ -167,10 +223,8 @@ function s.cfilter2(c)
end
end
function
s
.
adjustop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
s
.
adjustop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
xg
=
Duel
.
GetFieldGroup
(
0
,
0x4d
,
0x4d
)
local
xg
=
Duel
.
GetOverlayGroup
(
0
,
0x7f
,
0x7f
)
for
xc
in
aux
.
Next
(
xg
)
do
g
:
Merge
(
xg
)
g
:
Merge
(
xc
:
GetOverlayGroup
())
end
g
=
g
:
Filter
(
s
.
cfilter2
,
nil
)
g
=
g
:
Filter
(
s
.
cfilter2
,
nil
)
for
tc
in
aux
.
Next
(
g
)
do
for
tc
in
aux
.
Next
(
g
)
do
local
bool1
=
tc
:
IsHasEffect
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
local
bool1
=
tc
:
IsHasEffect
(
EFFECT_CANNOT_SPECIAL_SUMMON
)
...
@@ -253,13 +307,13 @@ function s.chcost(_cost)
...
@@ -253,13 +307,13 @@ function s.chcost(_cost)
end
end
function
s
.
chtg
(
_tg
)
function
s
.
chtg
(
_tg
)
return
function
(
e
,
c
,
...
)
return
function
(
e
,
c
,
...
)
if
c
:
IsHasEffect
(
id
)
and
c
:
GetFlagEffect
(
id
)
==
0
then
return
false
end
if
c
and
c
:
IsHasEffect
(
id
)
and
c
:
GetFlagEffect
(
id
)
==
0
then
return
false
end
return
_tg
(
e
,
c
,
...
)
return
_tg
(
e
,
c
,
...
)
end
end
end
end
function
s
.
chtg2
(
_tg
)
function
s
.
chtg2
(
_tg
)
return
function
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
return
function
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
if
c
:
IsHasEffect
(
id
)
and
se
:
GetHandler
()
==
c
and
c
:
GetFlagEffect
(
id
)
==
0
then
return
false
end
if
c
and
c
:
IsHasEffect
(
id
)
and
se
:
GetHandler
()
==
c
and
c
:
GetFlagEffect
(
id
)
==
0
then
return
false
end
return
_tg
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
return
_tg
(
e
,
c
,
sump
,
sumtype
,
sumpos
,
targetp
,
se
)
end
end
end
end
...
@@ -274,8 +328,8 @@ function s.resetop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -274,8 +328,8 @@ function s.resetop(e,tp,eg,ep,ev,re,r,rp)
end
end
function
s
.
menucon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
s
.
menucon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
ph
=
Duel
.
GetCurrentPhase
()
local
ph
=
Duel
.
GetCurrentPhase
()
local
bool
=
ph
>=
PHASE_BATTLE_START
and
ph
<=
PHASE_BATTLE
and
ph
~
=
PHASE_BATTLE_STEP
or
ph
==
PHASE_MAIN1
or
ph
==
PHASE_MAIN2
local
bool
=
Duel
.
GetAttacker
()
==
nil
and
ph
=
=
PHASE_BATTLE_STEP
or
ph
==
PHASE_MAIN1
or
ph
==
PHASE_MAIN2
return
tp
==
e
:
GetHandler
():
GetOwner
()
and
(
s
.
Wild_Mode
or
Duel
.
GetTurnPlayer
()
==
tp
and
Duel
.
GetCurrentChain
()
==
0
and
Duel
.
GetTurnPlayer
()
==
tp
and
bool
)
return
tp
==
e
:
GetHandler
():
GetOwner
()
and
(
s
.
Wild_Mode
or
Duel
.
GetTurnPlayer
()
==
tp
and
Duel
.
GetCurrentChain
()
==
0
and
bool
)
end
end
function
s
.
menuop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
,
sg
,
og
)
function
s
.
menuop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
c
,
sg
,
og
)
local
page
=
1
local
page
=
1
...
@@ -340,6 +394,36 @@ function s.menuop(e,tp,eg,ep,ev,re,r,rp,c,sg,og)
...
@@ -340,6 +394,36 @@ function s.menuop(e,tp,eg,ep,ev,re,r,rp,c,sg,og)
end
end
if
not
s
.
Theworld_Mode
then
Duel
.
AdjustAll
()
end
if
not
s
.
Theworld_Mode
then
Duel
.
AdjustAll
()
end
end
end
function
s
.
matcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tc
=
e
:
GetLabelObject
()
return
tc
:
GetOverlayTarget
()
==
c
end
function
s
.
matop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
tc
=
e
:
GetLabelObject
()
local
c
=
e
:
GetHandler
()
if
tc
:
GetOverlayTarget
()
==
c
then
Duel
.
SendtoGrave
(
tc
,
REASON_RULE
+
REASON_RETURN
)
end
end
function
s
.
mvcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
not
c
:
IsLocation
(
LOCATION_EXTRA
)
end
function
s
.
mvop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
c
:
SetStatus
(
STATUS_SPSUMMON_STEP
,
false
)
c
:
SetStatus
(
STATUS_SUMMONING
,
false
)
c
:
SetStatus
(
STATUS_SUMMON_DISABLED
,
false
)
c
:
SetStatus
(
STATUS_ACTIVATE_DISABLED
,
false
)
c
:
SetStatus
(
STATUS_INITIALIZING
,
false
)
Duel
.
SendtoDeck
(
c
,
nil
,
0
,
REASON_RULE
)
c
:
SetStatus
(
STATUS_SPSUMMON_STEP
,
true
)
c
:
SetStatus
(
STATUS_SUMMONING
,
true
)
c
:
SetStatus
(
STATUS_SUMMON_DISABLED
,
true
)
c
:
SetStatus
(
STATUS_ACTIVATE_DISABLED
,
true
)
c
:
SetStatus
(
STATUS_INITIALIZING
,
true
)
end
function
s
.
movecard
(
e
,
tp
)
function
s
.
movecard
(
e
,
tp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
ot
=
s
.
SelectOption
(
tp
,
1152
,
1190
,
1191
,
1192
,
1105
)
local
ot
=
s
.
SelectOption
(
tp
,
1152
,
1190
,
1191
,
1192
,
1105
)
...
@@ -406,6 +490,7 @@ function s.movespop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -406,6 +490,7 @@ function s.movespop(e,tp,eg,ep,ev,re,r,rp)
if
not
Duel
.
SpecialSummonStep
(
tc
,
sumtype
,
tp
,
tp
,
bool
,
bool
,
POS_FACEUP
+
POS_FACEDOWN_DEFENSE
)
then
if
not
Duel
.
SpecialSummonStep
(
tc
,
sumtype
,
tp
,
tp
,
bool
,
bool
,
POS_FACEUP
+
POS_FACEDOWN_DEFENSE
)
then
Debug
.
Message
(
"特殊召唤失败了!"
)
Debug
.
Message
(
"特殊召唤失败了!"
)
else
else
if
sumtype
~=
0
then
tc
:
CompleteProcedure
()
end
if
tc
:
IsType
(
TYPE_XYZ
)
then
if
tc
:
IsType
(
TYPE_XYZ
)
then
local
e1
=
Effect
.
CreateEffect
(
tc
)
local
e1
=
Effect
.
CreateEffect
(
tc
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_CONTINUOUS
)
...
@@ -457,7 +542,7 @@ function s.printcard(e,tp)
...
@@ -457,7 +542,7 @@ function s.printcard(e,tp)
local
codetable
=
{}
local
codetable
=
{}
local
ac
=
s
.
AnnounceCard
(
tp
)
local
ac
=
s
.
AnnounceCard
(
tp
)
table.insert
(
codetable
,
ac
)
table.insert
(
codetable
,
ac
)
if
KOISHI_CHECK
and
IO_CHECK
then
if
KOISHI_CHECK
and
IO_CHECK
and
Duel
.
SelectYesNo
(
tp
,
aux
.
Stringid
(
id
,
15
))
then
local
luatable
=
s
.
get_lua_numbers
(
"script"
)
local
luatable
=
s
.
get_lua_numbers
(
"script"
)
for
_
,
i
in
ipairs
(
luatable
)
do
for
_
,
i
in
ipairs
(
luatable
)
do
if
ac
==
Duel
.
ReadCard
(
i
,
2
)
and
ac
~=
i
then
if
ac
==
Duel
.
ReadCard
(
i
,
2
)
and
ac
~=
i
then
...
@@ -499,7 +584,7 @@ function s.printcard(e,tp)
...
@@ -499,7 +584,7 @@ function s.printcard(e,tp)
tc
:
RegisterFlagEffect
(
id
+
10
,
0
,
0
,
0
)
tc
:
RegisterFlagEffect
(
id
+
10
,
0
,
0
,
0
)
end
end
end
end
if
s
.
Control_Mode
then
if
s
.
Control_Mode
and
KOISHI_CHECK
then
local
cm
=
_G
[
"c"
..
tc
:
GetOriginalCode
()]
local
cm
=
_G
[
"c"
..
tc
:
GetOriginalCode
()]
if
not
cm
.
Is_Add_Effect_Id
then
if
not
cm
.
Is_Add_Effect_Id
then
local
inie
=
cm
.
initial_effect
local
inie
=
cm
.
initial_effect
...
@@ -509,14 +594,14 @@ function s.printcard(e,tp)
...
@@ -509,14 +594,14 @@ function s.printcard(e,tp)
Card
.
RegisterEffect
=
function
(
card
,
effect
,
...
)
Card
.
RegisterEffect
=
function
(
card
,
effect
,
...
)
if
effect
and
s
.
Control_Mode
then
if
effect
and
s
.
Control_Mode
then
if
effect
:
GetType
()
&
EFFECT_TYPE_GRANT
~=
0
then
if
effect
:
GetType
()
&
EFFECT_TYPE_GRANT
~=
0
then
local
labeff
=
s
.
change_effect
(
effect
:
GetLabelObject
())
local
labeff
=
s
.
change_effect
(
effect
:
GetLabelObject
()
,
c
,
tp
)
if
labeff
~=
0
then
if
labeff
~=
0
then
local
eff
=
effect
:
Clone
()
local
eff
=
effect
:
Clone
()
eff
:
SetLabelObject
(
labeff
)
eff
:
SetLabelObject
(
labeff
)
_CReg
(
card
,
eff
,
...
)
_CReg
(
card
,
eff
,
...
)
end
end
else
else
local
eff
=
s
.
change_effect
(
effect
,
c
)
local
eff
=
s
.
change_effect
(
effect
,
c
,
tp
)
if
eff
~=
0
then
if
eff
~=
0
then
_CReg
(
card
,
eff
,
...
)
_CReg
(
card
,
eff
,
...
)
end
end
...
@@ -578,9 +663,10 @@ function s.setcard(e,tp)
...
@@ -578,9 +663,10 @@ function s.setcard(e,tp)
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_CONTROL
)
e1
:
SetCode
(
EFFECT_SET_CONTROL
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetValue
(
p
)
e1
:
SetValue
(
p
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
mc
:
RegisterEffect
(
e1
)
mc
:
RegisterEffect
(
e1
,
true
)
end
end
else
else
if
flag
>
0xff00
then
if
flag
>
0xff00
then
...
@@ -609,9 +695,10 @@ function s.setcard(e,tp)
...
@@ -609,9 +695,10 @@ function s.setcard(e,tp)
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_CONTROL
)
e1
:
SetCode
(
EFFECT_SET_CONTROL
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetValue
(
p
)
e1
:
SetValue
(
p
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
mc
:
RegisterEffect
(
e1
)
mc
:
RegisterEffect
(
e1
,
true
)
end
end
end
end
end
end
...
@@ -673,11 +760,9 @@ function s.cheatmode(e)
...
@@ -673,11 +760,9 @@ function s.cheatmode(e)
Duel
.
RegisterEffect
(
kge
,
0
)
Duel
.
RegisterEffect
(
kge
,
0
)
end
end
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
xg
=
Duel
.
GetFieldGroup
(
0
,
0x4d
,
0x4d
)
local
xg
=
Duel
.
GetOverlayGroup
(
0
,
0x7f
,
0x7f
)
for
xc
in
aux
.
Next
(
xg
)
do
g
:
Merge
(
xg
)
g
:
Merge
(
xc
:
GetOverlayGroup
())
g
=
g
:
Filter
(
s
.
addfilter
,
c
)
end
g
=
g
:
Filter
(
s
.
addfilter
,
nil
)
for
tc
in
aux
.
Next
(
g
)
do
for
tc
in
aux
.
Next
(
g
)
do
if
tc
:
GetFlagEffect
(
id
+
10
)
==
0
then
if
tc
:
GetFlagEffect
(
id
+
10
)
==
0
then
local
e1
=
Effect
.
CreateEffect
(
tc
)
local
e1
=
Effect
.
CreateEffect
(
tc
)
...
@@ -973,9 +1058,10 @@ function s.loadcard(c,data)
...
@@ -973,9 +1058,10 @@ function s.loadcard(c,data)
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_SET_CONTROL
)
e1
:
SetCode
(
EFFECT_SET_CONTROL
)
e1
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_UNCOPYABLE
)
e1
:
SetValue
(
p
)
e1
:
SetValue
(
p
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
e1
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
)
tc
:
RegisterEffect
(
e1
)
tc
:
RegisterEffect
(
e1
,
true
)
end
end
for
_
,
counter
in
ipairs
(
cdata
.
counter
)
do
for
_
,
counter
in
ipairs
(
cdata
.
counter
)
do
tc
:
AddCounter
(
counter
.
type
,
counter
.
count
)
tc
:
AddCounter
(
counter
.
type
,
counter
.
count
)
...
@@ -989,28 +1075,71 @@ function s.loadcard(c,data)
...
@@ -989,28 +1075,71 @@ function s.loadcard(c,data)
end
end
Debug
.
Message
(
"读档完成"
)
Debug
.
Message
(
"读档完成"
)
end
end
function
s
.
confirmfilter
(
c
,
tp
)
return
not
c
:
IsControler
(
tp
)
and
c
:
IsFacedown
()
end
function
s
.
mindcontrol
(
e
,
tp
)
function
s
.
mindcontrol
(
e
,
tp
)
s
.
Control_Mode
=
not
s
.
Control_Mode
s
.
Control_Mode
=
not
s
.
Control_Mode
if
s
.
Control_Mode
then
if
s
.
Control_Mode
then
Debug
.
Message
(
"骇入开始"
)
Debug
.
Message
(
"骇入开始"
)
function
Group
.
Select
(
g
,
sp
,
min
,
max
,
nc
)
return
s
.
Select
(
g
,
tp
,
min
,
max
,
nc
)
end
function
Group
.
Select
(
g
,
sp
,
min
,
max
,
nc
)
Duel
.
ConfirmCards
(
tp
,
g
:
Filter
(
s
.
confirmfilter
,
nil
,
tp
))
return
s
.
Select
(
g
,
tp
,
min
,
max
,
nc
)
end
function
Group
.
FilterSelect
(
g
,
sp
,
...
)
return
s
.
FilterSelect
(
g
,
tp
,
...
)
end
function
Group
.
FilterSelect
(
g
,
sp
,
...
)
Duel
.
ConfirmCards
(
tp
,
g
:
Filter
(
s
.
confirmfilter
,
nil
,
tp
))
return
s
.
FilterSelect
(
g
,
tp
,
...
)
end
function
Group
.
SelectUnselect
(
cg
,
sg
,
sp
,
...
)
return
s
.
SelectUnselect
(
cg
,
sg
,
tp
,
...
)
end
function
Group
.
SelectUnselect
(
cg
,
sg
,
sp
,
...
)
Duel
.
ConfirmCards
(
tp
,
cg
:
Filter
(
s
.
confirmfilter
,
nil
,
tp
))
return
s
.
SelectUnselect
(
cg
,
sg
,
tp
,
...
)
end
function
Card
.
RemoveOverlayCard
(
oc
,
sp
,
...
)
return
s
.
CRemoveOverlayCard
(
oc
,
tp
,
...
)
end
function
Card
.
RemoveOverlayCard
(
oc
,
sp
,
...
)
return
s
.
CRemoveOverlayCard
(
oc
,
tp
,
...
)
end
function
Duel
.
SelectFusionMaterial
(
sp
,
...
)
return
s
.
SelectFusionMaterial
(
tp
,
...
)
end
function
Duel
.
SelectFusionMaterial
(
sp
,
c
,
g
,
...
)
Duel
.
ConfirmCards
(
tp
,
g
:
Filter
(
s
.
confirmfilter
,
nil
,
tp
))
return
s
.
SelectFusionMaterial
(
tp
,
c
,
g
,
...
)
end
function
Duel
.
SelectTarget
(
sp
,
...
)
return
s
.
SelectTarget
(
tp
,
...
)
end
function
Duel
.
SelectTarget
(
sp
,
f
,
p
,
sl
,
ol
,
max
,
min
,
ex
,
...
)
local
sg
=
Duel
.
GetMatchingGroup
(
f
,
p
,
sl
,
ol
,
ex
,
...
)
Duel
.
ConfirmCards
(
tp
,
sg
:
Filter
(
s
.
confirmfilter
,
nil
,
tp
))
return
s
.
SelectTarget
(
tp
,
f
,
p
,
sl
,
ol
,
max
,
min
,
ex
,
...
)
end
function
Duel
.
SelectTribute
(
sp
,
...
)
return
s
.
SelectTribute
(
tp
,
...
)
end
function
Duel
.
SelectTribute
(
sp
,
...
)
return
s
.
SelectTribute
(
tp
,
...
)
end
function
Duel
.
DiscardHand
(
sp
,
f
,
min
,
max
,
r
,
nc
,
...
)
function
Duel
.
DiscardHand
(
sp
,
f
,
min
,
max
,
r
,
nc
,
...
)
local
dg
=
Duel
.
SelectMatchingCard
(
tp
,
f
,
sp
,
LOCATION_HAND
,
0
,
min
,
max
,
nc
,
...
)
local
dg
=
Duel
.
SelectMatchingCard
(
tp
,
f
,
sp
,
LOCATION_HAND
,
0
,
min
,
max
,
nc
,
...
)
return
Duel
.
SendtoGrave
(
dg
,
r
)
return
Duel
.
SendtoGrave
(
dg
,
r
)
end
end
function
Duel
.
RemoveOverlayCard
(
sp
,
...
)
return
s
.
DRemoveOverlayCard
(
tp
,
...
)
end
function
Duel
.
RemoveOverlayCard
(
sp
,
...
)
return
s
.
DRemoveOverlayCard
(
tp
,
...
)
end
function
Duel
.
SelectMatchingCard
(
sp
,
...
)
return
s
.
SelectMatchingCard
(
tp
,
...
)
end
function
Duel
.
SelectMatchingCard
(
sp
,
f
,
p
,
sl
,
ol
,
max
,
min
,
ex
,
...
)
local
sg
=
Duel
.
GetMatchingGroup
(
f
,
p
,
sl
,
ol
,
ex
,
...
)
Duel
.
ConfirmCards
(
tp
,
sg
:
Filter
(
s
.
confirmfilter
,
nil
,
tp
))
return
s
.
SelectMatchingCard
(
tp
,
f
,
p
,
sl
,
ol
,
max
,
min
,
ex
,
...
)
end
function
Duel
.
SelectReleaseGroup
(
sp
,
...
)
return
s
.
SelectReleaseGroup
(
tp
,
...
)
end
function
Duel
.
SelectReleaseGroup
(
sp
,
...
)
return
s
.
SelectReleaseGroup
(
tp
,
...
)
end
function
Duel
.
SelectReleaseGroupEx
(
sp
,
...
)
return
s
.
SelectReleaseGroupEx
(
tp
,
...
)
end
function
Duel
.
SelectReleaseGroupEx
(
sp
,
...
)
return
s
.
SelectReleaseGroupEx
(
tp
,
...
)
end
function
Duel
.
SpecialSummon
(
tg
,
stype
,
sp
,
...
)
return
s
.
SpecialSummon
(
tg
,
stype
,
tp
,
...
)
end
function
Duel
.
SpecialSummon
(
tg
,
stype
,
sp
,
...
)
return
s
.
SpecialSummon
(
tg
,
stype
,
tp
,
...
)
end
function
Duel
.
SpecialSummonStep
(
tg
,
stype
,
sp
,
...
)
return
s
.
SpecialSummonStep
(
tg
,
stype
,
tp
,
...
)
end
function
Duel
.
SpecialSummonStep
(
tg
,
stype
,
sp
,
...
)
return
s
.
SpecialSummonStep
(
tg
,
stype
,
tp
,
...
)
end
function
Duel
.
MoveToField
(
c
,
mp
,
...
)
return
s
.
MoveToField
(
c
,
tp
,
...
)
end
function
Duel
.
SSet
(
p
,
tg
,
sp
,
...
)
if
not
sp
then
sp
=
p
end
return
s
.
SSet
(
tp
,
tg
,
sp
,
...
)
end
function
Duel
.
GetControl
(
tg
,
p
,
rphase
,
rcount
,
zone
,
...
)
if
zone
==
nil
then
zone
=
0x1f
end
local
flag
=
0x1f
-
zone
for
i
=
0
,
4
do
if
not
Duel
.
CheckLocation
(
p
,
LOCATION_MZONE
,
i
)
then
flag
=
flag
|
2
^
i
end
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TARGET
)
if
tp
==
p
then
flag
=
s
.
SelectField
(
tp
,
1
,
LOCATION_MZONE
,
0
,
flag
+
0x60
)
else
flag
=
s
.
SelectField
(
tp
,
1
,
0
,
LOCATION_MZONE
,(
flag
+
0x60
)
<<
16
)
>>
16
end
return
s
.
GetControl
(
tg
,
p
,
rphase
,
rcount
,
flag
,
...
)
end
function
Duel
.
SelectDisableField
(
p
,
count
,
sl
,
ol
,
filter
)
if
tp
==
p
then
return
s
.
SelectDisableField
(
tp
,
count
,
sl
,
ol
,
filter
)
else
return
s
.
SelectDisableField
(
tp
,
count
,
ol
,
sl
,
filter
)
end
end
function
Duel
.
SelectField
(
p
,
count
,
sl
,
ol
,
filter
)
if
tp
==
p
then
return
s
.
SelectField
(
tp
,
count
,
sl
,
ol
,
filter
)
else
return
s
.
SelectField
(
tp
,
count
,
ol
,
sl
,
filter
)
end
end
function
Duel
.
SelectEffectYesNo
(
sp
,
...
)
return
s
.
SelectEffectYesNo
(
tp
,
...
)
end
function
Duel
.
SelectEffectYesNo
(
sp
,
...
)
return
s
.
SelectEffectYesNo
(
tp
,
...
)
end
function
Duel
.
SelectYesNo
(
sp
,
desc
)
return
s
.
SelectYesNo
(
tp
,
desc
)
end
function
Duel
.
SelectYesNo
(
sp
,
desc
)
return
s
.
SelectYesNo
(
tp
,
desc
)
end
...
@@ -1030,7 +1159,16 @@ function s.mindcontrol(e,tp)
...
@@ -1030,7 +1159,16 @@ function s.mindcontrol(e,tp)
ge0
:
SetTargetRange
(
0
,
LOCATION_HAND
)
ge0
:
SetTargetRange
(
0
,
LOCATION_HAND
)
ge0
:
SetTarget
(
function
()
return
s
.
Control_Mode
end
)
ge0
:
SetTarget
(
function
()
return
s
.
Control_Mode
end
)
Duel
.
RegisterEffect
(
ge0
,
tp
)
Duel
.
RegisterEffect
(
ge0
,
tp
)
Duel
.
ConfirmCards
(
tp
,
Duel
.
GetMatchingGroup
(
Card
.
IsFacedown
,
tp
,
0
,
LOCATION_EXTRA
+
LOCATION_REMOVED
+
LOCATION_DECK
+
LOCATION_ONFIELD
,
nil
),
true
)
--local hintcard=Duel.CreateToken(tp,id+1)
local
sge
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
sge
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
sge
:
SetCode
(
EVENT_FREE_CHAIN
)
sge
:
SetCondition
(
s
.
setactcon
)
sge
:
SetOperation
(
s
.
setactop
)
Duel
.
RegisterEffect
(
sge
,
tp
)
Duel
.
ConfirmCards
(
tp
,
Duel
.
GetMatchingGroup
(
Card
.
IsFacedown
,
tp
,
0
,
LOCATION_EXTRA
+
LOCATION_REMOVED
+
LOCATION_ONFIELD
+
LOCATION_DECK
,
nil
),
true
)
--Summon
--Summon
local
e1
=
Effect
.
GlobalEffect
()
local
e1
=
Effect
.
GlobalEffect
()
e1
:
SetDescription
(
aux
.
Stringid
(
id
+
1
,
10
))
e1
:
SetDescription
(
aux
.
Stringid
(
id
+
1
,
10
))
...
@@ -1071,13 +1209,25 @@ function s.mindcontrol(e,tp)
...
@@ -1071,13 +1209,25 @@ function s.mindcontrol(e,tp)
ge3
:
SetTargetRange
(
0
,
LOCATION_SZONE
)
ge3
:
SetTargetRange
(
0
,
LOCATION_SZONE
)
ge3
:
SetLabelObject
(
e3
)
ge3
:
SetLabelObject
(
e3
)
Duel
.
RegisterEffect
(
ge3
,
tp
)
Duel
.
RegisterEffect
(
ge3
,
tp
)
s
.
controltable
=
{
ge0
,
ge1
,
ge2
,
ge3
}
--SSet
local
e4
=
Effect
.
GlobalEffect
()
e4
:
SetDescription
(
1153
)
e4
:
SetType
(
EFFECT_TYPE_IGNITION
+
EFFECT_TYPE_CONTINUOUS
)
e4
:
SetProperty
(
EFFECT_FLAG_CANNOT_DISABLE
+
EFFECT_FLAG_BOTH_SIDE
)
e4
:
SetRange
(
LOCATION_HAND
)
e4
:
SetCondition
(
s
.
ssetcon
)
e4
:
SetOperation
(
s
.
ssetactivate
)
local
ge4
=
Effect
.
GlobalEffect
()
ge4
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_GRANT
)
ge4
:
SetTargetRange
(
0
,
LOCATION_HAND
)
ge4
:
SetLabelObject
(
e4
)
Duel
.
RegisterEffect
(
ge4
,
tp
)
s
.
controltable
=
{
sge
,
ge0
,
ge1
,
ge2
,
ge3
,
ge4
}
if
not
KOISHI_CHECK
then
return
end
if
not
KOISHI_CHECK
then
return
end
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
xg
=
Duel
.
GetFieldGroup
(
0
,
0x4d
,
0x4d
)
local
xg
=
Duel
.
GetOverlayGroup
(
0
,
0x7f
,
0x7f
)
for
xc
in
aux
.
Next
(
xg
)
do
g
:
Merge
(
xg
)
g
:
Merge
(
xc
:
GetOverlayGroup
())
end
for
tc
in
aux
.
Next
(
g
)
do
for
tc
in
aux
.
Next
(
g
)
do
local
cm
=
_G
[
"c"
..
tc
:
GetOriginalCode
()]
local
cm
=
_G
[
"c"
..
tc
:
GetOriginalCode
()]
if
not
cm
.
Is_Add_Effect_Id
then
if
not
cm
.
Is_Add_Effect_Id
then
...
@@ -1088,14 +1238,14 @@ function s.mindcontrol(e,tp)
...
@@ -1088,14 +1238,14 @@ function s.mindcontrol(e,tp)
Card
.
RegisterEffect
=
function
(
card
,
effect
,
...
)
Card
.
RegisterEffect
=
function
(
card
,
effect
,
...
)
if
effect
and
s
.
Control_Mode
then
if
effect
and
s
.
Control_Mode
then
if
effect
:
GetType
()
&
EFFECT_TYPE_GRANT
~=
0
then
if
effect
:
GetType
()
&
EFFECT_TYPE_GRANT
~=
0
then
local
labeff
=
s
.
change_effect
(
effect
:
GetLabelObject
(),
c
,
tp
)
local
labeff
=
s
.
change_effect
(
effect
:
GetLabelObject
(),
c
ard
,
tp
)
if
labeff
~=
0
then
if
labeff
~=
0
then
local
eff
=
effect
:
Clone
()
local
eff
=
effect
:
Clone
()
eff
:
SetLabelObject
(
labeff
)
eff
:
SetLabelObject
(
labeff
)
_CReg
(
card
,
eff
,
...
)
_CReg
(
card
,
eff
,
...
)
end
end
else
else
local
eff
=
s
.
change_effect
(
effect
,
c
,
tp
)
local
eff
=
s
.
change_effect
(
effect
,
c
ard
,
tp
)
if
eff
~=
0
then
if
eff
~=
0
then
_CReg
(
card
,
eff
,
...
)
_CReg
(
card
,
eff
,
...
)
end
end
...
@@ -1131,6 +1281,11 @@ function s.mindcontrol(e,tp)
...
@@ -1131,6 +1281,11 @@ function s.mindcontrol(e,tp)
Duel
.
SpecialSummon
=
s
.
SpecialSummon
Duel
.
SpecialSummon
=
s
.
SpecialSummon
Duel
.
SpecialSummonStep
=
s
.
SpecialSummonStep
Duel
.
SpecialSummonStep
=
s
.
SpecialSummonStep
Duel
.
MoveToField
=
s
.
MoveToField
Duel
.
SSet
=
s
.
SSet
Duel
.
GetControl
=
s
.
GetControl
Duel
.
SelectDisableField
=
s
.
SelectDisableField
Duel
.
SelectField
=
s
.
SelectField
Duel
.
SelectEffectYesNo
=
s
.
SelectEffectYesNo
Duel
.
SelectEffectYesNo
=
s
.
SelectEffectYesNo
Duel
.
SelectYesNo
=
s
.
SelectYesNo
Duel
.
SelectYesNo
=
s
.
SelectYesNo
...
@@ -1144,7 +1299,6 @@ function s.mindcontrol(e,tp)
...
@@ -1144,7 +1299,6 @@ function s.mindcontrol(e,tp)
Duel
.
ConfirmCards
=
s
.
ConfirmCards
Duel
.
ConfirmCards
=
s
.
ConfirmCards
Duel
.
Hint
=
s
.
Hint
Duel
.
Hint
=
s
.
Hint
for
_
,
eff
in
ipairs
(
s
.
controltable
)
do
for
_
,
eff
in
ipairs
(
s
.
controltable
)
do
eff
:
Reset
()
eff
:
Reset
()
end
end
...
@@ -1370,35 +1524,162 @@ function s.pspop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -1370,35 +1524,162 @@ function s.pspop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
SpecialSummon
(
sg
,
SUMMON_TYPE_PENDULUM
,
tp
,
tp
,
true
,
true
,
POS_FACEUP
)
Duel
.
SpecialSummon
(
sg
,
SUMMON_TYPE_PENDULUM
,
tp
,
tp
,
true
,
true
,
POS_FACEUP
)
e
:
Reset
()
e
:
Reset
()
end
end
function
s
.
atarget
(
e
,
c
)
return
c
==
e
:
GetHandler
()
end
function
s
.
sumop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
eg
then
s
.
sumgroup
:
Merge
(
eg
)
end
local
ge1
=
Effect
.
GlobalEffect
()
ge1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
ge1
:
SetCode
(
EVENT_CHAIN_END
)
ge1
:
SetLabelObject
(
s
.
sumgroup
)
ge1
:
SetOperation
(
s
.
sumresetop
)
Duel
.
RegisterEffect
(
ge1
,
0
)
end
function
s
.
sumsop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
eg
then
s
.
sumsgroup
:
Merge
(
eg
)
end
local
ge1
=
Effect
.
GlobalEffect
()
ge1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
ge1
:
SetCode
(
EVENT_CHAIN_END
)
ge1
:
SetLabelObject
(
s
.
sumsgroup
)
ge1
:
SetOperation
(
s
.
sumresetop
)
Duel
.
RegisterEffect
(
ge1
,
0
)
end
function
s
.
sumresetop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
e
:
GetLabelObject
():
Clear
()
e
:
Reset
()
end
function
s
.
ssetcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
return
s
.
Control_Mode
and
tp
~=
e
:
GetHandler
():
GetOwner
()
and
c
:
IsSSetable
()
end
function
s
.
ssetactivate
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
tep
=
c
:
GetControler
()
if
c
:
IsSSetable
()
then
Duel
.
SSet
(
tep
,
c
,
tep
,
false
)
end
end
function
s
.
setactfilter
(
c
)
local
ae
=
c
:
GetActivateEffect
()
local
ph
=
Duel
.
GetCurrentPhase
()
return
(
ph
==
PHASE_MAIN1
or
ph
==
PHASE_MAIN2
or
c
:
IsType
(
TYPE_QUICKPLAY
+
TYPE_TRAP
))
and
c
:
IsType
(
TYPE_SPELL
+
TYPE_TRAP
)
and
c
:
IsFacedown
()
and
ae
and
ae
:
IsActivatable
(
c
:
GetControler
(),
false
,
false
)
end
function
s
.
setactcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
s
.
setactfilter
,
tp
,
0
,
LOCATION_SZONE
,
1
,
nil
)
end
function
s
.
setactop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
sg
=
Duel
.
GetMatchingGroup
(
s
.
setactfilter
,
tp
,
0
,
LOCATION_SZONE
,
nil
)
if
sg
:
GetCount
()
==
0
then
return
end
local
tc
=
sg
:
Select
(
tp
,
1
,
1
,
nil
):
GetFirst
()
local
effect
=
tc
:
GetActivateEffect
()
local
eff
=
effect
:
Clone
()
local
code
=
tc
:
GetOriginalCode
()
if
eff
and
aux
.
GetValueType
(
eff
)
==
"Effect"
then
eff
:
SetProperty
(
effect
:
GetProperty
()
|
EFFECT_FLAG_SET_AVAILABLE
)
eff
:
SetRange
(
LOCATION_SZONE
)
eff
:
SetDescription
(
aux
.
Stringid
(
id
+
1
,
9
))
eff
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_TRIGGER_F
)
eff
:
SetCode
(
id
+
code
)
eff
:
SetCountLimit
(
1
)
eff
:
SetCost
(
s
.
addeffcost
(
effect
))
eff
:
SetCondition
(
s
.
addeffcon
(
effect
))
eff
:
SetTarget
(
s
.
addefftg
(
effect
))
eff
:
SetOperation
(
s
.
addeffop
(
effect
))
eff
:
SetReset
(
RESET_EVENT
+
RESETS_STANDARD
+
RESET_CHAIN
)
tc
:
RegisterEffect
(
eff
,
true
)
end
Duel
.
ChangePosition
(
tc
,
POS_FACEUP
)
Duel
.
RaiseSingleEvent
(
tc
,
id
+
code
,
re
,
r
,
1
-
tp
,
1
-
tp
,
ev
)
end
function
s
.
change_effect
(
effect
,
c
,
mp
)
local
cardtype
=
c
:
GetType
()
local
eff
=
Effect
.
CreateEffect
(
c
)
eff
:
SetDescription
(
aux
.
Stringid
(
id
+
1
,
9
))
eff
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_QUICK_O
)
eff
:
SetProperty
(
EFFECT_FLAG_BOTH_SIDE
)
eff
:
SetCountLimit
(
1
,
EFFECT_COUNT_CODE_CHAIN
)
eff
:
SetLabelObject
(
effect
)
eff
:
SetLabel
(
mp
)
eff
:
SetCondition
(
s
.
mindcon
)
if
effect
:
GetType
()
&
EFFECT_TYPE_IGNITION
~=
0
then
eff
:
SetRange
(
effect
:
GetRange
())
eff
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_IGNITION
)
eff
:
SetTarget
(
s
.
mindtg
)
return
eff
elseif
effect
:
GetType
()
&
EFFECT_TYPE_QUICK_O
~=
0
then
eff
:
SetCode
(
EVENT_FREE_CHAIN
)
eff
:
SetRange
(
effect
:
GetRange
())
eff
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_QUICK_O
)
eff
:
SetTarget
(
s
.
mindtg2
)
return
eff
elseif
effect
:
GetType
()
&
EFFECT_TYPE_ACTIVATE
~=
0
and
not
c
:
IsType
(
TYPE_MONSTER
)
then
eff
:
SetCondition
(
s
.
mindcon2
)
eff
:
SetRange
(
LOCATION_HAND
+
LOCATION_SZONE
)
if
cardtype
&
(
TYPE_QUICKPLAY
+
TYPE_TRAP
)
~=
0
then
eff
:
SetCode
(
EVENT_FREE_CHAIN
)
eff
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_QUICK_O
)
eff
:
SetTarget
(
s
.
mindtg2
)
else
eff
:
SetType
(
EFFECT_TYPE_CONTINUOUS
+
EFFECT_TYPE_IGNITION
)
eff
:
SetTarget
(
s
.
mindtg
)
end
return
eff
else
return
0
end
end
function
s
.
mindcon
(
e
,
tp
)
local
effect
=
e
:
GetLabelObject
()
local
mp
=
e
:
GetLabel
()
local
c
=
e
:
GetHandler
()
local
tep
=
c
:
GetControler
()
return
s
.
Control_Mode
and
tp
~=
tep
and
tp
==
mp
and
effect
:
IsActivatable
(
tep
,
false
,
false
)
end
function
s
.
mindcon2
(
e
,
tp
)
local
effect
=
e
:
GetLabelObject
()
local
c
=
e
:
GetHandler
()
local
mp
=
e
:
GetLabel
()
local
tep
=
c
:
GetControler
()
Duel
.
DisableActionCheck
(
true
)
local
dc
=
Duel
.
CreateToken
(
tep
,
effect
:
GetHandler
():
GetOriginalCode
())
local
res
=
dc
:
GetActivateEffect
():
IsActivatable
(
tep
,
false
,
false
)
Duel
.
DisableActionCheck
(
false
)
return
s
.
Control_Mode
and
(
c
:
IsFacedown
()
or
not
c
:
IsLocation
(
LOCATION_SZONE
))
and
tp
~=
tep
and
tp
==
mp
and
res
end
function
s
.
addeffcost
(
effect
)
function
s
.
addeffcost
(
effect
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
)
local
cost
=
effect
:
GetCost
()
local
cost
=
effect
:
GetCost
()
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
tep
=
c
:
GetControler
()
local
tep
=
c
:
GetControler
()
if
effect
:
GetType
()
&
EFFECT_TYPE_ACTIVATE
~=
0
then
if
effect
:
GetType
()
&
EFFECT_TYPE_ACTIVATE
~=
0
then
e
:
SetType
(
EFFECT_TYPE_ACTIVATE
)
if
chk
==
0
then
if
chk
==
0
then
return
(
c
:
IsLocation
(
LOCATION_HAND
)
and
Duel
.
GetLocationCount
(
tep
,
LOCATION_SZONE
)
>
0
or
c
:
IsLocation
(
LOCATION_SZONE
)
and
c
:
IsFacedown
())
and
tp
~=
tep
and
(
not
cost
or
cost
(
e
,
te
p
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
))
return
(
not
c
:
IsLocation
(
LOCATION_HAND
)
or
Duel
.
GetLocationCount
(
tp
,
LOCATION_SZONE
)
>
0
)
and
(
not
cost
or
cost
(
e
,
t
p
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
))
else
else
--e:SetType(effect:GetType())
--e:SetCode(effect:GetCode())
if
c
:
IsLocation
(
LOCATION_SZONE
)
then
Duel
.
ChangePosition
(
c
,
POS_FACEUP
)
end
if
c
:
IsLocation
(
LOCATION_SZONE
)
then
Duel
.
ChangePosition
(
c
,
POS_FACEUP
)
end
if
c
:
IsLocation
(
LOCATION_HAND
)
then
Duel
.
MoveToField
(
c
,
tp
,
t
e
p
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
end
if
c
:
IsLocation
(
LOCATION_HAND
)
then
Duel
.
MoveToField
(
c
,
tp
,
tp
,
LOCATION_SZONE
,
POS_FACEUP
,
true
)
end
if
cost
then
cost
(
e
,
t
e
p
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
)
end
if
cost
then
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
)
end
end
end
else
else
if
chk
==
0
then
if
chk
==
0
then
return
(
not
cost
or
cost
(
e
,
t
e
p
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
))
return
(
not
cost
or
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
))
else
else
if
cost
then
cost
(
e
,
tep
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
)
end
--e:SetType(effect:GetType())
--e:SetCode(effect:GetCode())
if
cost
then
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
)
end
end
end
end
end
end
end
end
end
function
s
.
addeffcon
(
effect
,
mp
)
function
s
.
addeffcon
(
effect
)
return
function
(
e
,
tp
,
...
)
return
function
(
e
,
tp
,
...
)
local
con
=
effect
:
GetCondition
()
local
con
=
effect
:
GetCondition
()
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
tep
=
c
:
GetControler
()
local
tep
=
c
:
GetControler
()
return
tp
~=
tep
and
(
not
con
or
con
(
e
,
tep
,
...
))
return
not
con
or
con
(
e
,
tp
,
...
)
end
end
end
end
function
s
.
addefftg
(
effect
)
function
s
.
addefftg
(
effect
)
...
@@ -1406,59 +1687,103 @@ function s.addefftg(effect)
...
@@ -1406,59 +1687,103 @@ function s.addefftg(effect)
local
tg
=
effect
:
GetTarget
()
local
tg
=
effect
:
GetTarget
()
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
tep
=
c
:
GetControler
()
local
tep
=
c
:
GetControler
()
if
chk
==
0
then
if
chk
==
0
then
return
(
not
tg
or
tg
(
e
,
t
e
p
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
))
return
(
not
tg
or
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
))
else
else
if
tg
then
tg
(
e
,
t
e
p
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
)
end
if
tg
then
tg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
,
...
)
end
end
end
end
end
end
end
function
s
.
addeffop
(
effect
)
function
s
.
addeffop
(
effect
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
...
)
return
function
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
...
)
local
op
=
effect
:
GetOperation
()
local
op
=
effect
:
GetOperation
()
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
local
tep
=
c
:
GetControler
()
local
tep
=
c
:
GetControler
()
if
effect
:
GetType
()
&
EFFECT_TYPE_ACTIVATE
~=
0
and
c
:
GetType
()
&
(
TYPE_FIELD
+
TYPE_CONTINUOUS
+
TYPE_EQUIP
)
==
0
then
e
:
GetHandler
():
CancelToGrave
(
false
)
end
--e:SetType(effect:GetType())
if
op
then
op
(
e
,
tep
,
eg
,
ep
,
ev
,
...
)
end
if
effect
:
GetType
()
&
EFFECT_TYPE_ACTIVATE
~=
0
and
c
:
GetType
()
&
(
TYPE_FIELD
+
TYPE_CONTINUOUS
+
TYPE_EQUIP
)
==
0
then
c
:
CancelToGrave
(
false
)
end
if
op
then
op
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
...
)
end
end
end
end
end
function
s
.
change_effect
(
effect
,
c
,
mp
)
function
s
.
mindtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
local
effect
=
e
:
GetLabelObject
()
local
eff
=
effect
:
Clone
()
local
eff
=
effect
:
Clone
()
local
etype
=
EFFECT_TYPE_IGNITION
+
EFFECT_TYPE_TRIGGER_O
+
EFFECT_TYPE_QUICK_O
local
mp
=
e
:
GetLabel
()
if
effect
:
GetType
()
&
etype
~=
0
then
local
c
=
effect
:
GetHandler
()
eff
:
SetDescription
(
aux
.
Stringid
(
id
+
1
,
9
))
local
code
=
c
:
GetOriginalCode
()
eff
:
SetProperty
(
effect
:
GetProperty
()
|
EFFECT_FLAG_BOTH_SIDE
|
EFFECT_FLAG_EVENT_PLAYER
)
if
eff
and
aux
.
GetValueType
(
eff
)
==
"Effect"
then
if
effect
:
GetType
()
&
EFFECT_TYPE_ACTIVATE
~=
0
then
eff
:
SetProperty
(
effect
:
GetProperty
()
|
EFFECT_FLAG_BOTH_SIDE
|
EFFECT_FLAG_SET_AVAILABLE
)
eff
:
SetRange
(
LOCATION_HAND
+
LOCATION_SZONE
)
end
eff
:
SetDescription
(
aux
.
Stringid
(
id
+
1
,
9
))
eff
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
eff
:
SetCode
(
id
+
code
)
eff
:
SetCountLimit
(
1
)
eff
:
SetCost
(
s
.
addeffcost
(
effect
))
eff
:
SetCost
(
s
.
addeffcost
(
effect
))
eff
:
SetCondition
(
s
.
addeffcon
(
effect
,
mp
))
eff
:
SetCondition
(
s
.
addeffcon
(
effect
))
eff
:
SetTarget
(
s
.
addefftg
(
effect
))
eff
:
SetTarget
(
s
.
addefftg
(
effect
))
eff
:
SetOperation
(
s
.
addeffop
(
effect
))
eff
:
SetOperation
(
s
.
addeffop
(
effect
))
return
eff
eff
:
SetReset
(
RESET_CHAIN
)
elseif
effect
:
GetType
()
&
EFFECT_TYPE_ACTIVATE
~=
0
and
not
c
:
IsType
(
TYPE_MONSTER
)
then
c
:
RegisterEffect
(
eff
,
true
)
eff
:
SetDescription
(
aux
.
Stringid
(
id
+
1
,
9
))
end
if
c
and
(
c
:
IsType
(
TYPE_TRAP
)
or
c
:
IsType
(
TYPE_QUICKPLAY
))
then
local
erg
=
Group
.
CreateGroup
()
eff
:
SetType
(
EFFECT_TYPE_QUICK_O
)
local
fre
=
Effect
.
GlobalEffect
()
eff
:
SetCode
(
EVENT_FREE_CHAIN
)
local
feg
=
Group
.
CreateGroup
()
else
local
ftp
=
1
-
tp
eff
:
SetType
(
EFFECT_TYPE_IGNITION
)
Duel
.
RaiseEvent
(
feg
,
id
+
code
,
fre
,
r
,
frp
,
frp
,
ev
)
end
function
s
.
mindtg2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
true
end
local
effect
=
e
:
GetLabelObject
()
local
eff
=
effect
:
Clone
()
local
mp
=
e
:
GetLabel
()
local
c
=
effect
:
GetHandler
()
local
code
=
c
:
GetOriginalCode
()
if
eff
and
aux
.
GetValueType
(
eff
)
==
"Effect"
then
if
effect
:
GetType
()
&
EFFECT_TYPE_ACTIVATE
~=
0
then
eff
:
SetProperty
(
effect
:
GetProperty
()
|
EFFECT_FLAG_BOTH_SIDE
|
EFFECT_FLAG_SET_AVAILABLE
)
eff
:
SetRange
(
LOCATION_HAND
+
LOCATION_SZONE
)
end
end
eff
:
SetRange
(
LOCATION_HAND
+
LOCATION_SZONE
)
eff
:
SetDescription
(
aux
.
Stringid
(
id
+
1
,
9
))
eff
:
SetProperty
(
effect
:
GetProperty
()
|
EFFECT_FLAG_BOTH_SIDE
|
EFFECT_FLAG_SET_AVAILABLE
|
EFFECT_FLAG_EVENT_PLAYER
)
eff
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
eff
:
SetCode
(
id
+
code
)
eff
:
SetCountLimit
(
1
)
eff
:
SetCost
(
s
.
addeffcost
(
effect
))
eff
:
SetCost
(
s
.
addeffcost
(
effect
))
eff
:
SetCondition
(
s
.
addeffcon
(
effect
,
mp
))
eff
:
SetCondition
(
s
.
addeffcon
(
effect
))
eff
:
SetTarget
(
s
.
addefftg
(
effect
))
eff
:
SetTarget
(
s
.
addefftg
(
effect
))
eff
:
SetOperation
(
s
.
addeffop
(
effect
))
eff
:
SetOperation
(
s
.
addeffop
(
effect
))
return
eff
eff
:
SetReset
(
RESET_CHAIN
)
else
c
:
RegisterEffect
(
eff
,
true
)
return
0
local
eff2
=
eff
:
Clone
()
eff2
:
SetType
(
EFFECT_TYPE_QUICK_F
)
eff2
:
SetCode
(
EVENT_CHAINING
)
eff2
:
SetRange
(
effect
:
GetRange
())
c
:
RegisterEffect
(
eff2
,
true
)
end
local
erg
=
Group
.
CreateGroup
()
local
fre
=
Effect
.
GlobalEffect
()
local
feg
=
Group
.
CreateGroup
()
local
ftp
=
1
-
tp
local
effectcode
=
effect
:
GetCode
()
if
effectcode
==
EVENT_CHAINING
then
fre
,
ftp
=
Duel
.
GetChainInfo
(
ev
-
1
,
CHAININFO_TRIGGERING_EFFECT
,
CHAININFO_TRIGGERING_PLAYER
)
local
fc
=
fre
:
GetHandler
()
feg
:
AddCard
(
fc
)
end
end
if
effectcode
==
EVENT_SUMMON
or
effectcode
==
EVENT_FLIP_SUMMON
or
effectcode
==
EVENT_SPSUMMON
then
feg
:
Merge
(
s
.
sumgroup
)
end
if
effectcode
==
EVENT_SUMMON_SUCCESS
or
effectcode
==
EVENT_FLIP_SUMMON_SUCCESS
or
effectcode
==
EVENT_SPSUMMON_SUCCESS
then
feg
:
Merge
(
s
.
sumsgroup
)
end
Duel
.
RaiseEvent
(
feg
,
id
+
code
,
fre
,
r
,
frp
,
frp
,
ev
)
end
end
function
s
.
wildop
()
function
s
.
wildop
()
s
.
Wild_Mode
=
not
s
.
Wild_Mode
s
.
Wild_Mode
=
not
s
.
Wild_Mode
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
g
=
Duel
.
GetFieldGroup
(
0
,
0x7f
,
0x7f
)
local
xg
=
Duel
.
GetFieldGroup
(
0
,
0x4d
,
0x4d
)
local
xg
=
Duel
.
GetOverlayGroup
(
0
,
0x7f
,
0x7f
)
for
xc
in
aux
.
Next
(
xg
)
do
g
:
Merge
(
xg
)
g
:
Merge
(
xc
:
GetOverlayGroup
())
end
if
s
.
Wild_Mode
then
if
s
.
Wild_Mode
then
Debug
.
Message
(
"歼灭模式 开"
)
Debug
.
Message
(
"歼灭模式 开"
)
s
.
SetCountLimit
=
Effect
.
SetCountLimit
s
.
SetCountLimit
=
Effect
.
SetCountLimit
...
@@ -1613,7 +1938,7 @@ function s.toolop(tp)
...
@@ -1613,7 +1938,7 @@ function s.toolop(tp)
Duel
.
RegisterEffect
(
e1
,
tp
)
Duel
.
RegisterEffect
(
e1
,
tp
)
Duel
.
SkipPhase
(
tp
,
PHASE_DRAW
,
RESET_PHASE
+
PHASE_END
,
2
)
Duel
.
SkipPhase
(
tp
,
PHASE_DRAW
,
RESET_PHASE
+
PHASE_END
,
2
)
Duel
.
SkipPhase
(
tp
,
PHASE_STANDBY
,
RESET_PHASE
+
PHASE_END
,
2
)
Duel
.
SkipPhase
(
tp
,
PHASE_STANDBY
,
RESET_PHASE
+
PHASE_END
,
2
)
Duel
.
SkipPhase
(
tp
,
PHASE_MAIN1
,
RESET_PHASE
+
PHASE_END
,
2
)
Duel
.
SkipPhase
(
tp
,
PHASE_MAIN1
,
RESET_PHASE
+
PHASE_END
,
2
)
end
end
local
e2
=
Effect
.
GlobalEffect
()
local
e2
=
Effect
.
GlobalEffect
()
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
e2
:
SetType
(
EFFECT_TYPE_FIELD
)
...
@@ -1622,7 +1947,7 @@ function s.toolop(tp)
...
@@ -1622,7 +1947,7 @@ function s.toolop(tp)
e2
:
SetTargetRange
(
1
,
0
)
e2
:
SetTargetRange
(
1
,
0
)
e2
:
SetReset
(
RESET_PHASE
+
PHASE_BATTLE_START
+
RESET_SELF_TURN
)
e2
:
SetReset
(
RESET_PHASE
+
PHASE_BATTLE_START
+
RESET_SELF_TURN
)
Duel
.
RegisterEffect
(
e2
,
tp
)
Duel
.
RegisterEffect
(
e2
,
tp
)
elseif
op
==
4
then
elseif
op
==
4
then
if
not
KOISHI_CHECK
then
if
not
KOISHI_CHECK
then
Debug
.
Message
(
"该功能需要koishi函数!"
)
Debug
.
Message
(
"该功能需要koishi函数!"
)
return
return
...
...
expansions/script/c65979995.lua
deleted
100644 → 0
View file @
6e8bd36a
--地中族邪界兽·阿尔沃海龙
function
c65979995
.
initial_effect
(
c
)
--search
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
65979995
,
1
))
e1
:
SetCategory
(
CATEGORY_TOHAND
+
CATEGORY_SEARCH
)
e1
:
SetType
(
EFFECT_TYPE_SINGLE
+
EFFECT_TYPE_FLIP
+
EFFECT_TYPE_TRIGGER_O
)
e1
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e1
:
SetCountLimit
(
1
,
65979995
)
e1
:
SetTarget
(
c65979995
.
thtg
)
e1
:
SetOperation
(
c65979995
.
thop
)
c
:
RegisterEffect
(
e1
)
--special summon
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
65979995
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_QUICK_O
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetHintTiming
(
0
,
TIMINGS_CHECK_MONSTER
+
TIMING_MAIN_END
)
e2
:
SetRange
(
LOCATION_HAND
)
e2
:
SetCost
(
c65979995
.
cost
)
e2
:
SetCondition
(
c65979995
.
spcon
)
e2
:
SetTarget
(
c65979995
.
sptg
)
e2
:
SetOperation
(
c65979995
.
spop
)
c
:
RegisterEffect
(
e2
)
--effect gain
local
e3
=
Effect
.
CreateEffect
(
c
)
e3
:
SetDescription
(
aux
.
Stringid
(
65979995
,
2
))
e3
:
SetCategory
(
CATEGORY_POSITION
)
e3
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_O
)
e3
:
SetCode
(
EVENT_CHAIN_SOLVED
)
e3
:
SetProperty
(
EFFECT_FLAG_DELAY
)
e3
:
SetRange
(
LOCATION_MZONE
)
e3
:
SetCountLimit
(
1
)
e3
:
SetCondition
(
c65979995
.
poscon
)
e3
:
SetTarget
(
c65979995
.
postg
)
e3
:
SetOperation
(
c65979995
.
posop
)
c
:
RegisterEffect
(
e3
)
--local e4=Effect.CreateEffect(c)
--e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
--e4:SetRange(LOCATION_MZONE)
--e4:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
--e4:SetTarget(c65979995.eftg)
--e4:SetLabelObject(e3)
--c:RegisterEffect(e4)
end
function
c65979995
.
thfilter
(
c
)
return
c
:
IsSetCard
(
0x10ed
)
and
not
c
:
IsCode
(
65979995
)
and
c
:
IsAbleToHand
()
end
function
c65979995
.
thtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c65979995
.
thfilter
,
tp
,
LOCATION_DECK
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
1
,
tp
,
LOCATION_DECK
)
end
function
c65979995
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_ATOHAND
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c65979995
.
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
end
function
c65979995
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
GetFlagEffect
(
65979995
)
==
0
end
c
:
RegisterFlagEffect
(
65979995
,
RESET_CHAIN
,
0
,
1
)
end
function
c65979995
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
(
Duel
.
GetCurrentPhase
()
==
PHASE_MAIN1
or
Duel
.
GetCurrentPhase
()
==
PHASE_MAIN2
)
then
return
false
end
return
not
Duel
.
IsExistingMatchingCard
(
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
function
c65979995
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
not
Duel
.
IsExistingMatchingCard
(
Card
.
IsFaceup
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
function
c65979995
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
if
not
c
:
IsRelateToEffect
(
e
)
then
return
end
Duel
.
SpecialSummon
(
c
,
0
,
tp
,
tp
,
false
,
false
,
POS_FACEUP_DEFENSE
)
end
function
c65979995
.
eftg
(
e
,
c
)
return
c
:
IsType
(
TYPE_EFFECT
)
and
c
:
IsSetCard
(
0x10ed
)
and
e
:
GetHandler
()
~=
c
end
function
c65979995
.
poscon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
rp
==
1
-
tp
end
function
c65979995
.
filter
(
c
)
return
c
:
IsSetCard
(
0xed
)
and
c
:
IsFaceup
()
and
c
:
IsCanTurnSet
()
end
function
c65979995
.
postg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
c65979995
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
nil
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_POSITION
,
nil
,
1
,
0
,
0
)
end
function
c65979995
.
posop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_POSCHANGE
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
c65979995
.
filter
,
tp
,
LOCATION_MZONE
,
0
,
1
,
99
,
nil
)
if
g
:
GetCount
()
>
0
then
local
fid
=
e
:
GetHandler
():
GetFieldID
()
Duel
.
ChangePosition
(
g
,
POS_FACEDOWN_DEFENSE
)
local
tc
=
g
:
GetFirst
()
while
tc
do
tc
:
RegisterFlagEffect
(
65979995
,
RESET_EVENT
+
RESETS_STANDARD
,
0
,
1
,
fid
)
tc
=
g
:
GetNext
()
end
g
:
KeepAlive
()
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_CONTINUOUS
)
e1
:
SetProperty
(
EFFECT_FLAG_IGNORE_IMMUNE
)
e1
:
SetCode
(
EVENT_CHAINING
)
e1
:
SetCountLimit
(
1
)
e1
:
SetLabel
(
fid
)
e1
:
SetLabelObject
(
g
)
e1
:
SetCondition
(
c65979995
.
poscon2
)
e1
:
SetOperation
(
c65979995
.
posop2
)
Duel
.
RegisterEffect
(
e1
,
tp
)
end
end
--function c65979995.poscon(e,tp,eg,ep,ev,re,r,rp)
-- return rp==1-tp
--end
--function c65979995.postg(e,tp,eg,ep,ev,re,r,rp,chk)
-- local c=e:GetHandler()
-- if chk==0 then return c:IsCanTurnSet() end
-- Duel.SetOperationInfo(0,CATEGORY_POSITION,c,1,0,0)
--end
--function c65979995.posop(e,tp,eg,ep,ev,re,r,rp)
-- local c=e:GetHandler()
-- if c:IsRelateToEffect(e) and c:IsFaceup() then
-- Duel.ChangePosition(c,POS_FACEDOWN_DEFENSE)
-- end
-- local e1=Effect.CreateEffect(e:GetHandler())
-- e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
-- e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
-- e1:SetCode(EVENT_CHAINING)
-- e1:SetCountLimit(1)
-- e1:SetLabel(fid)
-- e1:SetLabelObject(g)
-- e1:SetCondition(c65979995.poscon)
-- e1:SetOperation(c65979995.posop2)
-- Duel.RegisterEffect(e1,tp)
--end
--function c65979995.filter(c)
-- return c:IsSetCard(0x10ed) and c:IsFacedown()
--end
--function c65979995.posop2(e,tp,eg,ep,ev,re,r,rp)
-- Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
-- local g=Duel.SelectMatchingCard(tp,c65979995.filter,tp,LOCATION_MZONE,0,1,1,nil)
-- local tc=g:GetFirst()
-- if tc then
-- Duel.Hint(HINT_CARD,0,e:GetHandler():GetOriginalCodeRule())
-- Duel.ChangePosition(tc,POS_FACEUP_DEFENSE)
-- Duel.AdjustInstantly()
-- end
-- e:Reset()
--end
function
c65979995
.
posfilter
(
c
,
fid
)
return
c
:
GetFlagEffectLabel
(
65979995
)
==
fid
and
c
:
IsPosition
(
POS_FACEDOWN
)
end
function
c65979995
.
poscon2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
e
:
GetLabelObject
()
if
g
then
else
e
:
Reset
()
g
:
DeleteGroup
()
return
false
end
if
g
:
GetCount
()
~=
0
then
else
e
:
Reset
()
g
:
DeleteGroup
()
return
false
end
if
not
g
:
IsExists
(
c65979995
.
posfilter
,
1
,
nil
,
e
:
GetLabel
())
then
g
:
DeleteGroup
()
e
:
Reset
()
return
false
else
return
rp
==
1
-
tp
end
end
function
c65979995
.
posop2
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
g
=
e
:
GetLabelObject
()
local
tg
=
g
:
Filter
(
c65979995
.
posfilter
,
nil
,
e
:
GetLabel
())
g
:
DeleteGroup
()
Duel
.
Hint
(
HINT_CARD
,
0
,
65979995
)
Duel
.
ChangePosition
(
tg
,
POS_FACEUP_DEFENSE
)
e
:
Reset
()
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment