From c298d66086d63452bc0f0c7a83adfb487bbe678f Mon Sep 17 00:00:00 2001 From: Eriks Karls Date: Tue, 1 Oct 2019 09:58:37 +0300 Subject: [PATCH] Don't allow to fight before WeekChange even if force_fight (levelup, 75pp etc) --- erepublik/citizen.py | 15 +++++++-------- tests/test_erepublik_script.py | 4 ++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/erepublik/citizen.py b/erepublik/citizen.py index 3befd64..add8e35 100644 --- a/erepublik/citizen.py +++ b/erepublik/citizen.py @@ -1358,7 +1358,7 @@ class Citizen(classes.CitizenAPI): if self.is_levelup_reachable: log_msg = "Level up" if self.should_do_levelup: - count = (self.energy.available + self.energy.limit) // 10 + count = (self.energy.limit * 3) // 10 force_fight = True else: self.write_log("Waiting for fully recovered energy before leveling up.", False) @@ -1409,13 +1409,12 @@ class Citizen(classes.CitizenAPI): count = 0 log_msg = "Not fighting because WAM needs {} food fights".format(self.my_companies.ff_lockdown) - if self.max_time_till_full_ff > self.time_till_week_change: - max_count = int((self.time_till_week_change - - self.time_till_full_ff).total_seconds()) // 360 * self.energy.interval - log_msg = "End for Weekly challenge is near (Recoverable until WC end {}hp | want to do {}hits)".format( - max_count, count) - max_usable_energy = max_count - self.energy.limit * 2 - count = count if max_usable_energy > count * 10 else max_usable_energy // 10 + if self.max_time_till_full_ff > self.time_till_week_change: + max_count = (int(self.time_till_week_change.total_seconds()) // 360 * self.energy.interval) // 10 + log_msg = "End for Weekly challenge is near (Recoverable until WC end {}hp | want to do {}hits)".format( + max_count, count) + max_usable_energy = max_count - self.energy.limit * 2 + count = count if max_usable_energy > count * 10 else max_usable_energy // 10 if not silent: self.write_log(log_msg, False) diff --git a/tests/test_erepublik_script.py b/tests/test_erepublik_script.py index d5d5855..e13ef95 100644 --- a/tests/test_erepublik_script.py +++ b/tests/test_erepublik_script.py @@ -79,9 +79,9 @@ class TestErepublik(unittest.TestCase): self.citizen.energy.recovered = 3000 self.citizen.energy.recoverable = 2950 self.citizen.energy.interval = 30 - self.assertEqual(self.citizen.should_fight(), 895) + self.assertEqual(self.citizen.should_fight(), 900) self.citizen.my_companies.ff_lockdown = 160 - self.assertEqual(self.citizen.should_fight(), 895) + self.assertEqual(self.citizen.should_fight(), 900) self.citizen.my_companies.ff_lockdown = 0 # Level up reachable