Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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
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
MyCard
ygopro-2pick
Commits
382d568f
Commit
382d568f
authored
May 30, 2015
by
salix5
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
process_battle_command()
40-44: 5 blocks of damage step
parent
93e6fa28
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
94 deletions
+61
-94
ocgcore/processor.cpp
ocgcore/processor.cpp
+56
-90
strings.conf
strings.conf
+5
-4
No files found.
ocgcore/processor.cpp
View file @
382d568f
...
@@ -3342,11 +3342,15 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3342,11 +3342,15 @@ int32 field::process_battle_command(uint16 step) {
raise_event
((
card
*
)
0
,
EVENT_BATTLE_START
,
0
,
0
,
0
,
0
,
0
);
raise_event
((
card
*
)
0
,
EVENT_BATTLE_START
,
0
,
0
,
0
,
0
,
0
);
process_single_event
();
process_single_event
();
process_instant_event
();
process_instant_event
();
if
(
core
.
new_fchain
.
size
()
||
core
.
new_ochain
.
size
())
{
pduel
->
write_buffer8
(
MSG_HINT
);
core
.
hint_timing
[
infos
.
turn_player
]
=
TIMING_DAMAGE_STEP
;
pduel
->
write_buffer8
(
HINT_EVENT
);
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
0
);
pduel
->
write_buffer8
(
0
);
core
.
units
.
begin
()
->
arg1
=
TRUE
;
pduel
->
write_buffer32
(
40
);
}
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
1
);
pduel
->
write_buffer32
(
40
);
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
TRUE
);
core
.
temp_var
[
2
]
=
0
;
core
.
temp_var
[
2
]
=
0
;
return
FALSE
;
return
FALSE
;
}
}
...
@@ -3356,23 +3360,10 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3356,23 +3360,10 @@ int32 field::process_battle_command(uint16 step) {
core
.
units
.
begin
()
->
arg1
=
0
;
core
.
units
.
begin
()
->
arg1
=
0
;
core
.
damage_calculated
=
TRUE
;
core
.
damage_calculated
=
TRUE
;
core
.
selfdes_disabled
=
FALSE
;
core
.
selfdes_disabled
=
FALSE
;
core
.
units
.
begin
()
->
step
=
3
0
;
core
.
units
.
begin
()
->
step
=
3
8
;
return
FALSE
;
return
FALSE
;
}
}
if
(
!
core
.
attack_target
)
{
if
(
!
core
.
attack_target
)
{
core
.
units
.
begin
()
->
step
=
23
;
if
(
!
core
.
units
.
begin
()
->
arg1
)
{
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
0
);
pduel
->
write_buffer32
(
40
);
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
1
);
pduel
->
write_buffer32
(
40
);
core
.
hint_timing
[
infos
.
turn_player
]
=
TIMING_DAMAGE_STEP
;
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
0
);
}
return
FALSE
;
return
FALSE
;
}
}
core
.
sub_attacker
=
0
;
core
.
sub_attacker
=
0
;
...
@@ -3396,23 +3387,16 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3396,23 +3387,16 @@ int32 field::process_battle_command(uint16 step) {
raise_event
((
card
*
)
0
,
EVENT_BATTLE_CONFIRM
,
0
,
0
,
0
,
0
,
0
);
raise_event
((
card
*
)
0
,
EVENT_BATTLE_CONFIRM
,
0
,
0
,
0
,
0
,
0
);
process_single_event
();
process_single_event
();
process_instant_event
();
process_instant_event
();
if
(
core
.
new_fchain
.
size
()
||
core
.
new_ochain
.
size
())
{
pduel
->
write_buffer8
(
MSG_HINT
);
core
.
hint_timing
[
infos
.
turn_player
]
=
TIMING_DAMAGE_STEP
;
pduel
->
write_buffer8
(
HINT_EVENT
);
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
0
);
pduel
->
write_buffer8
(
0
);
core
.
units
.
begin
()
->
arg1
=
TRUE
;
pduel
->
write_buffer32
(
41
);
}
pduel
->
write_buffer8
(
MSG_HINT
);
if
(
!
core
.
units
.
begin
()
->
arg1
)
{
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
1
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer32
(
41
);
pduel
->
write_buffer8
(
0
);
core
.
hint_timing
[
infos
.
turn_player
]
=
TIMING_DAMAGE_STEP
;
pduel
->
write_buffer32
(
40
);
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
0
);
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
1
);
pduel
->
write_buffer32
(
40
);
core
.
hint_timing
[
infos
.
turn_player
]
=
TIMING_DAMAGE_STEP
;
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
0
);
}
return
FALSE
;
return
FALSE
;
}
}
case
23
:
{
case
23
:
{
...
@@ -3436,7 +3420,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3436,7 +3420,7 @@ int32 field::process_battle_command(uint16 step) {
core
.
units
.
begin
()
->
arg1
=
0
;
core
.
units
.
begin
()
->
arg1
=
0
;
core
.
damage_calculated
=
TRUE
;
core
.
damage_calculated
=
TRUE
;
core
.
selfdes_disabled
=
FALSE
;
core
.
selfdes_disabled
=
FALSE
;
core
.
units
.
begin
()
->
step
=
3
0
;
core
.
units
.
begin
()
->
step
=
3
8
;
return
FALSE
;
return
FALSE
;
}
}
return
FALSE
;
return
FALSE
;
...
@@ -3453,11 +3437,11 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3453,11 +3437,11 @@ int32 field::process_battle_command(uint16 step) {
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
0
);
pduel
->
write_buffer8
(
0
);
pduel
->
write_buffer32
(
4
1
);
pduel
->
write_buffer32
(
4
2
);
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
1
);
pduel
->
write_buffer8
(
1
);
pduel
->
write_buffer32
(
4
1
);
pduel
->
write_buffer32
(
4
2
);
core
.
hint_timing
[
infos
.
turn_player
]
=
TIMING_DAMAGE_CAL
;
core
.
hint_timing
[
infos
.
turn_player
]
=
TIMING_DAMAGE_CAL
;
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
TRUE
);
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
TRUE
);
return
FALSE
;
return
FALSE
;
...
@@ -3468,7 +3452,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3468,7 +3452,7 @@ int32 field::process_battle_command(uint16 step) {
core
.
units
.
begin
()
->
arg1
=
0
;
core
.
units
.
begin
()
->
arg1
=
0
;
core
.
damage_calculated
=
TRUE
;
core
.
damage_calculated
=
TRUE
;
core
.
selfdes_disabled
=
FALSE
;
core
.
selfdes_disabled
=
FALSE
;
core
.
units
.
begin
()
->
step
=
3
0
;
core
.
units
.
begin
()
->
step
=
3
8
;
return
FALSE
;
return
FALSE
;
}
}
raise_single_event
(
core
.
attacker
,
0
,
EVENT_DAMAGE_CALCULATING
,
0
,
0
,
0
,
0
,
0
);
raise_single_event
(
core
.
attacker
,
0
,
EVENT_DAMAGE_CALCULATING
,
0
,
0
,
0
,
0
,
0
);
...
@@ -3477,6 +3461,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3477,6 +3461,7 @@ int32 field::process_battle_command(uint16 step) {
raise_event
((
card
*
)
0
,
EVENT_DAMAGE_CALCULATING
,
0
,
0
,
0
,
0
,
0
);
raise_event
((
card
*
)
0
,
EVENT_DAMAGE_CALCULATING
,
0
,
0
,
0
,
0
,
0
);
process_single_event
();
process_single_event
();
process_instant_event
();
process_instant_event
();
//this timing does not exist in Master Rule 3
core
.
new_ochain
.
clear
();
core
.
new_ochain
.
clear
();
core
.
new_fchain
.
clear
();
core
.
new_fchain
.
clear
();
return
FALSE
;
return
FALSE
;
...
@@ -3566,20 +3551,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3566,20 +3551,7 @@ int32 field::process_battle_command(uint16 step) {
}
}
process_single_event
();
process_single_event
();
process_instant_event
();
process_instant_event
();
if
(
!
core
.
effect_damage_step
)
{
//this timing does not exist in Master Rule 3
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
0
);
pduel
->
write_buffer32
(
43
);
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
1
);
pduel
->
write_buffer32
(
43
);
core
.
hint_timing
[
infos
.
turn_player
]
=
TIMING_DAMAGE_CAL
;
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
0
);
}
else
{
break_effect
();
}
core
.
damage_calculated
=
TRUE
;
core
.
damage_calculated
=
TRUE
;
if
(
core
.
effect_damage_step
)
if
(
core
.
effect_damage_step
)
return
TRUE
;
return
TRUE
;
...
@@ -3687,30 +3659,29 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3687,30 +3659,29 @@ int32 field::process_battle_command(uint16 step) {
return
FALSE
;
return
FALSE
;
}
}
case
30
:
{
case
30
:
{
if
(
!
core
.
effect_damage_step
||
(
core
.
effect_damage_step
!=
3
))
{
//EVENT_BATTLE_END was here, but this timing does not exist in Master Rule 3
core
.
units
.
begin
()
->
arg1
=
1
;
core
.
units
.
begin
()
->
arg1
=
1
;
}
else
{
break_effect
();
}
return
FALSE
;
return
FALSE
;
}
}
case
31
:
{
case
31
:
{
core
.
flip_delayed
=
FALSE
;
core
.
flip_delayed
=
FALSE
;
core
.
new_fchain
.
splice
(
core
.
new_fchain
.
begin
(),
core
.
new_fchain_b
);
core
.
new_fchain
.
splice
(
core
.
new_fchain
.
begin
(),
core
.
new_fchain_b
);
core
.
new_ochain
.
splice
(
core
.
new_ochain
.
begin
(),
core
.
new_ochain_b
);
core
.
new_ochain
.
splice
(
core
.
new_ochain
.
begin
(),
core
.
new_ochain_b
);
if
(
core
.
units
.
begin
()
->
arg1
)
{
raise_single_event
(
core
.
attacker
,
0
,
EVENT_BATTLED
,
0
,
0
,
PLAYER_NONE
,
0
,
0
);
raise_single_event
(
core
.
attacker
,
0
,
EVENT_BATTLED
,
0
,
0
,
PLAYER_NONE
,
0
,
0
);
if
(
core
.
attack_target
)
if
(
core
.
attack_target
)
raise_single_event
(
core
.
attack_target
,
0
,
EVENT_BATTLED
,
0
,
0
,
PLAYER_NONE
,
0
,
1
);
raise_single_event
(
core
.
attack_target
,
0
,
EVENT_BATTLED
,
0
,
0
,
PLAYER_NONE
,
0
,
1
);
raise_event
((
card
*
)
0
,
EVENT_BATTLED
,
0
,
0
,
PLAYER_NONE
,
0
,
0
);
raise_event
((
card
*
)
0
,
EVENT_BATTLED
,
0
,
0
,
PLAYER_NONE
,
0
,
0
);
process_single_event
();
process_single_event
();
process_instant_event
();
process_instant_event
();
pduel
->
write_buffer8
(
MSG_HINT
);
}
pduel
->
write_buffer8
(
HINT_EVENT
);
if
(
!
core
.
effect_damage_step
||
(
core
.
effect_damage_step
!=
3
))
{
pduel
->
write_buffer8
(
0
);
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
FALSE
,
TRUE
);
pduel
->
write_buffer32
(
43
);
}
else
{
pduel
->
write_buffer8
(
MSG_HINT
);
break_effect
();
pduel
->
write_buffer8
(
HINT_EVENT
);
}
pduel
->
write_buffer8
(
1
);
pduel
->
write_buffer32
(
43
);
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
TRUE
);
return
FALSE
;
return
FALSE
;
}
}
case
32
:
{
case
32
:
{
...
@@ -3764,15 +3735,20 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3764,15 +3735,20 @@ int32 field::process_battle_command(uint16 step) {
core
.
attack_target
->
set_status
(
STATUS_BATTLE_DESTROYED
,
FALSE
);
core
.
attack_target
->
set_status
(
STATUS_BATTLE_DESTROYED
,
FALSE
);
core
.
attack_target
->
set_status
(
STATUS_OPPO_BATTLE
,
FALSE
);
core
.
attack_target
->
set_status
(
STATUS_OPPO_BATTLE
,
FALSE
);
}
}
if
(
!
core
.
effect_damage_step
||
(
core
.
effect_damage_step
!=
3
))
{
pduel
->
write_buffer8
(
MSG_HINT
);
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
FALSE
,
FALSE
);
pduel
->
write_buffer8
(
HINT_EVENT
);
}
else
{
pduel
->
write_buffer8
(
0
);
break_effect
();
pduel
->
write_buffer32
(
44
);
}
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_EVENT
);
pduel
->
write_buffer8
(
1
);
pduel
->
write_buffer32
(
44
);
add_process
(
PROCESSOR_POINT_EVENT
,
0
,
0
,
0
,
0
,
TRUE
);
core
.
units
.
begin
()
->
step
=
38
;
core
.
units
.
begin
()
->
step
=
38
;
return
FALSE
;
return
FALSE
;
}
}
case
39
:
{
case
39
:
{
//end of damage step
core
.
units
.
begin
()
->
step
=
-
1
;
core
.
units
.
begin
()
->
step
=
-
1
;
infos
.
phase
=
PHASE_BATTLE
;
infos
.
phase
=
PHASE_BATTLE
;
pduel
->
write_buffer8
(
MSG_DAMAGE_STEP_END
);
pduel
->
write_buffer8
(
MSG_DAMAGE_STEP_END
);
...
@@ -3780,9 +3756,6 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -3780,9 +3756,6 @@ int32 field::process_battle_command(uint16 step) {
adjust_all
();
adjust_all
();
if
(
core
.
effect_damage_step
)
if
(
core
.
effect_damage_step
)
return
TRUE
;
return
TRUE
;
if
(
core
.
chain_attack
)
{
core
.
chain_attack
=
TRUE
;
}
return
FALSE
;
return
FALSE
;
}
}
case
40
:
{
case
40
:
{
...
@@ -3836,16 +3809,9 @@ int32 field::process_damage_step(uint16 step) {
...
@@ -3836,16 +3809,9 @@ int32 field::process_damage_step(uint16 step) {
process_single_event
();
process_single_event
();
process_instant_event
();
process_instant_event
();
add_process
(
PROCESSOR_BATTLE_COMMAND
,
26
,
0
,
0
,
0
,
0
);
add_process
(
PROCESSOR_BATTLE_COMMAND
,
26
,
0
,
0
,
0
,
0
);
if
(
core
.
units
.
begin
()
->
arg2
)
{
//skip timing
core
.
units
.
begin
()
->
step
=
2
;
core
.
units
.
begin
()
->
step
=
2
;
core
.
reserved
=
core
.
units
.
front
();
core
.
effect_damage_step
=
3
;
return
TRUE
;
add_process
(
PROCESSOR_BATTLE_COMMAND
,
27
,
0
,
0
,
0
,
0
);
return
FALSE
;
}
else
{
core
.
units
.
begin
()
->
step
=
2
;
core
.
reserved
=
core
.
units
.
front
();
return
TRUE
;
}
}
}
case
2
:
{
case
2
:
{
core
.
effect_damage_step
=
2
;
core
.
effect_damage_step
=
2
;
...
...
strings.conf
View file @
382d568f
...
@@ -22,10 +22,11 @@
...
@@ -22,10 +22,11 @@
!
system
28
战斗阶段开始
!
system
28
战斗阶段开始
!
system
30
战斗回卷,是否继续攻击?
!
system
30
战斗回卷,是否继续攻击?
!
system
31
是否直接攻击?
!
system
31
是否直接攻击?
!
system
40
伤害阶段中
!
system
40
伤害步骤开始时
!
system
41
即将计算战斗伤害
!
system
41
伤害计算前
!
system
42
即将结束伤害阶段
!
system
42
伤害计算时
!
system
43
即将产生战斗伤害
!
system
43
伤害计算后
!
system
44
伤害步骤结束时
!
system
60
正面
!
system
60
正面
!
system
61
反面
!
system
61
反面
!
system
62
表效果适用中
!
system
62
表效果适用中
...
...
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