Skip to content
Snippets Groups Projects
Commit b008b5b9 authored by Thomas Glasper's avatar Thomas Glasper
Browse files

Fixed bugs in combat loop

parent 595cb283
No related branches found
No related tags found
No related merge requests found
......@@ -244,7 +244,7 @@ def combat(enemy):
else:
attack_damage, critical = player.get_damage()
damage_to_do = enemy.apply_defense(attack_damage)
damage_to_do = int(max(enemy.apply_defense(attack_damage), 0))
if critical == True:
print("Critical hit! Your attack did " + str(damage_to_do) + " damage!")
......@@ -265,7 +265,7 @@ def combat(enemy):
else:
attack_damage, critical = player.get_damage(1.25)
damage_to_do = enemy.apply_defense(attack_damage)
damage_to_do = int(max(enemy.apply_defense(attack_damage), 0))
if critical == True:
print("Critical hit! Your attack did " + str(damage_to_do) + " damage!")
......@@ -286,7 +286,7 @@ def combat(enemy):
else:
attack_damage, critical = player.get_damage(0.3)
damage_to_do = enemy.apply_defense(attack_damage)
damage_to_do = int(max(enemy.apply_defense(attack_damage), 0))
if critical == True:
print("Critical hit! Your attack did " + str(damage_to_do) + " damage!")
......@@ -312,13 +312,14 @@ def combat(enemy):
print("The " + enemy.name + " will now attack.")
enemy_attack_damage, critical = enemy.get_attack()
damage_to_do = player.apply_defense(enemy_attack_damage)
damage_to_do = int(max(player.apply_defense(enemy_attack_damage), 0))
if critical == True:
print("Critical hit! The enemy did " + str(damage_to_do) + " damage!")
else:
print("The enemy did " + str(damage_to_do) + " damage!")
player.take_defense_wear(damage_to_do // 10)
player.take_damage(damage_to_do)
# check if you died
......
......@@ -183,15 +183,22 @@ class Player:
return int(damage * multiplier), critical
def take_attack_wear(self, wear):
if self.equipped["weapon"] != None:
if self.equipped["weapon"] != None and wear > 0:
self.equipped["weapon"].checkout_dura(self, rooms, wear)
return True
return False
def take_defense_wear(self, wear):
if self.equipped["defense"] != None and wear > 0:
self.equipped["defense"].checkout_dura(self, rooms, wear)
return True
return False
def take_damage(self, damage):
self.hp -= damage
if self.hp < 0:
self.hp -= damage
if self.hp <= 0:
self.alive = False
player = Player()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment