Fighting now takes into account the constitution. Closes #51

This commit is contained in:
eichhornchen 2021-01-05 19:18:25 +01:00
parent 9b8dfb00da
commit 4bddf076ea
2 changed files with 19 additions and 18 deletions

View File

@ -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

View File

@ -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 "")