fixes infini-dungeon difficulty

This commit is contained in:
Llywelwyn 2023-09-23 11:12:28 +01:00
parent 23a42bab80
commit 2d33c90af8

View file

@ -438,21 +438,19 @@ pub fn random_builder(
} }
pub fn level_builder( pub fn level_builder(
new_id: i32, id: i32,
rng: &mut RandomNumberGenerator, rng: &mut RandomNumberGenerator,
width: i32, width: i32,
height: i32, height: i32,
initial_player_level: i32 initial_player_level: i32
) -> BuilderChain { ) -> BuilderChain {
// TODO: With difficulty and ID/depth decoupled, this can be used for branches later. match id {
let difficulty = new_id;
match new_id {
ID_OVERMAP => overmap_builder(), ID_OVERMAP => overmap_builder(),
ID_TOWN => town_builder(new_id, rng, width, height, 0, initial_player_level), ID_TOWN => town_builder(id, rng, width, height, 0, initial_player_level),
ID_TOWN2 => forest_builder(new_id, rng, width, height, 1, initial_player_level), ID_TOWN2 => forest_builder(id, rng, width, height, 1, initial_player_level),
ID_TOWN3 => ID_TOWN3 =>
random_builder( random_builder(
new_id, id,
rng, rng,
width, width,
height, height,
@ -462,25 +460,25 @@ pub fn level_builder(
true, true,
BuildType::Room BuildType::Room
), ),
_ if new_id >= ID_INFINITE => _ if id >= ID_INFINITE =>
random_builder( random_builder(
new_id, id,
rng, rng,
width, width,
height, height,
difficulty, 4 + diff(ID_INFINITE, id),
new_id - ID_INFINITE + 1, 1 + diff(ID_INFINITE, id),
initial_player_level, initial_player_level,
false, false,
BuildType::Room BuildType::Room
), ),
_ => _ => // This should be unreachable!() eventually. Right now it's reachable with the debug/cheat menu. It should not be in normal gameplay.
random_builder( random_builder(
new_id, id,
rng, rng,
width, width,
height, height,
difficulty, 1,
404, 404,
initial_player_level, initial_player_level,
false, false,
@ -488,3 +486,7 @@ pub fn level_builder(
), ),
} }
} }
fn diff(branch_id: i32, lvl_id: i32) -> i32 {
return lvl_id - branch_id;
}