for changes to add messages
This commit is contained in:
10
src/game.rs
10
src/game.rs
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user