diff --git a/game/event/baseattack.py b/game/event/baseattack.py index 92969deb..ef910c3c 100644 --- a/game/event/baseattack.py +++ b/game/event/baseattack.py @@ -25,8 +25,16 @@ class BaseAttackEvent(Event): return "Ground attack" def is_successfull(self, debriefing: Debriefing): - alive_attackers = sum([v for k, v in debriefing.alive_units.get(self.attacker_name, {}).items() if db.unit_task(k) == PinpointStrike]) - alive_defenders = sum([v for k, v in debriefing.alive_units.get(self.defender_name, {}).items() if db.unit_task(k) == PinpointStrike]) + + if self.game.player_name == self.attacker_name: + attacker_country = self.game.player_country + defender_country = self.game.enemy_country + else: + attacker_country = self.game.enemy_country + defender_country = self.game.player_country + + alive_attackers = sum([v for k, v in debriefing.alive_units.get(attacker_country, {}).items() if db.unit_task(k) == PinpointStrike]) + alive_defenders = sum([v for k, v in debriefing.alive_units.get(defender_country, {}).items() if db.unit_task(k) == PinpointStrike]) attackers_success = alive_attackers >= alive_defenders if self.departure_cp.captured: return attackers_success diff --git a/game/event/convoystrike.py b/game/event/convoystrike.py index 5aea7940..5fb62d07 100644 --- a/game/event/convoystrike.py +++ b/game/event/convoystrike.py @@ -53,7 +53,13 @@ class ConvoyStrikeEvent(Event): self.from_cp.base.affect_strength(-self.STRENGTH_INFLUENCE) def is_successfull(self, debriefing: Debriefing): - killed_units = sum([v for k, v in debriefing.destroyed_units.get(self.defender_name, {}).items() if db.unit_task(k) in [PinpointStrike, Reconnaissance]]) + + if self.game.player_name == self.attacker_name: + defender_country = self.game.enemy_country + else: + defender_country = self.game.player_country + + killed_units = sum([v for k, v in debriefing.destroyed_units.get(defender_country, {}).items() if db.unit_task(k) in [PinpointStrike, Reconnaissance]]) all_units = sum(self.targets.values()) attackers_success = (float(killed_units) / (all_units + 0.01)) > self.SUCCESS_FACTOR if self.from_cp.captured: diff --git a/game/event/frontlinepatrol.py b/game/event/frontlinepatrol.py index 8cab0844..166d9a72 100644 --- a/game/event/frontlinepatrol.py +++ b/game/event/frontlinepatrol.py @@ -29,8 +29,16 @@ class FrontlinePatrolEvent(Event): return "Frontline CAP" def is_successfull(self, debriefing: Debriefing): - alive_attackers = sum([v for k, v in debriefing.alive_units[self.attacker_name].items() if db.unit_task(k) == PinpointStrike]) - alive_defenders = sum([v for k, v in debriefing.alive_units[self.defender_name].items() if db.unit_task(k) == PinpointStrike]) + + if self.game.player_name == self.attacker_name: + attacker_country = self.game.player_country + defender_country = self.game.enemy_country + else: + attacker_country = self.game.enemy_country + defender_country = self.game.player_country + + alive_attackers = sum([v for k, v in debriefing.alive_units[attacker_country].items() if db.unit_task(k) == PinpointStrike]) + alive_defenders = sum([v for k, v in debriefing.alive_units[defender_country].items() if db.unit_task(k) == PinpointStrike]) attackers_success = (float(alive_attackers) / (alive_defenders + 0.01)) >= self.SUCCESS_FACTOR if self.from_cp.captured: return attackers_success diff --git a/game/event/insurgentattack.py b/game/event/insurgentattack.py index e98b1e7f..a3ec4f49 100644 --- a/game/event/insurgentattack.py +++ b/game/event/insurgentattack.py @@ -36,7 +36,13 @@ class InsurgentAttackEvent(Event): self.to_cp.base.affect_strength(-self.STRENGTH_INFLUENCE) def is_successfull(self, debriefing: Debriefing): - killed_units = sum([v for k, v in debriefing.destroyed_units[self.attacker_name].items() if db.unit_task(k) == PinpointStrike]) + + if self.game.player_name == self.attacker_name: + attacker_country = self.game.player_country + else: + attacker_country = self.game.enemy_country + + killed_units = sum([v for k, v in debriefing.destroyed_units[attacker_country].items() if db.unit_task(k) == PinpointStrike]) all_units = sum(self.targets.values()) attackers_success = (float(killed_units) / (all_units + 0.01)) > self.SUCCESS_FACTOR if self.from_cp.captured: diff --git a/game/event/intercept.py b/game/event/intercept.py index 4e609c93..2b455166 100644 --- a/game/event/intercept.py +++ b/game/event/intercept.py @@ -42,7 +42,13 @@ class InterceptEvent(Event): return True def is_successfull(self, debriefing: Debriefing): - units_destroyed = debriefing.destroyed_units.get(self.defender_name, {}).get(self.transport_unit, 0) + + if self.game.player_name == self.attacker_name: + defender_country = self.game.enemy_country + else: + defender_country = self.game.player_country + + units_destroyed = debriefing.destroyed_units.get(defender_country, {}).get(self.transport_unit, 0) if self.from_cp.captured: return units_destroyed > 0 else: