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

@@ -165,24 +165,32 @@ impl Game {
None => {}
Some(m) => {
// TODO fight the monster
let monster_dmg = m.damage() as i16;
let player_dmg = self.player.damage();
self.player.change_life(-monster_dmg);
m.decrease_life(player_dmg);
// inform player
self.messages.insert(
0,
format!("{} hits you for {} damage.", m.get_name(), monster_dmg).to_string(),
);
self.messages.insert(
0,
format!("you hit {} for {} damage.", m.get_name(), player_dmg).to_string(),
);
// monster died, player gains experience
if m.is_dead() {
self.player.gain_experience(m.get_experience_gain());
self.messages.insert(
0,
format!(
"you hit {} for {} damage and kill it.",
m.get_name(),
player_dmg
)
.to_string(),
);
} else {
self.messages.insert(
0,
format!("you hit {} for {} damage.", m.get_name(), player_dmg).to_string(),
);
let monster_dmg = m.damage() as i16;
self.player.change_life(-monster_dmg);
self.messages.insert(
0,
format!("{} hits you for {} damage.", m.get_name(), monster_dmg)
.to_string(),
);
}
return m.is_dead();
}