Merge branch 'juliancoffee/dungeon_mobs' into 'master'

Dungeon rebalance

See merge request veloren/veloren!2333
This commit is contained in:
Samuel Keiffer 2021-05-22 22:38:21 +00:00
commit 95f3a12d41
8 changed files with 80 additions and 51 deletions

View File

@ -1,23 +0,0 @@
[
(4.0, LootTable("common.loot_tables.materials.common")),
(3.0, LootTable("common.loot_tables.food.wild_ingredients")),
(2.0, LootTable("common.loot_tables.food.prepared")),
(0.25, Item("common.items.armor.misc.neck.plain_1")),
(0.1, Item("common.items.glider.glider_blue")),
(0.5, Item("common.items.utility.firework_purple")),
(0.5, Item("common.items.utility.bomb")),
(0.5, Item("common.items.armor.misc.ring.gold")),
(0.25, Item("common.items.armor.misc.ring.skull")),
(2.0, LootTable("common.loot_tables.armor.swift")),
(2.0, LootTable("common.loot_tables.armor.agile")),
(3.0, LootTable("common.loot_tables.armor.plate")),
(2.0, LootTable("common.loot_tables.armor.steel")),
(0.001, Item("common.items.armor.misc.back.backpack")),
(0.1, Item("common.items.armor.misc.bag.heavy_seabag")),
(1.0, LootTable("common.loot_tables.weapons.tier-0")),
(2.0, LootTable("common.loot_tables.weapons.tier-1")),
(3.0, LootTable("common.loot_tables.weapons.tier-2")),
(4.0, LootTable("common.loot_tables.weapons.tier-3")),
(4.0, LootTable("common.loot_tables.weapons.tier-4")),
(3.0, LootTable("common.loot_tables.weapons.tier-5")),
]

View File

@ -0,0 +1,5 @@
[
(1.0, LootTable("common.loot_tables.armor.cloth")),
(2.0, LootTable("common.loot_tables.weapons.tier-0")),
(2.0, LootTable("common.loot_tables.consumables")),
]

View File

@ -1,4 +1,11 @@
[
(1.0, LootTable("common.loot_tables.creature.biped_large.mindflayer")),
(3.0, LootTable("common.loot_tables.dungeon.tier-5.miniboss")),
(2.0, LootTable("common.loot_tables.creature.biped_large.mindflayer")),
// miniboss part
// armour
(3.0, LootTable("common.loot_tables.armor.cultist")),
(0.25, Item("common.items.armor.misc.back.dungeon_purple")),
(0.5, Item("common.items.armor.misc.ring.skull")),
// weapons
(1.5, LootTable("common.loot_tables.weapons.cultist")),
(1.5, LootTable("common.loot_tables.weapons.cave")),
]

View File

@ -1,6 +1,19 @@
[
(1.0, LootTable("common.loot_tables.humanoids")),
(1.0, LootTable("common.loot_tables.weapons.tier-5")),
(3.0, LootTable("common.loot_tables.cultists")),
// Materials
(1.0, LootTable("common.loot_tables.materials.common")),
(1.0, LootTable("common.loot_tables.food.wild_ingredients")),
(1.0, LootTable("common.loot_tables.food.prepared")),
(5.0, Item("common.items.food.cheese")),
]
// Gear
(3.0, LootTable("common.loot_tables.weapons.tier-5")),
(2.0, LootTable("common.loot_tables.armor.steel")),
(0.25, Item("common.items.armor.misc.neck.plain_1")),
(0.5, Item("common.items.armor.misc.ring.gold")),
(0.25, Item("common.items.armor.misc.ring.skull")),
// Misc
(0.1, Item("common.items.glider.glider_blue")),
(0.001, Item("common.items.armor.misc.back.backpack")),
(0.1, Item("common.items.armor.misc.bag.heavy_seabag")),
(0.5, LootTable("common.loot_tables.fireworks")),
(0.5, Item("common.items.utility.bomb")),
]

View File

@ -1,9 +1,11 @@
[
// armor
(6.0, LootTable("common.loot_tables.armor.cultist")),
(1.0, Item("common.items.armor.misc.back.dungeon_purple")),
(1.0, Item("common.items.armor.misc.ring.skull")),
(3.0, LootTable("common.loot_tables.armor.cultist")),
(0.25, Item("common.items.armor.misc.back.dungeon_purple")),
(0.5, Item("common.items.armor.misc.ring.skull")),
// weapons
(1.5, LootTable("common.loot_tables.weapons.cultist")),
(1.5, LootTable("common.loot_tables.weapons.cave")),
// to not get boring from getting OP loot
(6.0, LootTable("common.loot_tables.dungeon.tier-5.enemy")),
]

View File

@ -0,0 +1,8 @@
[
(0.1, Item("common.items.utility.firework_blue")),
(0.1, Item("common.items.utility.firework_green")),
(0.1, Item("common.items.utility.firework_purple")),
(0.1, Item("common.items.utility.firework_red")),
(0.1, Item("common.items.utility.firework_white")),
(0.1, Item("common.items.utility.firework_yellow")),
]

View File

@ -80,4 +80,22 @@
("common.items.weapons.sceptre.coralline_cane", 1),
("common.items.consumable.potion_med", 100),
],
"tier-0": [
("common.items.armor.cloth_purple.belt", 1),
("common.items.armor.cloth_purple.chest", 1),
("common.items.armor.cloth_purple.foot", 1),
("common.items.armor.cloth_purple.hand", 1),
("common.items.armor.cloth_purple.pants", 1),
("common.items.armor.cloth_purple.shoulder", 1),
("common.items.weapons.sword.stone-0", 1),
("common.items.weapons.axe_1h.stone-0", 1),
("common.items.weapons.axe_1h.stone-1", 1),
("common.items.weapons.hammer.stone_hammer-0", 1),
("common.items.weapons.bow.wood-0", 1),
("common.items.weapons.staff.bent_fuse", 1),
("common.items.weapons.sceptre.divine_gohei", 1),
("common.items.consumable.potion_minor", 100),
],
})

View File

@ -1220,34 +1220,32 @@ 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> {
let chosen =
Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_medium.default");
let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.dungeon.tier-0.miniboss");
vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32))
.with_body(comp::Body::QuadrupedMedium(
comp::quadruped_medium::Body::random_with(
.with_body(comp::Body::QuadrupedLow(
comp::quadruped_low::Body::random_with(
dynamic_rng,
&comp::quadruped_medium::Species::Bonerattler,
&comp::quadruped_low::Species::Deadwood,
),
))
.with_name("Bonerattler".to_string())
.with_name("Deadwood".to_string())
.with_loot_drop(chosen.read().choose().to_item()),
]
}
fn mini_boss_1(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> {
let chosen =
Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_medium.default");
let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_small.default");
let mut entities = Vec::new();
entities.resize_with(3, || {
entities.resize_with(8, || {
EntityInfo::at(tile_wcenter.map(|e| e as f32))
.with_body(comp::Body::QuadrupedMedium(
comp::quadruped_medium::Body::random_with(
.with_body(comp::Body::QuadrupedSmall(
comp::quadruped_small::Body::random_with(
dynamic_rng,
&comp::quadruped_medium::Species::Bonerattler,
&comp::quadruped_small::Species::Rat,
),
))
.with_name("Bonerattler".to_string())
.with_name("Rat".to_string())
.with_loot_drop(chosen.read().choose().to_item())
});
entities
@ -1271,17 +1269,18 @@ 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> {
let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_low.default");
let chosen =
Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_medium.default");
let mut entities = Vec::new();
entities.resize_with(8, || {
entities.resize_with(3, || {
EntityInfo::at(tile_wcenter.map(|e| e as f32))
.with_body(comp::Body::QuadrupedLow(
comp::quadruped_low::Body::random_with(
.with_body(comp::Body::QuadrupedMedium(
comp::quadruped_medium::Body::random_with(
dynamic_rng,
&comp::quadruped_low::Species::Hakulaq,
&comp::quadruped_medium::Species::Bonerattler,
),
))
.with_name("Hakulaq".to_string())
.with_name("Bonerattler".to_string())
.with_loot_drop(chosen.read().choose().to_item())
});
entities