Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
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
YGOPRO-520DIY
ygopro
Commits
97875d73
Commit
97875d73
authored
Aug 26, 2015
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge
https://github.com/Fluorohydride/ygopro
into server
parents
b6649d18
9e6ec88e
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
115 additions
and
36 deletions
+115
-36
ocgcore/card.cpp
ocgcore/card.cpp
+1
-1
ocgcore/field.cpp
ocgcore/field.cpp
+12
-4
ocgcore/operations.cpp
ocgcore/operations.cpp
+3
-1
ocgcore/playerop.cpp
ocgcore/playerop.cpp
+2
-0
ocgcore/processor.cpp
ocgcore/processor.cpp
+54
-2
script/c18386170.lua
script/c18386170.lua
+1
-1
script/c24903843.lua
script/c24903843.lua
+4
-2
script/c35035481.lua
script/c35035481.lua
+4
-2
script/c38814750.lua
script/c38814750.lua
+1
-1
script/c53334471.lua
script/c53334471.lua
+1
-1
script/c59718521.lua
script/c59718521.lua
+5
-2
script/c61420130.lua
script/c61420130.lua
+4
-2
script/c67050396.lua
script/c67050396.lua
+1
-0
script/c712559.lua
script/c712559.lua
+1
-4
script/c73694478.lua
script/c73694478.lua
+4
-2
script/c77462146.lua
script/c77462146.lua
+2
-2
script/c81907872.lua
script/c81907872.lua
+7
-4
script/c86308219.lua
script/c86308219.lua
+1
-1
script/c90440725.lua
script/c90440725.lua
+1
-0
script/c90846359.lua
script/c90846359.lua
+1
-1
script/c94454495.lua
script/c94454495.lua
+1
-1
script/c98414735.lua
script/c98414735.lua
+4
-2
No files found.
ocgcore/card.cpp
View file @
97875d73
...
@@ -2446,7 +2446,7 @@ int32 card::is_can_be_synchro_material(card* scard, card* tuner) {
...
@@ -2446,7 +2446,7 @@ int32 card::is_can_be_synchro_material(card* scard, card* tuner) {
return
FALSE
;
return
FALSE
;
if
(
!
(
get_type
()
&
TYPE_MONSTER
))
if
(
!
(
get_type
()
&
TYPE_MONSTER
))
return
FALSE
;
return
FALSE
;
if
(
scard
&&
current
.
controler
!=
scard
->
current
.
controler
&&
!
is_affected_by_effect
(
EFFECT_SYNCHRO_MATERIAL
))
if
(
scard
&&
current
.
location
==
LOCATION_MZONE
&&
current
.
controler
!=
scard
->
current
.
controler
&&
!
is_affected_by_effect
(
EFFECT_SYNCHRO_MATERIAL
))
return
FALSE
;
return
FALSE
;
if
(
is_affected_by_effect
(
EFFECT_FORBIDDEN
))
if
(
is_affected_by_effect
(
EFFECT_FORBIDDEN
))
return
FALSE
;
return
FALSE
;
...
...
ocgcore/field.cpp
View file @
97875d73
...
@@ -1733,18 +1733,26 @@ int32 field::check_synchro_material(card* pcard, int32 findex1, int32 findex2, i
...
@@ -1733,18 +1733,26 @@ int32 field::check_synchro_material(card* pcard, int32 findex1, int32 findex2, i
if
(
eset
.
size
())
if
(
eset
.
size
())
return
check_tuner_material
(
pcard
,
eset
[
0
]
->
handler
,
findex1
,
findex2
,
min
,
max
,
smat
,
mg
);
return
check_tuner_material
(
pcard
,
eset
[
0
]
->
handler
,
findex1
,
findex2
,
min
,
max
,
smat
,
mg
);
}
}
for
(
uint8
p
=
0
;
p
<
2
;
++
p
)
{
if
(
mg
)
{
for
(
int32
i
=
0
;
i
<
5
;
++
i
)
{
for
(
auto
cit
=
mg
->
container
.
begin
();
cit
!=
mg
->
container
.
end
();
++
cit
)
{
tuner
=
player
[
p
].
list_mzone
[
i
]
;
tuner
=
*
cit
;
if
(
check_tuner_material
(
pcard
,
tuner
,
findex1
,
findex2
,
min
,
max
,
smat
,
mg
))
if
(
check_tuner_material
(
pcard
,
tuner
,
findex1
,
findex2
,
min
,
max
,
smat
,
mg
))
return
TRUE
;
return
TRUE
;
}
}
}
else
{
for
(
uint8
p
=
0
;
p
<
2
;
++
p
)
{
for
(
int32
i
=
0
;
i
<
5
;
++
i
)
{
tuner
=
player
[
p
].
list_mzone
[
i
];
if
(
check_tuner_material
(
pcard
,
tuner
,
findex1
,
findex2
,
min
,
max
,
smat
,
mg
))
return
TRUE
;
}
}
}
}
return
FALSE
;
return
FALSE
;
}
}
int32
field
::
check_tuner_material
(
card
*
pcard
,
card
*
tuner
,
int32
findex1
,
int32
findex2
,
int32
min
,
int32
max
,
card
*
smat
,
group
*
mg
)
{
int32
field
::
check_tuner_material
(
card
*
pcard
,
card
*
tuner
,
int32
findex1
,
int32
findex2
,
int32
min
,
int32
max
,
card
*
smat
,
group
*
mg
)
{
effect
*
peffect
;
effect
*
peffect
;
if
(
tuner
&&
tuner
->
is_position
(
POS_FACEUP
)
&&
(
tuner
->
get_type
()
&
TYPE_TUNER
)
&&
tuner
->
is_can_be_synchro_material
(
pcard
))
{
if
(
tuner
&&
tuner
->
is_position
(
POS_FACEUP
)
&&
(
tuner
->
get_type
()
&
TYPE_TUNER
)
&&
tuner
->
is_can_be_synchro_material
(
pcard
))
{
effect
*
pcheck
=
tuner
->
is_affected_by_effect
(
EFFECT_SYNCHRO_CHECK
);
effect
*
pcheck
=
tuner
->
is_affected_by_effect
(
EFFECT_SYNCHRO_CHECK
);
if
(
pcheck
)
if
(
pcheck
)
pcheck
->
get_value
(
tuner
);
pcheck
->
get_value
(
tuner
);
...
...
ocgcore/operations.cpp
View file @
97875d73
...
@@ -3028,7 +3028,9 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3
...
@@ -3028,7 +3028,9 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3
card_set
leave_p
,
destroying
;
card_set
leave_p
,
destroying
;
for
(
auto
cit
=
targets
->
container
.
begin
();
cit
!=
targets
->
container
.
end
();
++
cit
)
{
for
(
auto
cit
=
targets
->
container
.
begin
();
cit
!=
targets
->
container
.
end
();
++
cit
)
{
card
*
pcard
=
*
cit
;
card
*
pcard
=
*
cit
;
if
((
pcard
->
current
.
location
==
LOCATION_MZONE
)
&&
pcard
->
is_status
(
STATUS_BATTLE_DESTROYED
)
&&
!
(
pcard
->
current
.
reason
&
(
REASON_DESTROY
|
REASON_EFFECT
)))
{
if
((
pcard
->
current
.
location
==
LOCATION_MZONE
)
&&
pcard
->
is_status
(
STATUS_BATTLE_DESTROYED
)
&&
!
(
pcard
->
current
.
reason
&
REASON_RULE
)
&&
(
pcard
->
current
.
reason
&
(
REASON_DESTROY
|
REASON_EFFECT
))
!=
(
REASON_DESTROY
|
REASON_EFFECT
))
{
pcard
->
current
.
reason
|=
REASON_DESTROY
|
REASON_BATTLE
;
pcard
->
current
.
reason
|=
REASON_DESTROY
|
REASON_BATTLE
;
raise_single_event
(
pcard
,
0
,
EVENT_DESTROY
,
pcard
->
current
.
reason_effect
,
pcard
->
current
.
reason
,
pcard
->
current
.
reason_player
,
0
,
0
);
raise_single_event
(
pcard
,
0
,
EVENT_DESTROY
,
pcard
->
current
.
reason_effect
,
pcard
->
current
.
reason
,
pcard
->
current
.
reason_player
,
0
,
0
);
destroying
.
insert
(
pcard
);
destroying
.
insert
(
pcard
);
...
...
ocgcore/playerop.cpp
View file @
97875d73
...
@@ -307,6 +307,8 @@ int32 field::select_chain(uint16 step, uint8 playerid, uint8 spe_count, uint8 fo
...
@@ -307,6 +307,8 @@ int32 field::select_chain(uint16 step, uint8 playerid, uint8 spe_count, uint8 fo
for
(
uint32
i
=
0
;
i
<
core
.
select_chains
.
size
();
++
i
)
{
for
(
uint32
i
=
0
;
i
<
core
.
select_chains
.
size
();
++
i
)
{
effect
*
peffect
=
core
.
select_chains
[
i
].
triggering_effect
;
effect
*
peffect
=
core
.
select_chains
[
i
].
triggering_effect
;
card
*
pcard
=
peffect
->
handler
;
card
*
pcard
=
peffect
->
handler
;
if
(
!
(
peffect
->
type
&
EFFECT_TYPE_ACTIONS
))
pcard
=
peffect
->
owner
;
if
(
peffect
->
flag
&
EFFECT_FLAG_FIELD_ONLY
)
if
(
peffect
->
flag
&
EFFECT_FLAG_FIELD_ONLY
)
pduel
->
write_buffer32
(
1000000000
+
pcard
->
data
.
code
);
pduel
->
write_buffer32
(
1000000000
+
pcard
->
data
.
code
);
else
else
...
...
ocgcore/processor.cpp
View file @
97875d73
...
@@ -1350,6 +1350,24 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1350,6 +1350,24 @@ int32 field::process_phase_event(int16 step, int32 phase) {
core
.
select_chains
.
push_back
(
newchain
);
core
.
select_chains
.
push_back
(
newchain
);
cn_count
++
;
cn_count
++
;
}
}
for
(
auto
eit
=
effects
.
pheff
.
begin
();
eit
!=
effects
.
pheff
.
end
();
++
eit
)
{
peffect
=
*
eit
;
if
(
peffect
->
code
!=
EFFECT_SET_CONTROL
)
continue
;
if
(
peffect
->
get_owner_player
()
!=
check_player
)
continue
;
if
(
!
(
peffect
->
reset_flag
&
phase
))
continue
;
uint8
pid
=
peffect
->
get_handler_player
();
uint8
tp
=
infos
.
turn_player
;
if
(
!
(((
peffect
->
reset_flag
&
RESET_SELF_TURN
)
&&
pid
==
tp
)
||
((
peffect
->
reset_flag
&
RESET_OPPO_TURN
)
&&
pid
!=
tp
)))
continue
;
if
((
peffect
->
reset_count
&
0xff
)
!=
1
)
continue
;
newchain
.
triggering_effect
=
peffect
;
core
.
select_chains
.
push_back
(
newchain
);
cn_count
++
;
}
core
.
spe_effect
[
check_player
]
=
0
;
core
.
spe_effect
[
check_player
]
=
0
;
if
(
!
core
.
hand_adjusted
)
{
if
(
!
core
.
hand_adjusted
)
{
pr
=
effects
.
trigger_o_effect
.
equal_range
(
phase_event
);
pr
=
effects
.
trigger_o_effect
.
equal_range
(
phase_event
);
...
@@ -1449,7 +1467,14 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1449,7 +1467,14 @@ int32 field::process_phase_event(int16 step, int32 phase) {
core
.
units
.
begin
()
->
arg2
=
2
;
core
.
units
.
begin
()
->
arg2
=
2
;
newchain
=
core
.
select_chains
[
returns
.
ivalue
[
0
]];
newchain
=
core
.
select_chains
[
returns
.
ivalue
[
0
]];
effect
*
peffect
=
newchain
.
triggering_effect
;
effect
*
peffect
=
newchain
.
triggering_effect
;
if
(
!
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
))
{
if
(
!
(
peffect
->
type
&
EFFECT_TYPE_ACTIONS
))
{
if
(
peffect
->
flag
&
EFFECT_FLAG_FIELD_ONLY
)
remove_effect
(
peffect
);
else
peffect
->
handler
->
remove_effect
(
peffect
);
adjust_all
();
core
.
units
.
begin
()
->
step
=
3
;
}
else
if
(
!
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
))
{
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
nil_event
;
newchain
.
evt
=
nil_event
;
...
@@ -1521,6 +1546,24 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1521,6 +1546,24 @@ int32 field::process_phase_event(int16 step, int32 phase) {
core
.
select_chains
.
push_back
(
newchain
);
core
.
select_chains
.
push_back
(
newchain
);
cn_count
++
;
cn_count
++
;
}
}
for
(
auto
eit
=
effects
.
pheff
.
begin
();
eit
!=
effects
.
pheff
.
end
();
++
eit
)
{
peffect
=
*
eit
;
if
(
peffect
->
code
!=
EFFECT_SET_CONTROL
)
continue
;
if
(
peffect
->
get_owner_player
()
!=
check_player
)
continue
;
if
(
!
(
peffect
->
reset_flag
&
phase
))
continue
;
uint8
pid
=
peffect
->
get_handler_player
();
uint8
tp
=
infos
.
turn_player
;
if
(
!
(((
peffect
->
reset_flag
&
RESET_SELF_TURN
)
&&
pid
==
tp
)
||
((
peffect
->
reset_flag
&
RESET_OPPO_TURN
)
&&
pid
!=
tp
)))
continue
;
if
((
peffect
->
reset_count
&
0xff
)
!=
1
)
continue
;
newchain
.
triggering_effect
=
peffect
;
core
.
select_chains
.
push_back
(
newchain
);
cn_count
++
;
}
core
.
spe_effect
[
check_player
]
=
0
;
core
.
spe_effect
[
check_player
]
=
0
;
if
(
!
core
.
hand_adjusted
)
{
if
(
!
core
.
hand_adjusted
)
{
pr
=
effects
.
trigger_o_effect
.
equal_range
(
phase_event
);
pr
=
effects
.
trigger_o_effect
.
equal_range
(
phase_event
);
...
@@ -1622,7 +1665,14 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1622,7 +1665,14 @@ int32 field::process_phase_event(int16 step, int32 phase) {
core
.
units
.
begin
()
->
arg2
=
2
;
core
.
units
.
begin
()
->
arg2
=
2
;
newchain
=
core
.
select_chains
[
returns
.
ivalue
[
0
]];
newchain
=
core
.
select_chains
[
returns
.
ivalue
[
0
]];
effect
*
peffect
=
newchain
.
triggering_effect
;
effect
*
peffect
=
newchain
.
triggering_effect
;
if
(
!
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
))
{
if
(
!
(
peffect
->
type
&
EFFECT_TYPE_ACTIONS
))
{
if
(
peffect
->
flag
&
EFFECT_FLAG_FIELD_ONLY
)
remove_effect
(
peffect
);
else
peffect
->
handler
->
remove_effect
(
peffect
);
adjust_all
();
core
.
units
.
begin
()
->
step
=
13
;
}
else
if
(
!
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
))
{
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
nil_event
;
newchain
.
evt
=
nil_event
;
...
@@ -3705,6 +3755,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3705,6 +3755,7 @@ int32 field::process_battle_command(uint16 step) {
card_set
ing
;
card_set
ing
;
card_set
ed
;
card_set
ed
;
if
(
core
.
attacker
->
is_status
(
STATUS_BATTLE_DESTROYED
)
if
(
core
.
attacker
->
is_status
(
STATUS_BATTLE_DESTROYED
)
&&
!
(
core
.
attacker
->
current
.
reason
&
REASON_RULE
)
&&
!
((
core
.
attacker
->
current
.
reason
&
REASON_EFFECT
+
REASON_DESTROY
)
==
REASON_EFFECT
+
REASON_DESTROY
))
{
&&
!
((
core
.
attacker
->
current
.
reason
&
REASON_EFFECT
+
REASON_DESTROY
)
==
REASON_EFFECT
+
REASON_DESTROY
))
{
raise_single_event
(
core
.
attack_target
,
0
,
EVENT_BATTLE_DESTROYING
,
0
,
core
.
attacker
->
current
.
reason
,
core
.
attack_target
->
current
.
controler
,
0
,
1
);
raise_single_event
(
core
.
attack_target
,
0
,
EVENT_BATTLE_DESTROYING
,
0
,
core
.
attacker
->
current
.
reason
,
core
.
attack_target
->
current
.
controler
,
0
,
1
);
raise_single_event
(
core
.
attacker
,
0
,
EVENT_BATTLE_DESTROYED
,
0
,
core
.
attacker
->
current
.
reason
,
core
.
attack_target
->
current
.
controler
,
0
,
0
);
raise_single_event
(
core
.
attacker
,
0
,
EVENT_BATTLE_DESTROYED
,
0
,
core
.
attacker
->
current
.
reason
,
core
.
attack_target
->
current
.
controler
,
0
,
0
);
...
@@ -3712,6 +3763,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3712,6 +3763,7 @@ int32 field::process_battle_command(uint16 step) {
ed
.
insert
(
core
.
attacker
);
ed
.
insert
(
core
.
attacker
);
}
}
if
(
core
.
attack_target
&&
core
.
attack_target
->
is_status
(
STATUS_BATTLE_DESTROYED
)
if
(
core
.
attack_target
&&
core
.
attack_target
->
is_status
(
STATUS_BATTLE_DESTROYED
)
&&
!
(
core
.
attack_target
->
current
.
reason
&
REASON_RULE
)
&&
!
((
core
.
attack_target
->
current
.
reason
&
REASON_EFFECT
+
REASON_DESTROY
)
==
REASON_EFFECT
+
REASON_DESTROY
))
{
&&
!
((
core
.
attack_target
->
current
.
reason
&
REASON_EFFECT
+
REASON_DESTROY
)
==
REASON_EFFECT
+
REASON_DESTROY
))
{
raise_single_event
(
core
.
attacker
,
0
,
EVENT_BATTLE_DESTROYING
,
0
,
core
.
attack_target
->
current
.
reason
,
core
.
attacker
->
current
.
controler
,
0
,
0
);
raise_single_event
(
core
.
attacker
,
0
,
EVENT_BATTLE_DESTROYING
,
0
,
core
.
attack_target
->
current
.
reason
,
core
.
attacker
->
current
.
controler
,
0
,
0
);
raise_single_event
(
core
.
attack_target
,
0
,
EVENT_BATTLE_DESTROYED
,
0
,
core
.
attack_target
->
current
.
reason
,
core
.
attacker
->
current
.
controler
,
0
,
1
);
raise_single_event
(
core
.
attack_target
,
0
,
EVENT_BATTLE_DESTROYED
,
0
,
core
.
attack_target
->
current
.
reason
,
core
.
attacker
->
current
.
controler
,
0
,
1
);
...
...
script/c18386170.lua
View file @
97875d73
...
@@ -69,7 +69,7 @@ function c18386170.drop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -69,7 +69,7 @@ function c18386170.drop(e,tp,eg,ep,ev,re,r,rp)
end
end
function
c18386170
.
hdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c18386170
.
hdcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
return
rp
~=
tp
and
(
c
:
IsReason
(
REASON_BATTLE
)
or
(
c
:
IsReason
(
REASON_EFFECT
)
and
c
:
GetPreviousControler
()
==
tp
)
)
return
(
rp
~=
tp
and
c
:
IsReason
(
REASON_EFFECT
)
and
c
:
GetPreviousControler
()
==
tp
and
c
:
IsPreviousLocation
(
LOCATION_ONFIELD
))
or
c
:
IsReason
(
REASON_BATTLE
)
end
end
function
c18386170
.
hdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c18386170
.
hdtg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetFieldGroupCount
(
tp
,
0
,
LOCATION_HAND
)
>
0
end
if
chk
==
0
then
return
Duel
.
GetFieldGroupCount
(
tp
,
0
,
LOCATION_HAND
)
>
0
end
...
...
script/c24903843.lua
View file @
97875d73
...
@@ -37,9 +37,11 @@ function c24903843.spcon(e,tp,eg,ep,ev,re,r,rp)
...
@@ -37,9 +37,11 @@ function c24903843.spcon(e,tp,eg,ep,ev,re,r,rp)
return
re
:
IsActiveType
(
TYPE_TRAP
)
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
return
re
:
IsActiveType
(
TYPE_TRAP
)
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
end
end
function
c24903843
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c24903843
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
GetFlagEffect
(
24903843
)
==
0
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
24903843
,
0xd4
,
0x11
,
1200
,
0
,
2
,
RACE_AQUA
,
ATTRIBUTE_WATER
)
end
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
24903843
,
0xd4
,
0x11
,
1200
,
0
,
2
,
RACE_AQUA
,
ATTRIBUTE_WATER
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
c
:
RegisterFlagEffect
(
24903843
,
RESET_CHAIN
,
0
,
1
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
end
function
c24903843
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c24903843
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
...
...
script/c35035481.lua
View file @
97875d73
...
@@ -40,9 +40,11 @@ function c35035481.spcon(e,tp,eg,ep,ev,re,r,rp)
...
@@ -40,9 +40,11 @@ function c35035481.spcon(e,tp,eg,ep,ev,re,r,rp)
return
re
:
IsActiveType
(
TYPE_TRAP
)
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
return
re
:
IsActiveType
(
TYPE_TRAP
)
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
end
end
function
c35035481
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c35035481
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
GetFlagEffect
(
35035481
)
==
0
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
35035481
,
0xd4
,
0x11
,
1200
,
0
,
2
,
RACE_AQUA
,
ATTRIBUTE_WATER
)
end
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
35035481
,
0xd4
,
0x11
,
1200
,
0
,
2
,
RACE_AQUA
,
ATTRIBUTE_WATER
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
c
:
RegisterFlagEffect
(
35035481
,
RESET_CHAIN
,
0
,
1
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
end
function
c35035481
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c35035481
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
...
...
script/c38814750.lua
View file @
97875d73
...
@@ -31,7 +31,7 @@ function c38814750.spfilter(c,e,tp)
...
@@ -31,7 +31,7 @@ function c38814750.spfilter(c,e,tp)
return
c
:
IsCode
(
49036338
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
not
c
:
IsHasEffect
(
EFFECT_NECRO_VALLEY
)
return
c
:
IsCode
(
49036338
)
and
c
:
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
not
c
:
IsHasEffect
(
EFFECT_NECRO_VALLEY
)
end
end
function
c38814750
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c38814750
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
if
chk
==
0
then
return
not
e
:
GetHandler
():
IsStatus
(
STATUS_CHAINING
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
1
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
e
:
GetHandler
():
IsCanBeSpecialSummoned
(
e
,
0
,
tp
,
false
,
false
)
and
Duel
.
IsExistingMatchingCard
(
c38814750
.
spfilter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
and
Duel
.
IsExistingMatchingCard
(
c38814750
.
spfilter
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
,
0
,
1
,
nil
,
e
,
tp
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
2
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
nil
,
2
,
tp
,
LOCATION_HAND
+
LOCATION_DECK
+
LOCATION_GRAVE
)
...
...
script/c53334471.lua
View file @
97875d73
...
@@ -99,7 +99,7 @@ function c53334471.adjustop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -99,7 +99,7 @@ function c53334471.adjustop(e,tp,eg,ep,ev,re,r,rp)
end
end
g1
:
Merge
(
g2
)
g1
:
Merge
(
g2
)
if
g1
:
GetCount
()
>
0
then
if
g1
:
GetCount
()
>
0
then
Duel
.
SendtoGrave
(
g1
,
REASON_
EFFECT
)
Duel
.
SendtoGrave
(
g1
,
REASON_
RULE
)
Duel
.
Readjust
()
Duel
.
Readjust
()
end
end
end
end
script/c59718521.lua
View file @
97875d73
...
@@ -27,9 +27,12 @@ end
...
@@ -27,9 +27,12 @@ end
function
c59718521
.
condition1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c59718521
.
condition1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
GetCurrentChain
()
==
0
return
Duel
.
GetCurrentChain
()
==
0
end
end
function
c59718521
.
filter
(
c
)
return
c
:
IsRace
(
RACE_PSYCHO
)
and
not
c
:
IsStatus
(
STATUS_BATTLE_DESTROYED
)
end
function
c59718521
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c59718521
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
CheckReleaseGroup
(
tp
,
Card
.
IsRace
,
1
,
nil
,
RACE_PSYCHO
)
end
if
chk
==
0
then
return
Duel
.
CheckReleaseGroup
(
tp
,
c59718521
.
filter
,
1
,
nil
)
end
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
Card
.
IsRace
,
1
,
1
,
nil
,
RACE_PSYCHO
)
local
g
=
Duel
.
SelectReleaseGroup
(
tp
,
c59718521
.
filter
,
1
,
1
,
nil
)
Duel
.
Release
(
g
,
REASON_COST
)
Duel
.
Release
(
g
,
REASON_COST
)
end
end
function
c59718521
.
target1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c59718521
.
target1
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
...
...
script/c61420130.lua
View file @
97875d73
...
@@ -52,9 +52,11 @@ function c61420130.spcon(e,tp,eg,ep,ev,re,r,rp)
...
@@ -52,9 +52,11 @@ function c61420130.spcon(e,tp,eg,ep,ev,re,r,rp)
return
re
:
IsActiveType
(
TYPE_TRAP
)
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
return
re
:
IsActiveType
(
TYPE_TRAP
)
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
end
end
function
c61420130
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c61420130
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
GetFlagEffect
(
61420130
)
==
0
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
61420130
,
0xd4
,
0x11
,
1200
,
0
,
2
,
RACE_AQUA
,
ATTRIBUTE_WATER
)
end
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
61420130
,
0xd4
,
0x11
,
1200
,
0
,
2
,
RACE_AQUA
,
ATTRIBUTE_WATER
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
c
:
RegisterFlagEffect
(
61420130
,
RESET_CHAIN
,
0
,
1
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
end
function
c61420130
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c61420130
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
...
...
script/c67050396.lua
View file @
97875d73
...
@@ -19,6 +19,7 @@ function c67050396.initial_effect(c)
...
@@ -19,6 +19,7 @@ function c67050396.initial_effect(c)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetType
(
EFFECT_TYPE_IGNITION
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetRange
(
LOCATION_MZONE
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetCountLimit
(
1
)
e2
:
SetCost
(
c67050396
.
poscost
)
e2
:
SetCost
(
c67050396
.
poscost
)
e2
:
SetTarget
(
c67050396
.
postg
)
e2
:
SetTarget
(
c67050396
.
postg
)
e2
:
SetOperation
(
c67050396
.
posop
)
e2
:
SetOperation
(
c67050396
.
posop
)
...
...
script/c712559.lua
View file @
97875d73
...
@@ -28,14 +28,11 @@ function c712559.initial_effect(c)
...
@@ -28,14 +28,11 @@ function c712559.initial_effect(c)
e3
:
SetOperation
(
c712559
.
operation
)
e3
:
SetOperation
(
c712559
.
operation
)
c
:
RegisterEffect
(
e3
)
c
:
RegisterEffect
(
e3
)
end
end
function
c712559
.
cfilter
(
c
)
return
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsLevelAbove
(
1
)
and
c
:
IsSetCard
(
0x4
)
end
function
c712559
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c712559
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
lv
=
0
local
lv
=
0
local
tc
=
eg
:
GetFirst
()
local
tc
=
eg
:
GetFirst
()
while
tc
do
while
tc
do
if
tc
:
IsReason
(
REASON_DESTROY
)
and
tc
:
IsSetCard
(
0x4
)
then
if
tc
:
IsReason
(
REASON_DESTROY
)
and
tc
:
IsSetCard
(
0x4
)
and
not
tc
:
IsPreviousLocation
(
LOCATION_SZONE
)
then
local
tlv
=
tc
:
GetLevel
()
local
tlv
=
tc
:
GetLevel
()
if
tlv
>
lv
then
lv
=
tlv
end
if
tlv
>
lv
then
lv
=
tlv
end
end
end
...
...
script/c73694478.lua
View file @
97875d73
...
@@ -14,9 +14,10 @@ function c73694478.initial_effect(c)
...
@@ -14,9 +14,10 @@ function c73694478.initial_effect(c)
--tohand
--tohand
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetCategory
(
CATEGORY_TOHAND
)
e2
:
SetCategory
(
CATEGORY_TOHAND
)
e2
:
SetType
(
EFFECT_TYPE_
IGNITION
)
e2
:
SetType
(
EFFECT_TYPE_
QUICK_O
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetProperty
(
EFFECT_FLAG_CARD_TARGET
)
e2
:
SetCode
(
EVENT_FREE_CHAIN
)
e2
:
SetCondition
(
c73694478
.
thcon
)
e2
:
SetCondition
(
c73694478
.
thcon
)
e2
:
SetCost
(
c73694478
.
thcost
)
e2
:
SetCost
(
c73694478
.
thcost
)
e2
:
SetTarget
(
c73694478
.
thtg
)
e2
:
SetTarget
(
c73694478
.
thtg
)
...
@@ -51,7 +52,8 @@ function c73694478.activate(e,tp,eg,ep,ev,re,r,rp)
...
@@ -51,7 +52,8 @@ function c73694478.activate(e,tp,eg,ep,ev,re,r,rp)
end
end
end
end
function
c73694478
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c73694478
.
thcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
e
:
GetHandler
():
GetTurnID
()
~=
Duel
.
GetTurnCount
()
return
e
:
GetHandler
():
GetTurnID
()
~=
Duel
.
GetTurnCount
()
and
Duel
.
GetTurnPlayer
()
==
tp
and
(
Duel
.
GetCurrentPhase
()
==
PHASE_MAIN1
or
Duel
.
GetCurrentPhase
()
==
PHASE_MAIN2
)
end
end
function
c73694478
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c73694478
.
thcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemoveAsCost
()
end
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemoveAsCost
()
end
...
...
script/c77462146.lua
View file @
97875d73
...
@@ -15,7 +15,7 @@ function c77462146.initial_effect(c)
...
@@ -15,7 +15,7 @@ function c77462146.initial_effect(c)
local
e2
=
Effect
.
CreateEffect
(
c
)
local
e2
=
Effect
.
CreateEffect
(
c
)
e2
:
SetDescription
(
aux
.
Stringid
(
77462146
,
0
))
e2
:
SetDescription
(
aux
.
Stringid
(
77462146
,
0
))
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetCategory
(
CATEGORY_SPECIAL_SUMMON
)
e2
:
SetType
(
EFFECT_TYPE_
FIELD
+
EFFECT_TYPE_TRIGGER
_O
)
e2
:
SetType
(
EFFECT_TYPE_
QUICK
_O
)
e2
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e2
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetRange
(
LOCATION_GRAVE
)
e2
:
SetCondition
(
c77462146
.
spcon
)
e2
:
SetCondition
(
c77462146
.
spcon
)
...
@@ -50,7 +50,7 @@ function c77462146.spcon(e,tp,eg,ep,ev,re,r,rp)
...
@@ -50,7 +50,7 @@ function c77462146.spcon(e,tp,eg,ep,ev,re,r,rp)
return
Duel
.
GetAttacker
():
IsControler
(
1
-
tp
)
and
Duel
.
GetAttackTarget
()
==
nil
return
Duel
.
GetAttacker
():
IsControler
(
1
-
tp
)
and
Duel
.
GetAttackTarget
()
==
nil
end
end
function
c77462146
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c77462146
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
if
chk
==
0
then
return
not
e
:
GetHandler
():
IsStatus
(
STATUS_CHAINING
)
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
77462146
,
0
,
0x11
,
4
,
0
,
300
,
RACE_WARRIOR
,
ATTRIBUTE_DARK
)
end
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
77462146
,
0
,
0x11
,
4
,
0
,
300
,
RACE_WARRIOR
,
ATTRIBUTE_DARK
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
end
end
...
...
script/c81907872.lua
View file @
97875d73
...
@@ -46,12 +46,15 @@ function c81907872.posop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -46,12 +46,15 @@ function c81907872.posop(e,tp,eg,ep,ev,re,r,rp)
Duel
.
ChangePosition
(
c
,
POS_FACEDOWN_DEFENCE
)
Duel
.
ChangePosition
(
c
,
POS_FACEDOWN_DEFENCE
)
end
end
end
end
function
c81907872
.
cfilter
(
c
,
tp
)
function
c81907872
.
cfilter1
(
c
,
tp
)
return
c
:
IsControler
(
tp
)
and
c
:
GetPreviousControler
()
==
tp
and
c
:
IsSetCard
(
0x8d
)
and
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsType
(
TYPE_MONSTER
)
return
c
:
IsControler
(
tp
)
and
c
:
GetPreviousControler
()
==
tp
and
c
:
IsReason
(
REASON_DESTROY
+
REASON_EFFECT
)
and
c
:
IsSetCard
(
0x8d
)
and
c
:
IsType
(
TYPE_MONSTER
)
and
(
not
c
:
IsReason
(
REASON_BATTLE
)
or
c
==
Duel
.
GetAttackTarget
())
and
not
c
:
IsPreviousLocation
(
LOCATION_SZONE
)
end
function
c81907872
.
cfilter2
(
c
)
return
c
:
IsReason
(
REASON_BATTLE
)
and
c
:
IsStatus
(
STATUS_OPPO_BATTLE
)
and
c
==
Duel
.
GetAttackTarget
()
end
end
function
c81907872
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c81907872
.
spcon
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
rp
~=
tp
and
eg
:
IsExists
(
c81907872
.
cfilter
,
1
,
nil
,
tp
)
return
(
rp
~=
tp
and
eg
:
IsExists
(
c81907872
.
cfilter1
,
1
,
nil
,
tp
))
or
eg
:
IsExists
(
c81907872
.
cfilter2
,
1
,
nil
)
end
end
function
c81907872
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c81907872
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
...
...
script/c86308219.lua
View file @
97875d73
...
@@ -20,7 +20,7 @@ function c86308219.cfilter(c)
...
@@ -20,7 +20,7 @@ function c86308219.cfilter(c)
return
c
:
IsFaceup
()
and
(
c
:
IsCode
(
76812113
)
or
c
:
IsCode
(
12206212
))
return
c
:
IsFaceup
()
and
(
c
:
IsCode
(
76812113
)
or
c
:
IsCode
(
12206212
))
end
end
function
c86308219
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c86308219
.
condition
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
Duel
.
IsExistingMatchingCard
(
c86308219
.
cfilter
,
tp
,
LOCATION_
MZONE
,
0
,
3
,
nil
)
return
Duel
.
IsExistingMatchingCard
(
c86308219
.
cfilter
,
tp
,
LOCATION_
ONFIELD
,
0
,
3
,
nil
)
end
end
function
c86308219
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c86308219
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetCustomActivityCount
(
86308219
,
tp
,
ACTIVITY_SPSUMMON
)
==
0
if
chk
==
0
then
return
Duel
.
GetCustomActivityCount
(
86308219
,
tp
,
ACTIVITY_SPSUMMON
)
==
0
...
...
script/c90440725.lua
View file @
97875d73
...
@@ -32,6 +32,7 @@ function c90440725.activate(e,tp,eg,ep,ev,re,r,rp)
...
@@ -32,6 +32,7 @@ function c90440725.activate(e,tp,eg,ep,ev,re,r,rp)
local
e1
=
Effect
.
CreateEffect
(
c
)
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e1
:
SetType
(
EFFECT_TYPE_FIELD
+
EFFECT_TYPE_TRIGGER_F
)
e1
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e1
:
SetCode
(
EVENT_ATTACK_ANNOUNCE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCondition
(
c90440725
.
atkcon
)
e1
:
SetCondition
(
c90440725
.
atkcon
)
e1
:
SetOperation
(
c90440725
.
atkop
)
e1
:
SetOperation
(
c90440725
.
atkop
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
...
...
script/c90846359.lua
View file @
97875d73
...
@@ -99,7 +99,7 @@ function c90846359.adjustop(e,tp,eg,ep,ev,re,r,rp)
...
@@ -99,7 +99,7 @@ function c90846359.adjustop(e,tp,eg,ep,ev,re,r,rp)
end
end
g1
:
Merge
(
g2
)
g1
:
Merge
(
g2
)
if
g1
:
GetCount
()
>
0
then
if
g1
:
GetCount
()
>
0
then
Duel
.
SendtoGrave
(
g1
,
REASON_
EFFECT
)
Duel
.
SendtoGrave
(
g1
,
REASON_
RULE
)
Duel
.
Readjust
()
Duel
.
Readjust
()
end
end
end
end
script/c94454495.lua
View file @
97875d73
...
@@ -45,7 +45,7 @@ function c94454495.spcon(e,tp,eg,ep,ev,re,r,rp)
...
@@ -45,7 +45,7 @@ function c94454495.spcon(e,tp,eg,ep,ev,re,r,rp)
return
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsReason
(
REASON_BATTLE
+
REASON_EFFECT
)
return
c
:
IsReason
(
REASON_DESTROY
)
and
c
:
IsReason
(
REASON_BATTLE
+
REASON_EFFECT
)
end
end
function
c94454495
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c94454495
.
spcost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemoveAsCost
()
end
if
chk
==
0
then
return
e
:
GetHandler
():
IsAbleToRemoveAsCost
()
and
e
:
GetHandler
():
IsLocation
(
LOCATION_GRAVE
)
end
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_COST
)
Duel
.
Remove
(
e
:
GetHandler
(),
POS_FACEUP
,
REASON_COST
)
end
end
function
c94454495
.
spfilter
(
c
,
e
,
tp
)
function
c94454495
.
spfilter
(
c
,
e
,
tp
)
...
...
script/c98414735.lua
View file @
97875d73
...
@@ -41,9 +41,11 @@ function c98414735.spcon(e,tp,eg,ep,ev,re,r,rp)
...
@@ -41,9 +41,11 @@ function c98414735.spcon(e,tp,eg,ep,ev,re,r,rp)
return
re
:
IsActiveType
(
TYPE_TRAP
)
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
return
re
:
IsActiveType
(
TYPE_TRAP
)
and
re
:
IsHasType
(
EFFECT_TYPE_ACTIVATE
)
end
end
function
c98414735
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
c98414735
.
sptg
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
local
c
=
e
:
GetHandler
()
if
chk
==
0
then
return
c
:
GetFlagEffect
(
98414735
)
==
0
and
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
>
0
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
98414735
,
0xd4
,
0x11
,
1200
,
0
,
2
,
RACE_AQUA
,
ATTRIBUTE_WATER
)
end
and
Duel
.
IsPlayerCanSpecialSummonMonster
(
tp
,
98414735
,
0xd4
,
0x11
,
1200
,
0
,
2
,
RACE_AQUA
,
ATTRIBUTE_WATER
)
end
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
e
:
GetHandler
(),
1
,
0
,
0
)
c
:
RegisterFlagEffect
(
98414735
,
RESET_CHAIN
,
0
,
1
)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_SPECIAL_SUMMON
,
c
,
1
,
0
,
0
)
end
end
function
c98414735
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
c98414735
.
spop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
if
Duel
.
GetLocationCount
(
tp
,
LOCATION_MZONE
)
<=
0
then
return
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment