Improved fights between player and monster

This commit is contained in:
2024-10-21 08:26:51 +02:00
parent cefb0cc5f2
commit b3d85ac7b3
4 changed files with 47 additions and 28 deletions

View File

@@ -149,10 +149,7 @@ impl Level {
{
// TODO handle fight between monster and player
let monster_dmg = self.monsters[index].damage() as i16;
let player_dmg = player.damage();
self.monsters[index].decrease_life(player_dmg);
player.change_life(-monster_dmg);
messages.insert(
0,
format!(
@@ -162,18 +159,32 @@ impl Level {
)
.to_string(),
);
messages.insert(
0,
format!(
"you hit {} for {} damage.",
self.monsters[index].get_name(),
player_dmg
)
.to_string(),
);
let player_dmg = player.damage();
self.monsters[index].decrease_life(player_dmg);
// if the attack did not kill the opponent, back down
if !player.is_dead() {
messages.insert(
0,
format!(
"you hit {} for {} damage and kill it.",
self.monsters[index].get_name(),
player_dmg
)
.to_string(),
);
self.monsters[index].get_position().change(-dx, -dy);
} else {
messages.insert(
0,
format!(
"you hit {} for {} damage.",
self.monsters[index].get_name(),
player_dmg
)
.to_string(),
);
}
}
break;