Compare commits
No commits in common. "74831857cf76c7fe4f6e8842bcb27e18f1e274f3" and "b833b43c7c16050d385219ce7d9b19ab36ccc81f" have entirely different histories.
74831857cf
...
b833b43c7c
|
@ -29,13 +29,13 @@ pub const LEVEL_WIDTH: usize = 1 + ROOMS_VERTICAL * ROOM_WIDTH;
|
||||||
pub const LEVEL_HEIGHT: usize = 1 + ROOMS_HORIZONTAL * ROOM_HEIGHT;
|
pub const LEVEL_HEIGHT: usize = 1 + ROOMS_HORIZONTAL * ROOM_HEIGHT;
|
||||||
|
|
||||||
pub fn get_monsters_per_level() -> Vec<HashMap<MonsterTypes, std::ops::RangeInclusive<u8>>> {
|
pub fn get_monsters_per_level() -> Vec<HashMap<MonsterTypes, std::ops::RangeInclusive<u8>>> {
|
||||||
let tmp =[
|
let tmp = vec![
|
||||||
// level 1
|
// level 1
|
||||||
vec![(MonsterTypes::Rat, 50), (MonsterTypes::Spider, 50)],
|
vec![(MonsterTypes::Rat, 50), (MonsterTypes::Spider, 50)],
|
||||||
// level 2
|
// level 2
|
||||||
vec![(MonsterTypes::Rat, 50), (MonsterTypes::Snake, 50)],
|
vec![(MonsterTypes::Rat, 50), (MonsterTypes::Snake, 50)],
|
||||||
// level 3
|
// level 3
|
||||||
vec![(MonsterTypes::Orc, 34), (MonsterTypes::Skeleton, 33), (MonsterTypes::Snake, 33)],
|
vec![(MonsterTypes::Orc, 33), (MonsterTypes::Skeleton, 33), (MonsterTypes::Snake, 33)],
|
||||||
];
|
];
|
||||||
if tmp.len() != LEVELS {
|
if tmp.len() != LEVELS {
|
||||||
panic!("Only {} monster sets defined for {} levels!", tmp.len(), LEVELS);
|
panic!("Only {} monster sets defined for {} levels!", tmp.len(), LEVELS);
|
||||||
|
|
|
@ -24,7 +24,7 @@ enum RoomType {
|
||||||
StairUp,
|
StairUp,
|
||||||
StairDown,
|
StairDown,
|
||||||
BasicRoom,
|
BasicRoom,
|
||||||
ArtifactRoom,
|
TreasureRoom,
|
||||||
MonsterRoom,
|
MonsterRoom,
|
||||||
EmptyRoom,
|
EmptyRoom,
|
||||||
}
|
}
|
||||||
|
@ -105,13 +105,13 @@ impl LevelGenerator {
|
||||||
room_types.push(RoomType::StairDown);
|
room_types.push(RoomType::StairDown);
|
||||||
}
|
}
|
||||||
room_types.push(RoomType::MonsterRoom);
|
room_types.push(RoomType::MonsterRoom);
|
||||||
room_types.push(RoomType::ArtifactRoom);
|
room_types.push(RoomType::TreasureRoom);
|
||||||
// generate a random set of rooms and shuffle them
|
// generate a random set of rooms and shuffle them
|
||||||
for _ in room_types.len()..ROOMS_HORIZONTAL * ROOMS_VERTICAL {
|
for _ in room_types.len()..ROOMS_HORIZONTAL * ROOMS_VERTICAL {
|
||||||
match rng.gen_range(1..=100) {
|
match rng.gen_range(1..=100) {
|
||||||
// TODO tune room type distribution
|
// TODO tune room type distribution
|
||||||
1..=33 => room_types.push(RoomType::EmptyRoom),
|
1..=33 => room_types.push(RoomType::EmptyRoom),
|
||||||
34..=66 => room_types.push(RoomType::ArtifactRoom),
|
34..=66 => room_types.push(RoomType::TreasureRoom),
|
||||||
67..=90 => room_types.push(RoomType::MonsterRoom),
|
67..=90 => room_types.push(RoomType::MonsterRoom),
|
||||||
_ => room_types.push(RoomType::BasicRoom),
|
_ => room_types.push(RoomType::BasicRoom),
|
||||||
}
|
}
|
||||||
|
@ -298,7 +298,7 @@ impl LevelGenerator {
|
||||||
StructureElement::Floor;
|
StructureElement::Floor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if room.kind == RoomType::ArtifactRoom {
|
if room.kind == RoomType::TreasureRoom {
|
||||||
let t_x = left + room.offset_x + rng.gen_range(0..room.width);
|
let t_x = left + room.offset_x + rng.gen_range(0..room.width);
|
||||||
let t_y = top + room.offset_y + rng.gen_range(0..room.height);
|
let t_y = top + room.offset_y + rng.gen_range(0..room.height);
|
||||||
// TODO randomize artifacts
|
// TODO randomize artifacts
|
||||||
|
|
Loading…
Reference in New Issue