From 95308e5028bd44bf364dd1e6e9e425b0a521e531 Mon Sep 17 00:00:00 2001 From: hldh214 Date: Mon, 19 Jun 2023 15:35:16 +0900 Subject: [PATCH] fix(farmer): `_prepare_march_troops` && `march_size` issue Signed-off-by: hldh214 --- lokbot/farmer.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/lokbot/farmer.py b/lokbot/farmer.py index 698fd699..38630795 100644 --- a/lokbot/farmer.py +++ b/lokbot/farmer.py @@ -490,24 +490,11 @@ def _prepare_march_troops(self, each_obj, march_type=MARCH_TYPE_GATHER): return [] troop_count = sum([each_troop.get('amount') for each_troop in troops]) - # we don't care about insufficient troops when gathering if (march_type == MARCH_TYPE_MONSTER) and (need_troop_count > troop_count): logger.info(f'Insufficient troops: {troop_count} < {need_troop_count}: {each_obj}') return [] - if troop_count > self.march_size: - logger.info(f'Troop count exceeded: {troop_count} > {self.march_size}: {each_obj}') - return [] - - delay = random.randint(2, 4) - logger.info('Add dummy delay: {} seconds'.format(delay)) - time.sleep(delay) # add dummy delay - - # distance = self._calc_distance(from_loc, to_loc) - distance = march_info.get('distance') - logger.info(f'distance: {distance}, object: {each_obj}') - march_troops = [] for troop in troops: code = troop.get('code') @@ -542,6 +529,14 @@ def _prepare_march_troops(self, each_obj, march_type=MARCH_TYPE_GATHER): 'seq': 0 }) + march_troop_count = sum([each_troop.get('amount') for each_troop in march_troops]) + if march_troop_count > self.march_size: + logger.info(f'Troop count exceeded: {march_troop_count} > {self.march_size}: {each_obj}') + return [] + + distance = march_info.get('distance') + logger.info(f'distance: {distance}, object: {each_obj}') + march_troops.sort(key=lambda x: x.get('code')) # sort by code asc return march_troops