improve combat system

This commit is contained in:
2024-10-20 22:12:28 +02:00
parent efc4cdd363
commit cefb0cc5f2
6 changed files with 89 additions and 45 deletions

View File

@@ -48,11 +48,7 @@ impl Level {
&mut self,
x: i16,
y: i16,
) -> (
Option<StructureElement>,
PossibleMonster,
PossibleArtifact
) {
) -> (Option<StructureElement>, PossibleMonster, PossibleArtifact) {
if x < 0 || y < 0 {
return (None, None, None);
}
@@ -151,15 +147,29 @@ impl Level {
if player.get_immutable_position().get_x() == new_x
&& player.get_immutable_position().get_y() == new_y
{
self.monsters[index].decrease_life(1);
player.change_life(-1);
// 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!("{} hits you.", self.monsters[index].get_name()).to_string(),
format!(
"{} hits you for {} damage.",
self.monsters[index].get_name(),
monster_dmg
)
.to_string(),
);
messages.insert(
0,
format!("you hit {}.", self.monsters[index].get_name()).to_string(),
format!(
"you hit {} for {} damage.",
self.monsters[index].get_name(),
player_dmg
)
.to_string(),
);
// if the attack did not kill the opponent, back down
if !player.is_dead() {