From 7458181e902978b956753130a788c734c0be3b87 Mon Sep 17 00:00:00 2001 From: Vasyl Horbachenko Date: Sun, 29 Jul 2018 04:41:32 +0300 Subject: [PATCH] success rate calculation division by zero fix --- game/event/frontlineattack.py | 2 +- game/event/frontlinepatrol.py | 2 +- game/event/insurgentattack.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/game/event/frontlineattack.py b/game/event/frontlineattack.py index 7a4ce52b..91d4beed 100644 --- a/game/event/frontlineattack.py +++ b/game/event/frontlineattack.py @@ -30,7 +30,7 @@ class FrontlineAttackEvent(Event): 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]) - attackers_success = (float(alive_attackers) / alive_defenders + 0.01) > self.SUCCESS_FACTOR + attackers_success = (float(alive_attackers) / (alive_defenders + 0.01)) > self.SUCCESS_FACTOR if self.from_cp.captured: return attackers_success else: diff --git a/game/event/frontlinepatrol.py b/game/event/frontlinepatrol.py index 1fff394d..9e0d2a7c 100644 --- a/game/event/frontlinepatrol.py +++ b/game/event/frontlinepatrol.py @@ -42,7 +42,7 @@ class FrontlinePatrolEvent(Event): 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]) - attackers_success = (float(alive_attackers) / alive_defenders + 0.01) >= self.SUCCESS_FACTOR + attackers_success = (float(alive_attackers) / (alive_defenders + 0.01)) >= self.SUCCESS_FACTOR if self.from_cp.captured: return attackers_success else: diff --git a/game/event/insurgentattack.py b/game/event/insurgentattack.py index ea1a6eab..4353541d 100644 --- a/game/event/insurgentattack.py +++ b/game/event/insurgentattack.py @@ -24,7 +24,7 @@ class InsurgentAttackEvent(Event): 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]) all_units = sum(self.targets.values()) - attackers_success = (float(killed_units) / all_units + 0.01) > self.SUCCESS_FACTOR + attackers_success = (float(killed_units) / (all_units + 0.01)) > self.SUCCESS_FACTOR if self.from_cp.captured: return attackers_success else: