Commit 9e2ddd20 authored by nanahira's avatar nanahira

update

parent 334b53fe
...@@ -126,6 +126,7 @@ public: ...@@ -126,6 +126,7 @@ public:
uint8 announce_count; uint8 announce_count;
uint8 attacked_count; uint8 attacked_count;
uint8 attack_all_target; uint8 attack_all_target;
uint8 attack_controler;
uint16 cardid; uint16 cardid;
uint32 fieldid; uint32 fieldid;
uint32 fieldid_r; uint32 fieldid_r;
......
...@@ -3200,8 +3200,11 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3200,8 +3200,11 @@ int32 field::process_battle_command(uint16 step) {
// start of PHASE_DAMAGE; // start of PHASE_DAMAGE;
pduel->write_buffer8(MSG_DAMAGE_STEP_START); pduel->write_buffer8(MSG_DAMAGE_STEP_START);
raise_single_event(core.attacker, 0, EVENT_BATTLE_START, 0, 0, 0, 0, 0); raise_single_event(core.attacker, 0, EVENT_BATTLE_START, 0, 0, 0, 0, 0);
if(core.attack_target) core.attacker->attack_controler = core.attacker->current.controler;
if(core.attack_target) {
raise_single_event(core.attack_target, 0, EVENT_BATTLE_START, 0, 0, 0, 0, 1); raise_single_event(core.attack_target, 0, EVENT_BATTLE_START, 0, 0, 0, 0, 1);
core.attack_target->attack_controler = core.attack_target->current.controler;
}
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();
...@@ -3219,7 +3222,10 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3219,7 +3222,10 @@ int32 field::process_battle_command(uint16 step) {
} }
case 21: { case 21: {
if(core.attacker->current.location != LOCATION_MZONE || core.attacker->fieldid_r != core.pre_field[0] if(core.attacker->current.location != LOCATION_MZONE || core.attacker->fieldid_r != core.pre_field[0]
|| (core.attack_target && (core.attack_target->current.location != LOCATION_MZONE || core.attack_target->fieldid_r != core.pre_field[1]))) { || core.attacker->current.controler != core.attacker->attack_controler
|| (core.attack_target && (core.attack_target->current.location != LOCATION_MZONE
|| core.attack_target->current.controler != core.attack_target->attack_controler
|| core.attack_target->fieldid_r != core.pre_field[1]))) {
core.units.begin()->step = 32; core.units.begin()->step = 32;
return FALSE; return FALSE;
} }
...@@ -3260,7 +3266,10 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3260,7 +3266,10 @@ int32 field::process_battle_command(uint16 step) {
case 23: { case 23: {
if(core.attacker->current.location != LOCATION_MZONE || core.attacker->fieldid_r != core.pre_field[0] if(core.attacker->current.location != LOCATION_MZONE || core.attacker->fieldid_r != core.pre_field[0]
|| ((core.attacker->current.position & POS_DEFENSE) && !(core.attacker->is_affected_by_effect(EFFECT_DEFENSE_ATTACK))) || ((core.attacker->current.position & POS_DEFENSE) && !(core.attacker->is_affected_by_effect(EFFECT_DEFENSE_ATTACK)))
|| (core.attack_target && (core.attack_target->current.location != LOCATION_MZONE || core.attack_target->fieldid_r != core.pre_field[1]))) { || core.attacker->current.controler != core.attacker->attack_controler
|| (core.attack_target && (core.attack_target->current.location != LOCATION_MZONE
|| core.attack_target->current.controler != core.attack_target->attack_controler
|| core.attack_target->fieldid_r != core.pre_field[1]))) {
core.units.begin()->step = 32; core.units.begin()->step = 32;
return FALSE; return FALSE;
} }
...@@ -3291,7 +3300,10 @@ int32 field::process_battle_command(uint16 step) { ...@@ -3291,7 +3300,10 @@ int32 field::process_battle_command(uint16 step) {
} }
case 25: { case 25: {
if(core.attacker->current.location != LOCATION_MZONE || core.attacker->fieldid_r != core.pre_field[0] if(core.attacker->current.location != LOCATION_MZONE || core.attacker->fieldid_r != core.pre_field[0]
|| (core.attack_target && (core.attack_target->current.location != LOCATION_MZONE || core.attack_target->fieldid_r != core.pre_field[1]))) { || core.attacker->current.controler != core.attacker->attack_controler
|| (core.attack_target && (core.attack_target->current.location != LOCATION_MZONE
|| core.attack_target->current.controler != core.attack_target->attack_controler
|| core.attack_target->fieldid_r != core.pre_field[1]))) {
reset_phase(PHASE_DAMAGE_CAL); reset_phase(PHASE_DAMAGE_CAL);
infos.phase = PHASE_DAMAGE; infos.phase = PHASE_DAMAGE;
core.units.begin()->step = 32; core.units.begin()->step = 32;
......
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