diff --git a/assets/common/entity/wild/aggressive/roshwalr_boss.ron b/assets/common/entity/wild/aggressive/roshwalr_boss.ron index bc9ce54809..6f804e11cf 100644 --- a/assets/common/entity/wild/aggressive/roshwalr_boss.ron +++ b/assets/common/entity/wild/aggressive/roshwalr_boss.ron @@ -6,7 +6,7 @@ body_type: Female, ))), alignment: Alignment(Enemy), - loot: LootTable("common.loot_tables.creature.quad_medium.ice"), + loot: LootTable("common.loot_tables.creature.quad_medium.roshwalr"), inventory: ( loadout: FromBody, ), diff --git a/assets/common/entity/wild/aggressive/tarasque.ron b/assets/common/entity/wild/aggressive/tarasque.ron index 68cb9d068c..d0cb0f1ddc 100644 --- a/assets/common/entity/wild/aggressive/tarasque.ron +++ b/assets/common/entity/wild/aggressive/tarasque.ron @@ -3,7 +3,7 @@ name: Automatic, body: RandomWith("tarasque"), alignment: Alignment(Enemy), - loot: LootTable("common.loot_tables.creature.quad_medium.carapace"), + loot: LootTable("common.loot_tables.creature.quad_medium.tarasque"), inventory: ( loadout: FromBody, ), diff --git a/assets/common/entity/wild/peaceful/hirdrasil.ron b/assets/common/entity/wild/peaceful/hirdrasil.ron index 21dcef6fad..548c646c46 100644 --- a/assets/common/entity/wild/peaceful/hirdrasil.ron +++ b/assets/common/entity/wild/peaceful/hirdrasil.ron @@ -3,7 +3,7 @@ name: Automatic, body: RandomWith("hirdrasil"), alignment: Alignment(Wild), - loot: LootTable("common.loot_tables.creature.quad_medium.gentle"), + loot: LootTable("common.loot_tables.creature.quad_medium.hirdrasil"), inventory: ( loadout: FromBody, ), diff --git a/assets/common/entity/wild/peaceful/moose.ron b/assets/common/entity/wild/peaceful/moose.ron index c4916cb8e9..6ecb3aa6ca 100644 --- a/assets/common/entity/wild/peaceful/moose.ron +++ b/assets/common/entity/wild/peaceful/moose.ron @@ -3,7 +3,7 @@ name: Automatic, body: RandomWith("moose"), alignment: Alignment(Wild), - loot: LootTable("common.loot_tables.creature.quad_medium.generic"), + loot: LootTable("common.loot_tables.creature.quad_medium.moose"), inventory: ( loadout: FromBody, ), diff --git a/assets/common/loot_tables/cave_large.ron b/assets/common/loot_tables/cave_large.ron index ad94ac45be..e90ba0a8c5 100644 --- a/assets/common/loot_tables/cave_large.ron +++ b/assets/common/loot_tables/cave_large.ron @@ -5,5 +5,4 @@ (0.1, Item("common.items.lantern.geode_purp")), // Weapons (2.0, LootTable("common.loot_tables.weapons.components.tier-3")), - (0.05, LootTable("common.loot_tables.weapons.cave")), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/arthropod/antlion.ron b/assets/common/loot_tables/creature/arthropod/antlion.ron index 93dac22102..6726e40124 100644 --- a/assets/common/loot_tables/creature/arthropod/antlion.ron +++ b/assets/common/loot_tables/creature/arthropod/antlion.ron @@ -1,4 +1,7 @@ [ - (1.5, MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 2, 5)), - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.strong_pincer"), 1, 2)), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 5, 8), + MultiDrop(Item("common.items.crafting_ing.animal_misc.strong_pincer"), 1, 2), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/arthropod/black_widow.ron b/assets/common/loot_tables/creature/arthropod/black_widow.ron index 87f9b99d0c..8cf2911d1a 100644 --- a/assets/common/loot_tables/creature/arthropod/black_widow.ron +++ b/assets/common/loot_tables/creature/arthropod/black_widow.ron @@ -1,5 +1,8 @@ [ - (2.0, MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 2, 5)), - (1.0, Item("common.items.crafting_ing.animal_misc.venom_sac")), - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.strong_pincer"), 1, 2)), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 3, 7), + MultiDrop(Item("common.items.crafting_ing.animal_misc.venom_sac"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.strong_pincer"), 1, 2), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/arthropod/carapace.ron b/assets/common/loot_tables/creature/arthropod/carapace.ron index 7c64974d1e..f303a77e40 100644 --- a/assets/common/loot_tables/creature/arthropod/carapace.ron +++ b/assets/common/loot_tables/creature/arthropod/carapace.ron @@ -1,4 +1,7 @@ [ - (1.0, MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 1, 3)), - (1.0, Item("common.items.crafting_ing.animal_misc.strong_pincer")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.animal_misc.strong_pincer"), 1, 2), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/arthropod/crawler_molten.ron b/assets/common/loot_tables/creature/arthropod/crawler_molten.ron index 0e01a7c03a..e6c56e89ae 100644 --- a/assets/common/loot_tables/creature/arthropod/crawler_molten.ron +++ b/assets/common/loot_tables/creature/arthropod/crawler_molten.ron @@ -1,6 +1,8 @@ [ - (1.0, MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 1, 3)), - (0.5, MultiDrop(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 1, 1)), - (1.0, Item("common.items.crafting_ing.living_embers")), - + (1, All([ + MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 0, 4), + MultiDrop(Item("common.items.crafting_ing.living_embers"), 2, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/arthropod/leaf.ron b/assets/common/loot_tables/creature/arthropod/leaf.ron index 62c76a6a74..ff062db50e 100644 --- a/assets/common/loot_tables/creature/arthropod/leaf.ron +++ b/assets/common/loot_tables/creature/arthropod/leaf.ron @@ -1,4 +1,7 @@ [ - (2.0, MultiDrop(Item("common.items.flowers.plant_fiber"), 1, 3)), - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 1, 1)), + (1, All([ + MultiDrop(Item("common.items.flowers.plant_fiber"), 2, 4), + MultiDrop(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 1, 3), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/arthropod/leaf_beetle.ron b/assets/common/loot_tables/creature/arthropod/leaf_beetle.ron index 607384d9fc..ff1cb44e63 100644 --- a/assets/common/loot_tables/creature/arthropod/leaf_beetle.ron +++ b/assets/common/loot_tables/creature/arthropod/leaf_beetle.ron @@ -1,5 +1,8 @@ [ - (1.0, MultiDrop(Item("common.items.flowers.plant_fiber"), 1, 3)), - (1.0, Item("common.items.crafting_ing.animal_misc.strong_pincer")), - (0.5, MultiDrop(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 1, 1)), + (1, All([ + MultiDrop(Item("common.items.flowers.plant_fiber"), 2, 4), + MultiDrop(Item("common.items.crafting_ing.animal_misc.strong_pincer"), 0, 2), + MultiDrop(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 1, 3), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/arthropod/ooze.ron b/assets/common/loot_tables/creature/arthropod/ooze.ron index f498a49dba..92ede0643e 100644 --- a/assets/common/loot_tables/creature/arthropod/ooze.ron +++ b/assets/common/loot_tables/creature/arthropod/ooze.ron @@ -1,4 +1,7 @@ [ - (1.0, MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 1, 3)), - (0.5, MultiDrop(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 1, 1)), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 0, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/arthropod/tarantula.ron b/assets/common/loot_tables/creature/arthropod/tarantula.ron index e5c9eac238..3446fbf330 100644 --- a/assets/common/loot_tables/creature/arthropod/tarantula.ron +++ b/assets/common/loot_tables/creature/arthropod/tarantula.ron @@ -1,4 +1,7 @@ [ - (1.0, MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 2, 5)), - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.strong_pincer"), 1, 2)), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 3, 7), + MultiDrop(Item("common.items.crafting_ing.animal_misc.strong_pincer"), 1, 2), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/arthropod/web.ron b/assets/common/loot_tables/creature/arthropod/web.ron index 6968d0ea44..97dc027236 100644 --- a/assets/common/loot_tables/creature/arthropod/web.ron +++ b/assets/common/loot_tables/creature/arthropod/web.ron @@ -1,4 +1,7 @@ [ - (1.0, MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 1, 3)), - (1.0, Item("common.items.crafting_ing.animal_misc.strong_pincer")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.sticky_thread"), 2, 3), + MultiDrop(Item("common.items.crafting_ing.animal_misc.strong_pincer"), 0, 2), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/biped_large/blue_oni.ron b/assets/common/loot_tables/creature/biped_large/blue_oni.ron index 4d3665cee3..2d5e6b3dda 100644 --- a/assets/common/loot_tables/creature/biped_large/blue_oni.ron +++ b/assets/common/loot_tables/creature/biped_large/blue_oni.ron @@ -1,5 +1,11 @@ [ - (1.0, LootTable("common.loot_tables.food.prepared")), - (2.0, LootTable("common.loot_tables.cave_large")), - (0.4, Item("common.items.glider.morpho")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.food.prepared"), 1, 3), + MultiDrop(LootTable("common.loot_tables.cave_large"), 2, 3), + Lottery([ + (0.2, Item("common.items.glider.morpho")), + (1.8, Nothing), + ]), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/biped_large/default.ron b/assets/common/loot_tables/creature/biped_large/default.ron index 834b386b01..f8f832d8f1 100644 --- a/assets/common/loot_tables/creature/biped_large/default.ron +++ b/assets/common/loot_tables/creature/biped_large/default.ron @@ -1,4 +1,7 @@ [ - (1.0, LootTable("common.loot_tables.food.prepared")), - (2.0, LootTable("common.loot_tables.cave_large")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.food.prepared"), 1, 3), + MultiDrop(LootTable("common.loot_tables.cave_large"), 2, 3), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/biped_large/red_oni.ron b/assets/common/loot_tables/creature/biped_large/red_oni.ron index 2238f8ab37..4c142eefa8 100644 --- a/assets/common/loot_tables/creature/biped_large/red_oni.ron +++ b/assets/common/loot_tables/creature/biped_large/red_oni.ron @@ -1,5 +1,11 @@ [ - (1.0, LootTable("common.loot_tables.food.prepared")), - (2.0, LootTable("common.loot_tables.cave_large")), - (0.4, Item("common.items.glider.monarch")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.food.prepared"), 1, 3), + MultiDrop(LootTable("common.loot_tables.cave_large"), 2, 3), + Lottery([ + (0.2, Item("common.items.glider.monarch")), + (1.8, Nothing), + ]), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/biped_large/troll.ron b/assets/common/loot_tables/creature/biped_large/troll.ron index d7a91ec43a..e7a0311c94 100644 --- a/assets/common/loot_tables/creature/biped_large/troll.ron +++ b/assets/common/loot_tables/creature/biped_large/troll.ron @@ -1,6 +1,8 @@ [ - (1.0, LootTable("common.loot_tables.food.prepared")), - (1.0, LootTable("common.loot_tables.cave_large")), - (1.0, LootTable("common.loot_tables.weapons.components.tier-2")), - (5.0, Item("common.items.crafting_ing.hide.leather_troll")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.food.prepared"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.hide.leather_troll"), 3, 5), + MultiDrop(LootTable("common.loot_tables.cave_large"), 2, 3), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/biped_large/tursus.ron b/assets/common/loot_tables/creature/biped_large/tursus.ron index 1e623ec1ad..97d734ff6f 100644 --- a/assets/common/loot_tables/creature/biped_large/tursus.ron +++ b/assets/common/loot_tables/creature/biped_large/tursus.ron @@ -1,8 +1,8 @@ [ (1, All([ - MultiDrop(Item("common.items.food.meat.beast_large_raw"), 2, 4), - MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 0, 2), - MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 0, 2), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 3, 4), + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 1, 2), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/biped_large/wendigo.ron b/assets/common/loot_tables/creature/biped_large/wendigo.ron index e39133663d..98c8c61bbe 100644 --- a/assets/common/loot_tables/creature/biped_large/wendigo.ron +++ b/assets/common/loot_tables/creature/biped_large/wendigo.ron @@ -1,6 +1,8 @@ [ - (1.0, LootTable("common.loot_tables.food.prepared")), - (1.0, Item("common.items.crafting_ing.animal_misc.icy_fang")), - (1.0, LootTable("common.loot_tables.weapons.components.tier-2")), - (4.0, LootTable("common.loot_tables.cave_large")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.food.prepared"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.animal_misc.icy_fang"), 2, 4), + MultiDrop(LootTable("common.loot_tables.cave_large"), 2, 3), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/biped_small/bushly.ron b/assets/common/loot_tables/creature/biped_small/bushly.ron index 892d8aa0c2..ac744e8c8b 100644 --- a/assets/common/loot_tables/creature/biped_small/bushly.ron +++ b/assets/common/loot_tables/creature/biped_small/bushly.ron @@ -1,4 +1,4 @@ [ - (2.0, Item("common.items.flowers.plant_fiber")), + (2.0, MultiDrop(Item("common.items.flowers.plant_fiber"), 1, 2)), (1.0, Item("common.items.crafting_ing.sentient_seed")), ] diff --git a/assets/common/loot_tables/creature/bird_large/cloudwyvern.ron b/assets/common/loot_tables/creature/bird_large/cloudwyvern.ron index 2bbe2d11f0..e1f483e3f2 100644 --- a/assets/common/loot_tables/creature/bird_large/cloudwyvern.ron +++ b/assets/common/loot_tables/creature/bird_large/cloudwyvern.ron @@ -2,9 +2,9 @@ (1, All([ MultiDrop(Item("common.items.mineral.gem.topaz"), 1, 1), MultiDrop(Item("common.items.mineral.gem.amethyst"), 1, 3), - MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 4, 10), MultiDrop(Item("common.items.crafting_ing.animal_misc.claw"), 1, 3), - MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 2, 6), + MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 8, 12), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/bird_large/cockatrice.ron b/assets/common/loot_tables/creature/bird_large/cockatrice.ron index 636310cc1d..e288573de0 100644 --- a/assets/common/loot_tables/creature/bird_large/cockatrice.ron +++ b/assets/common/loot_tables/creature/bird_large/cockatrice.ron @@ -1,6 +1,9 @@ [ - (1.0, MultiDrop(Item("common.items.food.meat.bird_large_raw"), 1, 2)), - (1.0, MultiDrop(Item("common.items.food.meat.beast_large_raw"), 2, 2)), - (2.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 1, 3)), - (1.0, MultiDrop(Item("common.items.crafting_ing.hide.scales"), 2, 6)), + (1, All([ + MultiDrop(Item("common.items.food.meat.bird_large_raw"), 2, 4), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 5, 7), + MultiDrop(Item("common.items.crafting_ing.hide.scales"), 3, 7), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/bird_large/flamewyvern.ron b/assets/common/loot_tables/creature/bird_large/flamewyvern.ron index be4de15dfa..229165082c 100644 --- a/assets/common/loot_tables/creature/bird_large/flamewyvern.ron +++ b/assets/common/loot_tables/creature/bird_large/flamewyvern.ron @@ -4,7 +4,7 @@ MultiDrop(Item("common.items.mineral.gem.ruby"), 1, 3), MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 1, 3), MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 1, 3), - MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 2, 6), + MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 8, 12), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/bird_large/frostwyvern.ron b/assets/common/loot_tables/creature/bird_large/frostwyvern.ron index 2cdbb473d2..abe5022621 100644 --- a/assets/common/loot_tables/creature/bird_large/frostwyvern.ron +++ b/assets/common/loot_tables/creature/bird_large/frostwyvern.ron @@ -4,7 +4,7 @@ MultiDrop(Item("common.items.mineral.gem.diamond"), 1, 3), MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 1, 3), MultiDrop(Item("common.items.crafting_ing.animal_misc.claw"), 1, 3), - MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 2, 6), + MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 8, 12), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/bird_large/roc.ron b/assets/common/loot_tables/creature/bird_large/roc.ron index d5f649feef..3248e478ff 100644 --- a/assets/common/loot_tables/creature/bird_large/roc.ron +++ b/assets/common/loot_tables/creature/bird_large/roc.ron @@ -1,5 +1,8 @@ [ - (1.0, MultiDrop(Item("common.items.food.meat.bird_large_raw"), 1, 2)), - (1.0, MultiDrop(Item("common.items.food.meat.beast_large_raw"), 2, 2)), - (2.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 1, 3)), + (1, All([ + MultiDrop(Item("common.items.food.meat.bird_large_raw"), 4, 8), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 6, 12), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/bird_large/seawyvern.ron b/assets/common/loot_tables/creature/bird_large/seawyvern.ron index 87dfd1547f..66d3616103 100644 --- a/assets/common/loot_tables/creature/bird_large/seawyvern.ron +++ b/assets/common/loot_tables/creature/bird_large/seawyvern.ron @@ -4,7 +4,7 @@ MultiDrop(Item("common.items.mineral.gem.sapphire"), 1, 3), MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 1, 3), MultiDrop(Item("common.items.crafting_ing.animal_misc.claw"), 1, 3), - MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 2, 6), + MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 8, 12), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/bird_large/wealdwyvern.ron b/assets/common/loot_tables/creature/bird_large/wealdwyvern.ron index d02c8242da..2ae3c217fb 100644 --- a/assets/common/loot_tables/creature/bird_large/wealdwyvern.ron +++ b/assets/common/loot_tables/creature/bird_large/wealdwyvern.ron @@ -2,9 +2,9 @@ (1, All([ MultiDrop(Item("common.items.mineral.gem.topaz"), 1, 1), MultiDrop(Item("common.items.mineral.gem.emerald"), 1, 3), - MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 3, 8), MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 1, 3), - MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 2, 6), + MultiDrop(Item("common.items.crafting_ing.hide.dragon_scale"), 8, 12), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/basilisk.ron b/assets/common/loot_tables/creature/quad_low/basilisk.ron index e4b53504dd..5e1b7d275d 100644 --- a/assets/common/loot_tables/creature/quad_low/basilisk.ron +++ b/assets/common/loot_tables/creature/quad_low/basilisk.ron @@ -1,8 +1,8 @@ [ (1, All([ - MultiDrop(Item("common.items.food.meat.beast_large_raw"), 2, 4), - MultiDrop(Item("common.items.crafting_ing.hide.plate"), 1, 2), - Item("common.items.crafting_ing.animal_misc.grim_eyeball"), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 5, 8), + MultiDrop(Item("common.items.crafting_ing.hide.plate"), 6, 10), + MultiDrop(Item("common.items.crafting_ing.animal_misc.grim_eyeball"), 2, 2), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/carapace.ron b/assets/common/loot_tables/creature/quad_low/carapace.ron index 1adcfebb28..4b64ec2ceb 100644 --- a/assets/common/loot_tables/creature/quad_low/carapace.ron +++ b/assets/common/loot_tables/creature/quad_low/carapace.ron @@ -1,5 +1,7 @@ [ - (1.0, Item("common.items.food.meat.tough_raw")), - (3.0, Item("common.items.crafting_ing.hide.carapace")), - + (1, All([ + MultiDrop(Item("common.items.food.meat.tough_raw"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 4, 8), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/deadwood.ron b/assets/common/loot_tables/creature/quad_low/deadwood.ron index f7d85f9516..40c378c783 100644 --- a/assets/common/loot_tables/creature/quad_low/deadwood.ron +++ b/assets/common/loot_tables/creature/quad_low/deadwood.ron @@ -1,7 +1,12 @@ [ - (2.0, MultiDrop(Item("common.items.log.wood"), 1, 3)), - (1.0, Item("common.items.log.hardwood")), - (2.0, Item("common.items.flowers.plant_fiber")), - (2.0, Item("common.items.crafting_ing.resin")), - (1.0, Item("common.items.crafting_ing.animal_misc.grim_eyeball")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.twigs"), 2, 3), + MultiDrop(Item("common.items.log.hardwood"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.animal_misc.grim_eyeball"), 0, 1), + Lottery([ + (0.5, MultiDrop(Item("common.items.flowers.plant_fiber"), 3, 5)), + (0.5, MultiDrop(Item("common.items.crafting_ing.resin"), 0, 3)), + ]), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/driggle.ron b/assets/common/loot_tables/creature/quad_low/driggle.ron index 78e513d983..6e873f958c 100644 --- a/assets/common/loot_tables/creature/quad_low/driggle.ron +++ b/assets/common/loot_tables/creature/quad_low/driggle.ron @@ -1,4 +1,7 @@ [ - (1.0, Item("common.items.crafting_ing.living_embers")), - (1.0, Item("common.items.crafting_ing.hide.animal_hide")), -] + (1, All([ + MultiDrop(Item("common.items.crafting_ing.living_embers"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.hide.animal_hide"), 3, 5), + ], + )), +] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/elbst.ron b/assets/common/loot_tables/creature/quad_low/elbst.ron index 1fb63f4da8..17e25bcb3a 100644 --- a/assets/common/loot_tables/creature/quad_low/elbst.ron +++ b/assets/common/loot_tables/creature/quad_low/elbst.ron @@ -1,5 +1,8 @@ [ - (1.0, Item("common.items.crafting_ing.hide.tough_hide")), - (1.0, Item("common.items.crafting_ing.animal_misc.viscous_ooze")), - (1.0, Item("common.items.food.meat.tough_raw")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.hide.tough_hide"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 2, 4), + MultiDrop(Item("common.items.food.meat.tough_raw"), 3, 5), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/fanged.ron b/assets/common/loot_tables/creature/quad_low/fanged.ron index 2dc17ae2f5..ad37c1c99e 100644 --- a/assets/common/loot_tables/creature/quad_low/fanged.ron +++ b/assets/common/loot_tables/creature/quad_low/fanged.ron @@ -1,4 +1,7 @@ [ - (4.0, LootTable("common.loot_tables.creature.quad_low.generic")), - (2.0, Item("common.items.crafting_ing.animal_misc.sharp_fang")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.creature.quad_low.generic"), 1, 1), + MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 2, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/generic.ron b/assets/common/loot_tables/creature/quad_low/generic.ron index dd49230ec2..677e5bd6a6 100644 --- a/assets/common/loot_tables/creature/quad_low/generic.ron +++ b/assets/common/loot_tables/creature/quad_low/generic.ron @@ -1,4 +1,7 @@ [ - (1.0, Item("common.items.food.meat.tough_raw")), - (3.0, Item("common.items.crafting_ing.hide.scales")), + (1, All([ + MultiDrop(Item("common.items.food.meat.tough_raw"), 4, 6), + MultiDrop(Item("common.items.crafting_ing.hide.scales"), 4, 8), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/lavadrake.ron b/assets/common/loot_tables/creature/quad_low/lavadrake.ron index 514836384e..a150c10efd 100644 --- a/assets/common/loot_tables/creature/quad_low/lavadrake.ron +++ b/assets/common/loot_tables/creature/quad_low/lavadrake.ron @@ -1,5 +1,8 @@ [ - (1.0, Item("common.items.food.meat.tough_raw")), - (3.0, Item("common.items.crafting_ing.hide.carapace")), - (1.0, MultiDrop(Item("common.items.crafting_ing.living_embers"), 2, 4)), + (1, All([ + MultiDrop(Item("common.items.food.meat.tough_raw"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.living_embers"), 5, 10), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/maneater.ron b/assets/common/loot_tables/creature/quad_low/maneater.ron index 1b4a4db7d1..28814cc773 100644 --- a/assets/common/loot_tables/creature/quad_low/maneater.ron +++ b/assets/common/loot_tables/creature/quad_low/maneater.ron @@ -1,6 +1,12 @@ [ - (9.0, Item("common.items.crafting_ing.animal_misc.lively_vine")), - (9.0, LootTable("common.loot_tables.food.wild_ingredients")), - (1.0, Item("common.items.armor.misc.head.bamboo_twig")), - (5.0, MultiDrop(Item("common.items.crafting_ing.sentient_seed"), 1, 3)), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.animal_misc.lively_vine"), 6, 10), + MultiDrop(LootTable("common.loot_tables.food.wild_ingredients"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.sentient_seed"), 3, 6), + Lottery([ + (0.5, Item("common.items.armor.misc.head.bamboo_twig")), + (9.5, Nothing), + ]), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/moss.ron b/assets/common/loot_tables/creature/quad_low/moss.ron index 79bb3b2e52..34a82ebcee 100644 --- a/assets/common/loot_tables/creature/quad_low/moss.ron +++ b/assets/common/loot_tables/creature/quad_low/moss.ron @@ -1,5 +1,8 @@ [ - (1.0, Item("common.items.crafting_ing.resin")), - (1.0, Item("common.items.log.hardwood")), - (1.0, Item("common.items.flowers.plant_fiber")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.resin"), 3, 6), + MultiDrop(Item("common.items.log.ironwood"), 5, 10), + MultiDrop(Item("common.items.flowers.plant_fiber"), 4, 5), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/reefsnapper.ron b/assets/common/loot_tables/creature/quad_low/reefsnapper.ron index a33d0308ab..d10a6c51d2 100644 --- a/assets/common/loot_tables/creature/quad_low/reefsnapper.ron +++ b/assets/common/loot_tables/creature/quad_low/reefsnapper.ron @@ -1,5 +1,8 @@ [ - (2.0, Item("common.items.food.meat.tough_raw")), - (3.0, Item("common.items.crafting_ing.hide.carapace")), - (1.0, Item("common.items.crafting_ing.coral_branch")), + (1, All([ + MultiDrop(Item("common.items.food.meat.tough_raw"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.coral_branch"), 0, 3), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/rootsnapper.ron b/assets/common/loot_tables/creature/quad_low/rootsnapper.ron index 2bf9cbe9b3..530233ced0 100644 --- a/assets/common/loot_tables/creature/quad_low/rootsnapper.ron +++ b/assets/common/loot_tables/creature/quad_low/rootsnapper.ron @@ -1,5 +1,8 @@ [ - (2.0, Item("common.items.food.meat.tough_raw")), - (3.0, Item("common.items.crafting_ing.hide.carapace")), - (1.0, Item("common.items.crafting_ing.animal_misc.lively_vine")), + (1, All([ + MultiDrop(Item("common.items.food.meat.tough_raw"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.animal_misc.lively_vine"), 0, 3), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/salamander.ron b/assets/common/loot_tables/creature/quad_low/salamander.ron index bb26c2419f..36199d99be 100644 --- a/assets/common/loot_tables/creature/quad_low/salamander.ron +++ b/assets/common/loot_tables/creature/quad_low/salamander.ron @@ -1,5 +1,8 @@ [ - (1.0, Item("common.items.crafting_ing.hide.tough_hide")), - (1.0, Item("common.items.food.meat.tough_raw")), - (1.0, Item("common.items.crafting_ing.living_embers")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.hide.tough_hide"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.living_embers"), 2, 4), + MultiDrop(Item("common.items.food.meat.tough_raw"), 3, 5), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_low/venemous.ron b/assets/common/loot_tables/creature/quad_low/venemous.ron index cdda647e2e..387df11db7 100644 --- a/assets/common/loot_tables/creature/quad_low/venemous.ron +++ b/assets/common/loot_tables/creature/quad_low/venemous.ron @@ -1,5 +1,8 @@ [ - (4.0, LootTable("common.loot_tables.creature.quad_low.generic")), - (1.0, Item("common.items.crafting_ing.animal_misc.sharp_fang")), - (2.0, Item("common.items.crafting_ing.animal_misc.venom_sac")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.creature.quad_low.generic"), 1, 1), + MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 1, 2), + MultiDrop(Item("common.items.crafting_ing.animal_misc.venom_sac"), 1, 2), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/carapace.ron b/assets/common/loot_tables/creature/quad_medium/carapace.ron index 432f820da5..c1f7f50b81 100644 --- a/assets/common/loot_tables/creature/quad_medium/carapace.ron +++ b/assets/common/loot_tables/creature/quad_medium/carapace.ron @@ -1,6 +1,8 @@ [ - (1.5, Item("common.items.food.meat.beast_small_raw")), - (0.5, Item("common.items.food.meat.beast_large_raw")), - (2.0, Item("common.items.crafting_ing.animal_misc.sharp_fang")), - (3.0, Item("common.items.crafting_ing.hide.carapace")), + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_small_raw"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 1, 4), + MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 2, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/catoblepas.ron b/assets/common/loot_tables/creature/quad_medium/catoblepas.ron index b9f754f9eb..f2301fc9e5 100644 --- a/assets/common/loot_tables/creature/quad_medium/catoblepas.ron +++ b/assets/common/loot_tables/creature/quad_medium/catoblepas.ron @@ -1,5 +1,8 @@ [ - (1.5, Item("common.items.crafting_ing.animal_misc.grim_eyeball")), - (4.0, LootTable("common.loot_tables.creature.quad_medium.generic")), - (1.0, Item("common.items.crafting_ing.hide.rugged_hide")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.animal_misc.grim_eyeball"), 0, 1), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 2, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/cattle.ron b/assets/common/loot_tables/creature/quad_medium/cattle.ron index c1c91ff337..7f3458d0d4 100644 --- a/assets/common/loot_tables/creature/quad_medium/cattle.ron +++ b/assets/common/loot_tables/creature/quad_medium/cattle.ron @@ -1,4 +1,7 @@ [ - (1.0, Item("common.items.food.meat.beast_large_raw")), - (1.0, Item("common.items.crafting_ing.hide.animal_hide")), + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 1, 4), + MultiDrop(Item("common.items.crafting_ing.hide.animal_hide"), 2, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/clawed.ron b/assets/common/loot_tables/creature/quad_medium/clawed.ron index 3a54656ef6..f29778ae87 100644 --- a/assets/common/loot_tables/creature/quad_medium/clawed.ron +++ b/assets/common/loot_tables/creature/quad_medium/clawed.ron @@ -1,4 +1,7 @@ [ - (4.0, LootTable("common.loot_tables.creature.quad_medium.generic")), - (2.0, Item("common.items.crafting_ing.animal_misc.claw")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.creature.quad_medium.generic"), 2, 4), + MultiDrop(Item("common.items.crafting_ing.animal_misc.claw"), 3, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/dreadhorn.ron b/assets/common/loot_tables/creature/quad_medium/dreadhorn.ron index db8002ae01..7d529cdf49 100644 --- a/assets/common/loot_tables/creature/quad_medium/dreadhorn.ron +++ b/assets/common/loot_tables/creature/quad_medium/dreadhorn.ron @@ -1,8 +1,8 @@ [ (1, All([ - MultiDrop(Item("common.items.food.meat.beast_large_raw"), 2, 4), - MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 2), - MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 0, 3), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 5, 8), + MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 1, 2), + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 5, 8), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/fanged.ron b/assets/common/loot_tables/creature/quad_medium/fanged.ron index 6623e7cc4e..c2c39976e7 100644 --- a/assets/common/loot_tables/creature/quad_medium/fanged.ron +++ b/assets/common/loot_tables/creature/quad_medium/fanged.ron @@ -1,4 +1,7 @@ [ - (4.0, LootTable("common.loot_tables.creature.quad_medium.generic")), - (2.0, Item("common.items.crafting_ing.animal_misc.sharp_fang")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.creature.quad_medium.generic"), 3, 4), + MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 2, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/frostfang.ron b/assets/common/loot_tables/creature/quad_medium/frostfang.ron index 9ad48c6199..a7ee9df02c 100644 --- a/assets/common/loot_tables/creature/quad_medium/frostfang.ron +++ b/assets/common/loot_tables/creature/quad_medium/frostfang.ron @@ -1,5 +1,8 @@ [ - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.icy_fang"), 1, 2)), - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 1, 3)), - (1.0, Item("common.items.crafting_ing.hide.tough_hide")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.animal_misc.icy_fang"), 1, 4), + MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 2, 4), + MultiDrop(Item("common.items.crafting_ing.hide.tough_hide"), 3, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/gentle.ron b/assets/common/loot_tables/creature/quad_medium/gentle.ron index a11ac921f4..6e2b967468 100644 --- a/assets/common/loot_tables/creature/quad_medium/gentle.ron +++ b/assets/common/loot_tables/creature/quad_medium/gentle.ron @@ -1,5 +1,8 @@ [ - (1.5, Item("common.items.food.meat.beast_small_raw")), - (0.5, Item("common.items.food.meat.beast_large_raw")), - (3.0, Item("common.items.crafting_ing.hide.animal_hide")), + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_small_raw"), 1, 4), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 0, 3), + MultiDrop(Item("common.items.crafting_ing.hide.animal_hide"), 2, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/highland.ron b/assets/common/loot_tables/creature/quad_medium/highland.ron index 40db52b79f..3c51ec3444 100644 --- a/assets/common/loot_tables/creature/quad_medium/highland.ron +++ b/assets/common/loot_tables/creature/quad_medium/highland.ron @@ -1,5 +1,8 @@ [ - (1.0, Item("common.items.food.meat.beast_large_raw")), - (1.0, Item("common.items.crafting_ing.hide.animal_hide")), - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.fur"), 1, 2)), + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.hide.animal_hide"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.fur"), 2, 6), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/hirdrasil.ron b/assets/common/loot_tables/creature/quad_medium/hirdrasil.ron new file mode 100644 index 0000000000..74a6dd4bc0 --- /dev/null +++ b/assets/common/loot_tables/creature/quad_medium/hirdrasil.ron @@ -0,0 +1,9 @@ +[ + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_small_raw"), 3, 5), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 2, 4), + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 3, 6), + MultiDrop(Item("common.items.crafting_ing.animal_misc.lively_vine"), 3, 6), + ], + )), +] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/ice.ron b/assets/common/loot_tables/creature/quad_medium/ice.ron index c3ee3b92fc..b8ffe54fb9 100644 --- a/assets/common/loot_tables/creature/quad_medium/ice.ron +++ b/assets/common/loot_tables/creature/quad_medium/ice.ron @@ -1,4 +1,7 @@ [ - (1.0, Item("common.items.crafting_ing.hide.animal_hide")), - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.icy_fang"), 1, 2)), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.animal_misc.icy_fang"), 3, 6), + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 4, 6), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/icedrake.ron b/assets/common/loot_tables/creature/quad_medium/icedrake.ron index a89e908895..b190bb4c42 100644 --- a/assets/common/loot_tables/creature/quad_medium/icedrake.ron +++ b/assets/common/loot_tables/creature/quad_medium/icedrake.ron @@ -1,5 +1,8 @@ [ - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.icy_fang"), 1, 2)), - (1.0, MultiDrop(Item("common.items.food.meat.tough_raw"), 1, 2)), - (1.0, Item("common.items.crafting_ing.hide.carapace")), + (1, All([ + MultiDrop(Item("common.items.food.meat.tough_raw"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.animal_misc.icy_fang"), 5, 10), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/mammoth.ron b/assets/common/loot_tables/creature/quad_medium/mammoth.ron index 3ee6b12510..c07a16a2cb 100644 --- a/assets/common/loot_tables/creature/quad_medium/mammoth.ron +++ b/assets/common/loot_tables/creature/quad_medium/mammoth.ron @@ -1,7 +1,8 @@ [ (1, All([ - MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 0, 1), - MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 0, 2), + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 4, 6), + MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 1, 2), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 4, 6), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/moose.ron b/assets/common/loot_tables/creature/quad_medium/moose.ron new file mode 100644 index 0000000000..d34dd62515 --- /dev/null +++ b/assets/common/loot_tables/creature/quad_medium/moose.ron @@ -0,0 +1,9 @@ +[ + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_small_raw"), 2, 4), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.hide.tough_hide"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 2), + ], + )), +] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/ngoubou.ron b/assets/common/loot_tables/creature/quad_medium/ngoubou.ron index 14a37401fe..5e4f9777eb 100644 --- a/assets/common/loot_tables/creature/quad_medium/ngoubou.ron +++ b/assets/common/loot_tables/creature/quad_medium/ngoubou.ron @@ -1,7 +1,7 @@ [ (1, All([ - MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 0, 1), - MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 2), + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 6), MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 0, 2), ], )), diff --git a/assets/common/loot_tables/creature/quad_medium/roshwalr.ron b/assets/common/loot_tables/creature/quad_medium/roshwalr.ron index 22c24ae5ff..f2f1385cdd 100644 --- a/assets/common/loot_tables/creature/quad_medium/roshwalr.ron +++ b/assets/common/loot_tables/creature/quad_medium/roshwalr.ron @@ -1,8 +1,8 @@ [ (1, All([ - MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 0, 3), - MultiDrop(Item("common.items.crafting_ing.animal_misc.icy_fang"), 0, 3), - MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 0, 2), + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 4, 8), + MultiDrop(Item("common.items.crafting_ing.animal_misc.icy_fang"), 2, 6), + MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 1, 2), ], )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/tarasque.ron b/assets/common/loot_tables/creature/quad_medium/tarasque.ron new file mode 100644 index 0000000000..51f9c5e0ba --- /dev/null +++ b/assets/common/loot_tables/creature/quad_medium/tarasque.ron @@ -0,0 +1,9 @@ +[ + (1, All([ + MultiDrop(Item("common.items.food.meat.tough_raw"), 2, 4), + MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 0, 4), + MultiDrop(Item("common.items.crafting_ing.hide.carapace"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 2), + ], + )), +] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/tuskram.ron b/assets/common/loot_tables/creature/quad_medium/tuskram.ron index a23f361710..b8d1fdb278 100644 --- a/assets/common/loot_tables/creature/quad_medium/tuskram.ron +++ b/assets/common/loot_tables/creature/quad_medium/tuskram.ron @@ -1,4 +1,8 @@ [ - (4.0, LootTable("common.loot_tables.creature.quad_medium.generic")), - (1.0, Item("common.items.crafting_ing.animal_misc.long_tusk")), + (1, All([ + MultiDrop(LootTable("common.loot_tables.creature.quad_medium.generic"), 4, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 1, 2), + MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 2), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/wolf.ron b/assets/common/loot_tables/creature/quad_medium/wolf.ron index beda2c6488..32c5489d4b 100644 --- a/assets/common/loot_tables/creature/quad_medium/wolf.ron +++ b/assets/common/loot_tables/creature/quad_medium/wolf.ron @@ -1,5 +1,8 @@ [ - (1.0, Item("common.items.food.meat.beast_small_raw")), - (1.0, Item("common.items.crafting_ing.hide.tough_hide")), - (1.0, Item("common.items.crafting_ing.animal_misc.sharp_fang")), + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_small_raw"), 2, 5), + MultiDrop(Item("common.items.crafting_ing.hide.tough_hide"), 2, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.sharp_fang"), 1, 4), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/wool.ron b/assets/common/loot_tables/creature/quad_medium/wool.ron index d59d4e067c..3a0d7ec081 100644 --- a/assets/common/loot_tables/creature/quad_medium/wool.ron +++ b/assets/common/loot_tables/creature/quad_medium/wool.ron @@ -1,6 +1,9 @@ [ - (1.5, Item("common.items.food.meat.beast_small_raw")), - (0.5, Item("common.items.food.meat.beast_large_raw")), - (1.0, Item("common.items.crafting_ing.hide.animal_hide")), - (5.0, MultiDrop(Item("common.items.crafting_ing.cloth.wool"), 2, 5)), + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_small_raw"), 2, 4), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.hide.animal_hide"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.cloth.wool"), 3, 6), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_medium/yak.ron b/assets/common/loot_tables/creature/quad_medium/yak.ron index c1c91ff337..f4e90c6b97 100644 --- a/assets/common/loot_tables/creature/quad_medium/yak.ron +++ b/assets/common/loot_tables/creature/quad_medium/yak.ron @@ -1,4 +1,7 @@ [ - (1.0, Item("common.items.food.meat.beast_large_raw")), - (1.0, Item("common.items.crafting_ing.hide.animal_hide")), + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 4, 6), + MultiDrop(Item("common.items.crafting_ing.hide.tough_hide"), 6, 8), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/quad_small/treant_sapling.ron b/assets/common/loot_tables/creature/quad_small/treant_sapling.ron index fadf82680e..be315caf7a 100644 --- a/assets/common/loot_tables/creature/quad_small/treant_sapling.ron +++ b/assets/common/loot_tables/creature/quad_small/treant_sapling.ron @@ -1,6 +1,12 @@ [ - (2.0, Item("common.items.log.wood")), - (2.0, Item("common.items.flowers.plant_fiber")), - (1.0, Item("common.items.crafting_ing.resin")), - (1.0, Item("common.items.crafting_ing.sentient_seed")), + (1, All([ + MultiDrop(Item("common.items.log.wood"), 2, 4), + MultiDrop(Item("common.items.flowers.plant_fiber"), 1, 3), + Lottery([ + (0.5, Item("common.items.crafting_ing.resin")), + (0.5, Item("common.items.crafting_ing.sentient_seed")), + (0.5, Nothing), + ]), + ], + )), ] diff --git a/assets/common/loot_tables/creature/theropod/archaeos.ron b/assets/common/loot_tables/creature/theropod/archaeos.ron index df4ad63102..cb09207af3 100644 --- a/assets/common/loot_tables/creature/theropod/archaeos.ron +++ b/assets/common/loot_tables/creature/theropod/archaeos.ron @@ -1,9 +1,9 @@ [ (1, All([ - MultiDrop(Item("common.items.food.meat.beast_large_raw"), 2, 5), - MultiDrop(Item("common.items.crafting_ing.hide.plate"), 1, 4), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 5, 8), + MultiDrop(Item("common.items.crafting_ing.hide.plate"), 6, 10), MultiDrop(Item("common.items.crafting_ing.animal_misc.claw"), 2, 4), - MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 1), + MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 2), ], )), ] diff --git a/assets/common/loot_tables/creature/theropod/axebeak.ron b/assets/common/loot_tables/creature/theropod/axebeak.ron index 03979386ef..a60f3cc824 100644 --- a/assets/common/loot_tables/creature/theropod/axebeak.ron +++ b/assets/common/loot_tables/creature/theropod/axebeak.ron @@ -1,5 +1,8 @@ [ - (4.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 3, 6)), - (1.0, Item("common.items.crafting_ing.animal_misc.raptor_feather")), - (0.5, Item("common.items.food.meat.bird_large_raw")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 3, 6), + MultiDrop(Item("common.items.crafting_ing.animal_misc.raptor_feather"), 2, 3), + MultiDrop(Item("common.items.food.meat.bird_large_raw"), 1, 3), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/theropod/dodarock.ron b/assets/common/loot_tables/creature/theropod/dodarock.ron index 84a5e37950..0d79abb87e 100644 --- a/assets/common/loot_tables/creature/theropod/dodarock.ron +++ b/assets/common/loot_tables/creature/theropod/dodarock.ron @@ -1,4 +1,7 @@ [ - (1.0, MultiDrop(LootTable("common.loot_tables.materials.underground"), 1, 2)), - (1.0, MultiDrop(Item("common.items.crafting_ing.stones"), 2, 6)), + (1, All([ + MultiDrop(LootTable("common.loot_tables.materials.underground"), 1, 2), + MultiDrop(Item("common.items.crafting_ing.stones"), 2, 6), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/theropod/horned.ron b/assets/common/loot_tables/creature/theropod/horned.ron index d3767b3bc1..1f89025aac 100644 --- a/assets/common/loot_tables/creature/theropod/horned.ron +++ b/assets/common/loot_tables/creature/theropod/horned.ron @@ -1,4 +1,7 @@ [ - (1.0, Item("common.items.crafting_ing.hide.rugged_hide")), - (1.0, Item("common.items.crafting_ing.animal_misc.large_horn")), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 3, 5), + MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 2), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/theropod/ntouka.ron b/assets/common/loot_tables/creature/theropod/ntouka.ron index 179d0f82f9..1db3f0c825 100644 --- a/assets/common/loot_tables/creature/theropod/ntouka.ron +++ b/assets/common/loot_tables/creature/theropod/ntouka.ron @@ -1,8 +1,8 @@ [ (1, All([ - MultiDrop(Item("common.items.food.meat.beast_large_raw"), 2, 4), - MultiDrop(Item("common.items.crafting_ing.hide.plate"), 1, 3), - MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 2), + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 5, 8), + MultiDrop(Item("common.items.crafting_ing.hide.plate"), 6, 10), + MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 7), ], )), ] diff --git a/assets/common/loot_tables/creature/theropod/odonto.ron b/assets/common/loot_tables/creature/theropod/odonto.ron index b8675d794f..0b21ad2da4 100644 --- a/assets/common/loot_tables/creature/theropod/odonto.ron +++ b/assets/common/loot_tables/creature/theropod/odonto.ron @@ -1,4 +1,9 @@ [ - (1.0, Item("common.items.crafting_ing.hide.rugged_hide")), - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 2, 2)), + (1, All([ + MultiDrop(Item("common.items.food.meat.beast_large_raw"), 5, 8), + MultiDrop(Item("common.items.crafting_ing.hide.rugged_hide"), 6, 10), + MultiDrop(Item("common.items.crafting_ing.animal_misc.long_tusk"), 1, 2), + MultiDrop(Item("common.items.crafting_ing.animal_misc.large_horn"), 0, 3), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/theropod/raptor.ron b/assets/common/loot_tables/creature/theropod/raptor.ron index 961d48c4fb..4708e538be 100644 --- a/assets/common/loot_tables/creature/theropod/raptor.ron +++ b/assets/common/loot_tables/creature/theropod/raptor.ron @@ -1,5 +1,8 @@ [ - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 1, 1)), - (2.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.raptor_feather"), 2, 6)), - (1.0, MultiDrop(Item("common.items.crafting_ing.hide.scales"), 1, 2)), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.animal_misc.elegant_crest"), 1, 4), + MultiDrop(Item("common.items.crafting_ing.animal_misc.raptor_feather"), 1, 3), + MultiDrop(Item("common.items.crafting_ing.hide.scales"), 3, 6), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/creature/theropod/scale.ron b/assets/common/loot_tables/creature/theropod/scale.ron index e101009b9c..98c7f3d6d3 100644 --- a/assets/common/loot_tables/creature/theropod/scale.ron +++ b/assets/common/loot_tables/creature/theropod/scale.ron @@ -1,4 +1,7 @@ [ - (1.0, MultiDrop(Item("common.items.crafting_ing.animal_misc.raptor_feather"), 1, 2)), - (2.0, MultiDrop(Item("common.items.crafting_ing.hide.scales"), 2, 6)), + (1, All([ + MultiDrop(Item("common.items.crafting_ing.animal_misc.raptor_feather"), 2, 3), + MultiDrop(Item("common.items.crafting_ing.hide.scales"), 2, 6), + ], + )), ] \ No newline at end of file diff --git a/assets/common/loot_tables/materials/underground.ron b/assets/common/loot_tables/materials/underground.ron index 71e6d96a14..a7f39e54db 100644 --- a/assets/common/loot_tables/materials/underground.ron +++ b/assets/common/loot_tables/materials/underground.ron @@ -1,5 +1,5 @@ [ - (1.0, Item("common.items.mineral.ore.veloritefrag")), - (0.35, Item("common.items.mineral.ore.velorite")), + (1.0, MultiDrop(Item("common.items.mineral.ore.veloritefrag"), 3, 4)), + (0.35, MultiDrop(Item("common.items.mineral.ore.velorite"), 2, 3)), (0.15, LootTable("common.loot_tables.materials.gems")), ] diff --git a/common/src/comp/inventory/trade_pricing.rs b/common/src/comp/inventory/trade_pricing.rs index 77440d6679..f7089c805c 100644 --- a/common/src/comp/inventory/trade_pricing.rs +++ b/common/src/comp/inventory/trade_pricing.rs @@ -250,9 +250,12 @@ lazy_static! { } #[derive(Clone)] -/// A collection of items with probabilty (normalized to one), created +/// A collection of items with probabilty, created /// hierarchically from `LootSpec`s /// (probability, item id, average amount) +/// +/// This collection is NOT normalized (the sum of probabilities may not equal to +/// one, as maltiple items can drop in one roll) pub struct ProbabilityFile { pub content: Vec<(f32, ItemDefinitionIdOwned, f32)>, } @@ -1148,11 +1151,7 @@ pub fn expand_loot_table(loot_table: &str) -> Vec<(f32, ItemDefinitionIdOwned, f // cd common && cargo test trade_pricing -- --nocapture #[cfg(test)] mod tests { - use crate::{ - comp::inventory::trade_pricing::{expand_loot_table, ProbabilityFile, TradePricing}, - lottery::LootSpec, - trade::Good, - }; + use crate::{comp::inventory::trade_pricing::TradePricing, trade::Good}; use tracing::{info, Level}; use tracing_subscriber::{filter::EnvFilter, FmtSubscriber}; @@ -1164,26 +1163,6 @@ mod tests { .unwrap_or(()); } - #[test] - fn test_loot_table() { - init(); - info!("init"); - - let loot = expand_loot_table("common.loot_tables.creature.quad_medium.gentle"); - let lootsum = loot.iter().fold(0.0, |s, i| s + i.0); - assert!((lootsum - 1.0).abs() < 1e-3); - // hierarchical - let loot2 = expand_loot_table("common.loot_tables.creature.quad_medium.catoblepas"); - let lootsum2 = loot2.iter().fold(0.0, |s, i| s + i.0); - assert!((lootsum2 - 1.0).abs() < 1e-4); - - // highly nested - let loot3 = expand_loot_table("common.loot_tables.creature.biped_large.wendigo"); - let lootsum3 = loot3.iter().fold(0.0, |s, i| s + i.0); - //tracing::trace!("{:?} {}", loot3, lootsum3); - assert!((lootsum3 - 1.0).abs() < 1e-5); - } - #[test] fn test_prices1() { init(); @@ -1212,43 +1191,4 @@ mod tests { info!("Random item {:?}*{}", i.0, i.1); } } - - fn normalized(probability: &ProbabilityFile) -> bool { - let sum = probability.content.iter().map(|(p, _, _)| p).sum::(); - (dbg!(sum) - 1.0).abs() < 1e-3 - } - - #[test] - fn test_normalizing_table1() { - let item = |asset: &str| LootSpec::Item(asset.to_owned()); - let loot_table = vec![(1.0, item("wow")), (1.0, item("nice"))]; - - let probability: ProbabilityFile = loot_table.into(); - assert!(normalized(&probability)); - } - - #[test] - fn test_normalizing_table2() { - let table = |asset: &str| LootSpec::LootTable(asset.to_owned()); - let loot_table = vec![( - 1.0, - table("common.loot_tables.creature.quad_medium.catoblepas"), - )]; - let probability: ProbabilityFile = loot_table.into(); - assert!(normalized(&probability)); - } - - #[test] - fn test_normalizing_table3() { - let table = |asset: &str| LootSpec::LootTable(asset.to_owned()); - let loot_table = vec![ - ( - 1.0, - table("common.loot_tables.creature.quad_medium.catoblepas"), - ), - (1.0, table("common.loot_tables.creature.quad_medium.gentle")), - ]; - let probability: ProbabilityFile = loot_table.into(); - assert!(normalized(&probability)); - } } diff --git a/world/src/layer/spot.rs b/world/src/layer/spot.rs index 47aa69eb55..aaaaa331f3 100644 --- a/world/src/layer/spot.rs +++ b/world/src/layer/spot.rs @@ -543,7 +543,7 @@ pub fn apply_spots_to(canvas: &mut Canvas, _dynamic_rng: &mut impl Rng) { Spot::Arch => SpotConfig { base_structures: Some("spots.arch"), entity_radius: 50.0, - entities: &[(2..3, "common.entity.wild.aggressive.ngoubou")], + entities: &[], }, Spot::AirshipCrash => SpotConfig { base_structures: Some("trees.airship_crash"),