Chapter 20

This commit is contained in:
2022-01-29 14:14:34 +01:00
parent fdeabefd75
commit 62240a42c1
13 changed files with 75 additions and 27 deletions

View File

@@ -59,6 +59,7 @@ pub enum RunState {
NextLevel,
ShowRemoveItem,
GameOver,
MagicMapReveal { row: i32 },
}
pub struct State {
@@ -284,6 +285,10 @@ impl GameState for State {
RunState::PlayerTurn => {
self.run_systems();
new_run_state = RunState::MonsterTurn;
match *self.ecs.fetch::<RunState>() {
RunState::MagicMapReveal { .. } => { new_run_state = RunState::MagicMapReveal { row: 0 } }
_ => { new_run_state = RunState::MonsterTurn; }
}
}
RunState::MonsterTurn => {
self.run_systems();
@@ -416,6 +421,20 @@ impl GameState for State {
}
}
}
RunState::MagicMapReveal {
row
} => {
let mut map = self.ecs.fetch_mut::<Map>();
for x in 0..MAP_WIDTH {
let idx = map.xy_idx(x as i32, row);
map.revealed_tiles[idx] = true;
}
if row as usize == MAP_HEIGHT - 1 {
new_run_state = RunState::MonsterTurn;
} else {
new_run_state = RunState::MagicMapReveal {row: row + 1}
}
}
}
{
@@ -471,6 +490,7 @@ fn main() -> rltk::BError {
gs.ecs.register::<HungerClock>();
gs.ecs.register::<Heals>();
gs.ecs.register::<ProvidesFood>();
gs.ecs.register::<MagicMapper>();
gs.ecs.insert(SimpleMarkerAllocator::<SerializeMe>::new());