mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Update rand dependency
This commit is contained in:
parent
e6620c21db
commit
8b97199245
66
Cargo.lock
generated
66
Cargo.lock
generated
@ -4240,7 +4240,7 @@ dependencies = [
|
||||
"rand_isaac",
|
||||
"rand_jitter",
|
||||
"rand_os",
|
||||
"rand_pcg 0.1.2",
|
||||
"rand_pcg",
|
||||
"rand_xorshift 0.1.1",
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
@ -4256,7 +4256,18 @@ dependencies = [
|
||||
"rand_chacha 0.2.2",
|
||||
"rand_core 0.5.1",
|
||||
"rand_hc 0.2.0",
|
||||
"rand_pcg 0.2.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"rand_chacha 0.3.0",
|
||||
"rand_core 0.6.1",
|
||||
"rand_hc 0.3.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -4279,6 +4290,16 @@ dependencies = [
|
||||
"rand_core 0.5.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_chacha"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
|
||||
dependencies = [
|
||||
"ppv-lite86",
|
||||
"rand_core 0.6.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.3.1"
|
||||
@ -4303,6 +4324,15 @@ dependencies = [
|
||||
"getrandom 0.1.15",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5"
|
||||
dependencies = [
|
||||
"getrandom 0.2.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_hc"
|
||||
version = "0.1.0"
|
||||
@ -4321,6 +4351,15 @@ dependencies = [
|
||||
"rand_core 0.5.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_hc"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
|
||||
dependencies = [
|
||||
"rand_core 0.6.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_isaac"
|
||||
version = "0.1.1"
|
||||
@ -4365,15 +4404,6 @@ dependencies = [
|
||||
"rand_core 0.4.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_pcg"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
|
||||
dependencies = [
|
||||
"rand_core 0.5.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_xorshift"
|
||||
version = "0.1.1"
|
||||
@ -6041,7 +6071,7 @@ dependencies = [
|
||||
"num-derive",
|
||||
"num-traits 0.2.14",
|
||||
"ordered-float 2.0.1",
|
||||
"rand 0.7.3",
|
||||
"rand 0.8.3",
|
||||
"rayon",
|
||||
"ron",
|
||||
"roots",
|
||||
@ -6082,7 +6112,7 @@ dependencies = [
|
||||
"bincode",
|
||||
"hashbrown 0.9.1",
|
||||
"indexmap",
|
||||
"rand 0.7.3",
|
||||
"rand 0.8.3",
|
||||
"rayon",
|
||||
"serde",
|
||||
"slab",
|
||||
@ -6146,7 +6176,7 @@ dependencies = [
|
||||
"libsqlite3-sys",
|
||||
"portpicker",
|
||||
"prometheus",
|
||||
"rand 0.7.3",
|
||||
"rand 0.8.3",
|
||||
"ron",
|
||||
"scan_fmt",
|
||||
"serde",
|
||||
@ -6227,7 +6257,7 @@ dependencies = [
|
||||
"num 0.3.1",
|
||||
"old_school_gfx_glutin_ext",
|
||||
"ordered-float 2.0.1",
|
||||
"rand 0.7.3",
|
||||
"rand 0.8.3",
|
||||
"rodio",
|
||||
"ron",
|
||||
"serde",
|
||||
@ -6286,8 +6316,8 @@ dependencies = [
|
||||
"num 0.3.1",
|
||||
"ordered-float 2.0.1",
|
||||
"packed_simd_2",
|
||||
"rand 0.7.3",
|
||||
"rand_chacha 0.2.2",
|
||||
"rand 0.8.3",
|
||||
"rand_chacha 0.3.0",
|
||||
"rayon",
|
||||
"ron",
|
||||
"serde",
|
||||
@ -6311,7 +6341,7 @@ dependencies = [
|
||||
"lazy_static",
|
||||
"lz-fear",
|
||||
"prometheus",
|
||||
"rand 0.7.3",
|
||||
"rand 0.8.3",
|
||||
"serde",
|
||||
"shellexpand",
|
||||
"tiny_http",
|
||||
|
@ -21,7 +21,7 @@ lazy_static = "1.4.0"
|
||||
num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
ordered-float = { version = "2.0.1", default-features = false }
|
||||
rand = "0.7"
|
||||
rand = "0.8"
|
||||
rayon = "1.5"
|
||||
roots = "0.0.6"
|
||||
spin_sleep = "1.0"
|
||||
|
@ -39,13 +39,13 @@ impl Body {
|
||||
Self {
|
||||
species,
|
||||
body_type,
|
||||
hair_style: rng.gen_range(0, species.num_hair_styles(body_type)),
|
||||
beard: rng.gen_range(0, species.num_beards(body_type)),
|
||||
accessory: rng.gen_range(0, species.num_accessories(body_type)),
|
||||
hair_color: rng.gen_range(0, species.num_hair_colors()),
|
||||
skin: rng.gen_range(0, species.num_skin_colors()),
|
||||
eye_color: rng.gen_range(0, species.num_eye_colors()),
|
||||
eyes: rng.gen_range(0, 1), /* TODO Add a way to set specific head-segments for NPCs
|
||||
hair_style: rng.gen_range(0..species.num_hair_styles(body_type)),
|
||||
beard: rng.gen_range(0..species.num_beards(body_type)),
|
||||
accessory: rng.gen_range(0..species.num_accessories(body_type)),
|
||||
hair_color: rng.gen_range(0..species.num_hair_colors()),
|
||||
skin: rng.gen_range(0..species.num_skin_colors()),
|
||||
eye_color: rng.gen_range(0..species.num_eye_colors()),
|
||||
eyes: rng.gen_range(0..1), /* TODO Add a way to set specific head-segments for NPCs
|
||||
* with the default being a random one */
|
||||
}
|
||||
}
|
||||
|
@ -493,7 +493,7 @@ impl Item {
|
||||
SpriteKind::ShortGrass => "common.items.grasses.short",
|
||||
SpriteKind::Coconut => "common.items.food.coconut",
|
||||
SpriteKind::Chest => {
|
||||
chosen = Lottery::<String>::load_expect(match rng.gen_range(0, 7) {
|
||||
chosen = Lottery::<String>::load_expect(match rng.gen_range(0..7) {
|
||||
0 => "common.loot_tables.loot_table_weapon_uncommon",
|
||||
1 => "common.loot_tables.loot_table_weapon_common",
|
||||
2 => "common.loot_tables.loot_table_armor_light",
|
||||
@ -505,7 +505,7 @@ impl Item {
|
||||
chosen.choose()
|
||||
},
|
||||
SpriteKind::ChestBurried => {
|
||||
chosen = Lottery::<String>::load_expect(match rng.gen_range(0, 7) {
|
||||
chosen = Lottery::<String>::load_expect(match rng.gen_range(0..7) {
|
||||
1 => "common.loot_tables.loot_table_weapon_common",
|
||||
2 => "common.loot_tables.loot_table_armor_light",
|
||||
3 => "common.loot_tables.loot_table_armor_cloth",
|
||||
@ -515,7 +515,7 @@ impl Item {
|
||||
chosen.choose()
|
||||
},
|
||||
SpriteKind::Mud => {
|
||||
chosen = Lottery::<String>::load_expect(match rng.gen_range(0, 5) {
|
||||
chosen = Lottery::<String>::load_expect(match rng.gen_range(0..5) {
|
||||
0 => "common.loot_tables.loot_table_crafting",
|
||||
1 => "common.loot_tables.loot_table_weapon_common",
|
||||
2 => "common.loot_tables.loot_table_armor_misc",
|
||||
@ -525,7 +525,7 @@ impl Item {
|
||||
chosen.choose()
|
||||
},
|
||||
SpriteKind::Crate => {
|
||||
chosen = Lottery::<String>::load_expect(match rng.gen_range(0, 4) {
|
||||
chosen = Lottery::<String>::load_expect(match rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.loot_table_crafting",
|
||||
_ => "common.loot_tables.loot_table_food",
|
||||
})
|
||||
|
@ -262,7 +262,7 @@ impl LoadoutBuilder {
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.armor.foot.steel_0",
|
||||
)))
|
||||
.lantern(match rand::thread_rng().gen_range(0, 3) {
|
||||
.lantern(match rand::thread_rng().gen_range(0..3) {
|
||||
0 => Some(Item::new_from_asset_expect("common.items.lantern.black_0")),
|
||||
_ => None,
|
||||
})
|
||||
@ -287,7 +287,7 @@ impl LoadoutBuilder {
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.armor.foot.cloth_purple_0",
|
||||
)))
|
||||
.lantern(match rand::thread_rng().gen_range(0, 3) {
|
||||
.lantern(match rand::thread_rng().gen_range(0..3) {
|
||||
0 => Some(Item::new_from_asset_expect("common.items.lantern.black_0")),
|
||||
_ => None,
|
||||
})
|
||||
@ -312,7 +312,7 @@ impl LoadoutBuilder {
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.armor.foot.leather_0",
|
||||
)))
|
||||
.lantern(match rand::thread_rng().gen_range(0, 3) {
|
||||
.lantern(match rand::thread_rng().gen_range(0..3) {
|
||||
0 => Some(Item::new_from_asset_expect("common.items.lantern.black_0")),
|
||||
_ => None,
|
||||
})
|
||||
@ -337,7 +337,7 @@ impl LoadoutBuilder {
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
"common.items.armor.foot.assassin",
|
||||
)))
|
||||
.lantern(match rand::thread_rng().gen_range(0, 3) {
|
||||
.lantern(match rand::thread_rng().gen_range(0..3) {
|
||||
0 => Some(Item::new_from_asset_expect("common.items.lantern.black_0")),
|
||||
_ => None,
|
||||
})
|
||||
@ -365,7 +365,7 @@ impl LoadoutBuilder {
|
||||
.back(Some(Item::new_from_asset_expect(
|
||||
"common.items.armor.back.dungeon_purple-0",
|
||||
)))
|
||||
.lantern(match rand::thread_rng().gen_range(0, 3) {
|
||||
.lantern(match rand::thread_rng().gen_range(0..3) {
|
||||
0 => Some(Item::new_from_asset_expect("common.items.lantern.black_0")),
|
||||
_ => None,
|
||||
})
|
||||
@ -393,7 +393,7 @@ impl LoadoutBuilder {
|
||||
.back(Some(Item::new_from_asset_expect(
|
||||
"common.items.armor.back.dungeon_purple-0",
|
||||
)))
|
||||
.lantern(match rand::thread_rng().gen_range(0, 3) {
|
||||
.lantern(match rand::thread_rng().gen_range(0..3) {
|
||||
0 => Some(Item::new_from_asset_expect("common.items.lantern.black_0")),
|
||||
_ => None,
|
||||
})
|
||||
@ -421,7 +421,7 @@ impl LoadoutBuilder {
|
||||
.back(Some(Item::new_from_asset_expect(
|
||||
"common.items.armor.back.warlord",
|
||||
)))
|
||||
.lantern(match rand::thread_rng().gen_range(0, 3) {
|
||||
.lantern(match rand::thread_rng().gen_range(0..3) {
|
||||
0 => Some(Item::new_from_asset_expect("common.items.lantern.black_0")),
|
||||
_ => None,
|
||||
})
|
||||
@ -449,7 +449,7 @@ impl LoadoutBuilder {
|
||||
.back(Some(Item::new_from_asset_expect(
|
||||
"common.items.armor.back.warlock",
|
||||
)))
|
||||
.lantern(match rand::thread_rng().gen_range(0, 3) {
|
||||
.lantern(match rand::thread_rng().gen_range(0..3) {
|
||||
0 => Some(Item::new_from_asset_expect("common.items.lantern.black_0")),
|
||||
_ => None,
|
||||
})
|
||||
@ -457,7 +457,7 @@ impl LoadoutBuilder {
|
||||
Villager => LoadoutBuilder::new()
|
||||
.active_item(active_item)
|
||||
.chest(Some(Item::new_from_asset_expect(
|
||||
match rand::thread_rng().gen_range(0, 10) {
|
||||
match rand::thread_rng().gen_range(0..10) {
|
||||
0 => "common.items.armor.chest.worker_green_0",
|
||||
1 => "common.items.armor.chest.worker_green_1",
|
||||
2 => "common.items.armor.chest.worker_red_0",
|
||||
@ -477,7 +477,7 @@ impl LoadoutBuilder {
|
||||
"common.items.armor.pants.worker_blue_0",
|
||||
)))
|
||||
.feet(Some(Item::new_from_asset_expect(
|
||||
match rand::thread_rng().gen_range(0, 2) {
|
||||
match rand::thread_rng().gen_range(0..2) {
|
||||
0 => "common.items.armor.foot.leather_0",
|
||||
_ => "common.items.armor.starter.sandals_0",
|
||||
},
|
||||
|
@ -15,7 +15,7 @@ default = ["simd"]
|
||||
common = { package = "veloren-common", path = ".." }
|
||||
common-net = { package = "veloren-common-net", path = "../net" }
|
||||
|
||||
rand = "0.7"
|
||||
rand = "0.8"
|
||||
rayon = "1.5"
|
||||
tracing = { version = "0.1", default-features = false }
|
||||
vek = { version = "0.12.0", features = ["serde"] }
|
||||
|
@ -176,13 +176,13 @@ impl<'a> System<'a> for Sys {
|
||||
// keep them on
|
||||
// Only emit event for agents that sill need to
|
||||
// turn on their lantern
|
||||
if let 0 = rng.gen_range(0, 1000) {
|
||||
if let 0 = rng.gen_range(0..1000) {
|
||||
controller.events.push(ControlEvent::EnableLantern)
|
||||
}
|
||||
} else if lantern_turned_on && day_period.is_light() {
|
||||
// agents with turned on lanterns turn them off randomly once it's daytime and
|
||||
// keep them off
|
||||
if let 0 = rng.gen_range(0, 2000) {
|
||||
if let 0 = rng.gen_range(0..2000) {
|
||||
controller.events.push(ControlEvent::DisableLantern)
|
||||
}
|
||||
}
|
||||
@ -770,7 +770,7 @@ impl<'a> System<'a> for Sys {
|
||||
inputs.move_dir = bearing
|
||||
.xy()
|
||||
.rotated_z(
|
||||
thread_rng().gen_range(0.5, 1.57),
|
||||
thread_rng().gen_range(0.5..1.57),
|
||||
)
|
||||
.try_normalized()
|
||||
.unwrap_or(Vec2::zero())
|
||||
@ -865,7 +865,7 @@ impl<'a> System<'a> for Sys {
|
||||
inputs.move_dir = bearing
|
||||
.xy()
|
||||
.rotated_z(
|
||||
thread_rng().gen_range(-1.57, -0.5),
|
||||
thread_rng().gen_range(-1.57..-0.5),
|
||||
)
|
||||
.try_normalized()
|
||||
.unwrap_or(Vec2::zero())
|
||||
|
@ -29,7 +29,7 @@ prometheus = { version = "0.11", default-features = false, optional = true }
|
||||
futures = { version = "0.3", features = ["thread-pool"] }
|
||||
#mpsc channel registry
|
||||
lazy_static = { version = "1.4", default-features = false }
|
||||
rand = { version = "0.7" }
|
||||
rand = { version = "0.8" }
|
||||
#stream flags
|
||||
bitflags = "1.2.1"
|
||||
lz-fear = { version = "0.1.1", optional = true }
|
||||
|
@ -357,6 +357,6 @@ mod tests {
|
||||
}
|
||||
}
|
||||
let msg = Message::serialize(&msg, &stub_stream(true));
|
||||
assert_eq!(msg.buffer.data.len(), 1296);
|
||||
assert_eq!(msg.buffer.data.len(), 1331);
|
||||
}
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ scan_fmt = { git = "https://github.com/Imberflur/scan_fmt" }
|
||||
ron = { version = "0.6", default-features = false }
|
||||
serde = { version = "1.0.110", features = ["derive"] }
|
||||
serde_json = "1.0.50"
|
||||
rand = { version = "0.7", features = ["small_rng"] }
|
||||
rand = { version = "0.8", features = ["small_rng"] }
|
||||
chrono = "0.4.9"
|
||||
hashbrown = { version = "0.9", features = ["rayon", "serde", "nightly"] }
|
||||
crossbeam-channel = "0.5"
|
||||
|
@ -154,14 +154,14 @@ fn handle_drop_all(
|
||||
|
||||
let pos = pos.expect("expected pos for entity using dropall command");
|
||||
for item in items {
|
||||
let vel = Vec3::new(rng.gen_range(-0.1, 0.1), rng.gen_range(-0.1, 0.1), 0.5);
|
||||
let vel = Vec3::new(rng.gen_range(-0.1..0.1), rng.gen_range(-0.1..0.1), 0.5);
|
||||
|
||||
server
|
||||
.state
|
||||
.create_object(Default::default(), comp::object::Body::Pouch)
|
||||
.with(comp::Pos(Vec3::new(
|
||||
pos.0.x + rng.gen_range(5.0, 10.0),
|
||||
pos.0.y + rng.gen_range(5.0, 10.0),
|
||||
pos.0.x + rng.gen_range(5.0..10.0),
|
||||
pos.0.y + rng.gen_range(5.0..10.0),
|
||||
pos.0.z + 5.0,
|
||||
)))
|
||||
.with(item)
|
||||
@ -805,8 +805,8 @@ fn handle_spawn(
|
||||
|
||||
for _ in 0..amount {
|
||||
let vel = Vec3::new(
|
||||
rand::thread_rng().gen_range(-2.0, 3.0),
|
||||
rand::thread_rng().gen_range(-2.0, 3.0),
|
||||
rand::thread_rng().gen_range(-2.0..3.0),
|
||||
rand::thread_rng().gen_range(-2.0..3.0),
|
||||
10.0,
|
||||
);
|
||||
|
||||
@ -922,8 +922,8 @@ fn handle_spawn_training_dummy(
|
||||
match server.state.read_component_copied::<comp::Pos>(target) {
|
||||
Some(pos) => {
|
||||
let vel = Vec3::new(
|
||||
rand::thread_rng().gen_range(-2.0, 3.0),
|
||||
rand::thread_rng().gen_range(-2.0, 3.0),
|
||||
rand::thread_rng().gen_range(-2.0..3.0),
|
||||
rand::thread_rng().gen_range(-2.0..3.0),
|
||||
10.0,
|
||||
);
|
||||
|
||||
|
@ -313,7 +313,7 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
|
||||
let mut rng = rand::thread_rng();
|
||||
let mut lottery = || {
|
||||
Lottery::<String>::load_expect(match old_body {
|
||||
Some(common::comp::Body::Humanoid(_)) => match rng.gen_range(0, 4) {
|
||||
Some(common::comp::Body::Humanoid(_)) => match rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.loot_table_humanoids",
|
||||
1 => "common.loot_tables.loot_table_armor_light",
|
||||
2 => "common.loot_tables.loot_table_armor_cloth",
|
||||
@ -323,11 +323,11 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
|
||||
},
|
||||
Some(common::comp::Body::QuadrupedSmall(quadruped_small)) => {
|
||||
match quadruped_small.species {
|
||||
quadruped_small::Species::Dodarock => match rng.gen_range(0, 6) {
|
||||
quadruped_small::Species::Dodarock => match rng.gen_range(0..6) {
|
||||
1 => "common.loot_tables.loot_table_rocks",
|
||||
_ => "common.loot_tables.loot_table_rocks",
|
||||
},
|
||||
_ => match rng.gen_range(0, 4) {
|
||||
_ => match rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.loot_table_food",
|
||||
2 => "common.loot_tables.loot_table_animal_parts",
|
||||
_ => "common.loot_tables.loot_table_animal_parts",
|
||||
@ -340,27 +340,27 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
|
||||
| quadruped_medium::Species::Roshwalr => {
|
||||
"common.loot_tables.loot_table_animal_ice"
|
||||
},
|
||||
_ => match rng.gen_range(0, 4) {
|
||||
_ => match rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.loot_table_food",
|
||||
2 => "common.loot_tables.loot_table_animal_parts",
|
||||
_ => "common.loot_tables.loot_table_animal_parts",
|
||||
},
|
||||
}
|
||||
},
|
||||
Some(common::comp::Body::BirdMedium(_)) => match rng.gen_range(0, 3) {
|
||||
Some(common::comp::Body::BirdMedium(_)) => match rng.gen_range(0..3) {
|
||||
0 => "common.loot_tables.loot_table_food",
|
||||
_ => "common.loot_tables.loot_table",
|
||||
},
|
||||
Some(common::comp::Body::FishMedium(_)) => "common.loot_tables.loot_table_fish",
|
||||
Some(common::comp::Body::FishSmall(_)) => "common.loot_tables.loot_table_fish",
|
||||
Some(common::comp::Body::BipedLarge(biped_large)) => match biped_large.species {
|
||||
biped_large::Species::Wendigo => match rng.gen_range(0, 7) {
|
||||
biped_large::Species::Wendigo => match rng.gen_range(0..7) {
|
||||
0 => "common.loot_tables.loot_table_food",
|
||||
1 => "common.loot_tables.loot_table_wendigo",
|
||||
2 => "common.loot_tables.loot_table_weapon_uncommon",
|
||||
_ => "common.loot_tables.loot_table_cave_large",
|
||||
},
|
||||
biped_large::Species::Troll => match rng.gen_range(0, 10) {
|
||||
biped_large::Species::Troll => match rng.gen_range(0..10) {
|
||||
0 => "common.loot_tables.loot_table_food",
|
||||
1 => "common.loot_tables.loot_table_cave_large",
|
||||
2 => "common.loot_tables.loot_table_weapon_uncommon",
|
||||
@ -369,13 +369,13 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
|
||||
biped_large::Species::Occultsaurok
|
||||
| biped_large::Species::Mightysaurok
|
||||
| biped_large::Species::Slysaurok => "common.loot_tables.loot_table_saurok",
|
||||
_ => match rng.gen_range(0, 4) {
|
||||
_ => match rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.loot_table_food",
|
||||
1 => "common.loot_tables.loot_table_armor_nature",
|
||||
_ => "common.loot_tables.loot_table_cave_large",
|
||||
},
|
||||
},
|
||||
Some(common::comp::Body::Golem(_)) => match rng.gen_range(0, 9) {
|
||||
Some(common::comp::Body::Golem(_)) => match rng.gen_range(0..9) {
|
||||
0 => "common.loot_tables.loot_table_food",
|
||||
2 => "common.loot_tables.loot_table_armor_light",
|
||||
3 => "common.loot_tables.loot_table_armor_heavy",
|
||||
@ -387,7 +387,7 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
|
||||
Some(common::comp::Body::Theropod(theropod)) => match theropod.species {
|
||||
theropod::Species::Sandraptor
|
||||
| theropod::Species::Snowraptor
|
||||
| theropod::Species::Woodraptor => match rng.gen_range(0, 3) {
|
||||
| theropod::Species::Woodraptor => match rng.gen_range(0..3) {
|
||||
0 => "common.loot_tables.loot_table_raptor",
|
||||
_ => "common.loot_tables.loot_table_animal_parts",
|
||||
},
|
||||
@ -399,7 +399,7 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
|
||||
quadruped_low::Species::Maneater => {
|
||||
"common.loot_tables.loot_table_maneater"
|
||||
},
|
||||
_ => match rng.gen_range(0, 3) {
|
||||
_ => match rng.gen_range(0..3) {
|
||||
0 => "common.loot_tables.loot_table_food",
|
||||
1 => "common.loot_tables.loot_table_animal_parts",
|
||||
_ => "common.loot_tables.loot_table",
|
||||
|
@ -515,9 +515,9 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv
|
||||
for (pos, vel, ori, kind) in thrown_items {
|
||||
let vel = match kind {
|
||||
item::Throwable::Firework(_) => Vec3::new(
|
||||
rng.gen_range(-15.0, 15.0),
|
||||
rng.gen_range(-15.0, 15.0),
|
||||
rng.gen_range(80.0, 110.0),
|
||||
rng.gen_range(-15.0..15.0),
|
||||
rng.gen_range(-15.0..15.0),
|
||||
rng.gen_range(80.0..110.0),
|
||||
),
|
||||
_ => {
|
||||
vel.0
|
||||
|
@ -76,7 +76,7 @@ impl Entity {
|
||||
.unwrap(),
|
||||
);
|
||||
|
||||
let back = match rng.gen_range(0, 5) {
|
||||
let back = match rng.gen_range(0..5) {
|
||||
0 => Some(comp::Item::new_from_asset_expect(
|
||||
"common.items.armor.back.leather_adventurer",
|
||||
)),
|
||||
@ -92,7 +92,7 @@ impl Entity {
|
||||
_ => None,
|
||||
};
|
||||
|
||||
let lantern = match rng.gen_range(0, 3) {
|
||||
let lantern = match rng.gen_range(0..3) {
|
||||
0 => Some(comp::Item::new_from_asset_expect(
|
||||
"common.items.lantern.black_0",
|
||||
)),
|
||||
@ -133,7 +133,7 @@ impl Entity {
|
||||
comp::Body::Humanoid(_) => s.1.is_settlement() | s.1.is_castle(),
|
||||
_ => s.1.is_dungeon(),
|
||||
})
|
||||
.filter(|_| thread_rng().gen_range(0i32, 4) == 0)
|
||||
.filter(|_| thread_rng().gen_range(0i32..4) == 0)
|
||||
.min_by_key(|(_, site)| {
|
||||
let wpos = site.center * TerrainChunk::RECT_SIZE.map(|e| e as i32);
|
||||
let dist = wpos.map(|e| e as f32).distance(self.pos.xy()) as u32;
|
||||
|
@ -93,7 +93,7 @@ pub fn init(state: &mut State, #[cfg(feature = "worldgen")] world: &world::World
|
||||
.chunks
|
||||
.size()
|
||||
.map2(TerrainChunk::RECT_SIZE, |sz, chunk_sz| {
|
||||
thread_rng().gen_range(0, sz * chunk_sz) as i32
|
||||
thread_rng().gen_range(0..sz * chunk_sz) as i32
|
||||
});
|
||||
|
||||
rtsim.entities.insert(Entity {
|
||||
|
@ -125,8 +125,8 @@ impl StateExt for State {
|
||||
.with(comp::Vel(Vec3::zero()))
|
||||
.with(comp::Ori(Dir::new(
|
||||
Vec3::new(
|
||||
thread_rng().gen_range(-1.0, 1.0),
|
||||
thread_rng().gen_range(-1.0, 1.0),
|
||||
thread_rng().gen_range(-1.0..1.0),
|
||||
thread_rng().gen_range(-1.0..1.0),
|
||||
0.0,
|
||||
)
|
||||
.try_normalized()
|
||||
|
@ -77,7 +77,7 @@ lazy_static = "1.4.0"
|
||||
native-dialog = { version = "0.4.2", default-features = false, optional = true }
|
||||
num = "0.3.1"
|
||||
ordered-float = { version = "2.0.1", default-features = false }
|
||||
rand = "0.7"
|
||||
rand = "0.8"
|
||||
rodio = {version = "0.13", default-features = false, features = ["wav", "vorbis"]}
|
||||
ron = {version = "0.6", default-features = false}
|
||||
serde = {version = "1.0", features = [ "rc", "derive" ]}
|
||||
|
@ -150,7 +150,7 @@ impl MusicMgr {
|
||||
let mut rng = thread_rng();
|
||||
|
||||
// Adds a bit of randomness between plays
|
||||
let silence_between_tracks_seconds: f32 = rng.gen_range(45.0, 120.0);
|
||||
let silence_between_tracks_seconds: f32 = rng.gen_range(45.0..120.0);
|
||||
|
||||
let game_time = (state.get_time_of_day() as u64 % 86400) as u32;
|
||||
let current_period_of_day = Self::get_current_day_period(game_time);
|
||||
|
@ -322,7 +322,7 @@ impl SfxMgr {
|
||||
"voxygen.audio.sfx.abilities.arrow_shot_2",
|
||||
"voxygen.audio.sfx.abilities.arrow_shot_3",
|
||||
"voxygen.audio.sfx.abilities.arrow_shot_4",
|
||||
][rand::thread_rng().gen_range(1, 4)];
|
||||
][rand::thread_rng().gen_range(1..4)];
|
||||
|
||||
audio.play_sfx(file_ref, *pos, None);
|
||||
},
|
||||
@ -334,7 +334,7 @@ impl SfxMgr {
|
||||
let file_ref = vec![
|
||||
"voxygen.audio.sfx.abilities.fire_shot_1",
|
||||
"voxygen.audio.sfx.abilities.fire_shot_2",
|
||||
][rand::thread_rng().gen_range(1, 2)];
|
||||
][rand::thread_rng().gen_range(1..2)];
|
||||
|
||||
audio.play_sfx(file_ref, *pos, None);
|
||||
},
|
||||
|
@ -1272,13 +1272,13 @@ impl Controls {
|
||||
let body_type = body.body_type;
|
||||
let species = body.species;
|
||||
let mut rng = rand::thread_rng();
|
||||
body.hair_style = rng.gen_range(0, species.num_hair_styles(body_type));
|
||||
body.beard = rng.gen_range(0, species.num_beards(body_type));
|
||||
body.accessory = rng.gen_range(0, species.num_accessories(body_type));
|
||||
body.hair_color = rng.gen_range(0, species.num_hair_colors());
|
||||
body.skin = rng.gen_range(0, species.num_skin_colors());
|
||||
body.eye_color = rng.gen_range(0, species.num_eye_colors());
|
||||
body.eyes = rng.gen_range(0, species.num_eyes(body_type));
|
||||
body.hair_style = rng.gen_range(0..species.num_hair_styles(body_type));
|
||||
body.beard = rng.gen_range(0..species.num_beards(body_type));
|
||||
body.accessory = rng.gen_range(0..species.num_accessories(body_type));
|
||||
body.hair_color = rng.gen_range(0..species.num_hair_colors());
|
||||
body.skin = rng.gen_range(0..species.num_skin_colors());
|
||||
body.eye_color = rng.gen_range(0..species.num_eye_colors());
|
||||
body.eyes = rng.gen_range(0..species.num_eyes(body_type));
|
||||
*name = npc::get_npc_name(
|
||||
npc::NpcKind::Humanoid,
|
||||
npc::BodyType::from_body(comp::Body::Humanoid(*body)),
|
||||
|
@ -71,7 +71,7 @@ impl ParticleMgr {
|
||||
time,
|
||||
ParticleMode::EnergyNature,
|
||||
*pos + Vec3::<f32>::zero()
|
||||
.map(|_| rng.gen_range(-1.0, 1.0))
|
||||
.map(|_| rng.gen_range(-1.0..1.0))
|
||||
.normalized()
|
||||
* *radius,
|
||||
)
|
||||
@ -86,7 +86,7 @@ impl ParticleMgr {
|
||||
time,
|
||||
ParticleMode::CampfireFire,
|
||||
*pos + Vec3::<f32>::zero()
|
||||
.map(|_| rng.gen_range(-1.0, 1.0))
|
||||
.map(|_| rng.gen_range(-1.0..1.0))
|
||||
.normalized()
|
||||
* *radius,
|
||||
)
|
||||
@ -121,7 +121,7 @@ impl ParticleMgr {
|
||||
time,
|
||||
ParticleMode::CampfireSmoke,
|
||||
*pos + Vec3::<f32>::zero()
|
||||
.map(|_| rng.gen_range(-1.0, 1.0))
|
||||
.map(|_| rng.gen_range(-1.0..1.0))
|
||||
.normalized()
|
||||
* *radius,
|
||||
)
|
||||
@ -221,7 +221,7 @@ impl ParticleMgr {
|
||||
Duration::from_secs(10),
|
||||
time,
|
||||
ParticleMode::CampfireSmoke,
|
||||
pos.0.map(|e| e + thread_rng().gen_range(-0.25, 0.25)),
|
||||
pos.0.map(|e| e + thread_rng().gen_range(-0.25..0.25)),
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -396,7 +396,7 @@ impl ParticleMgr {
|
||||
// Emit a light when using flames
|
||||
lights.push(Light::new(
|
||||
pos.0 + b.offset,
|
||||
Rgb::new(1.0, 0.25, 0.05).map(|e| e * rng.gen_range(0.8, 1.2)),
|
||||
Rgb::new(1.0, 0.25, 0.05).map(|e| e * rng.gen_range(0.8..1.2)),
|
||||
2.0,
|
||||
));
|
||||
self.particles.resize_with(
|
||||
@ -406,8 +406,8 @@ impl ParticleMgr {
|
||||
),
|
||||
|| {
|
||||
let phi: f32 =
|
||||
rng.gen_range(0.0, b.static_data.max_angle.to_radians());
|
||||
let theta: f32 = rng.gen_range(0.0, 2.0 * PI);
|
||||
rng.gen_range(0.0..b.static_data.max_angle.to_radians());
|
||||
let theta: f32 = rng.gen_range(0.0..2.0 * PI);
|
||||
let offset_z = Vec3::new(
|
||||
phi.sin() * theta.cos(),
|
||||
phi.sin() * theta.sin(),
|
||||
|
@ -50,17 +50,17 @@ impl BlocksOfInterest {
|
||||
.for_each(|(pos, block)| {
|
||||
match block.kind() {
|
||||
BlockKind::Leaves => {
|
||||
if thread_rng().gen_range(0, 16) == 0 {
|
||||
if thread_rng().gen_range(0..16) == 0 {
|
||||
leaves.push(pos)
|
||||
}
|
||||
},
|
||||
BlockKind::Grass => {
|
||||
if thread_rng().gen_range(0, 16) == 0 {
|
||||
if thread_rng().gen_range(0..16) == 0 {
|
||||
grass.push(pos)
|
||||
}
|
||||
},
|
||||
BlockKind::Water => {
|
||||
if chunk.meta().contains_river() && thread_rng().gen_range(0, 16) == 0 {
|
||||
if chunk.meta().contains_river() && thread_rng().gen_range(0..16) == 0 {
|
||||
river.push(pos)
|
||||
}
|
||||
},
|
||||
|
@ -24,8 +24,8 @@ ordered-float = "2.0.1"
|
||||
hashbrown = { version = "0.9", features = ["rayon", "serde", "nightly"] }
|
||||
lazy_static = "1.4.0"
|
||||
tracing = { version = "0.1", default-features = false }
|
||||
rand = "0.7"
|
||||
rand_chacha = "0.2.1"
|
||||
rand = "0.8"
|
||||
rand_chacha = "0.3"
|
||||
arr_macro = "0.1.2"
|
||||
packed_simd = { version = "0.3.4", package = "packed_simd_2" }
|
||||
rayon = "1.5"
|
||||
|
@ -24,7 +24,7 @@ pub struct Belief {
|
||||
|
||||
impl Belief {
|
||||
pub fn choose_price(&self, ctx: &mut GenCtx<impl Rng>) -> f32 {
|
||||
self.price + ctx.rng.gen_range(-1.0, 1.0) * self.confidence
|
||||
self.price + ctx.rng.gen_range(-1.0..1.0) * self.confidence
|
||||
}
|
||||
|
||||
pub fn update_buyer(&mut self, _years: f32, new_price: f32) {
|
||||
|
@ -105,7 +105,7 @@ impl Civs {
|
||||
|
||||
for _ in 0..initial_civ_count * 3 {
|
||||
attempt(5, || {
|
||||
let (kind, size) = match ctx.rng.gen_range(0, 8) {
|
||||
let (kind, size) = match ctx.rng.gen_range(0..8) {
|
||||
0 => (SiteKind::Castle, 3),
|
||||
_ => (SiteKind::Dungeon, 0),
|
||||
};
|
||||
@ -188,7 +188,7 @@ impl Civs {
|
||||
chunk.basement += diff;
|
||||
chunk.rockiness = 0.0;
|
||||
chunk.warp_factor = 0.0;
|
||||
chunk.surface_veg *= 1.0 - factor * rng.gen_range(0.25, 0.9);
|
||||
chunk.surface_veg *= 1.0 - factor * rng.gen_range(0.25..0.9);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -241,7 +241,7 @@ impl Civs {
|
||||
let mut pos = ctx
|
||||
.sim
|
||||
.get_size()
|
||||
.map(|sz| ctx.rng.gen_range(0, sz as i32) as f32);
|
||||
.map(|sz| ctx.rng.gen_range(0..sz as i32) as f32);
|
||||
let mut vel = pos
|
||||
.map2(ctx.sim.get_size(), |pos, sz| sz as f32 / 2.0 - pos)
|
||||
.try_normalized()
|
||||
@ -252,8 +252,8 @@ impl Civs {
|
||||
let depth = (i.abs() as f32 / 100.0 * std::f32::consts::PI / 2.0).cos();
|
||||
vel = (vel
|
||||
+ Vec2::new(
|
||||
ctx.rng.gen_range(-0.35, 0.35),
|
||||
ctx.rng.gen_range(-0.35, 0.35),
|
||||
ctx.rng.gen_range(-0.35..0.35),
|
||||
ctx.rng.gen_range(-0.35..0.35),
|
||||
))
|
||||
.try_normalized()
|
||||
.unwrap_or_else(Vec2::unit_y);
|
||||
@ -290,9 +290,9 @@ impl Civs {
|
||||
let mut chunk = ctx.sim.get_mut(loc.0).unwrap();
|
||||
let depth = loc.1 * 250.0 - 20.0;
|
||||
chunk.cave.1.alt =
|
||||
chunk.alt - depth + ctx.rng.gen_range(-4.0, 4.0) * (depth > 10.0) as i32 as f32;
|
||||
chunk.cave.1.width = ctx.rng.gen_range(6.0, 32.0);
|
||||
chunk.cave.0.offset = Vec2::new(ctx.rng.gen_range(-16, 17), ctx.rng.gen_range(-16, 17));
|
||||
chunk.alt - depth + ctx.rng.gen_range(-4.0..4.0) * (depth > 10.0) as i32 as f32;
|
||||
chunk.cave.1.width = ctx.rng.gen_range(6.0..32.0);
|
||||
chunk.cave.0.offset = Vec2::new(ctx.rng.gen_range(-16..17), ctx.rng.gen_range(-16..17));
|
||||
|
||||
if chunk.cave.1.alt + chunk.cave.1.width + 5.0 > chunk.alt {
|
||||
chunk.spawn_rate = 0.0;
|
||||
@ -305,7 +305,7 @@ impl Civs {
|
||||
),
|
||||
name: {
|
||||
let name = NameGen::location(&mut ctx.rng).generate();
|
||||
match ctx.rng.gen_range(0, 7) {
|
||||
match ctx.rng.gen_range(0..7) {
|
||||
0 => format!("{} Hole", name),
|
||||
1 => format!("{} Cavern", name),
|
||||
2 => format!("{} Hollow", name),
|
||||
@ -544,7 +544,7 @@ impl Civs {
|
||||
chunk.path.0.neighbors |=
|
||||
(1 << (to_prev_idx as u8)) | (1 << (to_next_idx as u8));
|
||||
chunk.path.0.offset =
|
||||
Vec2::new(ctx.rng.gen_range(-16, 17), ctx.rng.gen_range(-16, 17));
|
||||
Vec2::new(ctx.rng.gen_range(-16..17), ctx.rng.gen_range(-16..17));
|
||||
}
|
||||
|
||||
// Take note of the track
|
||||
@ -735,7 +735,7 @@ fn find_site_loc(
|
||||
let test_loc = loc.unwrap_or_else(|| match near {
|
||||
Some((origin, dist)) => {
|
||||
origin
|
||||
+ (Vec2::new(ctx.rng.gen_range(-1.0, 1.0), ctx.rng.gen_range(-1.0, 1.0))
|
||||
+ (Vec2::new(ctx.rng.gen_range(-1.0..1.0), ctx.rng.gen_range(-1.0..1.0))
|
||||
.try_normalized()
|
||||
.unwrap_or(Vec2::zero())
|
||||
* ctx.rng.gen::<f32>()
|
||||
@ -743,8 +743,8 @@ fn find_site_loc(
|
||||
.map(|e| e as i32)
|
||||
},
|
||||
None => Vec2::new(
|
||||
ctx.rng.gen_range(0, ctx.sim.get_size().x as i32),
|
||||
ctx.rng.gen_range(0, ctx.sim.get_size().y as i32),
|
||||
ctx.rng.gen_range(0..ctx.sim.get_size().x as i32),
|
||||
ctx.rng.gen_range(0..ctx.sim.get_size().y as i32),
|
||||
),
|
||||
});
|
||||
|
||||
|
@ -239,10 +239,10 @@ pub fn apply_caves_supplement<'a>(
|
||||
wpos2d.y as f32,
|
||||
cave_base as f32,
|
||||
))
|
||||
.with_body(match dynamic_rng.gen_range(0, 5) {
|
||||
.with_body(match dynamic_rng.gen_range(0..5) {
|
||||
0 => {
|
||||
is_hostile = false;
|
||||
let species = match dynamic_rng.gen_range(0, 4) {
|
||||
let species = match dynamic_rng.gen_range(0..4) {
|
||||
0 => comp::quadruped_small::Species::Truffler,
|
||||
1 => comp::quadruped_small::Species::Dodarock,
|
||||
2 => comp::quadruped_small::Species::Holladon,
|
||||
@ -252,7 +252,7 @@ pub fn apply_caves_supplement<'a>(
|
||||
},
|
||||
1 => {
|
||||
is_hostile = true;
|
||||
let species = match dynamic_rng.gen_range(0, 2) {
|
||||
let species = match dynamic_rng.gen_range(0..2) {
|
||||
0 => comp::quadruped_medium::Species::Tarasque,
|
||||
_ => comp::quadruped_medium::Species::Bonerattler,
|
||||
};
|
||||
@ -260,7 +260,7 @@ pub fn apply_caves_supplement<'a>(
|
||||
},
|
||||
2 => {
|
||||
is_hostile = true;
|
||||
let species = match dynamic_rng.gen_range(0, 3) {
|
||||
let species = match dynamic_rng.gen_range(0..3) {
|
||||
0 => comp::quadruped_low::Species::Rocksnapper,
|
||||
1 => comp::quadruped_low::Species::Lavadrake,
|
||||
_ => comp::quadruped_low::Species::Salamander,
|
||||
@ -269,7 +269,7 @@ pub fn apply_caves_supplement<'a>(
|
||||
},
|
||||
3 => {
|
||||
is_hostile = true;
|
||||
let species = match dynamic_rng.gen_range(0, 5) {
|
||||
let species = match dynamic_rng.gen_range(0..5) {
|
||||
0 => comp::theropod::Species::Sandraptor,
|
||||
1 => comp::theropod::Species::Snowraptor,
|
||||
2 => comp::theropod::Species::Woodraptor,
|
||||
@ -280,7 +280,7 @@ pub fn apply_caves_supplement<'a>(
|
||||
},
|
||||
_ => {
|
||||
is_hostile = true;
|
||||
let species = match dynamic_rng.gen_range(0, 4) {
|
||||
let species = match dynamic_rng.gen_range(0..4) {
|
||||
0 => comp::biped_large::Species::Ogre,
|
||||
1 => comp::biped_large::Species::Cyclops,
|
||||
2 => comp::biped_large::Species::Wendigo,
|
||||
|
@ -41,7 +41,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 3) {
|
||||
.with_body(match rng.gen_range(0..3) {
|
||||
0 => quadruped_medium::Body::random_with(
|
||||
rng,
|
||||
&quadruped_medium::Species::Frostfang,
|
||||
@ -71,7 +71,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 2) {
|
||||
.with_body(match rng.gen_range(0..2) {
|
||||
0 => {
|
||||
theropod::Body::random_with(rng, &theropod::Species::Snowraptor).into()
|
||||
},
|
||||
@ -150,7 +150,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 5) {
|
||||
.with_body(match rng.gen_range(0..5) {
|
||||
0 => {
|
||||
bird_medium::Body::random_with(rng, &bird_medium::Species::Eagle).into()
|
||||
},
|
||||
@ -195,7 +195,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 3) {
|
||||
.with_body(match rng.gen_range(0..3) {
|
||||
0 => quadruped_medium::Body::random_with(
|
||||
rng,
|
||||
&quadruped_medium::Species::Tarasque,
|
||||
@ -222,7 +222,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 11) {
|
||||
.with_body(match rng.gen_range(0..11) {
|
||||
0 => quadruped_medium::Body::random_with(
|
||||
rng,
|
||||
&quadruped_medium::Species::Deer,
|
||||
@ -288,7 +288,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 13) {
|
||||
.with_body(match rng.gen_range(0..13) {
|
||||
0 => quadruped_small::Body {
|
||||
species: quadruped_small::Species::Fox,
|
||||
body_type: quadruped_small::BodyType::Male,
|
||||
@ -365,7 +365,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 3) {
|
||||
.with_body(match rng.gen_range(0..3) {
|
||||
0 => {
|
||||
biped_large::Body::random_with(rng, &biped_large::Species::Ogre).into()
|
||||
},
|
||||
@ -385,7 +385,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 3) {
|
||||
.with_body(match rng.gen_range(0..3) {
|
||||
0 => quadruped_small::Body::random_with(
|
||||
rng,
|
||||
&quadruped_small::Species::Beaver,
|
||||
@ -457,7 +457,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 2) {
|
||||
.with_body(match rng.gen_range(0..2) {
|
||||
0 => {
|
||||
quadruped_low::Body::random_with(rng, &quadruped_low::Species::Maneater)
|
||||
.into()
|
||||
@ -483,7 +483,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 4) {
|
||||
.with_body(match rng.gen_range(0..4) {
|
||||
0 => theropod::Body::random_with(rng, &theropod::Species::Odonto).into(),
|
||||
1 => {
|
||||
biped_large::Body::random_with(rng, &biped_large::Species::Mightysaurok)
|
||||
@ -511,7 +511,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 4) {
|
||||
.with_body(match rng.gen_range(0..4) {
|
||||
0 => bird_medium::Body::random_with(rng, &bird_medium::Species::Parrot)
|
||||
.into(),
|
||||
1 => {
|
||||
@ -561,7 +561,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 3) {
|
||||
.with_body(match rng.gen_range(0..3) {
|
||||
0 => {
|
||||
quadruped_small::Body::random_with(rng, &quadruped_small::Species::Frog)
|
||||
.into()
|
||||
@ -594,7 +594,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 2) {
|
||||
.with_body(match rng.gen_range(0..2) {
|
||||
0 => quadruped_medium::Body::random_with(
|
||||
rng,
|
||||
&quadruped_medium::Species::Lion,
|
||||
@ -621,7 +621,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 2) {
|
||||
.with_body(match rng.gen_range(0..2) {
|
||||
0 => quadruped_medium::Body::random_with(
|
||||
rng,
|
||||
&quadruped_medium::Species::Zebra,
|
||||
@ -648,7 +648,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 2) {
|
||||
.with_body(match rng.gen_range(0..2) {
|
||||
0 => quadruped_medium::Body::random_with(
|
||||
rng,
|
||||
&quadruped_medium::Species::Bonerattler,
|
||||
@ -678,7 +678,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 2) {
|
||||
.with_body(match rng.gen_range(0..2) {
|
||||
0 => quadruped_low::Body::random_with(
|
||||
rng,
|
||||
&quadruped_low::Species::Lavadrake,
|
||||
@ -744,7 +744,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 6) {
|
||||
.with_body(match rng.gen_range(0..6) {
|
||||
0 => quadruped_small::Body::random_with(
|
||||
rng,
|
||||
&quadruped_small::Species::Holladon,
|
||||
@ -787,7 +787,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
Entry {
|
||||
make_entity: |pos, rng| {
|
||||
EntityInfo::at(pos)
|
||||
.with_body(match rng.gen_range(0, 2) {
|
||||
.with_body(match rng.gen_range(0..2) {
|
||||
0 => fish_medium::Body::random_with(rng, &fish_medium::Species::Marlin)
|
||||
.into(),
|
||||
_ => fish_small::Body::random_with(rng, &fish_small::Species::Clownfish)
|
||||
@ -859,7 +859,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>(
|
||||
})
|
||||
})
|
||||
{
|
||||
let group_size = dynamic_rng.gen_range(group_size.start, group_size.end);
|
||||
let group_size = dynamic_rng.gen_range(group_size.start..group_size.end);
|
||||
let entity = make_entity(
|
||||
Vec3::new(wpos2d.x, wpos2d.y, alt + solid_end).map(|e| e as f32),
|
||||
dynamic_rng,
|
||||
|
@ -61,16 +61,16 @@ impl Castle {
|
||||
pub fn generate(wpos: Vec2<i32>, sim: Option<&mut WorldSim>, rng: &mut impl Rng) -> Self {
|
||||
let ctx = GenCtx { sim, rng };
|
||||
|
||||
let boundary_towers = ctx.rng.gen_range(5, 10);
|
||||
let keep_count = ctx.rng.gen_range(1, 4);
|
||||
let boundary_noise = ctx.rng.gen_range(-2i32, 8).max(1) as f32;
|
||||
let boundary_towers = ctx.rng.gen_range(5..10);
|
||||
let keep_count = ctx.rng.gen_range(1..4);
|
||||
let boundary_noise = ctx.rng.gen_range(-2i32..8).max(1) as f32;
|
||||
|
||||
let radius = 150;
|
||||
|
||||
let this = Self {
|
||||
name: {
|
||||
let name = NameGen::location(ctx.rng).generate();
|
||||
match ctx.rng.gen_range(0, 6) {
|
||||
match ctx.rng.gen_range(0..6) {
|
||||
0 => format!("Fort {}", name),
|
||||
1 => format!("{} Citadel", name),
|
||||
2 => format!("{} Castle", name),
|
||||
@ -108,7 +108,7 @@ impl Castle {
|
||||
break;
|
||||
}
|
||||
offset = (dir * dist)
|
||||
.map(|e| (e + ctx.rng.gen_range(-1.0, 1.0) * i as f32) as i32);
|
||||
.map(|e| (e + ctx.rng.gen_range(-1.0..1.0) * i as f32) as i32);
|
||||
}
|
||||
|
||||
Tower {
|
||||
@ -133,9 +133,9 @@ impl Castle {
|
||||
let dist =
|
||||
(radius as f32 + ((angle * boundary_noise).sin() - 1.0) * 40.0) * 0.3;
|
||||
|
||||
let locus = ctx.rng.gen_range(20, 26);
|
||||
let locus = ctx.rng.gen_range(20..26);
|
||||
let offset = (dir * dist).map(|e| e as i32);
|
||||
let storeys = ctx.rng.gen_range(1, 8).clamped(3, 5);
|
||||
let storeys = ctx.rng.gen_range(1..8).clamped(3, 5);
|
||||
|
||||
Keep {
|
||||
offset,
|
||||
|
@ -54,12 +54,12 @@ impl Dungeon {
|
||||
#[allow(clippy::let_and_return)] // TODO: Pending review in #587
|
||||
pub fn generate(wpos: Vec2<i32>, sim: Option<&WorldSim>, rng: &mut impl Rng) -> Self {
|
||||
let mut ctx = GenCtx { sim, rng };
|
||||
let difficulty = ctx.rng.gen_range(0, 6);
|
||||
let difficulty = ctx.rng.gen_range(0..6);
|
||||
let floors = 3 + difficulty / 2;
|
||||
let this = Self {
|
||||
name: {
|
||||
let name = NameGen::location(ctx.rng).generate();
|
||||
match ctx.rng.gen_range(0, 5) {
|
||||
match ctx.rng.gen_range(0..5) {
|
||||
0 => format!("{} Dungeon", name),
|
||||
1 => format!("{} Lair", name),
|
||||
2 => format!("{} Crib", name),
|
||||
@ -276,7 +276,7 @@ impl Floor {
|
||||
Vec2::zero()
|
||||
} else {
|
||||
std::iter::from_fn(|| {
|
||||
Some(FLOOR_SIZE.map(|sz| ctx.rng.gen_range(-sz / 2 + 2, sz / 2 - 1)))
|
||||
Some(FLOOR_SIZE.map(|sz| ctx.rng.gen_range(-sz / 2 + 2..sz / 2 - 1)))
|
||||
})
|
||||
.filter(|pos| *pos != stair_tile)
|
||||
.take(8)
|
||||
@ -375,9 +375,9 @@ impl Floor {
|
||||
|
||||
for _ in 0..n {
|
||||
let area = match attempt(64, || {
|
||||
let sz = Vec2::<i32>::zero().map(|_| ctx.rng.gen_range(dim_limits.0, dim_limits.1));
|
||||
let sz = Vec2::<i32>::zero().map(|_| ctx.rng.gen_range(dim_limits.0..dim_limits.1));
|
||||
let pos = FLOOR_SIZE.map2(sz, |floor_sz, room_sz| {
|
||||
ctx.rng.gen_range(0, floor_sz + 1 - room_sz)
|
||||
ctx.rng.gen_range(0..floor_sz + 1 - room_sz)
|
||||
});
|
||||
let area = Rect::from((pos, Extent2::from(sz)));
|
||||
let area_border = Rect::from((pos - 1, Extent2::from(sz) + 2)); // The room, but with some personal space
|
||||
@ -398,7 +398,7 @@ impl Floor {
|
||||
};
|
||||
let mut dynamic_rng = rand::thread_rng();
|
||||
|
||||
match dynamic_rng.gen_range(0, 5) {
|
||||
match dynamic_rng.gen_range(0..5) {
|
||||
0 => self.create_room(Room {
|
||||
seed: ctx.rng.gen(),
|
||||
loot_density: 0.000025 + level as f32 * 0.00015,
|
||||
@ -406,7 +406,7 @@ impl Floor {
|
||||
miniboss: true,
|
||||
boss: false,
|
||||
area,
|
||||
height: ctx.rng.gen_range(15, 20),
|
||||
height: ctx.rng.gen_range(15..20),
|
||||
pillars: Some(4),
|
||||
difficulty: self.difficulty,
|
||||
}),
|
||||
@ -417,8 +417,8 @@ impl Floor {
|
||||
miniboss: false,
|
||||
boss: false,
|
||||
area,
|
||||
height: ctx.rng.gen_range(10, 15),
|
||||
pillars: if ctx.rng.gen_range(0, 4) == 0 {
|
||||
height: ctx.rng.gen_range(10..15),
|
||||
pillars: if ctx.rng.gen_range(0..4) == 0 {
|
||||
Some(4)
|
||||
} else {
|
||||
None
|
||||
@ -490,8 +490,8 @@ impl Floor {
|
||||
|
||||
if area.contains_point(stair_rcenter.xy()) {
|
||||
let offs = Vec2::new(
|
||||
dynamic_rng.gen_range(-1.0, 1.0),
|
||||
dynamic_rng.gen_range(-1.0, 1.0),
|
||||
dynamic_rng.gen_range(-1.0..1.0),
|
||||
dynamic_rng.gen_range(-1.0..1.0),
|
||||
)
|
||||
.try_normalized()
|
||||
.unwrap_or_else(Vec2::unit_y)
|
||||
@ -529,35 +529,35 @@ impl Floor {
|
||||
|
||||
if room
|
||||
.enemy_density
|
||||
.map(|density| dynamic_rng.gen_range(0, density.recip() as usize) == 0)
|
||||
.map(|density| dynamic_rng.gen_range(0..density.recip() as usize) == 0)
|
||||
.unwrap_or(false)
|
||||
&& !tile_is_pillar
|
||||
{
|
||||
// Bad
|
||||
let chosen = match room.difficulty {
|
||||
0 => {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0, 4) {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.loot_table_humanoids",
|
||||
1 => "common.loot_tables.loot_table_armor_cloth",
|
||||
_ => "common.loot_tables.loot_table_weapon_common",
|
||||
})
|
||||
},
|
||||
1 => {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0, 4) {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.loot_table_humanoids",
|
||||
1 => "common.loot_tables.loot_table_armor_light",
|
||||
_ => "common.loot_tables.loot_table_weapon_uncommon",
|
||||
})
|
||||
},
|
||||
2 => {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0, 4) {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.loot_table_humanoids",
|
||||
1 => "common.loot_tables.loot_table_armor_heavy",
|
||||
_ => "common.loot_tables.loot_table_weapon_rare",
|
||||
})
|
||||
},
|
||||
3 => {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0, 10) {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..10) {
|
||||
0 => "common.loot_tables.loot_table_humanoids",
|
||||
1 => "common.loot_tables.loot_table_armor_heavy",
|
||||
2 => "common.loot_tables.loot_table_weapon_rare",
|
||||
@ -565,7 +565,7 @@ impl Floor {
|
||||
})
|
||||
},
|
||||
4 => {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0, 6) {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.loot_tables.loot_table_humanoids",
|
||||
1 => "common.loot_tables.loot_table_armor_misc",
|
||||
2 => "common.loot_tables.loot_table_weapon_rare",
|
||||
@ -573,7 +573,7 @@ impl Floor {
|
||||
})
|
||||
},
|
||||
5 => {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0, 5) {
|
||||
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..5) {
|
||||
0 => "common.loot_tables.loot_table_humanoids",
|
||||
1 => "common.loot_tables.loot_table_armor_misc",
|
||||
2 => "common.loot_tables.loot_table_weapon_rare",
|
||||
@ -602,10 +602,7 @@ impl Floor {
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::CultistAcolyte)
|
||||
.with_skillset_config(common::skillset_builder::SkillSetConfig::CultistAcolyte)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_level(dynamic_rng.gen_range(
|
||||
(room.difficulty as f32).powf(1.25) + 3.0,
|
||||
(room.difficulty as f32).powf(1.5) + 4.0,
|
||||
).round() as u16);
|
||||
.with_level(dynamic_rng.gen_range((room.difficulty as f32).powf(1.25) + 3.0..(room.difficulty as f32).powf(1.5) + 4.0).round() as u16);
|
||||
let entity = match room.difficulty {
|
||||
0 => entity
|
||||
.with_name("Outcast")
|
||||
@ -615,7 +612,7 @@ impl Floor {
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 6) {
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.starter_axe",
|
||||
1 => "common.items.weapons.sword.starter_sword",
|
||||
2 => "common.items.weapons.sword.starter_sword",
|
||||
@ -632,7 +629,7 @@ impl Floor {
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 6) {
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.worn_iron_axe-0",
|
||||
1 => "common.items.weapons.sword.zweihander_sword_0",
|
||||
2 => "common.items.weapons.sword.zweihander_sword_0",
|
||||
@ -649,7 +646,7 @@ impl Floor {
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 6) {
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.bronze_axe-0",
|
||||
1 => "common.items.weapons.sword.greatsword_2h_simple-0",
|
||||
2 => "common.items.weapons.sword.cultist_purp_2h-0",
|
||||
@ -666,7 +663,7 @@ impl Floor {
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 6) {
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.steel_axe-0",
|
||||
1 => "common.items.weapons.sword.long_2h_orn-0",
|
||||
2 => "common.items.weapons.sword.long_2h_orn-0",
|
||||
@ -683,7 +680,7 @@ impl Floor {
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 6) {
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.malachite_axe-0",
|
||||
1 => "common.items.weapons.sword.cultist_purp_2h-0",
|
||||
2 => "common.items.weapons.sword.cultist_purp_2h-0",
|
||||
@ -692,7 +689,7 @@ impl Floor {
|
||||
_ => "common.items.weapons.bow.horn_longbow-0",
|
||||
},
|
||||
)),
|
||||
5 => match dynamic_rng.gen_range(0, 6) {
|
||||
5 => match dynamic_rng.gen_range(0..6) {
|
||||
0 => entity
|
||||
.with_name("Cultist Warlock")
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Warlock)
|
||||
@ -711,7 +708,7 @@ impl Floor {
|
||||
)
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 5) {
|
||||
match dynamic_rng.gen_range(0..5) {
|
||||
0 => "common.items.weapons.axe.malachite_axe-0",
|
||||
1 => "common.items.weapons.sword.cultist_purp_2h-0",
|
||||
2 => "common.items.weapons.sword.cultist_purp_2h-0",
|
||||
@ -783,7 +780,7 @@ impl Floor {
|
||||
)
|
||||
.with_scale(2.0)
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 6) {
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.worn_iron_axe-0",
|
||||
1 => {
|
||||
"common.items.weapons.sword.zweihander_sword_0"
|
||||
@ -832,7 +829,7 @@ impl Floor {
|
||||
)
|
||||
.with_scale(2.0)
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 6) {
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.steel_axe-0",
|
||||
1 => "common.items.weapons.sword.long_2h_orn-0",
|
||||
2 => "common.items.weapons.sword.long_2h_orn-0",
|
||||
@ -856,7 +853,7 @@ impl Floor {
|
||||
)
|
||||
.with_scale(2.0)
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 6) {
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.malachite_axe-0",
|
||||
1 => "common.items.weapons.sword.cultist_purp_2h-0",
|
||||
2 => "common.items.weapons.sword.cultist_purp_2h-0",
|
||||
@ -909,8 +906,8 @@ impl Floor {
|
||||
.with_level(
|
||||
dynamic_rng
|
||||
.gen_range(
|
||||
(room.difficulty as f32).powf(1.25) + 3.0,
|
||||
(room.difficulty as f32).powf(1.5) + 4.0,
|
||||
(room.difficulty as f32).powf(1.25) + 3.0
|
||||
..(room.difficulty as f32).powf(1.5) + 4.0,
|
||||
)
|
||||
.round()
|
||||
as u16
|
||||
@ -1011,7 +1008,7 @@ impl Floor {
|
||||
)
|
||||
.with_scale(2.0)
|
||||
.with_main_tool(comp::Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 6) {
|
||||
match dynamic_rng.gen_range(0..6) {
|
||||
0 => "common.items.weapons.axe.malachite_axe-0",
|
||||
1 => "common.items.weapons.sword.cultist_purp_2h-0",
|
||||
2 => "common.items.weapons.sword.cultist_purp_2h-0",
|
||||
@ -1081,8 +1078,8 @@ impl Floor {
|
||||
.with_level(
|
||||
dynamic_rng
|
||||
.gen_range(
|
||||
(room.difficulty as f32).powf(1.25) + 3.0,
|
||||
(room.difficulty as f32).powf(1.5) + 4.0,
|
||||
(room.difficulty as f32).powf(1.25) + 3.0
|
||||
..(room.difficulty as f32).powf(1.5) + 4.0,
|
||||
)
|
||||
.round()
|
||||
as u16
|
||||
|
@ -10,7 +10,7 @@ pub struct NameGen<'a, R: Rng> {
|
||||
impl<'a, R: Rng> NameGen<'a, R> {
|
||||
pub fn location(rng: &'a mut R) -> Self {
|
||||
Self {
|
||||
approx_syllables: rng.gen_range(1, 4),
|
||||
approx_syllables: rng.gen_range(1..4),
|
||||
rng,
|
||||
}
|
||||
}
|
||||
|
@ -151,23 +151,23 @@ impl Attr {
|
||||
pub fn generate<R: Rng>(rng: &mut R, _locus: i32) -> Self {
|
||||
Self {
|
||||
central_supports: rng.gen(),
|
||||
storey_fill: match rng.gen_range(0, 2) {
|
||||
storey_fill: match rng.gen_range(0..2) {
|
||||
//0 => StoreyFill::None,
|
||||
0 => StoreyFill::Upper,
|
||||
_ => StoreyFill::All,
|
||||
},
|
||||
roof_style: match rng.gen_range(0, 3) {
|
||||
roof_style: match rng.gen_range(0..3) {
|
||||
0 => RoofStyle::Hip,
|
||||
1 => RoofStyle::Gable,
|
||||
_ => RoofStyle::Rounded,
|
||||
},
|
||||
mansard: rng.gen_range(-7, 4).max(0),
|
||||
pillar: match rng.gen_range(0, 4) {
|
||||
0 => Pillar::Chimney(rng.gen_range(2, 6)),
|
||||
mansard: rng.gen_range(-7..4).max(0),
|
||||
pillar: match rng.gen_range(0..4) {
|
||||
0 => Pillar::Chimney(rng.gen_range(2..6)),
|
||||
_ => Pillar::None,
|
||||
},
|
||||
levels: rng.gen_range(1, 3),
|
||||
window: match rng.gen_range(0, 4) {
|
||||
levels: rng.gen_range(1..3),
|
||||
window: match rng.gen_range(0..4) {
|
||||
0 => SpriteKind::Window1,
|
||||
1 => SpriteKind::Window2,
|
||||
2 => SpriteKind::Window3,
|
||||
@ -181,21 +181,21 @@ impl Archetype for House {
|
||||
type Attr = Attr;
|
||||
|
||||
fn generate<R: Rng>(rng: &mut R) -> (Self, Skeleton<Self::Attr>) {
|
||||
let len = rng.gen_range(-8, 24).clamped(0, 20);
|
||||
let locus = 6 + rng.gen_range(0, 5);
|
||||
let len = rng.gen_range(-8..24).clamped(0, 20);
|
||||
let locus = 6 + rng.gen_range(0..5);
|
||||
let branches_per_side = 1 + len as usize / 20;
|
||||
let levels = rng.gen_range(1, 3);
|
||||
let levels = rng.gen_range(1..3);
|
||||
let skel = Skeleton {
|
||||
offset: -rng.gen_range(0, len + 7).clamped(0, len),
|
||||
offset: -rng.gen_range(0..len + 7).clamped(0, len),
|
||||
ori: if rng.gen() { Ori::East } else { Ori::North },
|
||||
root: Branch {
|
||||
len,
|
||||
attr: Attr {
|
||||
storey_fill: StoreyFill::All,
|
||||
mansard: 0,
|
||||
pillar: match rng.gen_range(0, 3) {
|
||||
0 => Pillar::Chimney(rng.gen_range(2, 6)),
|
||||
1 => Pillar::Tower(5 + rng.gen_range(1, 5)),
|
||||
pillar: match rng.gen_range(0..3) {
|
||||
0 => Pillar::Chimney(rng.gen_range(2..6)),
|
||||
1 => Pillar::Tower(5 + rng.gen_range(1..5)),
|
||||
_ => Pillar::None,
|
||||
},
|
||||
levels,
|
||||
@ -212,12 +212,12 @@ impl Archetype for House {
|
||||
Some((
|
||||
i as i32 * len / (branches_per_side - 1).max(1) as i32,
|
||||
Branch {
|
||||
len: rng.gen_range(8, 16) * flip,
|
||||
len: rng.gen_range(8..16) * flip,
|
||||
attr: Attr {
|
||||
levels: rng.gen_range(1, 4).min(levels),
|
||||
levels: rng.gen_range(1..4).min(levels),
|
||||
..Attr::generate(rng, locus)
|
||||
},
|
||||
locus: (6 + rng.gen_range(0, 3)).min(locus),
|
||||
locus: (6 + rng.gen_range(0..3)).min(locus),
|
||||
border: 4,
|
||||
children: Vec::new(),
|
||||
},
|
||||
@ -544,7 +544,7 @@ impl Archetype for House {
|
||||
2 => SpriteKind::ChairDouble,
|
||||
3 => SpriteKind::CoatRack,
|
||||
4 => {
|
||||
if dynamic_rng.gen_range(0, 8) == 0 {
|
||||
if dynamic_rng.gen_range(0..8) == 0 {
|
||||
SpriteKind::Chest
|
||||
} else {
|
||||
SpriteKind::Crate
|
||||
@ -555,14 +555,14 @@ impl Archetype for House {
|
||||
8 => SpriteKind::TableSide,
|
||||
9 => SpriteKind::WardrobeSingle,
|
||||
10 => {
|
||||
if dynamic_rng.gen_range(0, 10) == 0 {
|
||||
if dynamic_rng.gen_range(0..10) == 0 {
|
||||
SpriteKind::PotionMinor
|
||||
} else {
|
||||
SpriteKind::VialEmpty
|
||||
}
|
||||
},
|
||||
_ => {
|
||||
if dynamic_rng.gen_range(0, 2) == 0 {
|
||||
if dynamic_rng.gen_range(0..2) == 0 {
|
||||
SpriteKind::Bowl
|
||||
} else {
|
||||
SpriteKind::Pot
|
||||
|
@ -57,10 +57,10 @@ impl Archetype for Keep {
|
||||
type Attr = Attr;
|
||||
|
||||
fn generate<R: Rng>(rng: &mut R) -> (Self, Skeleton<Self::Attr>) {
|
||||
let len = rng.gen_range(-8, 24).max(0);
|
||||
let storeys = rng.gen_range(1, 3);
|
||||
let len = rng.gen_range(-8..24).max(0);
|
||||
let storeys = rng.gen_range(1..3);
|
||||
let skel = Skeleton {
|
||||
offset: -rng.gen_range(0, len + 7).clamped(0, len),
|
||||
offset: -rng.gen_range(0..len + 7).clamped(0, len),
|
||||
ori: if rng.gen() { Ori::East } else { Ori::North },
|
||||
root: Branch {
|
||||
len,
|
||||
@ -72,23 +72,23 @@ impl Archetype for Keep {
|
||||
rounded: true,
|
||||
has_doors: true,
|
||||
},
|
||||
locus: 10 + rng.gen_range(0, 5),
|
||||
locus: 10 + rng.gen_range(0..5),
|
||||
border: 3,
|
||||
children: (0..1)
|
||||
.map(|_| {
|
||||
(
|
||||
rng.gen_range(-5, len + 5).clamped(0, len.max(1) - 1),
|
||||
rng.gen_range(-5..len + 5).clamped(0, len.max(1) - 1),
|
||||
Branch {
|
||||
len: 0,
|
||||
attr: Attr {
|
||||
storeys: storeys + rng.gen_range(1, 3),
|
||||
storeys: storeys + rng.gen_range(1..3),
|
||||
is_tower: true,
|
||||
flag: true,
|
||||
ridged: false,
|
||||
rounded: true,
|
||||
has_doors: false,
|
||||
},
|
||||
locus: 6 + rng.gen_range(0, 3),
|
||||
locus: 6 + rng.gen_range(0..3),
|
||||
border: 3,
|
||||
children: Vec::new(),
|
||||
},
|
||||
|
@ -212,7 +212,7 @@ impl Settlement {
|
||||
let cpos = wpos.map(|e| e.div_euclid(TerrainChunkSize::RECT_SIZE.x as i32));
|
||||
!sim.can_host_settlement(cpos)
|
||||
})
|
||||
|| rng.gen_range(0, 16) == 0
|
||||
|| rng.gen_range(0..16) == 0
|
||||
// Randomly consider some tiles inaccessible
|
||||
{
|
||||
self.land.set(tile, hazard);
|
||||
@ -225,7 +225,7 @@ impl Settlement {
|
||||
let river_dir = Vec2::new(rng.gen::<f32>() - 0.5, rng.gen::<f32>() - 0.5).normalized();
|
||||
let radius = 500.0 + rng.gen::<f32>().powi(2) * 1000.0;
|
||||
let river = self.land.new_plot(Plot::Water);
|
||||
let river_offs = Vec2::new(rng.gen_range(-3, 4), rng.gen_range(-3, 4));
|
||||
let river_offs = Vec2::new(rng.gen_range(-3..4), rng.gen_range(-3..4));
|
||||
|
||||
for x in (0..100).map(|e| e as f32 / 100.0) {
|
||||
let theta0 = x as f32 * f32::consts::PI * 2.0;
|
||||
@ -293,7 +293,7 @@ impl Settlement {
|
||||
pub fn place_town(&mut self, ctx: &mut GenCtx<impl Rng>) {
|
||||
const PLOT_COUNT: usize = 3;
|
||||
|
||||
let mut origin = Vec2::new(ctx.rng.gen_range(-2, 3), ctx.rng.gen_range(-2, 3));
|
||||
let mut origin = Vec2::new(ctx.rng.gen_range(-2..3), ctx.rng.gen_range(-2..3));
|
||||
|
||||
for i in 0..PLOT_COUNT {
|
||||
if let Some(base_tile) = self.land.find_tile_near(origin, |plot| {
|
||||
@ -386,12 +386,12 @@ impl Settlement {
|
||||
.take(16usize.pow(2))
|
||||
{
|
||||
// This is a stupid way to decide how to place buildings
|
||||
for i in 0..ctx.rng.gen_range(2, 5) {
|
||||
for i in 0..ctx.rng.gen_range(2..5) {
|
||||
for _ in 0..25 {
|
||||
let house_pos = tile.map(|e| e * AREA_SIZE as i32 + AREA_SIZE as i32 / 2)
|
||||
+ Vec2::<i32>::zero().map(|_| {
|
||||
ctx.rng
|
||||
.gen_range(-(AREA_SIZE as i32) / 4, AREA_SIZE as i32 / 4)
|
||||
.gen_range(-(AREA_SIZE as i32) / 4..AREA_SIZE as i32 / 4)
|
||||
});
|
||||
|
||||
let tile_pos = house_pos.map(|e| e.div_euclid(AREA_SIZE as i32));
|
||||
@ -470,10 +470,10 @@ impl Settlement {
|
||||
//self.land.set(base_tile, farmhouse);
|
||||
|
||||
// Farmhouses
|
||||
// for _ in 0..ctx.rng.gen_range(1, 3) {
|
||||
// for _ in 0..ctx.rng.gen_range(1..3) {
|
||||
// let house_pos = base_tile.map(|e| e * AREA_SIZE as i32 + AREA_SIZE as i32
|
||||
// / 2) + Vec2::new(ctx.rng.gen_range(-16, 16),
|
||||
// ctx.rng.gen_range(-16, 16));
|
||||
// / 2) + Vec2::new(ctx.rng.gen_range(-16..16),
|
||||
// ctx.rng.gen_range(-16..16));
|
||||
|
||||
// self.structures.push(Structure {
|
||||
// kind: StructureKind::House(HouseBuilding::generate(ctx.rng,
|
||||
@ -508,7 +508,7 @@ impl Settlement {
|
||||
let field = self.land.new_plot(Plot::Field {
|
||||
farm,
|
||||
seed: rng.gen(),
|
||||
crop: match rng.gen_range(0, 8) {
|
||||
crop: match rng.gen_range(0..8) {
|
||||
0 => Crop::Corn,
|
||||
1 => Crop::Wheat,
|
||||
2 => Crop::Cabbage,
|
||||
@ -522,7 +522,7 @@ impl Settlement {
|
||||
});
|
||||
let tiles =
|
||||
self.land
|
||||
.grow_from(center, rng.gen_range(5, MAX_FIELD_SIZE), rng, |plot| {
|
||||
.grow_from(center, rng.gen_range(5..MAX_FIELD_SIZE), rng, |plot| {
|
||||
plot.is_none()
|
||||
});
|
||||
for pos in tiles.into_iter() {
|
||||
@ -881,13 +881,13 @@ impl Settlement {
|
||||
let is_dummy =
|
||||
RandomField::new(self.seed + 1).chance(Vec3::from(wpos2d), 1.0 / 15.0);
|
||||
let entity = EntityInfo::at(entity_wpos)
|
||||
.with_body(match dynamic_rng.gen_range(0, 5) {
|
||||
.with_body(match dynamic_rng.gen_range(0..5) {
|
||||
_ if is_dummy => {
|
||||
is_human = false;
|
||||
object::Body::TrainingDummy.into()
|
||||
},
|
||||
0 => {
|
||||
let species = match dynamic_rng.gen_range(0, 3) {
|
||||
let species = match dynamic_rng.gen_range(0..3) {
|
||||
0 => quadruped_small::Species::Pig,
|
||||
1 => quadruped_small::Species::Sheep,
|
||||
_ => quadruped_small::Species::Cat,
|
||||
@ -899,7 +899,7 @@ impl Settlement {
|
||||
))
|
||||
},
|
||||
1 => {
|
||||
let species = match dynamic_rng.gen_range(0, 4) {
|
||||
let species = match dynamic_rng.gen_range(0..4) {
|
||||
0 => bird_medium::Species::Duck,
|
||||
1 => bird_medium::Species::Chicken,
|
||||
2 => bird_medium::Species::Goose,
|
||||
@ -927,20 +927,20 @@ impl Settlement {
|
||||
.do_if(!is_dummy, |e| e.with_automatic_name())
|
||||
.do_if(is_dummy, |e| e.with_name("Training Dummy"))
|
||||
.do_if(is_human && dynamic_rng.gen(), |entity| {
|
||||
match dynamic_rng.gen_range(0, 5) {
|
||||
match dynamic_rng.gen_range(0..5) {
|
||||
0 => entity
|
||||
.with_main_tool(Item::new_from_asset_expect(
|
||||
"common.items.weapons.sword.greatsword_2h_simple-0",
|
||||
))
|
||||
.with_name("Guard")
|
||||
.with_level(dynamic_rng.gen_range(10, 15))
|
||||
.with_level(dynamic_rng.gen_range(10..15))
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::Guard)
|
||||
.with_skillset_config(
|
||||
common::skillset_builder::SkillSetConfig::Guard,
|
||||
),
|
||||
_ => entity
|
||||
.with_main_tool(Item::new_from_asset_expect(
|
||||
match dynamic_rng.gen_range(0, 7) {
|
||||
match dynamic_rng.gen_range(0..7) {
|
||||
0 => "common.items.npc_weapons.tool.broom",
|
||||
1 => "common.items.npc_weapons.tool.hoe",
|
||||
2 => "common.items.npc_weapons.tool.pickaxe",
|
||||
|
@ -73,10 +73,10 @@ fn gen_plot(aabr: Aabr<i32>, ctx: &mut GenCtx<impl Rng>) -> Plot {
|
||||
if aabr.size().product() <= 9 {
|
||||
Plot::District
|
||||
} else if aabr.size().w < aabr.size().h {
|
||||
let [a, b] = aabr.split_at_y(aabr.min.y + ctx.rng.gen_range(1, aabr.size().h));
|
||||
let [a, b] = aabr.split_at_y(aabr.min.y + ctx.rng.gen_range(1..aabr.size().h));
|
||||
Plot::Parent(vec![(a, gen_plot(a, ctx)), (b, gen_plot(b, ctx))])
|
||||
} else {
|
||||
let [a, b] = aabr.split_at_x(aabr.min.x + ctx.rng.gen_range(1, aabr.size().w));
|
||||
let [a, b] = aabr.split_at_x(aabr.min.x + ctx.rng.gen_range(1..aabr.size().w));
|
||||
Plot::Parent(vec![(a, gen_plot(a, ctx)), (b, gen_plot(b, ctx))])
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user