Damage booster activisation update and bugfix

This commit is contained in:
Eriks Karls 2019-10-01 09:59:22 +03:00
parent c298d66086
commit 6b2c073abe

View File

@ -787,7 +787,7 @@ class Citizen(classes.CitizenAPI):
damage = 0 damage = 0
err = False err = False
if j_resp.get("error"): if j_resp.get("error"):
if j_resp.get("message") == "SHOOT_LOCKOUT": if j_resp.get("message") == "SHOOT_LOCKOUT" or j_resp.get("message") == "ZONE_INACTIVE":
pass pass
else: else:
if j_resp.get("message") == "UNKNOWN_SIDE": if j_resp.get("message") == "UNKNOWN_SIDE":
@ -796,6 +796,7 @@ class Citizen(classes.CitizenAPI):
elif j_resp.get("message") == "ENEMY_KILLED": elif j_resp.get("message") == "ENEMY_KILLED":
hits = (self.energy.recovered - j_resp["details"]["wellness"]) // 10 hits = (self.energy.recovered - j_resp["details"]["wellness"]) // 10
self.energy.recovered = j_resp["details"]["wellness"] self.energy.recovered = j_resp["details"]["wellness"]
self.details.xp = int(j_resp["details"]["points"])
damage = j_resp["user"]["givenDamage"] * (1.1 if j_resp["oldEnemy"]["isNatural"] else 1) damage = j_resp["user"]["givenDamage"] * (1.1 if j_resp["oldEnemy"]["isNatural"] else 1)
else: else:
err = True err = True
@ -1248,6 +1249,7 @@ class Citizen(classes.CitizenAPI):
cost=amount * cheapest["price"], quality=cheapest_q, energy=amount * hp_per_quality[cheapest_q]) cost=amount * cheapest["price"], quality=cheapest_q, energy=amount * hp_per_quality[cheapest_q])
self.reporter.report_action("BUY_FOOD", json_val=data) self.reporter.report_action("BUY_FOOD", json_val=data)
self.buy_from_market(cheapest["offer_id"], amount) self.buy_from_market(cheapest["offer_id"], amount)
self.update_inventory()
else: else:
s = "Don't have enough money! Needed: {}cc, Have: {}cc".format(amount * cheapest["price"], self.details.cc) s = "Don't have enough money! Needed: {}cc, Have: {}cc".format(amount * cheapest["price"], self.details.cc)
self.write_log(s) self.write_log(s)
@ -1277,8 +1279,7 @@ class Citizen(classes.CitizenAPI):
def activate_dmg_booster(self): def activate_dmg_booster(self):
if self.config.boosters: if self.config.boosters:
inventory = self.update_inventory() if not self.get_active_ground_damage_booster():
if not ("+100% Damage" in inventory['items']['active'] or "+50% Damage" in inventory['items']['active']):
duration = 0 duration = 0
for length, amount in self.boosters[50].items(): for length, amount in self.boosters[50].items():
if amount > 1: if amount > 1:
@ -1287,6 +1288,15 @@ class Citizen(classes.CitizenAPI):
if duration: if duration:
self._post_economy_activate_booster(5, duration, "damage") self._post_economy_activate_booster(5, duration, "damage")
def get_active_ground_damage_booster(self):
inventory = self.update_inventory()
if "+100% Ground Damage Booster" in inventory['items']['active']:
return 100
elif "+50% Ground Damage Booster" in inventory['items']['active']:
return 50
else:
return 0
def activate_battle_effect(self, battle_id: int, kind: str) -> Response: def activate_battle_effect(self, battle_id: int, kind: str) -> Response:
return self._post_main_activate_battle_effect(battle_id, kind, self.details.citizen_id) return self._post_main_activate_battle_effect(battle_id, kind, self.details.citizen_id)