mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Moved materials into their own loot tables.
This commit is contained in:
parent
cb638180f8
commit
a2906168a6
@ -7,7 +7,6 @@ loot_tables: [
|
||||
(0.1,"common.loot_tables.cave_large"),
|
||||
(0.1,"common.loot_tables.consumables"),
|
||||
// loot_table_crafting is a rare roll on crate/mud sprite looting
|
||||
(0.05,"common.loot_tables.crafting"),
|
||||
(0.005,"common.loot_tables.cultists"),
|
||||
(1,"common.loot_tables.fish"),
|
||||
(0.1,"common.loot_tables.humanoids"),
|
||||
@ -15,7 +14,6 @@ loot_tables: [
|
||||
(0.0001,"common.loot_tables.mindflayer"),
|
||||
(0.001,"common.loot_tables.miniboss"),
|
||||
// loot_table_rocks is dropped by rock monsters, but is also the only source of stones to econsim until cave_scatter information is turned into a loot table
|
||||
(0.2,"common.loot_tables.rocks"),
|
||||
(1,"common.loot_tables.fallback"),
|
||||
(0.04,"common.loot_tables.saurok"),
|
||||
(0.05,"common.loot_tables.villager"),
|
||||
|
@ -1,7 +1,8 @@
|
||||
[
|
||||
// Misc
|
||||
(0.25, Item("common.items.armor.misc.neck.plain_1")),
|
||||
(3.0, LootTable("common.loot_tables.materials.common")),
|
||||
(1.5, LootTable("common.loot_tables.materials.common")),
|
||||
(3.5, LootTable("common.loot_tables.materials.underground")),
|
||||
(0.1, Item("common.items.glider.glider_blue")),
|
||||
(0.05, Item("common.items.glider.glider_morpho")),
|
||||
(0.05, Item("common.items.glider.glider_monarch")),
|
||||
|
@ -1,9 +0,0 @@
|
||||
[
|
||||
// crafting ingredients
|
||||
(0.5, Item("common.items.crafting_ing.amethyst")),
|
||||
(0.5, Item("common.items.crafting_ing.topaz")),
|
||||
(0.4, Item("common.items.crafting_ing.sapphire")),
|
||||
(0.35, Item("common.items.crafting_ing.emerald")),
|
||||
(0.25, Item("common.items.crafting_ing.ruby")),
|
||||
(0.1, Item("common.items.crafting_ing.diamond")),
|
||||
]
|
@ -1,3 +0,0 @@
|
||||
[
|
||||
(1.0, Item("common.items.crafting_ing.stones")),
|
||||
]
|
8
assets/common/loot_tables/materials/gems.ron
Normal file
8
assets/common/loot_tables/materials/gems.ron
Normal file
@ -0,0 +1,8 @@
|
||||
[
|
||||
(3.0, Item("common.items.crafting_ing.topaz")),
|
||||
(3.0, Item("common.items.crafting_ing.amethyst")),
|
||||
(1.6, Item("common.items.crafting_ing.sapphire")),
|
||||
(1.2, Item("common.items.crafting_ing.emerald")),
|
||||
(0.8, Item("common.items.crafting_ing.ruby")),
|
||||
(0.4, Item("common.items.crafting_ing.diamond")),
|
||||
]
|
6
assets/common/loot_tables/materials/underground.ron
Normal file
6
assets/common/loot_tables/materials/underground.ron
Normal file
@ -0,0 +1,6 @@
|
||||
[
|
||||
(2.0, Item("common.items.crafting_ing.stones")),
|
||||
(0.5, Item("common.items.ore.veloritefrag")),
|
||||
(0.25, Item("common.items.ore.velorite")),
|
||||
(0.25, LootTable("common.loot_tables.materials.gems")),
|
||||
]
|
@ -1,6 +0,0 @@
|
||||
[
|
||||
(1.0, Item("common.items.crafting_ing.stones")),
|
||||
(0.05, Item("common.items.crafting_ing.diamond")),
|
||||
(0.1, Item("common.items.ore.velorite")),
|
||||
(0.2, Item("common.items.ore.veloritefrag")),
|
||||
]
|
@ -624,17 +624,17 @@ impl Item {
|
||||
},
|
||||
SpriteKind::Mud => {
|
||||
chosen = Lottery::<LootSpec>::load_expect(match rng.gen_range(0..5) {
|
||||
0 => "common.loot_tables.crafting",
|
||||
0 => "common.loot_tables.materials.common",
|
||||
1 => "common.loot_tables.weapons.tier-0",
|
||||
2 => "common.loot_tables.fallback",
|
||||
_ => "common.loot_tables.rocks",
|
||||
2 => "common.loot_tables.materials.underground",
|
||||
_ => "common.loot_tables.fallback",
|
||||
})
|
||||
.read();
|
||||
return Some(chosen.choose().to_item(None));
|
||||
},
|
||||
SpriteKind::Crate => {
|
||||
chosen = Lottery::<LootSpec>::load_expect(match rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.crafting",
|
||||
0 => "common.loot_tables.materials.common",
|
||||
_ => "common.loot_tables.food.prepared",
|
||||
})
|
||||
.read();
|
||||
|
@ -351,9 +351,8 @@ 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) {
|
||||
1 => "common.loot_tables.rocks",
|
||||
_ => "common.loot_tables.rocks",
|
||||
quadruped_small::Species::Dodarock => {
|
||||
"common.loot_tables.materials.underground"
|
||||
},
|
||||
_ => match rng.gen_range(0..4) {
|
||||
0 => "common.loot_tables.food.wild_ingredients",
|
||||
|
@ -1011,13 +1011,11 @@ impl Floor {
|
||||
4 => Lottery::<LootSpec>::load_expect(
|
||||
"common.loot_tables.weapons.tier-4",
|
||||
),
|
||||
5 => Lottery::<LootSpec>::load_expect("common.loot_tables.husk"),
|
||||
5 => Lottery::<LootSpec>::load_expect("common.loot_tables.cultist"),
|
||||
_ => {
|
||||
Lottery::<LootSpec>::load_expect("common.loot_tables.fallback")
|
||||
},
|
||||
};
|
||||
let chosen = chosen.read();
|
||||
let chosen = chosen.choose();
|
||||
let entity = match room.difficulty {
|
||||
0 => {
|
||||
let body = comp::Body::QuadrupedMedium(
|
||||
@ -1030,7 +1028,9 @@ impl Floor {
|
||||
EntityInfo::at(tile_wcenter.map(|e| e as f32))
|
||||
.with_body(body)
|
||||
.with_name("Bonerattler".to_string())
|
||||
.with_loot_drop(chosen.to_item(Some(body))),
|
||||
.with_loot_drop(
|
||||
chosen.read().choose().to_item(Some(body)),
|
||||
),
|
||||
]
|
||||
},
|
||||
1 => {
|
||||
@ -1044,7 +1044,9 @@ impl Floor {
|
||||
EntityInfo::at(tile_wcenter.map(|e| e as f32))
|
||||
.with_body(body)
|
||||
.with_name("Bonerattler".to_string())
|
||||
.with_loot_drop(chosen.to_item(Some(body)));
|
||||
.with_loot_drop(
|
||||
chosen.read().choose().to_item(Some(body))
|
||||
);
|
||||
3
|
||||
]
|
||||
},
|
||||
@ -1060,7 +1062,9 @@ impl Floor {
|
||||
EntityInfo::at(tile_wcenter.map(|e| e as f32))
|
||||
.with_body(body)
|
||||
.with_name("Hakulaq".to_string())
|
||||
.with_loot_drop(chosen.to_item(Some(body)))
|
||||
.with_loot_drop(
|
||||
chosen.read().choose().to_item(Some(body)),
|
||||
)
|
||||
});
|
||||
entities
|
||||
},
|
||||
@ -1071,7 +1075,7 @@ impl Floor {
|
||||
EntityInfo::at(tile_wcenter.map(|e| e as f32))
|
||||
.with_body(body)
|
||||
.with_name("Animal Trainer".to_string())
|
||||
.with_loot_drop(chosen.to_item(Some(body)))
|
||||
.with_loot_drop(chosen.read().choose().to_item(Some(body)))
|
||||
.with_loadout_config(loadout_builder::LoadoutConfig::CultistAcolyte)
|
||||
.with_skillset_config(
|
||||
common::skillset_builder::SkillSetConfig::CultistAcolyte
|
||||
@ -1098,7 +1102,9 @@ impl Floor {
|
||||
EntityInfo::at(tile_wcenter.map(|e| e as f32))
|
||||
.with_body(body)
|
||||
.with_name("Tamed Darkhound".to_string())
|
||||
.with_loot_drop(chosen.to_item(Some(body)))
|
||||
.with_loot_drop(
|
||||
chosen.read().choose().to_item(Some(body)),
|
||||
)
|
||||
});
|
||||
entities
|
||||
},
|
||||
@ -1113,23 +1119,26 @@ impl Floor {
|
||||
EntityInfo::at(tile_wcenter.map(|e| e as f32))
|
||||
.with_body(body)
|
||||
.with_name("Dullahan Guard".to_string())
|
||||
.with_loot_drop(chosen.to_item(Some(body))),
|
||||
.with_loot_drop(
|
||||
chosen.read().choose().to_item(Some(body)),
|
||||
),
|
||||
]
|
||||
},
|
||||
5 => {
|
||||
let body = comp::Body::BipedSmall(
|
||||
comp::biped_small::Body::random_with(
|
||||
dynamic_rng,
|
||||
&comp::biped_small::Species::Husk,
|
||||
),
|
||||
);
|
||||
let mut entities = Vec::new();
|
||||
entities.resize_with(10, || {
|
||||
EntityInfo::at(tile_wcenter.map(|e| e as f32))
|
||||
.with_body(comp::Body::BipedSmall(
|
||||
comp::biped_small::Body::random_with(
|
||||
dynamic_rng,
|
||||
&comp::biped_small::Species::Husk,
|
||||
),
|
||||
))
|
||||
.with_body(body)
|
||||
.with_name("Cultist Husk".to_string())
|
||||
.with_loot_drop(comp::Item::new_from_asset_expect(
|
||||
"common.items.crafting_ing.stones",
|
||||
))
|
||||
.with_loot_drop(
|
||||
chosen.read().choose().to_item(Some(body)),
|
||||
)
|
||||
.with_loadout_config(
|
||||
loadout_builder::LoadoutConfig::Husk,
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user