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), 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()), } }