This commit is contained in:
Eriks K 2021-02-03 01:47:50 +02:00
parent e374562189
commit a9ced91741

View File

@ -1895,7 +1895,6 @@ class CitizenMilitary(CitizenTravel):
side = battle.defender if self.details.citizenship in battle.defender.allies + [
battle.defender.country] else battle.invader
error_count = 0
ok_to_fight = True
if count is None:
count = self.should_fight()[0]
@ -1903,21 +1902,7 @@ class CitizenMilitary(CitizenTravel):
total_damage = 0
total_hits = 0
while ok_to_fight and error_count < 10 and count > 0:
while all((count > 0, error_count < 10, self.energy.recovered >= 50)):
hits, error, damage = self._shoot(battle, division, side)
count -= hits
total_hits += hits
total_damage += damage
error_count += error
else:
self._eat('blue')
if count > 0 and self.energy.recovered < 50 and use_ebs:
self._eat('orange')
if self.energy.recovered < 50 or error_count >= 10 or count <= 0:
self.write_log(f"Hits: {total_hits:>4} | Damage: {total_damage}")
ok_to_fight = False
if total_damage:
self.deploy(division, side, count * 10)
self.report_fighting(battle, not side.is_defender, division, total_damage, total_hits)
return error_count
@ -2298,9 +2283,15 @@ class CitizenMilitary(CitizenTravel):
if ret.get('captcha'):
while not self.do_captcha_challenge():
self.sleep(5)
if ret.get('error'):
if ret.get('message') == 'Deployment disabled.':
self._post_main_profile_update('options', params='{"optionName":"enable_web_deploy","optionValue":"on"}')
return self.get_deploy_inventory(division, side)
else:
self.report_error(f"Unable to get deployment inventory because: {ret.get('message')}")
return ret
def deploy(self, division: classes.BattleDivision, side: classes.BattleSide, energy: int):
def deploy(self, division: classes.BattleDivision, side: classes.BattleSide, energy: int, _retry = 0):
_energy = int(energy)
deploy_inv = self.get_deploy_inventory(division, side)
if not deploy_inv['minEnergy'] <= energy <= deploy_inv['maxEnergy']:
@ -2332,10 +2323,16 @@ class CitizenMilitary(CitizenTravel):
r = self._post_fight_deploy_start_deploy(
division.battle.id, side.id, division.id, energy, weapon_q, **energy_sources
).json()
self.write_log(r.get('message'))
if r.get('error'):
self.logger.error(f"Deploy failed: '{r.get('message')}'")
return energy
if r.json().get('message') == 'Deployment disabled.':
self._post_main_profile_update('options', params='{"optionName":"enable_web_deploy","optionValue":"on"}')
if _retry < 5:
return self.deploy(division, side, energy, _retry+1)
else:
self.report_error('Unable to deploy 5 times!')
return 0
return r.get('data', {}).get('energyTotal', energy-1)
class CitizenPolitics(BaseCitizen):