improve combat system
This commit is contained in:
28
src/level.rs
28
src/level.rs
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user