Add ability to advance and track level
This commit is contained in:
parent
218f683651
commit
f4e718ad7f
@ -8,7 +8,9 @@ pub struct Render {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||||
pub struct Player;
|
pub struct Player {
|
||||||
|
pub map_level: u32,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||||
pub struct Enemy;
|
pub struct Enemy;
|
||||||
|
@ -138,6 +138,8 @@ impl State {
|
|||||||
self.reset_game_state();
|
self.reset_game_state();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn advance_level(&mut self) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GameState for State {
|
impl GameState for State {
|
||||||
@ -167,6 +169,7 @@ impl GameState for State {
|
|||||||
.execute(&mut self.ecs, &mut self.resources),
|
.execute(&mut self.ecs, &mut self.resources),
|
||||||
TurnState::GameOver => self.game_over(ctx),
|
TurnState::GameOver => self.game_over(ctx),
|
||||||
TurnState::Victory => self.victory(ctx),
|
TurnState::Victory => self.victory(ctx),
|
||||||
|
TurnState::NextLevel => self.advance_level(),
|
||||||
}
|
}
|
||||||
|
|
||||||
render_draw_buffer(ctx).expect("Render error");
|
render_draw_buffer(ctx).expect("Render error");
|
||||||
|
@ -2,7 +2,7 @@ use crate::prelude::*;
|
|||||||
|
|
||||||
pub fn spawn_player(ecs: &mut World, pos: Point) {
|
pub fn spawn_player(ecs: &mut World, pos: Point) {
|
||||||
ecs.push((
|
ecs.push((
|
||||||
Player,
|
Player { map_level: 0 },
|
||||||
pos,
|
pos,
|
||||||
Render {
|
Render {
|
||||||
color: ColorPair::new(WHITE, BLACK),
|
color: ColorPair::new(WHITE, BLACK),
|
||||||
|
@ -5,7 +5,7 @@ use crate::prelude::*;
|
|||||||
#[read_component(Point)]
|
#[read_component(Point)]
|
||||||
#[read_component(Player)]
|
#[read_component(Player)]
|
||||||
#[read_component(AmuletOfYala)]
|
#[read_component(AmuletOfYala)]
|
||||||
pub fn end_turn(ecs: &SubWorld, #[resource] turn_state: &mut TurnState) {
|
pub fn end_turn(ecs: &SubWorld, #[resource] turn_state: &mut TurnState, #[resource] map: &Map) {
|
||||||
let mut player_hp = <(&Health, &Point)>::query().filter(component::<Player>());
|
let mut player_hp = <(&Health, &Point)>::query().filter(component::<Player>());
|
||||||
let mut amulet = <&Point>::query().filter(component::<AmuletOfYala>());
|
let mut amulet = <&Point>::query().filter(component::<AmuletOfYala>());
|
||||||
let amulet_default = Point::new(-1, -1);
|
let amulet_default = Point::new(-1, -1);
|
||||||
@ -25,6 +25,10 @@ pub fn end_turn(ecs: &SubWorld, #[resource] turn_state: &mut TurnState) {
|
|||||||
if pos == amulet_pos {
|
if pos == amulet_pos {
|
||||||
new_state = TurnState::Victory;
|
new_state = TurnState::Victory;
|
||||||
}
|
}
|
||||||
|
let idx = map.point2d_to_index(*pos);
|
||||||
|
if map.tiles[idx] == TileType::Exit {
|
||||||
|
new_state = TurnState::NextLevel;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
*turn_state = new_state;
|
*turn_state = new_state;
|
||||||
|
@ -5,4 +5,5 @@ pub enum TurnState {
|
|||||||
MonsterTurn,
|
MonsterTurn,
|
||||||
GameOver,
|
GameOver,
|
||||||
Victory,
|
Victory,
|
||||||
|
NextLevel,
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user