Implement randomized levels
This commit is contained in:
parent
29a1a2bc7f
commit
62905dc330
4 changed files with 216 additions and 82 deletions
56
src/levels.rs
Normal file
56
src/levels.rs
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
use std::collections::HashMap;
|
||||
|
||||
use crate::{constants::*, tile_data::TileType};
|
||||
|
||||
#[allow(clippy::large_enum_variant)]
|
||||
pub enum Level {
|
||||
Normal([&'static str; MAP_HEIGHT]),
|
||||
Randomized(HashMap<TileType, u32>),
|
||||
End,
|
||||
}
|
||||
|
||||
pub fn get_level(index: u32) -> Level {
|
||||
match index {
|
||||
0 => Level::Randomized(HashMap::from([
|
||||
(TileType::Slow, 15),
|
||||
(TileType::Whip, 1),
|
||||
(TileType::Stairs, 3),
|
||||
(TileType::Gem, 8),
|
||||
])),
|
||||
1 => Level::Normal([
|
||||
"LXXX2 2 2 2 2 2 2 2 2 2 2 2 2 +",
|
||||
"+XXX 2 2 2 2 2 2 2 2 XXX ",
|
||||
" XXX2 2 2 2 2 2 2 2 2 2 2 XTX ",
|
||||
"+XXX 2 2 2 2 2 2 2 XXX ",
|
||||
" XXX 2 2 2 2 2 2 2 2 2 2 ",
|
||||
"+XXX 2 ",
|
||||
" XXX 2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2 2 ",
|
||||
"+XXX2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2 ",
|
||||
" XXX 2 XXX2 W 2XXX 2 ",
|
||||
"+XXX 2 XXX 2 FFFFF 2 XXX 2 2 ",
|
||||
" XXX2 2 XXX F111F XXX ",
|
||||
"+XXX2 XXX+ 3 3 W F1P1F W 3 3 +XXX 2 ",
|
||||
"XXXX 2 XXX F111F XXX 2 2",
|
||||
"WXXX 2 XXX 2 FFFFF 2 XXX 2 ",
|
||||
"WXXX2 XXX2 W 2XXX 2 ",
|
||||
"WXXX 2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2 ",
|
||||
"WXXX 2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 2 ",
|
||||
"WXXX2 2 ",
|
||||
"WXXX 2 2 2 2 2 2 2 2 2 2 2 ",
|
||||
"XXXX 2 2 2 2 2 2 2 2 2 2 2 XXX ",
|
||||
"XXXX2 2 2 2 2 2 2 2 2 2 2 2 XTX ",
|
||||
"XXXX 2 2 2 2 2 2 2 2 2 2 2 2 XXX ",
|
||||
"CXXX 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +",
|
||||
]),
|
||||
2 => Level::Randomized(HashMap::from([
|
||||
(TileType::Slow, 60),
|
||||
(TileType::Block, 25),
|
||||
(TileType::Whip, 5),
|
||||
(TileType::Stairs, 2),
|
||||
(TileType::Gem, 10),
|
||||
(TileType::Teleport, 3),
|
||||
])),
|
||||
40 => Level::End,
|
||||
_ => Level::Randomized(HashMap::new()),
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue