mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'juliancoffee/dungeon_mobs' into 'master'
Dungeon rebalance See merge request veloren/veloren!2333
This commit is contained in:
commit
95f3a12d41
@ -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")),
|
||||
]
|
5
assets/common/loot_tables/dungeon/tier-0/miniboss.ron
Normal file
5
assets/common/loot_tables/dungeon/tier-0/miniboss.ron
Normal 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")),
|
||||
]
|
@ -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")),
|
||||
]
|
||||
|
@ -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")),
|
||||
]
|
||||
|
@ -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")),
|
||||
]
|
||||
|
8
assets/common/loot_tables/fireworks.ron
Normal file
8
assets/common/loot_tables/fireworks.ron
Normal 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")),
|
||||
]
|
@ -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),
|
||||
],
|
||||
})
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user