Fixing loot tables

- Use quad_low and quad_medium loot table for corresponding mobs in
dungeons
- Remove cultist loot table from T3-T4 loot tables
- Use resize instead of vec[obj; len] to create different loot and not
duplicated for miniboss_1
This commit is contained in:
juliancoffee 2021-05-21 11:20:37 +03:00
parent e48e3e11ba
commit df58fa9acf
3 changed files with 13 additions and 13 deletions

View File

@ -2,5 +2,4 @@
(1.0, LootTable("common.loot_tables.humanoids")), (1.0, LootTable("common.loot_tables.humanoids")),
(1.0, LootTable("common.loot_tables.armor.steel")), (1.0, LootTable("common.loot_tables.armor.steel")),
(1.0, LootTable("common.loot_tables.weapons.tier-3")), (1.0, LootTable("common.loot_tables.weapons.tier-3")),
(3.0, LootTable("common.loot_tables.cultists")),
] ]

View File

@ -1,5 +1,5 @@
[ [
(1.0, LootTable("common.loot_tables.humanoids")), (1.0, LootTable("common.loot_tables.humanoids")),
(1.0, LootTable("common.loot_tables.armor.steel")),
(1.0, LootTable("common.loot_tables.weapons.tier-4")), (1.0, LootTable("common.loot_tables.weapons.tier-4")),
(5.0, LootTable("common.loot_tables.cultists")),
] ]

View File

@ -1220,7 +1220,7 @@ fn boss_fallback(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<Ent
} }
fn mini_boss_0(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> { fn mini_boss_0(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> {
let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.weapons.tier-0"); let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_medium.default");
vec![ vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32)) EntityInfo::at(tile_wcenter.map(|e| e as f32))
.with_body(comp::Body::QuadrupedMedium( .with_body(comp::Body::QuadrupedMedium(
@ -1235,8 +1235,9 @@ fn mini_boss_0(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<Entit
} }
fn mini_boss_1(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> { fn mini_boss_1(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> {
let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.weapons.tier-1"); let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_medium.default");
vec![ let mut entities = Vec::new();
entities.resize_with(3, || {
EntityInfo::at(tile_wcenter.map(|e| e as f32)) EntityInfo::at(tile_wcenter.map(|e| e as f32))
.with_body(comp::Body::QuadrupedMedium( .with_body(comp::Body::QuadrupedMedium(
comp::quadruped_medium::Body::random_with( comp::quadruped_medium::Body::random_with(
@ -1245,13 +1246,13 @@ fn mini_boss_1(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<Entit
), ),
)) ))
.with_name("Bonerattler".to_string()) .with_name("Bonerattler".to_string())
.with_loot_drop(chosen.read().choose().to_item()); .with_loot_drop(chosen.read().choose().to_item())
3 });
] entities
} }
fn mini_boss_2(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> { fn mini_boss_2(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> {
let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.weapons.tier-2"); let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_low.default");
let mut entities = Vec::new(); let mut entities = Vec::new();
entities.resize_with(6, || { entities.resize_with(6, || {
EntityInfo::at(tile_wcenter.map(|e| e as f32)) EntityInfo::at(tile_wcenter.map(|e| e as f32))
@ -1268,9 +1269,9 @@ fn mini_boss_2(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<Entit
} }
fn mini_boss_3(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> { fn mini_boss_3(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> {
let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.weapons.tier-3"); let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_low.default");
let mut entities = Vec::new(); let mut entities = Vec::new();
entities.resize_with(6, || { entities.resize_with(8, || {
EntityInfo::at(tile_wcenter.map(|e| e as f32)) EntityInfo::at(tile_wcenter.map(|e| e as f32))
.with_body(comp::Body::QuadrupedLow( .with_body(comp::Body::QuadrupedLow(
comp::quadruped_low::Body::random_with( comp::quadruped_low::Body::random_with(