for changes to add messages

This commit is contained in:
2023-12-31 15:59:52 +01:00
parent a69e89c806
commit 4770a21abe
5 changed files with 62 additions and 15 deletions

View File

@@ -23,6 +23,7 @@ pub struct Game {
player: Player,
/// the levels of the game
levels: Vec<Level>,
pub messages: Vec<String>,
}
impl Game {
@@ -34,6 +35,7 @@ impl Game {
let mut g = Game {
player: p,
levels: v,
messages: Vec::with_capacity(10),
};
let start = {
g.get_level(0).start
@@ -125,12 +127,14 @@ impl Game {
(dx, dy) = (0, 0);
let (next_level, x, y) = self.next_start();
player_level = next_level;
self.messages.insert(0, format!("you climb down to level {}.", next_level));
self.get_mutable_player().get_position().set(next_level, x, y);
}
StructureElement::StairUp => {
(dx, dy) = (0, 0);
let (next_level, x, y) = self.prev_end();
player_level = next_level;
self.messages.insert(0, format!("you climb up to level {}.", next_level));
self.get_mutable_player().get_position().set(next_level, x, y);
}
_ => {}
@@ -155,6 +159,8 @@ impl Game {
// TODO fight the monster
self.player.change_life(-1);
m.decrease_life(1);
self.messages.insert(0, format!("{} hits you.", m.get_name()).to_string());
self.messages.insert(0, format!("you hit {}.", m.get_name()).to_string());
// monster died, player gains experience
if m.is_dead() {
self.player.gain_experience(m.get_experience_gain());
@@ -172,7 +178,7 @@ impl Game {
match a {
None => {}
Some(a) => {
a.collect(&mut self.player);
a.collect(&mut self.player, &mut self.messages);
}
}
}
@@ -181,7 +187,7 @@ impl Game {
let player_pos = &self.player.get_immutable_position();
let player_level = player_pos.get_level();
let level = &mut self.levels[player_level];
level.update(ticks, &mut self.player);
level.update(ticks, &mut self.player, &mut self.messages);
}
}