diff --git a/squirrelbattle/entities/items.py b/squirrelbattle/entities/items.py index b3f8a84..6c54fef 100644 --- a/squirrelbattle/entities/items.py +++ b/squirrelbattle/entities/items.py @@ -226,6 +226,21 @@ class Weapon(Item): d["damage"] = self.damage return d + def equip(self, armor: bool = False) -> None: + """ + When a weapon is equipped, the player gains strength. + """ + super().equip() + self.held_by.strength += self.damage + + def unequip(self) -> None: + """ + Remove the strength earned by the weapon. + :return: + """ + super().unequip() + self.held_by.strength -= self.damage + class Sword(Weapon): """ @@ -236,21 +251,6 @@ class Sword(Weapon): super().__init__(name=name, price=price, *args, **kwargs) self.name = name - def equip(self, armor: bool = False) -> None: - """ - When a sword is equipped, the player gains strength. - """ - super().equip() - self.held_by.strength += self.damage - - def unequip(self) -> None: - """ - Remove the strength earned by the sword. - :return: - """ - super().unequip() - self.held_by.strength -= self.damage - class Shield(Item): constitution: int diff --git a/squirrelbattle/interfaces.py b/squirrelbattle/interfaces.py index 599f546..dceea6a 100644 --- a/squirrelbattle/interfaces.py +++ b/squirrelbattle/interfaces.py @@ -443,11 +443,12 @@ class FightingEntity(Entity): """ Take damage from the attacker, based on the stats """ - self.health -= amount + damage = max(0, amount - self.constitution) + self.health -= damage if self.health <= 0: self.die() - return _("{name} takes {amount} damage.")\ - .format(name=self.translated_name.capitalize(), amount=str(amount))\ + return _("{name} takes {damage} damage.")\ + .format(name=self.translated_name.capitalize(), damage=str(damage))\ + (" " + _("{name} dies.") .format(name=self.translated_name.capitalize()) if self.health <= 0 else "")