Commit 0f5061d3 authored by DailyShana's avatar DailyShana Committed by GitHub

fix damage calculation in effect (#252)

parent da7fe0c4
...@@ -2765,7 +2765,7 @@ int32 field::process_battle_command(uint16 step) { ...@@ -2765,7 +2765,7 @@ int32 field::process_battle_command(uint16 step) {
} }
case 21: { case 21: {
if(core.attacker->is_status(STATUS_ATTACK_CANCELED)) { if(core.attacker->is_status(STATUS_ATTACK_CANCELED)) {
core.units.begin()->step = 32; core.units.begin()->step = 33;
return FALSE; return FALSE;
} }
if(!core.attack_target) { if(!core.attack_target) {
...@@ -2803,7 +2803,7 @@ int32 field::process_battle_command(uint16 step) { ...@@ -2803,7 +2803,7 @@ int32 field::process_battle_command(uint16 step) {
} }
case 23: { case 23: {
if(core.attacker->is_status(STATUS_ATTACK_CANCELED)) { if(core.attacker->is_status(STATUS_ATTACK_CANCELED)) {
core.units.begin()->step = 32; core.units.begin()->step = 33;
return FALSE; return FALSE;
} }
infos.phase = PHASE_DAMAGE_CAL; infos.phase = PHASE_DAMAGE_CAL;
...@@ -2836,7 +2836,7 @@ int32 field::process_battle_command(uint16 step) { ...@@ -2836,7 +2836,7 @@ int32 field::process_battle_command(uint16 step) {
reset_phase(PHASE_DAMAGE_CAL); reset_phase(PHASE_DAMAGE_CAL);
adjust_all(); adjust_all();
infos.phase = PHASE_DAMAGE; infos.phase = PHASE_DAMAGE;
core.units.begin()->step = 32; core.units.begin()->step = 33;
return FALSE; return FALSE;
} }
return FALSE; return FALSE;
...@@ -2931,8 +2931,6 @@ int32 field::process_battle_command(uint16 step) { ...@@ -2931,8 +2931,6 @@ int32 field::process_battle_command(uint16 step) {
process_instant_event(); process_instant_event();
//this timing does not exist in Master Rule 3 //this timing does not exist in Master Rule 3
core.damage_calculated = TRUE; core.damage_calculated = TRUE;
if(core.effect_damage_step)
return TRUE;
return FALSE; return FALSE;
} }
case 27: { case 27: {
...@@ -3055,6 +3053,12 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3055,6 +3053,12 @@ int32 field::process_battle_command(uint16 step) {
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();
if(core.effect_damage_step)
return TRUE;
core.units.begin()->step = 32;
}
// fall through
case 32: {
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);
...@@ -3066,7 +3070,7 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3066,7 +3070,7 @@ int32 field::process_battle_command(uint16 step) {
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, 0, TRUE); add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, 0, TRUE);
return FALSE; return FALSE;
} }
case 32: { case 33: {
group* des = core.units.begin()->ptarget; group* des = core.units.begin()->ptarget;
if(des) { if(des) {
for(auto cit = des->container.begin(); cit != des->container.end();) { for(auto cit = des->container.begin(); cit != des->container.end();) {
...@@ -3079,7 +3083,7 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3079,7 +3083,7 @@ int32 field::process_battle_command(uint16 step) {
adjust_all(); adjust_all();
return FALSE; return FALSE;
} }
case 33: { case 34: {
core.units.begin()->ptarget = 0; core.units.begin()->ptarget = 0;
core.damage_calculated = TRUE; core.damage_calculated = TRUE;
core.selfdes_disabled = FALSE; core.selfdes_disabled = FALSE;
...@@ -3235,7 +3239,7 @@ int32 field::process_damage_step(uint16 step, uint32 new_attack) { ...@@ -3235,7 +3239,7 @@ int32 field::process_damage_step(uint16 step, uint32 new_attack) {
} }
case 2: { case 2: {
core.effect_damage_step = 2; core.effect_damage_step = 2;
add_process(PROCESSOR_BATTLE_COMMAND, 27, 0, 0, 0, 0); add_process(PROCESSOR_BATTLE_COMMAND, 32, 0, 0, 0, 0);
return FALSE; return FALSE;
} }
case 3: { case 3: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment