add defense attribute to player and monster

This commit is contained in:
2024-11-24 13:24:39 +01:00
parent 51123ecd8e
commit 62e13ace4c
6 changed files with 27 additions and 8 deletions

View File

@@ -147,8 +147,8 @@ impl Level {
if player.get_immutable_position().get_x() == new_x
&& player.get_immutable_position().get_y() == new_y
{
let monster_dmg = self.monsters[index].damage() as i16;
player.change_life(-monster_dmg);
let monster_dmg =self.monsters[index].damage().saturating_sub(player.defense());
player.change_life(-(monster_dmg as i16));
if player.is_dead() {
messages.insert(
0,
@@ -172,7 +172,7 @@ impl Level {
// player not dead => monster can occupy new position
self.monsters[index].get_position().change(-dx, -dy);
// player fights back
let player_dmg = player.damage();
let player_dmg = player.damage().saturating_sub(self.monsters[index].defense());
self.monsters[index].decrease_life(player_dmg);
if self.monsters[index].is_dead() {
let level_up: bool = player