fixes infini-dungeon difficulty
This commit is contained in:
parent
23a42bab80
commit
2d33c90af8
1 changed files with 16 additions and 14 deletions
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue