Loot tables can now recursively specify loot tables. Mercahnts broken.

This commit is contained in:
Sam 2021-03-28 17:41:14 -04:00
parent 8365db8041
commit 247004d180
64 changed files with 1072 additions and 1082 deletions

View File

@ -2,35 +2,35 @@
loot_tables: [
// balance the loot tables against each other (higher= more common= smaller price)
// the fact that loot tables have an own probability not accessible outside of the lottery call doesn't help here
(0.5,"common.loot_tables.loot_table_animal_ice"),
(4,"common.loot_tables.loot_table_animal_parts"),
(1,"common.loot_tables.loot_table_armor_cloth"),
(0.01,"common.loot_tables.loot_table_armor_heavy"),
(0.1,"common.loot_tables.loot_table_armor_light"),
(0.1,"common.loot_tables.loot_table_armor_misc"),
(0.5,"common.loot_tables.loot_table_armor_nature"),
(0.1,"common.loot_tables.loot_table_cave_large"),
(0.1,"common.loot_tables.loot_table_consumables"),
(0.5,"common.loot_tables.animal_ice"),
(4,"common.loot_tables.animal_parts"),
(1,"common.loot_tables.armor_cloth"),
(0.01,"common.loot_tables.armor_heavy"),
(0.1,"common.loot_tables.armor_light"),
(0.1,"common.loot_tables.armor_misc"),
(0.5,"common.loot_tables.armor_nature"),
(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.loot_table_crafting"),
(0.005,"common.loot_tables.loot_table_cultists"),
(1,"common.loot_tables.loot_table_fish"),
(1,"common.loot_tables.loot_table_food"),
(0.1,"common.loot_tables.loot_table_humanoids"),
(1,"common.loot_tables.loot_table_maneater"),
(0.05,"common.loot_tables.crafting"),
(0.005,"common.loot_tables.cultists"),
(1,"common.loot_tables.fish"),
(1,"common.loot_tables.food"),
(0.1,"common.loot_tables.humanoids"),
(1,"common.loot_tables.maneater"),
(0.0001,"common.loot_tables.mindflayer"),
(0.001,"common.loot_tables.loot_table_miniboss"),
(0.05,"common.loot_tables.loot_table_raptor"),
(0.001,"common.loot_tables.miniboss"),
(0.05,"common.loot_tables.raptor"),
// 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.loot_table_rocks"),
(1,"common.loot_tables.loot_table"),
(0.04,"common.loot_tables.loot_table_saurok"),
(0.02,"common.loot_tables.loot_table_troll"),
(0.05,"common.loot_tables.loot_table_villager"),
(1,"common.loot_tables.loot_table_weapon_common"),
(0.008,"common.loot_tables.loot_table_weapon_rare"),
(0.01,"common.loot_tables.loot_table_weapon_uncommon"),
(0.01,"common.loot_tables.loot_table_wendigo"),
(0.2,"common.loot_tables.rocks"),
(1,"common.loot_tables.fallback"),
(0.04,"common.loot_tables.saurok"),
(0.02,"common.loot_tables.troll"),
(0.05,"common.loot_tables.villager"),
(1,"common.loot_tables.weapon_common"),
(0.008,"common.loot_tables.weapon_rare"),
(0.01,"common.loot_tables.weapon_uncommon"),
(0.01,"common.loot_tables.wendigo"),
// we probably want to include all the scattered scatter information
//(0.5,"common.cave_scatter"),
],

View File

@ -0,0 +1,4 @@
[
(2.0, Item("common.items.crafting_ing.icy_fang")),
(1.0, Item("common.items.crafting_ing.leather_scraps")),
]

View File

@ -0,0 +1,3 @@
[
(2.0, Item("common.items.crafting_ing.leather_scraps")),
]

View File

@ -0,0 +1,38 @@
[
// belts
(0.33, Item("common.items.armor.cloth_blue.belt")),
(0.33, Item("common.items.armor.cloth_green.belt")),
(0.33, Item("common.items.armor.cloth_purple.belt")),
// chests
(0.08, Item("common.items.armor.cloth_blue.chest")),
(0.08, Item("common.items.armor.cloth_green.chest")),
(0.08, Item("common.items.armor.cloth_purple.chest")),
(0.08, Item("common.items.armor.misc.chest.worker_green_0")),
(0.08, Item("common.items.armor.misc.chest.worker_green_1")),
(0.08, Item("common.items.armor.misc.chest.worker_orange_0")),
(0.08, Item("common.items.armor.misc.chest.worker_orange_1")),
(0.08, Item("common.items.armor.misc.chest.worker_purple_0")),
(0.08, Item("common.items.armor.misc.chest.worker_purple_1")),
(0.08, Item("common.items.armor.misc.chest.worker_red_0")),
(0.08, Item("common.items.armor.misc.chest.worker_red_1")),
(0.08, Item("common.items.armor.misc.chest.worker_yellow_0")),
(0.08, Item("common.items.armor.misc.chest.worker_yellow_1")),
// shoes
(0.33, Item("common.items.armor.cloth_blue.foot")),
(0.33, Item("common.items.armor.cloth_green.foot")),
(0.33, Item("common.items.armor.cloth_purple.foot")),
// pants
(0.25, Item("common.items.armor.cloth_blue.pants")),
(0.25, Item("common.items.armor.cloth_green.pants")),
(0.25, Item("common.items.armor.cloth_purple.pants")),
(0.25, Item("common.items.armor.misc.pants.worker_blue")),
// shoulders
(0.25, Item("common.items.armor.cloth_blue.shoulder_0")),
(0.25, Item("common.items.armor.cloth_blue.shoulder_1")),
(0.25, Item("common.items.armor.cloth_green.shoulder")),
(0.25, Item("common.items.armor.cloth_purple.shoulder")),
//gloves
(0.33, Item("common.items.armor.cloth_blue.hand")),
(0.33, Item("common.items.armor.cloth_green.hand")),
(0.33, Item("common.items.armor.cloth_purple.hand")),
]

View File

@ -0,0 +1,21 @@
[
// belts
(0.67, Item("common.items.armor.plate.belt")),
(0.33, Item("common.items.armor.steel.belt")),
// chests
(0.67, Item("common.items.armor.plate.chest")),
(0.33, Item("common.items.armor.steel.chest")),
// shoes
(0.67, Item("common.items.armor.plate.foot")),
(0.33, Item("common.items.armor.steel.foot")),
// pants
(0.67, Item("common.items.armor.plate.pants")),
(0.66, Item("common.items.armor.steel.pants")),
// shoulders
(0.4, Item("common.items.armor.plate.shoulder")),
(0.37, Item("common.items.armor.misc.shoulder.iron_spikes")),
(0.33, Item("common.items.armor.steel.shoulder")),
//gloves
(0.67, Item("common.items.armor.plate.hand")),
(0.33, Item("common.items.armor.steel.hand")),
]

View File

@ -0,0 +1,27 @@
[
// belts
(0.5, Item("common.items.armor.swift.belt")),
(0.5, Item("common.items.armor.agile.belt")),
// chests
(0.5, Item("common.items.armor.swift.chest")),
(0.5, Item("common.items.armor.agile.chest")),
// shoes
(0.5, Item("common.items.armor.swift.foot")),
(0.5, Item("common.items.armor.agile.foot")),
// pants
(0.33, Item("common.items.armor.swift.pants")),
(0.33, Item("common.items.armor.agile.pants")),
(0.33, Item("common.items.armor.misc.pants.hunting")),
// shoulders
(0.1, Item("common.items.armor.misc.shoulder.leather_strip")),
(0.2, Item("common.items.armor.swift.shoulder")),
(0.2, Item("common.items.armor.agile.shoulder")),
(0.2, Item("common.items.armor.agile.shoulder")),
(0.07, Item("common.items.armor.misc.shoulder.leather_iron_0")),
(0.07, Item("common.items.armor.misc.shoulder.leather_iron_1")),
(0.07, Item("common.items.armor.misc.shoulder.leather_iron_2")),
(0.07, Item("common.items.armor.misc.shoulder.leather_iron_3")),
//gloves
(0.5, Item("common.items.armor.swift.hand")),
(0.5, Item("common.items.armor.agile.hand")),
]

View File

@ -0,0 +1,12 @@
[
// rings
(0.15, Item("common.items.armor.misc.ring.scratched")),
(0.05, Item("common.items.armor.misc.ring.gold")),
// capes
(0.25, Item("common.items.armor.misc.back.short_0")),
(0.25, Item("common.items.armor.misc.back.short_1")),
// necks
(0.25, Item("common.items.armor.misc.neck.plain_0")),
// misc
(0.05, Item("common.items.glider.glider_blue")),
]

View File

@ -0,0 +1,32 @@
[
// belts
(0.4, Item("common.items.armor.druid.belt")),
(0.2, Item("common.items.armor.twigs.belt")),
(0.2, Item("common.items.armor.twigsflowers.belt")),
(0.2, Item("common.items.armor.twigsleaves.belt")),
// chests
(0.4, Item("common.items.armor.druid.chest")),
(0.2, Item("common.items.armor.twigs.chest")),
(0.2, Item("common.items.armor.twigsflowers.chest")),
(0.2, Item("common.items.armor.twigsleaves.chest")),
// shoes
(0.4, Item("common.items.armor.druid.foot")),
(0.2, Item("common.items.armor.twigs.foot")),
(0.2, Item("common.items.armor.twigsflowers.foot")),
(0.2, Item("common.items.armor.twigsleaves.foot")),
// pants
(0.4, Item("common.items.armor.druid.pants")),
(0.2, Item("common.items.armor.twigs.pants")),
(0.2, Item("common.items.armor.twigsflowers.pants")),
(0.2, Item("common.items.armor.twigsleaves.pants")),
// shoulders
(0.4, Item("common.items.armor.druid.shoulder")),
(0.2, Item("common.items.armor.twigs.shoulder")),
(0.2, Item("common.items.armor.twigsflowers.shoulder")),
(0.2, Item("common.items.armor.twigsleaves.shoulder")),
//gloves
(0.4, Item("common.items.armor.druid.hand")),
(0.2, Item("common.items.armor.twigs.hand")),
(0.2, Item("common.items.armor.twigsflowers.hand")),
(0.2, Item("common.items.armor.twigsleaves.hand")),
]

View File

@ -0,0 +1,89 @@
[
// Misc
(0.25, Item("common.items.armor.misc.neck.plain_1")),
(2.0, Item("common.items.crafting_ing.cloth_scraps")),
(1.0, Item("common.items.crafting_ing.empty_vial")),
(0.1, Item("common.items.glider.glider_blue")),
(0.05, Item("common.items.glider.glider_morpho")),
(0.05, Item("common.items.glider.glider_monarch")),
(0.05, Item("common.items.glider.glider_moth")),
(0.05, Item("common.items.armor.misc.ring.gold")),
(0.1, Item("common.items.lantern.geode_purp")),
// swords
(0.03, Item("common.items.weapons.sword.steel-0")),
(0.03, Item("common.items.weapons.sword.steel-1")),
(0.03, Item("common.items.weapons.sword.steel-2")),
(0.03, Item("common.items.weapons.sword.steel-3")),
(0.03, Item("common.items.weapons.sword.steel-4")),
(0.03, Item("common.items.weapons.sword.steel-5")),
(0.03, Item("common.items.weapons.sword.steel-6")),
(0.03, Item("common.items.weapons.sword.steel-7")),
(0.03, Item("common.items.weapons.sword.steel-8")),
(0.02, Item("common.items.weapons.sword.cobalt-0")),
(0.02, Item("common.items.weapons.sword.cobalt-1")),
(0.02, Item("common.items.weapons.sword.cobalt-2")),
(0.02, Item("common.items.weapons.sword.cobalt-3")),
(0.01, Item("common.items.weapons.sword.bloodsteel-0")),
(0.01, Item("common.items.weapons.sword.bloodsteel-1")),
(0.01, Item("common.items.weapons.sword.bloodsteel-2")),
// axes
(0.02, Item("common.items.weapons.axe.bloodsteel_axe-0")),
(0.02, Item("common.items.weapons.axe.bloodsteel_axe-1")),
(0.02, Item("common.items.weapons.axe.bloodsteel_axe-2")),
(0.01, Item("common.items.weapons.axe.cobalt_axe-0")),
(0.01, Item("common.items.weapons.axe.cobalt_axe-1")),
(0.001, Item("common.items.weapons.axe.malachite_axe-0")),
(0.04, Item("common.items.weapons.axe.iron_axe-7")),
(0.04, Item("common.items.weapons.axe.iron_axe-8")),
(0.04, Item("common.items.weapons.axe.iron_axe-9")),
(0.04, Item("common.items.weapons.axe.steel_axe-0")),
(0.04, Item("common.items.weapons.axe.steel_axe-1")),
(0.04, Item("common.items.weapons.axe.steel_axe-2")),
(0.04, Item("common.items.weapons.axe.steel_axe-3")),
(0.04, Item("common.items.weapons.axe.steel_axe-4")),
(0.04, Item("common.items.weapons.axe.steel_axe-5")),
(0.04, Item("common.items.weapons.axe.steel_axe-6")),
// healing sceptre
(0.2, Item("common.items.weapons.sceptre.staff_nature")),
(0.1, Item("common.items.weapons.sceptre.fork0")),
(0.1, Item("common.items.weapons.sceptre.emerald")),
(0.1, Item("common.items.weapons.sceptre.coralline_cane")),
(0.001, Item("common.items.weapons.sceptre.sceptre_velorite_0")),
// staves
(0.2, Item("common.items.weapons.staff.bone_staff")),
(0.2, Item("common.items.weapons.staff.ley_seeker")),
(0.10, Item("common.items.weapons.staff.fiery_wishing_rod")),
(0.10, Item("common.items.weapons.staff.heated_arm")),
(0.10, Item("common.items.weapons.staff.golden_khakkara")),
(0.10, Item("common.items.weapons.staff.crimson_eye")),
(0.10, Item("common.items.weapons.staff.solar")),
(0.05, Item("common.items.weapons.staff.lava_rod")),
(0.05, Item("common.items.weapons.staff.dragon_tongue")),
(0.01, Item("common.items.weapons.staff.orc_iron")),
// hammers
(0.3, Item("common.items.weapons.hammer.cobalt_hammer-0")),
(0.3, Item("common.items.weapons.hammer.cobalt_hammer-1")),
(0.15, Item("common.items.weapons.hammer.runic_hammer")),
(0.15, Item("common.items.weapons.hammer.ramshead_hammer")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-7")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-8")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-0")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-1")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-2")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-3")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-4")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-5")),
// bows
(0.03, Item("common.items.weapons.bow.metal-0")),
(0.03, Item("common.items.weapons.bow.metal-1")),
(0.03, Item("common.items.weapons.bow.metal-2")),
(0.03, Item("common.items.weapons.bow.metal-3")),
(0.03, Item("common.items.weapons.bow.metal-4")),
(0.02, Item("common.items.weapons.bow.frostwood-0")),
(0.02, Item("common.items.weapons.bow.frostwood-1")),
(0.02, Item("common.items.weapons.bow.frostwood-2")),
(0.01, Item("common.items.weapons.bow.eldwood-0")),
(0.01, Item("common.items.weapons.bow.eldwood-1")),
(0.01, Item("common.items.weapons.bow.eldwood-2")),
(0.001, Item("common.items.weapons.bow.velorite")),
]

View File

@ -0,0 +1,14 @@
[
// potions
(1.0, Item("common.items.consumable.potion_minor")),
(0.1, Item("common.items.consumable.potion_med")),
(0.01, Item("common.items.consumable.potion_big")),
// bombs
(0.6, Item("common.items.utility.bomb")),
(0.2, Item("common.items.utility.bomb_pile")),
// velorite
(1.0, Item("common.items.ore.veloritefrag")),
(0.5, Item("common.items.ore.velorite")),
// misc
(0.1, Item("common.items.utility.collar")),
]

View File

@ -0,0 +1,12 @@
[
// crafting ingredients
(2.0, Item("common.items.crafting_ing.leather_scraps")),
(4.0, Item("common.items.crafting_ing.cloth_scraps")),
(1.0, Item("common.items.crafting_ing.empty_vial")),
(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")),
]

View File

@ -0,0 +1,188 @@
[
(3.0, Item("common.items.food.cheese")),
(3.0, Item("common.items.food.apple")),
(3.0, Item("common.items.food.mushroom")),
(3.0, Item("common.items.food.coconut")),
(5.0, Item("common.items.crafting_ing.cloth_scraps")),
(0.5, Item("common.items.food.apple_mushroom_curry")),
(0.5, Item("common.items.food.apple_stick")),
(0.5, Item("common.items.food.mushroom_stick")),
(4.0, Item("common.items.crafting_ing.empty_vial")),
(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")),
(0.5, Item("common.items.armor.plate.belt")),
(0.3, Item("common.items.armor.steel.belt")),
(0.5, Item("common.items.armor.plate.chest")),
(0.3, Item("common.items.armor.steel.chest")),
(0.5, Item("common.items.armor.plate.foot")),
(0.3, Item("common.items.armor.steel.foot")),
(0.5, Item("common.items.armor.plate.pants")),
(0.3, Item("common.items.armor.steel.pants")),
(0.4, Item("common.items.armor.plate.shoulder")),
(0.37, Item("common.items.armor.misc.shoulder.iron_spikes")),
(0.33, Item("common.items.armor.steel.shoulder")),
(0.67, Item("common.items.armor.plate.hand")),
(0.33, Item("common.items.armor.steel.hand")),
(0.5, Item("common.items.armor.swift.belt")),
(0.5, Item("common.items.armor.agile.belt")),
(0.5, Item("common.items.armor.swift.chest")),
(0.5, Item("common.items.armor.agile.chest")),
(0.5, Item("common.items.armor.swift.foot")),
(0.5, Item("common.items.armor.agile.foot")),
(0.33, Item("common.items.armor.swift.pants")),
(0.33, Item("common.items.armor.agile.pants")),
(0.33, Item("common.items.armor.misc.pants.hunting")),
(0.6, Item("common.items.armor.misc.shoulder.leather_strip")),
(0.4, Item("common.items.armor.swift.shoulder")),
(0.4, Item("common.items.armor.agile.shoulder")),
(0.3, Item("common.items.armor.misc.shoulder.leather_iron_0")),
(0.3, Item("common.items.armor.misc.shoulder.leather_iron_1")),
(0.3, Item("common.items.armor.misc.shoulder.leather_iron_2")),
(0.3, Item("common.items.armor.misc.shoulder.leather_iron_3")),
(0.5, Item("common.items.armor.swift.hand")),
(0.5, Item("common.items.armor.agile.hand")),
(0.001, Item("common.items.armor.misc.back.backpack")),
(0.1, Item("common.items.armor.misc.bag.heavy_seabag")),
(0.1, Item("common.items.weapons.sword.wood-0")),
(0.1, Item("common.items.weapons.sword.wood-1")),
(0.1, Item("common.items.weapons.sword.wood-2")),
(0.1, Item("common.items.weapons.sword.stone-0")),
(0.1, Item("common.items.weapons.sword.stone-1")),
(0.1, Item("common.items.weapons.sword.stone-2")),
(0.05, Item("common.items.weapons.sword.bronze-0")),
(0.05, Item("common.items.weapons.sword.bronze-1")),
(0.05, Item("common.items.weapons.sword.bronze-2")),
(0.2, Item("common.items.weapons.axe.orc_axe-0")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-0")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-1")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-2")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-3")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-4")),
(0.25, Item("common.items.weapons.sceptre.staff_nature")),
(0.15, Item("common.items.weapons.hammer.flimsy_hammer")),
(0.1, Item("common.items.weapons.hammer.wood_hammer-0")),
(0.1, Item("common.items.weapons.hammer.stone_hammer-0")),
(0.1, Item("common.items.weapons.hammer.stone_hammer-1")),
(0.1, Item("common.items.weapons.hammer.stone_hammer-2")),
(0.1, Item("common.items.weapons.hammer.stone_hammer-3")),
(0.05, Item("common.items.weapons.hammer.worn_iron_hammer-0")),
(0.05, Item("common.items.weapons.hammer.worn_iron_hammer-1")),
(0.05, Item("common.items.weapons.hammer.worn_iron_hammer-2")),
(0.05, Item("common.items.weapons.hammer.worn_iron_hammer-3")),
(0.2, Item("common.items.weapons.bow.rawwood-0")),
(0.2, Item("common.items.weapons.bow.rawwood-1")),
(0.1, Item("common.items.weapons.bow.wood-0")),
(0.1, Item("common.items.weapons.bow.wood-1")),
(0.1, Item("common.items.weapons.bow.wood-2")),
(0.1, Item("common.items.weapons.bow.wood-3")),
(0.1, Item("common.items.weapons.bow.wood-4")),
(0.05, Item("common.items.weapons.bow.bone-0")),
(0.05, Item("common.items.weapons.bow.bone-1")),
(0.05, Item("common.items.weapons.bow.bone-2")),
(0.05, Item("common.items.weapons.bow.bone-3")),
(0.04, Item("common.items.weapons.sword.iron-0")),
(0.04, Item("common.items.weapons.sword.iron-1")),
(0.04, Item("common.items.weapons.sword.iron-2")),
(0.04, Item("common.items.weapons.sword.iron-3")),
(0.04, Item("common.items.weapons.sword.iron-4")),
(0.04, Item("common.items.weapons.sword.iron-5")),
(0.04, Item("common.items.weapons.sword.iron-6")),
(0.04, Item("common.items.weapons.sword.iron-7")),
(0.04, Item("common.items.weapons.sword.iron-8")),
(0.04, Item("common.items.weapons.sword.iron-9")),
(0.04, Item("common.items.weapons.sword.iron-10")),
(0.03, Item("common.items.weapons.sword.steel-0")),
(0.03, Item("common.items.weapons.sword.steel-1")),
(0.03, Item("common.items.weapons.sword.steel-2")),
(0.03, Item("common.items.weapons.sword.steel-3")),
(0.03, Item("common.items.weapons.sword.steel-4")),
(0.03, Item("common.items.weapons.sword.steel-5")),
(0.03, Item("common.items.weapons.sword.steel-6")),
(0.03, Item("common.items.weapons.sword.steel-7")),
(0.03, Item("common.items.weapons.sword.steel-8")),
(0.15, Item("common.items.weapons.axe.bronze_axe-0")),
(0.15, Item("common.items.weapons.axe.bronze_axe-1")),
(0.15, Item("common.items.weapons.axe.bronze_axe-2")),
(0.04, Item("common.items.weapons.axe.iron_axe-0")),
(0.04, Item("common.items.weapons.axe.iron_axe-1")),
(0.04, Item("common.items.weapons.axe.iron_axe-2")),
(0.04, Item("common.items.weapons.axe.iron_axe-3")),
(0.04, Item("common.items.weapons.axe.iron_axe-4")),
(0.04, Item("common.items.weapons.axe.iron_axe-5")),
(0.04, Item("common.items.weapons.axe.iron_axe-6")),
(0.04, Item("common.items.weapons.axe.iron_axe-7")),
(0.04, Item("common.items.weapons.axe.iron_axe-8")),
(0.04, Item("common.items.weapons.axe.iron_axe-9")),
(0.04, Item("common.items.weapons.axe.steel_axe-0")),
(0.04, Item("common.items.weapons.axe.steel_axe-1")),
(0.04, Item("common.items.weapons.axe.steel_axe-2")),
(0.04, Item("common.items.weapons.axe.steel_axe-3")),
(0.04, Item("common.items.weapons.axe.steel_axe-4")),
(0.04, Item("common.items.weapons.axe.steel_axe-5")),
(0.04, Item("common.items.weapons.axe.steel_axe-6")),
(0.5, Item("common.items.weapons.sceptre.staff_nature")),
(0.4, Item("common.items.weapons.staff.bone_staff")),
(0.40, Item("common.items.weapons.staff.crimson_eye")),
(0.2, Item("common.items.weapons.staff.aurora")),
(0.20, Item("common.items.weapons.staff.frostwood_torch")),
(0.15, Item("common.items.weapons.hammer.bronze_hammer-0")),
(0.15, Item("common.items.weapons.hammer.bronze_hammer-1")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-0")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-1")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-2")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-3")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-4")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-5")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-6")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-7")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-8")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-0")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-1")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-2")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-3")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-4")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-5")),
(0.04, Item("common.items.weapons.bow.hardwood-0")),
(0.04, Item("common.items.weapons.bow.hardwood-1")),
(0.04, Item("common.items.weapons.bow.hardwood-2")),
(0.04, Item("common.items.weapons.bow.hardwood-3")),
(0.04, Item("common.items.weapons.bow.hardwood-4")),
(0.04, Item("common.items.weapons.bow.hardwood-5")),
(0.03, Item("common.items.weapons.bow.metal-0")),
(0.03, Item("common.items.weapons.bow.metal-1")),
(0.03, Item("common.items.weapons.bow.metal-2")),
(0.03, Item("common.items.weapons.bow.metal-3")),
(0.03, Item("common.items.weapons.bow.metal-4")),
(0.2, Item("common.items.weapons.sword.cobalt-0")),
(0.2, Item("common.items.weapons.sword.cobalt-1")),
(0.2, Item("common.items.weapons.sword.cobalt-2")),
(0.2, Item("common.items.weapons.sword.cobalt-3")),
(0.1, Item("common.items.weapons.sword.bloodsteel-0")),
(0.1, Item("common.items.weapons.sword.bloodsteel-1")),
(0.1, Item("common.items.weapons.sword.bloodsteel-2")),
(0.2, Item("common.items.weapons.axe.bloodsteel_axe-0")),
(0.2, Item("common.items.weapons.axe.bloodsteel_axe-1")),
(0.2, Item("common.items.weapons.axe.bloodsteel_axe-2")),
(0.25, Item("common.items.weapons.sceptre.staff_nature")),
(0.2, Item("common.items.weapons.staff.infused_tower")),
(0.10, Item("common.items.weapons.staff.lava_rod")),
(0.10, Item("common.items.weapons.staff.dragon_tongue")),
(0.1, Item("common.items.weapons.staff.flamethrower_0")),
(0.04, Item("common.items.weapons.staff.bent_fuse")),
(0.04, Item("common.items.weapons.sceptre.emerald")),
(0.04, Item("common.items.weapons.staff.orc_iron")),
(0.01, Item("common.items.weapons.hammer.cobalt_hammer-0")),
(0.01, Item("common.items.weapons.hammer.cobalt_hammer-1")),
(0.01, Item("common.items.weapons.hammer.runic_hammer")),
(0.1, Item("common.items.weapons.hammer.ramshead_hammer")),
(0.2, Item("common.items.weapons.bow.frostwood-0")),
(0.2, Item("common.items.weapons.bow.frostwood-1")),
(0.2, Item("common.items.weapons.bow.frostwood-2")),
(0.1, Item("common.items.weapons.bow.eldwood-0")),
(0.1, Item("common.items.weapons.bow.eldwood-1")),
(0.1, Item("common.items.weapons.bow.eldwood-2")),
]

View File

@ -0,0 +1,4 @@
[
// Fallback loot table
(1.0, Item("common.items.food.cheese")),
]

View File

@ -0,0 +1,3 @@
[
(1.0, Item("common.items.food.fish")),
]

View File

@ -0,0 +1,14 @@
[
// simple
(3.0, Item("common.items.food.cheese")),
(3.0, Item("common.items.food.apple")),
(3.0, Item("common.items.food.mushroom")),
(1.0, Item("common.items.food.coconut")),
(1.0, Item("common.items.food.lettuce")),
(1.0, Item("common.items.food.tomato")),
(2.0, Item("common.items.food.carrot")),
// crafted
(0.05, Item("common.items.food.apple_mushroom_curry")),
(0.1, Item("common.items.food.apple_stick")),
(0.1, Item("common.items.food.mushroom_stick")),
]

View File

@ -0,0 +1,31 @@
[
// Crafting Ingredients
(2.0, Item("common.items.crafting_ing.empty_vial")),
(0.1, Item("common.items.crafting_ing.diamond")),
(4.0, Item("common.items.crafting_ing.cloth_scraps")),
// Consumables
(0.2, Item("common.items.consumable.potion_minor")),
// Ring
(0.02, Item("common.items.armor.misc.ring.gold")),
// Utility
(0.05, Item("common.items.utility.collar")),
// Food
(1.0, Item("common.items.food.coconut")),
(0.05, Item("common.items.food.apple_mushroom_curry")),
(0.1, Item("common.items.food.apple_stick")),
(0.1, Item("common.items.food.mushroom_stick")),
// Weapons
(0.1, Item("common.items.weapons.sword.wood-0")),
(0.1, Item("common.items.weapons.sword.wood-1")),
(0.1, Item("common.items.weapons.sword.wood-2")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-0")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-1")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-2")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-3")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-4")),
(0.25, Item("common.items.weapons.sceptre.staff_nature")),
(0.15, Item("common.items.weapons.hammer.flimsy_hammer")),
(0.1, Item("common.items.weapons.hammer.wood_hammer-0")),
(0.15, Item("common.items.weapons.bow.rawwood-0")),
(0.15, Item("common.items.weapons.bow.rawwood-1")),
]

View File

@ -0,0 +1,3 @@
[
(1.0, Item("common.items.crafting_ing.stones")),
]

View File

@ -1,4 +0,0 @@
[
// Fallback loot table
(1, "common.items.food.mushroom"),
]

View File

@ -1,4 +0,0 @@
[
(2, "common.items.crafting_ing.icy_fang"),
(1, "common.items.crafting_ing.leather_scraps"),
]

View File

@ -1,3 +0,0 @@
[
(2, "common.items.crafting_ing.leather_scraps"),
]

View File

@ -1,38 +0,0 @@
[
// belts
(0.33, "common.items.armor.cloth_blue.belt"),
(0.33, "common.items.armor.cloth_green.belt"),
(0.33, "common.items.armor.cloth_purple.belt"),
// chests
(0.08, "common.items.armor.cloth_blue.chest"),
(0.08, "common.items.armor.cloth_green.chest"),
(0.08, "common.items.armor.cloth_purple.chest"),
(0.08, "common.items.armor.misc.chest.worker_green_0"),
(0.08, "common.items.armor.misc.chest.worker_green_1"),
(0.08, "common.items.armor.misc.chest.worker_orange_0"),
(0.08, "common.items.armor.misc.chest.worker_orange_1"),
(0.08, "common.items.armor.misc.chest.worker_purple_0"),
(0.08, "common.items.armor.misc.chest.worker_purple_1"),
(0.08, "common.items.armor.misc.chest.worker_red_0"),
(0.08, "common.items.armor.misc.chest.worker_red_1"),
(0.08, "common.items.armor.misc.chest.worker_yellow_0"),
(0.08, "common.items.armor.misc.chest.worker_yellow_1"),
// shoes
(0.33, "common.items.armor.cloth_blue.foot"),
(0.33, "common.items.armor.cloth_green.foot"),
(0.33, "common.items.armor.cloth_purple.foot"),
// pants
(0.25, "common.items.armor.cloth_blue.pants"),
(0.25, "common.items.armor.cloth_green.pants"),
(0.25, "common.items.armor.cloth_purple.pants"),
(0.25, "common.items.armor.misc.pants.worker_blue"),
// shoulders
(0.25, "common.items.armor.cloth_blue.shoulder_0"),
(0.25, "common.items.armor.cloth_blue.shoulder_1"),
(0.25, "common.items.armor.cloth_green.shoulder"),
(0.25, "common.items.armor.cloth_purple.shoulder"),
//gloves
(0.33, "common.items.armor.cloth_blue.hand"),
(0.33, "common.items.armor.cloth_green.hand"),
(0.33, "common.items.armor.cloth_purple.hand"),
]

View File

@ -1,21 +0,0 @@
[
// belts
(0.67, "common.items.armor.plate.belt"),
(0.33, "common.items.armor.steel.belt"),
// chests
(0.67, "common.items.armor.plate.chest"),
(0.33, "common.items.armor.steel.chest"),
// shoes
(0.67, "common.items.armor.plate.foot"),
(0.33, "common.items.armor.steel.foot"),
// pants
(0.67, "common.items.armor.plate.pants"),
(0.66, "common.items.armor.steel.pants"),
// shoulders
(0.40, "common.items.armor.plate.shoulder"),
(0.37, "common.items.armor.misc.shoulder.iron_spikes"),
(0.33, "common.items.armor.steel.shoulder"),
//gloves
(0.67, "common.items.armor.plate.hand"),
(0.33, "common.items.armor.steel.hand"),
]

View File

@ -1,27 +0,0 @@
[
// belts
(0.50, "common.items.armor.swift.belt"),
(0.50, "common.items.armor.agile.belt"),
// chests
(0.50, "common.items.armor.swift.chest"),
(0.50, "common.items.armor.agile.chest"),
// shoes
(0.50, "common.items.armor.swift.foot"),
(0.50, "common.items.armor.agile.foot"),
// pants
(0.33, "common.items.armor.swift.pants"),
(0.33, "common.items.armor.agile.pants"),
(0.33, "common.items.armor.misc.pants.hunting"),
// shoulders
(0.10, "common.items.armor.misc.shoulder.leather_strip"),
(0.20, "common.items.armor.swift.shoulder"),
(0.20, "common.items.armor.agile.shoulder"),
(0.20, "common.items.armor.agile.shoulder"),
(0.07, "common.items.armor.misc.shoulder.leather_iron_0"),
(0.07, "common.items.armor.misc.shoulder.leather_iron_1"),
(0.07, "common.items.armor.misc.shoulder.leather_iron_2"),
(0.07, "common.items.armor.misc.shoulder.leather_iron_3"),
//gloves
(0.50, "common.items.armor.swift.hand"),
(0.50, "common.items.armor.agile.hand"),
]

View File

@ -1,12 +0,0 @@
[
// rings
(0.15, "common.items.armor.misc.ring.scratched"),
(0.05, "common.items.armor.misc.ring.gold"),
// capes
(0.25, "common.items.armor.misc.back.short_0"),
(0.25, "common.items.armor.misc.back.short_1"),
// necks
(0.25, "common.items.armor.misc.neck.plain_0"),
// misc
(0.05, "common.items.glider.glider_blue"),
]

View File

@ -1,32 +0,0 @@
[
// belts
(0.40, "common.items.armor.druid.belt"),
(0.20, "common.items.armor.twigs.belt"),
(0.20, "common.items.armor.twigsflowers.belt"),
(0.20, "common.items.armor.twigsleaves.belt"),
// chests
(0.40, "common.items.armor.druid.chest"),
(0.20, "common.items.armor.twigs.chest"),
(0.20, "common.items.armor.twigsflowers.chest"),
(0.20, "common.items.armor.twigsleaves.chest"),
// shoes
(0.40, "common.items.armor.druid.foot"),
(0.20, "common.items.armor.twigs.foot"),
(0.20, "common.items.armor.twigsflowers.foot"),
(0.20, "common.items.armor.twigsleaves.foot"),
// pants
(0.40, "common.items.armor.druid.pants"),
(0.20, "common.items.armor.twigs.pants"),
(0.20, "common.items.armor.twigsflowers.pants"),
(0.20, "common.items.armor.twigsleaves.pants"),
// shoulders
(0.40, "common.items.armor.druid.shoulder"),
(0.20, "common.items.armor.twigs.shoulder"),
(0.20, "common.items.armor.twigsflowers.shoulder"),
(0.20, "common.items.armor.twigsleaves.shoulder"),
//gloves
(0.40, "common.items.armor.druid.hand"),
(0.20, "common.items.armor.twigs.hand"),
(0.20, "common.items.armor.twigsflowers.hand"),
(0.20, "common.items.armor.twigsleaves.hand"),
]

View File

@ -1,91 +0,0 @@
[
// Misc
(0.25, "common.items.armor.misc.neck.plain_1"),
(2.0, "common.items.crafting_ing.cloth_scraps"),
(1.0, "common.items.crafting_ing.empty_vial"),
(0.1, "common.items.glider.glider_blue"),
(0.05, "common.items.glider.glider_morpho"),
(0.05, "common.items.glider.glider_monarch"),
(0.05, "common.items.glider.glider_moth"),
(0.05, "common.items.armor.misc.ring.gold"),
(0.1, "common.items.lantern.geode_purp"),
// swords
(0.03, "common.items.weapons.sword.steel-0"),
(0.03, "common.items.weapons.sword.steel-1"),
(0.03, "common.items.weapons.sword.steel-2"),
(0.03, "common.items.weapons.sword.steel-3"),
(0.03, "common.items.weapons.sword.steel-4"),
(0.03, "common.items.weapons.sword.steel-5"),
(0.03, "common.items.weapons.sword.steel-6"),
(0.03, "common.items.weapons.sword.steel-7"),
(0.03, "common.items.weapons.sword.steel-8"),
(0.02, "common.items.weapons.sword.cobalt-0"),
(0.02, "common.items.weapons.sword.cobalt-1"),
(0.02, "common.items.weapons.sword.cobalt-2"),
(0.02, "common.items.weapons.sword.cobalt-3"),
(0.01, "common.items.weapons.sword.bloodsteel-0"),
(0.01, "common.items.weapons.sword.bloodsteel-1"),
(0.01, "common.items.weapons.sword.bloodsteel-2"),
// axes
(0.02, "common.items.weapons.axe.bloodsteel_axe-0"),
(0.02, "common.items.weapons.axe.bloodsteel_axe-1"),
(0.02, "common.items.weapons.axe.bloodsteel_axe-2"),
(0.01, "common.items.weapons.axe.cobalt_axe-0"),
(0.01, "common.items.weapons.axe.cobalt_axe-1"),
(0.001, "common.items.weapons.axe.malachite_axe-0"),
(0.04, "common.items.weapons.axe.iron_axe-7"),
(0.04, "common.items.weapons.axe.iron_axe-8"),
(0.04, "common.items.weapons.axe.iron_axe-9"),
(0.04, "common.items.weapons.axe.steel_axe-0"),
(0.04, "common.items.weapons.axe.steel_axe-1"),
(0.04, "common.items.weapons.axe.steel_axe-2"),
(0.04, "common.items.weapons.axe.steel_axe-3"),
(0.04, "common.items.weapons.axe.steel_axe-4"),
(0.04, "common.items.weapons.axe.steel_axe-5"),
(0.04, "common.items.weapons.axe.steel_axe-6"),
// healing staff
(0.2, "common.items.weapons.sceptre.staff_nature"),
(0.1, "common.items.weapons.sceptre.fork0"),
(0.1, "common.items.weapons.sceptre.emerald"),
(0.1, "common.items.weapons.sceptre.coralline_cane"),
(0.001, "common.items.weapons.sceptre.sceptre_velorite_0"),
// staves
(0.20, "common.items.weapons.staff.bone_staff"),
(0.20, "common.items.weapons.staff.ley_seeker"),
(0.10, "common.items.weapons.staff.fiery_wishing_rod"),
(0.10, "common.items.weapons.staff.heated_arm"),
(0.10, "common.items.weapons.staff.golden_khakkara"),
(0.10, "common.items.weapons.staff.crimson_eye"),
(0.10, "common.items.weapons.staff.solar"),
(0.05, "common.items.weapons.staff.lava_rod"),
(0.05, "common.items.weapons.staff.dragon_tongue"),
(0.01, "common.items.weapons.staff.orc_iron"),
// hammers
(0.30, "common.items.weapons.hammer.cobalt_hammer-0"),
(0.30, "common.items.weapons.hammer.cobalt_hammer-1"),
(0.15, "common.items.weapons.hammer.runic_hammer"),
(0.15, "common.items.weapons.hammer.ramshead_hammer"),
(0.04, "common.items.weapons.hammer.iron_hammer-7"),
(0.04, "common.items.weapons.hammer.iron_hammer-8"),
(0.05, "common.items.weapons.hammer.steel_hammer-0"),
(0.05, "common.items.weapons.hammer.steel_hammer-1"),
(0.05, "common.items.weapons.hammer.steel_hammer-2"),
(0.05, "common.items.weapons.hammer.steel_hammer-3"),
(0.05, "common.items.weapons.hammer.steel_hammer-4"),
(0.05, "common.items.weapons.hammer.steel_hammer-5"),
// bows
(0.03, "common.items.weapons.bow.metal-0"),
(0.03, "common.items.weapons.bow.metal-1"),
(0.03, "common.items.weapons.bow.metal-2"),
(0.03, "common.items.weapons.bow.metal-3"),
(0.03, "common.items.weapons.bow.metal-4"),
(0.02, "common.items.weapons.bow.frostwood-0"),
(0.02, "common.items.weapons.bow.frostwood-1"),
(0.02, "common.items.weapons.bow.frostwood-2"),
(0.01, "common.items.weapons.bow.eldwood-0"),
(0.01, "common.items.weapons.bow.eldwood-1"),
(0.01, "common.items.weapons.bow.eldwood-2"),
(0.001, "common.items.weapons.bow.velorite"),
]

View File

@ -1,14 +0,0 @@
[
// potions
(1, "common.items.consumable.potion_minor"),
(0.1, "common.items.consumable.potion_med"),
(0.01, "common.items.consumable.potion_big"),
// bombs
(0.6, "common.items.utility.bomb"),
(0.2, "common.items.utility.bomb_pile"),
// velorite
(1, "common.items.ore.veloritefrag"),
(0.5, "common.items.ore.velorite"),
// misc
(0.1, "common.items.utility.collar"),
]

View File

@ -1,13 +0,0 @@
[
// crafting ingredients
(2, "common.items.crafting_ing.leather_scraps"),
(4, "common.items.crafting_ing.cloth_scraps"),
(1, "common.items.crafting_ing.empty_vial"),
(0.5, "common.items.crafting_ing.amethyst"),
(0.5, "common.items.crafting_ing.topaz"),
(0.4, "common.items.crafting_ing.sapphire"),
(0.35, "common.items.crafting_ing.emerald"),
(0.25, "common.items.crafting_ing.ruby"),
(0.10, "common.items.crafting_ing.diamond"),
]

View File

@ -1,227 +0,0 @@
[
// Food
// simple
(3, "common.items.food.cheese"),
(3, "common.items.food.apple"),
(3, "common.items.food.mushroom"),
(3, "common.items.food.coconut"),
(5, "common.items.crafting_ing.cloth_scraps"),
// crafted
(0.5, "common.items.food.apple_mushroom_curry"),
(0.5, "common.items.food.apple_stick"),
(0.5, "common.items.food.mushroom_stick"),
// Misc
(4, "common.items.crafting_ing.empty_vial"),
(0.25, "common.items.armor.misc.neck.plain_1"),
(0.1, "common.items.glider.glider_blue"),
(0.5, "common.items.utility.firework_purple"),
(0.5, "common.items.utility.bomb"),
(0.5, "common.items.armor.misc.ring.gold"),
(0.25, "common.items.armor.misc.ring.skull"),
// Heavy Armour
// belts
(0.5, "common.items.armor.plate.belt"),
(0.3, "common.items.armor.steel.belt"),
// chests
(0.5, "common.items.armor.plate.chest"),
(0.3, "common.items.armor.steel.chest"),
// shoes
(0.5, "common.items.armor.plate.foot"),
(0.3, "common.items.armor.steel.foot"),
// pants
(0.5, "common.items.armor.plate.pants"),
(0.3, "common.items.armor.steel.pants"),
// shoulders
(0.40, "common.items.armor.plate.shoulder"),
(0.37, "common.items.armor.misc.shoulder.iron_spikes"),
(0.33, "common.items.armor.steel.shoulder"),
//gloves
(0.67, "common.items.armor.plate.hand"),
(0.33, "common.items.armor.steel.hand"),
//Light Armour
// belts
(0.50, "common.items.armor.swift.belt"),
(0.50, "common.items.armor.agile.belt"),
// chests
(0.50, "common.items.armor.swift.chest"),
(0.50, "common.items.armor.agile.chest"),
// shoes
(0.50, "common.items.armor.swift.foot"),
(0.50, "common.items.armor.agile.foot"),
// pants
(0.33, "common.items.armor.swift.pants"),
(0.33, "common.items.armor.agile.pants"),
(0.33, "common.items.armor.misc.pants.hunting"),
// shoulders
(0.6, "common.items.armor.misc.shoulder.leather_strip"),
(0.4, "common.items.armor.swift.shoulder"),
(0.4, "common.items.armor.agile.shoulder"),
(0.3, "common.items.armor.misc.shoulder.leather_iron_0"),
(0.3, "common.items.armor.misc.shoulder.leather_iron_1"),
(0.3, "common.items.armor.misc.shoulder.leather_iron_2"),
(0.3, "common.items.armor.misc.shoulder.leather_iron_3"),
//gloves
(0.50, "common.items.armor.swift.hand"),
(0.50, "common.items.armor.agile.hand"),
//backpack
(0.001, "common.items.armor.misc.back.backpack"),
(0.1, "common.items.armor.misc.bag.heavy_seabag"),
// Common Weapons
// swords
(0.10, "common.items.weapons.sword.wood-0"),
(0.10, "common.items.weapons.sword.wood-1"),
(0.10, "common.items.weapons.sword.wood-2"),
(0.10, "common.items.weapons.sword.stone-0"),
(0.10, "common.items.weapons.sword.stone-1"),
(0.10, "common.items.weapons.sword.stone-2"),
(0.05, "common.items.weapons.sword.bronze-0"),
(0.05, "common.items.weapons.sword.bronze-1"),
(0.05, "common.items.weapons.sword.bronze-2"),
// axes
(0.20, "common.items.weapons.axe.orc_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-1"),
(0.10, "common.items.weapons.axe.worn_iron_axe-2"),
(0.10, "common.items.weapons.axe.worn_iron_axe-3"),
(0.10, "common.items.weapons.axe.worn_iron_axe-4"),
// healing staff
(0.25, "common.items.weapons.sceptre.staff_nature"),
// hammers
(0.15, "common.items.weapons.hammer.flimsy_hammer"),
(0.10, "common.items.weapons.hammer.wood_hammer-0"),
(0.10, "common.items.weapons.hammer.stone_hammer-0"),
(0.10, "common.items.weapons.hammer.stone_hammer-1"),
(0.10, "common.items.weapons.hammer.stone_hammer-2"),
(0.10, "common.items.weapons.hammer.stone_hammer-3"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-0"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-1"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-2"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-3"),
// bows
(0.20, "common.items.weapons.bow.rawwood-0"),
(0.20, "common.items.weapons.bow.rawwood-1"),
(0.10, "common.items.weapons.bow.wood-0"),
(0.10, "common.items.weapons.bow.wood-1"),
(0.10, "common.items.weapons.bow.wood-2"),
(0.10, "common.items.weapons.bow.wood-3"),
(0.10, "common.items.weapons.bow.wood-4"),
(0.05, "common.items.weapons.bow.bone-0"),
(0.05, "common.items.weapons.bow.bone-1"),
(0.05, "common.items.weapons.bow.bone-2"),
(0.05, "common.items.weapons.bow.bone-3"),
// Uncommon Weapons
// swords
(0.04, "common.items.weapons.sword.iron-0"),
(0.04, "common.items.weapons.sword.iron-1"),
(0.04, "common.items.weapons.sword.iron-2"),
(0.04, "common.items.weapons.sword.iron-3"),
(0.04, "common.items.weapons.sword.iron-4"),
(0.04, "common.items.weapons.sword.iron-5"),
(0.04, "common.items.weapons.sword.iron-6"),
(0.04, "common.items.weapons.sword.iron-7"),
(0.04, "common.items.weapons.sword.iron-8"),
(0.04, "common.items.weapons.sword.iron-9"),
(0.04, "common.items.weapons.sword.iron-10"),
(0.03, "common.items.weapons.sword.steel-0"),
(0.03, "common.items.weapons.sword.steel-1"),
(0.03, "common.items.weapons.sword.steel-2"),
(0.03, "common.items.weapons.sword.steel-3"),
(0.03, "common.items.weapons.sword.steel-4"),
(0.03, "common.items.weapons.sword.steel-5"),
(0.03, "common.items.weapons.sword.steel-6"),
(0.03, "common.items.weapons.sword.steel-7"),
(0.03, "common.items.weapons.sword.steel-8"),
// axes
(0.15, "common.items.weapons.axe.bronze_axe-0"),
(0.15, "common.items.weapons.axe.bronze_axe-1"),
(0.15, "common.items.weapons.axe.bronze_axe-2"),
(0.04, "common.items.weapons.axe.iron_axe-0"),
(0.04, "common.items.weapons.axe.iron_axe-1"),
(0.04, "common.items.weapons.axe.iron_axe-2"),
(0.04, "common.items.weapons.axe.iron_axe-3"),
(0.04, "common.items.weapons.axe.iron_axe-4"),
(0.04, "common.items.weapons.axe.iron_axe-5"),
(0.04, "common.items.weapons.axe.iron_axe-6"),
(0.04, "common.items.weapons.axe.iron_axe-7"),
(0.04, "common.items.weapons.axe.iron_axe-8"),
(0.04, "common.items.weapons.axe.iron_axe-9"),
(0.04, "common.items.weapons.axe.steel_axe-0"),
(0.04, "common.items.weapons.axe.steel_axe-1"),
(0.04, "common.items.weapons.axe.steel_axe-2"),
(0.04, "common.items.weapons.axe.steel_axe-3"),
(0.04, "common.items.weapons.axe.steel_axe-4"),
(0.04, "common.items.weapons.axe.steel_axe-5"),
(0.04, "common.items.weapons.axe.steel_axe-6"),
// healing staff
(0.5, "common.items.weapons.sceptre.staff_nature"),
// staves
(0.40, "common.items.weapons.staff.bone_staff"),
(0.40, "common.items.weapons.staff.crimson_eye"),
(0.20, "common.items.weapons.staff.aurora"),
(0.20, "common.items.weapons.staff.frostwood_torch"),
// hammers
(0.15, "common.items.weapons.hammer.bronze_hammer-0"),
(0.15, "common.items.weapons.hammer.bronze_hammer-1"),
(0.04, "common.items.weapons.hammer.iron_hammer-0"),
(0.04, "common.items.weapons.hammer.iron_hammer-1"),
(0.04, "common.items.weapons.hammer.iron_hammer-2"),
(0.04, "common.items.weapons.hammer.iron_hammer-3"),
(0.04, "common.items.weapons.hammer.iron_hammer-4"),
(0.04, "common.items.weapons.hammer.iron_hammer-5"),
(0.04, "common.items.weapons.hammer.iron_hammer-6"),
(0.04, "common.items.weapons.hammer.iron_hammer-7"),
(0.04, "common.items.weapons.hammer.iron_hammer-8"),
(0.05, "common.items.weapons.hammer.steel_hammer-0"),
(0.05, "common.items.weapons.hammer.steel_hammer-1"),
(0.05, "common.items.weapons.hammer.steel_hammer-2"),
(0.05, "common.items.weapons.hammer.steel_hammer-3"),
(0.05, "common.items.weapons.hammer.steel_hammer-4"),
(0.05, "common.items.weapons.hammer.steel_hammer-5"),
// bows
(0.04, "common.items.weapons.bow.hardwood-0"),
(0.04, "common.items.weapons.bow.hardwood-1"),
(0.04, "common.items.weapons.bow.hardwood-2"),
(0.04, "common.items.weapons.bow.hardwood-3"),
(0.04, "common.items.weapons.bow.hardwood-4"),
(0.04, "common.items.weapons.bow.hardwood-5"),
(0.03, "common.items.weapons.bow.metal-0"),
(0.03, "common.items.weapons.bow.metal-1"),
(0.03, "common.items.weapons.bow.metal-2"),
(0.03, "common.items.weapons.bow.metal-3"),
(0.03, "common.items.weapons.bow.metal-4"),
// Rare Weapons
// swords
(0.20, "common.items.weapons.sword.cobalt-0"),
(0.20, "common.items.weapons.sword.cobalt-1"),
(0.20, "common.items.weapons.sword.cobalt-2"),
(0.20, "common.items.weapons.sword.cobalt-3"),
(0.10, "common.items.weapons.sword.bloodsteel-0"),
(0.10, "common.items.weapons.sword.bloodsteel-1"),
(0.10, "common.items.weapons.sword.bloodsteel-2"),
// axes
(0.20, "common.items.weapons.axe.bloodsteel_axe-0"),
(0.20, "common.items.weapons.axe.bloodsteel_axe-1"),
(0.20, "common.items.weapons.axe.bloodsteel_axe-2"),
// healing staff
(0.25, "common.items.weapons.sceptre.staff_nature"),
// staves
(0.2, "common.items.weapons.staff.infused_tower"),
(0.10, "common.items.weapons.staff.lava_rod"),
(0.10, "common.items.weapons.staff.dragon_tongue"),
(0.10, "common.items.weapons.staff.flamethrower_0"),
(0.04, "common.items.weapons.staff.bent_fuse"),
(0.04, "common.items.weapons.sceptre.emerald"),
(0.04, "common.items.weapons.staff.orc_iron"),
// hammers
(0.01, "common.items.weapons.hammer.cobalt_hammer-0"),
(0.01, "common.items.weapons.hammer.cobalt_hammer-1"),
(0.01, "common.items.weapons.hammer.runic_hammer"),
(0.1, "common.items.weapons.hammer.ramshead_hammer"),
// bows
(0.20, "common.items.weapons.bow.frostwood-0"),
(0.20, "common.items.weapons.bow.frostwood-1"),
(0.20, "common.items.weapons.bow.frostwood-2"),
(0.10, "common.items.weapons.bow.eldwood-0"),
(0.10, "common.items.weapons.bow.eldwood-1"),
(0.10, "common.items.weapons.bow.eldwood-2"),
]

View File

@ -1,3 +0,0 @@
[
(1, "common.items.food.fish"),
]

View File

@ -1,14 +0,0 @@
[
// simple
(3, "common.items.food.cheese"),
(3, "common.items.food.apple"),
(3, "common.items.food.mushroom"),
(1, "common.items.food.coconut"),
(1, "common.items.food.lettuce"),
(1, "common.items.food.tomato"),
(2, "common.items.food.carrot"),
// crafted
(0.05, "common.items.food.apple_mushroom_curry"),
(0.10, "common.items.food.apple_stick"),
(0.10, "common.items.food.mushroom_stick"),
]

View File

@ -1,31 +0,0 @@
[
// Crafting Ingredients
(2, "common.items.crafting_ing.empty_vial"),
(0.10, "common.items.crafting_ing.diamond"),
(4, "common.items.crafting_ing.cloth_scraps"),
// Consumables
(0.2, "common.items.consumable.potion_minor"),
// Ring
(0.02, "common.items.armor.misc.ring.gold"),
// Utility
(0.05, "common.items.utility.collar"),
// Food
(1, "common.items.food.coconut"),
(0.05, "common.items.food.apple_mushroom_curry"),
(0.10, "common.items.food.apple_stick"),
(0.10, "common.items.food.mushroom_stick"),
// Weapons
(0.10, "common.items.weapons.sword.wood-0"),
(0.10, "common.items.weapons.sword.wood-1"),
(0.10, "common.items.weapons.sword.wood-2"),
(0.10, "common.items.weapons.axe.worn_iron_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-1"),
(0.10, "common.items.weapons.axe.worn_iron_axe-2"),
(0.10, "common.items.weapons.axe.worn_iron_axe-3"),
(0.10, "common.items.weapons.axe.worn_iron_axe-4"),
(0.25, "common.items.weapons.sceptre.staff_nature"),
(0.15, "common.items.weapons.hammer.flimsy_hammer"),
(0.10, "common.items.weapons.hammer.wood_hammer-0"),
(0.15, "common.items.weapons.bow.rawwood-0"),
(0.15, "common.items.weapons.bow.rawwood-1"),
]

View File

@ -1,3 +0,0 @@
[
(1, "common.items.crafting_ing.stones"),
]

View File

@ -1,5 +0,0 @@
[
(1, "common.items.flowers.red"),
(1, "common.items.crafting_ing.twigs"),
(0.5, "common.items.food.coconut"),
]

View File

@ -1,15 +0,0 @@
[
// armor
(1, "common.items.armor.cultist.belt"),
(1, "common.items.armor.cultist.chest"),
(1, "common.items.armor.cultist.foot"),
(1, "common.items.armor.cultist.hand"),
(1, "common.items.armor.cultist.pants"),
(1, "common.items.armor.cultist.shoulder"),
(1, "common.items.armor.misc.back.dungeon_purple"),
(1, "common.items.armor.misc.ring.skull"),
// weapons
(1, "common.items.weapons.staff.cultist_staff"),
(1, "common.items.weapons.hammer.cultist_purp_2h-0"),
(1, "common.items.weapons.sword.cultist"),
]

View File

@ -1,4 +0,0 @@
[
(2, "common.items.crafting_ing.raptor_feather"),
(1, "common.items.crafting_ing.leather_scraps"),
]

View File

@ -1,6 +0,0 @@
[
(1, "common.items.crafting_ing.stones"),
(0.05, "common.items.crafting_ing.diamond"),
(0.10, "common.items.ore.velorite"),
(0.20, "common.items.ore.veloritefrag"),
]

View File

@ -1,19 +0,0 @@
[
(2, "common.items.crafting_ing.empty_vial"),
(0.01, "common.items.crafting_ing.diamond"),
(3, "common.items.crafting_ing.cloth_scraps"),
(2, "common.items.crafting_ing.leather_scraps"),
// Consumables
(0.5, "common.items.consumable.potion_minor"),
// Ring
(0.2, "common.items.armor.misc.ring.gold"),
// Utility
(0.1, "common.items.utility.collar"),
// Bag
(0.1, "common.items.armor.misc.bag.liana_kit"),
// Food
(2.0, "common.items.food.coconut"),
(0.3, "common.items.food.apple_mushroom_curry"),
(0.6, "common.items.food.apple_stick"),
(0.8, "common.items.food.mushroom_stick"),
]

View File

@ -1,4 +0,0 @@
[
(1, "common.items.crafting_ing.leather_troll"),
(0.25, "common.items.crafting_ing.leather_scraps"),
]

View File

@ -1,45 +0,0 @@
[
// Crafting Ingredients
(2, "common.items.crafting_ing.bowl"),
(1, "common.items.crafting_ing.empty_vial"),
(0.10, "common.items.crafting_ing.diamond"),
(1, "common.items.crafting_ing.cloth_scraps"),
// Consumables
(0.2, "common.items.consumable.potion_minor"),
// Armour
(1, "common.items.armor.misc.chest.worker_green_0"),
(1, "common.items.armor.misc.chest.worker_green_1"),
(1, "common.items.armor.misc.chest.worker_orange_0"),
(1, "common.items.armor.misc.chest.worker_orange_1"),
(1, "common.items.armor.misc.chest.worker_purple_0"),
(1, "common.items.armor.misc.chest.worker_purple_1"),
(1, "common.items.armor.misc.chest.worker_red_0"),
(1, "common.items.armor.misc.chest.worker_red_1"),
(1, "common.items.armor.misc.chest.worker_yellow_0"),
(1, "common.items.armor.misc.chest.worker_yellow_1"),
(1, "common.items.armor.misc.pants.worker_blue"),
// Utility
(0.05, "common.items.utility.collar"),
// Food
(0.5, "common.items.food.coconut"),
(0.5, "common.items.food.lettuce"),
(0.75, "common.items.food.carrot"),
(0.75, "common.items.food.tomato"),
(0.05, "common.items.food.apple_mushroom_curry"),
(0.10, "common.items.food.apple_stick"),
(0.10, "common.items.food.mushroom_stick"),
// Weapons
(0.15, "common.items.weapons.sword.wood-0"),
(0.15, "common.items.weapons.sword.wood-1"),
(0.15, "common.items.weapons.sword.wood-2"),
(0.10, "common.items.weapons.axe.worn_iron_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-1"),
(0.10, "common.items.weapons.axe.worn_iron_axe-2"),
(0.10, "common.items.weapons.axe.worn_iron_axe-3"),
(0.10, "common.items.weapons.axe.worn_iron_axe-4"),
(0.25, "common.items.weapons.sceptre.staff_nature"),
(0.15, "common.items.weapons.hammer.flimsy_hammer"),
(0.10, "common.items.weapons.hammer.wood_hammer-0"),
(0.15, "common.items.weapons.bow.rawwood-0"),
(0.15, "common.items.weapons.bow.rawwood-1"),
]

View File

@ -1,45 +0,0 @@
[
// swords
(0.15, "common.items.weapons.sword.starter"),
(0.10, "common.items.weapons.sword.wood-0"),
(0.10, "common.items.weapons.sword.wood-1"),
(0.10, "common.items.weapons.sword.wood-2"),
(0.05, "common.items.weapons.sword.stone-0"),
(0.05, "common.items.weapons.sword.stone-1"),
(0.05, "common.items.weapons.sword.stone-2"),
// axes
(0.30, "common.items.weapons.axe.starter_axe"),
(0.20, "common.items.weapons.axe.orc_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-1"),
(0.10, "common.items.weapons.axe.worn_iron_axe-2"),
(0.10, "common.items.weapons.axe.worn_iron_axe-3"),
(0.10, "common.items.weapons.axe.worn_iron_axe-4"),
// healing staff
(0.30, "common.items.weapons.sceptre.starter_sceptre"),
(0.10, "common.items.weapons.sceptre.moon0"),
(0.10, "common.items.weapons.sceptre.druids_arbor"),
// staves
(1.00, "common.items.weapons.staff.starter_staff"),
// hammers
(0.15, "common.items.weapons.hammer.starter_hammer"),
(0.15, "common.items.weapons.hammer.flimsy_hammer"),
(0.10, "common.items.weapons.hammer.wood_hammer-0"),
(0.10, "common.items.weapons.hammer.stone_hammer-0"),
(0.10, "common.items.weapons.hammer.stone_hammer-1"),
(0.10, "common.items.weapons.hammer.stone_hammer-2"),
(0.10, "common.items.weapons.hammer.stone_hammer-3"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-0"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-1"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-2"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-3"),
// bows
(0.15, "common.items.weapons.bow.starter"),
(0.10, "common.items.weapons.bow.rawwood-0"),
(0.10, "common.items.weapons.bow.rawwood-1"),
(0.05, "common.items.weapons.bow.wood-0"),
(0.05, "common.items.weapons.bow.wood-1"),
(0.05, "common.items.weapons.bow.wood-2"),
(0.05, "common.items.weapons.bow.wood-3"),
(0.05, "common.items.weapons.bow.wood-4"),
]

View File

@ -1,42 +0,0 @@
[
// swords
(0.20, "common.items.weapons.sword.cobalt-0"),
(0.20, "common.items.weapons.sword.cobalt-1"),
(0.20, "common.items.weapons.sword.cobalt-2"),
(0.20, "common.items.weapons.sword.cobalt-3"),
(0.10, "common.items.weapons.sword.bloodsteel-0"),
(0.10, "common.items.weapons.sword.bloodsteel-1"),
(0.10, "common.items.weapons.sword.bloodsteel-2"),
// axes
(0.20, "common.items.weapons.axe.bloodsteel_axe-0"),
(0.20, "common.items.weapons.axe.bloodsteel_axe-1"),
(0.20, "common.items.weapons.axe.bloodsteel_axe-2"),
(0.30, "common.items.weapons.axe.cobalt_axe-0"),
(0.30, "common.items.weapons.axe.cobalt_axe-1"),
(0.10, "common.items.weapons.axe.malachite_axe-0"),
// healing staff
(0.15, "common.items.weapons.sceptre.loops0"),
(0.10, "common.items.weapons.sceptre.fork0"),
(0.10, "common.items.weapons.sceptre.emerald"),
(0.10, "common.items.weapons.sceptre.coralline_cane"),
// staves
(1.00, "common.items.weapons.staff.crimson_eye"),
(0.7, "common.items.weapons.staff.aurora"),
(0.7, "common.items.weapons.staff.frostwood_torch"),
(0.5, "common.items.weapons.staff.lava_rod"),
(0.5, "common.items.weapons.staff.dragon_tongue"),
(0.75, "common.items.weapons.staff.infused_tower"),
(0.5, "common.items.weapons.staff.flamethrower_0"),
// hammers
(0.30, "common.items.weapons.hammer.cobalt_hammer-0"),
(0.30, "common.items.weapons.hammer.cobalt_hammer-1"),
(0.15, "common.items.weapons.hammer.runic_hammer"),
(0.15, "common.items.weapons.hammer.ramshead_hammer"),
// bows
(0.20, "common.items.weapons.bow.frostwood-0"),
(0.20, "common.items.weapons.bow.frostwood-1"),
(0.20, "common.items.weapons.bow.frostwood-2"),
(0.10, "common.items.weapons.bow.eldwood-0"),
(0.10, "common.items.weapons.bow.eldwood-1"),
(0.10, "common.items.weapons.bow.eldwood-2"),
]

View File

@ -1,91 +0,0 @@
[
// swords
(0.15, "common.items.weapons.sword.bronze-0"),
(0.15, "common.items.weapons.sword.bronze-1"),
(0.15, "common.items.weapons.sword.bronze-2"),
(0.04, "common.items.weapons.sword.iron-0"),
(0.04, "common.items.weapons.sword.iron-1"),
(0.04, "common.items.weapons.sword.iron-2"),
(0.04, "common.items.weapons.sword.iron-3"),
(0.04, "common.items.weapons.sword.iron-4"),
(0.04, "common.items.weapons.sword.iron-5"),
(0.04, "common.items.weapons.sword.iron-6"),
(0.04, "common.items.weapons.sword.iron-7"),
(0.04, "common.items.weapons.sword.iron-8"),
(0.04, "common.items.weapons.sword.iron-9"),
(0.04, "common.items.weapons.sword.iron-10"),
(0.03, "common.items.weapons.sword.steel-0"),
(0.03, "common.items.weapons.sword.steel-1"),
(0.03, "common.items.weapons.sword.steel-2"),
(0.03, "common.items.weapons.sword.steel-3"),
(0.03, "common.items.weapons.sword.steel-4"),
(0.03, "common.items.weapons.sword.steel-5"),
(0.03, "common.items.weapons.sword.steel-6"),
(0.03, "common.items.weapons.sword.steel-7"),
(0.03, "common.items.weapons.sword.steel-8"),
// axes
(0.15, "common.items.weapons.axe.bronze_axe-0"),
(0.15, "common.items.weapons.axe.bronze_axe-1"),
(0.15, "common.items.weapons.axe.bronze_axe-2"),
(0.04, "common.items.weapons.axe.iron_axe-0"),
(0.04, "common.items.weapons.axe.iron_axe-1"),
(0.04, "common.items.weapons.axe.iron_axe-2"),
(0.04, "common.items.weapons.axe.iron_axe-3"),
(0.04, "common.items.weapons.axe.iron_axe-4"),
(0.04, "common.items.weapons.axe.iron_axe-5"),
(0.04, "common.items.weapons.axe.iron_axe-6"),
(0.04, "common.items.weapons.axe.iron_axe-7"),
(0.04, "common.items.weapons.axe.iron_axe-8"),
(0.04, "common.items.weapons.axe.iron_axe-9"),
(0.04, "common.items.weapons.axe.steel_axe-0"),
(0.04, "common.items.weapons.axe.steel_axe-1"),
(0.04, "common.items.weapons.axe.steel_axe-2"),
(0.04, "common.items.weapons.axe.steel_axe-3"),
(0.04, "common.items.weapons.axe.steel_axe-4"),
(0.04, "common.items.weapons.axe.steel_axe-5"),
(0.04, "common.items.weapons.axe.steel_axe-6"),
// healing staff
(0.5, "common.items.weapons.sceptre.staff_nature"),
(0.15, "common.items.weapons.sceptre.root_green0"),
(0.25, "common.items.weapons.sceptre.totem_green"),
// staves
(1.00, "common.items.weapons.staff.bone_staff"),
(0.7, "common.items.weapons.staff.heated_arm"),
(0.7, "common.items.weapons.staff.golden_khakkara"),
(0.7, "common.items.weapons.staff.fiery_wishing_rod"),
(0.7, "common.items.weapons.staff.solar"),
// hammers
(0.15, "common.items.weapons.hammer.bronze_hammer-0"),
(0.15, "common.items.weapons.hammer.bronze_hammer-1"),
(0.04, "common.items.weapons.hammer.iron_hammer-0"),
(0.04, "common.items.weapons.hammer.iron_hammer-1"),
(0.04, "common.items.weapons.hammer.iron_hammer-2"),
(0.04, "common.items.weapons.hammer.iron_hammer-3"),
(0.04, "common.items.weapons.hammer.iron_hammer-4"),
(0.04, "common.items.weapons.hammer.iron_hammer-5"),
(0.04, "common.items.weapons.hammer.iron_hammer-6"),
(0.04, "common.items.weapons.hammer.iron_hammer-7"),
(0.04, "common.items.weapons.hammer.iron_hammer-8"),
(0.05, "common.items.weapons.hammer.steel_hammer-0"),
(0.05, "common.items.weapons.hammer.steel_hammer-1"),
(0.05, "common.items.weapons.hammer.steel_hammer-2"),
(0.05, "common.items.weapons.hammer.steel_hammer-3"),
(0.05, "common.items.weapons.hammer.steel_hammer-4"),
(0.05, "common.items.weapons.hammer.steel_hammer-5"),
// bows
(0.15, "common.items.weapons.bow.bone-0"),
(0.15, "common.items.weapons.bow.bone-1"),
(0.15, "common.items.weapons.bow.bone-2"),
(0.15, "common.items.weapons.bow.bone-3"),
(0.04, "common.items.weapons.bow.hardwood-0"),
(0.04, "common.items.weapons.bow.hardwood-1"),
(0.04, "common.items.weapons.bow.hardwood-2"),
(0.04, "common.items.weapons.bow.hardwood-3"),
(0.04, "common.items.weapons.bow.hardwood-4"),
(0.04, "common.items.weapons.bow.hardwood-5"),
(0.03, "common.items.weapons.bow.metal-0"),
(0.03, "common.items.weapons.bow.metal-1"),
(0.03, "common.items.weapons.bow.metal-2"),
(0.03, "common.items.weapons.bow.metal-3"),
(0.03, "common.items.weapons.bow.metal-4"),
]

View File

@ -1,3 +0,0 @@
[
(1, "common.items.crafting_ing.icy_fang"),
]

View File

@ -0,0 +1,5 @@
[
(1.0, Item("common.items.flowers.red")),
(1.0, Item("common.items.crafting_ing.twigs")),
(0.5, Item("common.items.food.coconut")),
]

View File

@ -1,17 +1,16 @@
[
// Crafting material
(2.0, "common.items.crafting_ing.mindflayer_bag_damaged"),
(2.0, Item("common.items.crafting_ing.mindflayer_bag_damaged")),
// Legendary weapons
(1.0, "common.items.weapons.sword.caladbolg"),
(1.0, "common.items.weapons.axe.parashu"),
(1.0, "common.items.weapons.hammer.mjolnir"),
(1.0, "common.items.weapons.bow.sagitta"),
(0.5, "common.items.weapons.staff.phoenix"),
(0.5, "common.items.weapons.staff.laevateinn"),
(0.5, "common.items.weapons.sceptre.root_evil"),
(0.5, "common.items.weapons.sceptre.caduceus"),
(1.0, Item("common.items.weapons.sword.caladbolg")),
(1.0, Item("common.items.weapons.axe.parashu")),
(1.0, Item("common.items.weapons.hammer.mjolnir")),
(1.0, Item("common.items.weapons.bow.sagitta")),
(0.5, Item("common.items.weapons.staff.phoenix")),
(0.5, Item("common.items.weapons.staff.laevateinn")),
(0.5, Item("common.items.weapons.sceptre.root_evil")),
(0.5, Item("common.items.weapons.sceptre.caduceus")),
// Rare misc items
(0.5, "common.items.boss_drops.lantern"),
(0.5, "common.items.glider.glider_purp"),
(0.5, Item("common.items.boss_drops.lantern")),
(0.5, Item("common.items.glider.glider_purp")),
]

View File

@ -0,0 +1,15 @@
[
// armor
(1.0, Item("common.items.armor.cultist.belt")),
(1.0, Item("common.items.armor.cultist.chest")),
(1.0, Item("common.items.armor.cultist.foot")),
(1.0, Item("common.items.armor.cultist.hand")),
(1.0, Item("common.items.armor.cultist.pants")),
(1.0, Item("common.items.armor.cultist.shoulder")),
(1.0, Item("common.items.armor.misc.back.dungeon_purple")),
(1.0, Item("common.items.armor.misc.ring.skull")),
// weapons
(1.0, Item("common.items.weapons.staff.cultist_staff")),
(1.0, Item("common.items.weapons.hammer.cultist_purp_2h-0")),
(1.0, Item("common.items.weapons.sword.cultist")),
]

View File

@ -0,0 +1,4 @@
[
(2.0, Item("common.items.crafting_ing.raptor_feather")),
(1.0, Item("common.items.crafting_ing.leather_scraps")),
]

View File

@ -0,0 +1,6 @@
[
(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")),
]

View File

@ -0,0 +1,19 @@
[
(2.0, Item("common.items.crafting_ing.empty_vial")),
(0.01, Item("common.items.crafting_ing.diamond")),
(3.0, Item("common.items.crafting_ing.cloth_scraps")),
(2.0, Item("common.items.crafting_ing.leather_scraps")),
// Consumables
(0.5, Item("common.items.consumable.potion_minor")),
// Ring
(0.2, Item("common.items.armor.misc.ring.gold")),
// Utility
(0.1, Item("common.items.utility.collar")),
// Bag
(0.1, Item("common.items.armor.misc.bag.liana_kit")),
// Food
(2.0, Item("common.items.food.coconut")),
(0.3, Item("common.items.food.apple_mushroom_curry")),
(0.6, Item("common.items.food.apple_stick")),
(0.8, Item("common.items.food.mushroom_stick")),
]

View File

@ -0,0 +1,4 @@
[
(1.0, Item("common.items.crafting_ing.leather_troll")),
(0.25, Item("common.items.crafting_ing.leather_scraps")),
]

View File

@ -0,0 +1,45 @@
[
// Crafting Ingredients
(2.0, Item("common.items.crafting_ing.bowl")),
(1.0, Item("common.items.crafting_ing.empty_vial")),
(0.1, Item("common.items.crafting_ing.diamond")),
(1.0, Item("common.items.crafting_ing.cloth_scraps")),
// Consumables
(0.2, Item("common.items.consumable.potion_minor")),
// Armour
(1.0, Item("common.items.armor.misc.chest.worker_green_0")),
(1.0, Item("common.items.armor.misc.chest.worker_green_1")),
(1.0, Item("common.items.armor.misc.chest.worker_orange_0")),
(1.0, Item("common.items.armor.misc.chest.worker_orange_1")),
(1.0, Item("common.items.armor.misc.chest.worker_purple_0")),
(1.0, Item("common.items.armor.misc.chest.worker_purple_1")),
(1.0, Item("common.items.armor.misc.chest.worker_red_0")),
(1.0, Item("common.items.armor.misc.chest.worker_red_1")),
(1.0, Item("common.items.armor.misc.chest.worker_yellow_0")),
(1.0, Item("common.items.armor.misc.chest.worker_yellow_1")),
(1.0, Item("common.items.armor.misc.pants.worker_blue")),
// Utility
(0.05, Item("common.items.utility.collar")),
// Food
(0.5, Item("common.items.food.coconut")),
(0.5, Item("common.items.food.lettuce")),
(0.75, Item("common.items.food.carrot")),
(0.75, Item("common.items.food.tomato")),
(0.05, Item("common.items.food.apple_mushroom_curry")),
(0.1, Item("common.items.food.apple_stick")),
(0.1, Item("common.items.food.mushroom_stick")),
// Weapons
(0.15, Item("common.items.weapons.sword.wood-0")),
(0.15, Item("common.items.weapons.sword.wood-1")),
(0.15, Item("common.items.weapons.sword.wood-2")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-0")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-1")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-2")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-3")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-4")),
(0.25, Item("common.items.weapons.sceptre.staff_nature")),
(0.15, Item("common.items.weapons.hammer.flimsy_hammer")),
(0.1, Item("common.items.weapons.hammer.wood_hammer-0")),
(0.15, Item("common.items.weapons.bow.rawwood-0")),
(0.15, Item("common.items.weapons.bow.rawwood-1")),
]

View File

@ -0,0 +1,45 @@
[
// swords
(0.15, Item("common.items.weapons.sword.starter")),
(0.1, Item("common.items.weapons.sword.wood-0")),
(0.1, Item("common.items.weapons.sword.wood-1")),
(0.1, Item("common.items.weapons.sword.wood-2")),
(0.05, Item("common.items.weapons.sword.stone-0")),
(0.05, Item("common.items.weapons.sword.stone-1")),
(0.05, Item("common.items.weapons.sword.stone-2")),
// axes
(0.3, Item("common.items.weapons.axe.starter_axe")),
(0.2, Item("common.items.weapons.axe.orc_axe-0")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-0")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-1")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-2")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-3")),
(0.1, Item("common.items.weapons.axe.worn_iron_axe-4")),
// healing staff
(0.3, Item("common.items.weapons.sceptre.starter_sceptre")),
(0.10, Item("common.items.weapons.sceptre.moon0")),
(0.10, Item("common.items.weapons.sceptre.druids_arbor")),
// staves
(1.0, Item("common.items.weapons.staff.starter_staff")),
// hammers
(0.15, Item("common.items.weapons.hammer.starter_hammer")),
(0.15, Item("common.items.weapons.hammer.flimsy_hammer")),
(0.1, Item("common.items.weapons.hammer.wood_hammer-0")),
(0.1, Item("common.items.weapons.hammer.stone_hammer-0")),
(0.1, Item("common.items.weapons.hammer.stone_hammer-1")),
(0.1, Item("common.items.weapons.hammer.stone_hammer-2")),
(0.1, Item("common.items.weapons.hammer.stone_hammer-3")),
(0.05, Item("common.items.weapons.hammer.worn_iron_hammer-0")),
(0.05, Item("common.items.weapons.hammer.worn_iron_hammer-1")),
(0.05, Item("common.items.weapons.hammer.worn_iron_hammer-2")),
(0.05, Item("common.items.weapons.hammer.worn_iron_hammer-3")),
// bows
(0.15, Item("common.items.weapons.bow.starter")),
(0.1, Item("common.items.weapons.bow.rawwood-0")),
(0.1, Item("common.items.weapons.bow.rawwood-1")),
(0.05, Item("common.items.weapons.bow.wood-0")),
(0.05, Item("common.items.weapons.bow.wood-1")),
(0.05, Item("common.items.weapons.bow.wood-2")),
(0.05, Item("common.items.weapons.bow.wood-3")),
(0.05, Item("common.items.weapons.bow.wood-4")),
]

View File

@ -0,0 +1,42 @@
[
// swords
(0.2, Item("common.items.weapons.sword.cobalt-0")),
(0.2, Item("common.items.weapons.sword.cobalt-1")),
(0.2, Item("common.items.weapons.sword.cobalt-2")),
(0.2, Item("common.items.weapons.sword.cobalt-3")),
(0.1, Item("common.items.weapons.sword.bloodsteel-0")),
(0.1, Item("common.items.weapons.sword.bloodsteel-1")),
(0.1, Item("common.items.weapons.sword.bloodsteel-2")),
// axes
(0.2, Item("common.items.weapons.axe.bloodsteel_axe-0")),
(0.2, Item("common.items.weapons.axe.bloodsteel_axe-1")),
(0.2, Item("common.items.weapons.axe.bloodsteel_axe-2")),
(0.3, Item("common.items.weapons.axe.cobalt_axe-0")),
(0.3, Item("common.items.weapons.axe.cobalt_axe-1")),
(0.1, Item("common.items.weapons.axe.malachite_axe-0")),
// healing sceptre
(0.15, Item("common.items.weapons.sceptre.loops0")),
(0.1, Item("common.items.weapons.sceptre.fork0")),
(0.10, Item("common.items.weapons.sceptre.emerald")),
(0.10, Item("common.items.weapons.sceptre.coralline_cane")),
// staves
(1.00, Item("common.items.weapons.staff.crimson_eye")),
(0.7, Item("common.items.weapons.staff.aurora")),
(0.7, Item("common.items.weapons.staff.frostwood_torch")),
(0.5, Item("common.items.weapons.staff.lava_rod")),
(0.5, Item("common.items.weapons.staff.dragon_tongue")),
(0.75, Item("common.items.weapons.staff.infused_tower")),
(0.5, Item("common.items.weapons.staff.flamethrower_0")),
// hammers
(0.3, Item("common.items.weapons.hammer.cobalt_hammer-0")),
(0.3, Item("common.items.weapons.hammer.cobalt_hammer-1")),
(0.15, Item("common.items.weapons.hammer.runic_hammer")),
(0.15, Item("common.items.weapons.hammer.ramshead_hammer")),
// bows
(0.2, Item("common.items.weapons.bow.frostwood-0")),
(0.2, Item("common.items.weapons.bow.frostwood-1")),
(0.2, Item("common.items.weapons.bow.frostwood-2")),
(0.1, Item("common.items.weapons.bow.eldwood-0")),
(0.1, Item("common.items.weapons.bow.eldwood-1")),
(0.1, Item("common.items.weapons.bow.eldwood-2")),
]

View File

@ -0,0 +1,91 @@
[
// swords
(0.15, Item("common.items.weapons.sword.bronze-0")),
(0.15, Item("common.items.weapons.sword.bronze-1")),
(0.15, Item("common.items.weapons.sword.bronze-2")),
(0.04, Item("common.items.weapons.sword.iron-0")),
(0.04, Item("common.items.weapons.sword.iron-1")),
(0.04, Item("common.items.weapons.sword.iron-2")),
(0.04, Item("common.items.weapons.sword.iron-3")),
(0.04, Item("common.items.weapons.sword.iron-4")),
(0.04, Item("common.items.weapons.sword.iron-5")),
(0.04, Item("common.items.weapons.sword.iron-6")),
(0.04, Item("common.items.weapons.sword.iron-7")),
(0.04, Item("common.items.weapons.sword.iron-8")),
(0.04, Item("common.items.weapons.sword.iron-9")),
(0.04, Item("common.items.weapons.sword.iron-10")),
(0.03, Item("common.items.weapons.sword.steel-0")),
(0.03, Item("common.items.weapons.sword.steel-1")),
(0.03, Item("common.items.weapons.sword.steel-2")),
(0.03, Item("common.items.weapons.sword.steel-3")),
(0.03, Item("common.items.weapons.sword.steel-4")),
(0.03, Item("common.items.weapons.sword.steel-5")),
(0.03, Item("common.items.weapons.sword.steel-6")),
(0.03, Item("common.items.weapons.sword.steel-7")),
(0.03, Item("common.items.weapons.sword.steel-8")),
// axes
(0.15, Item("common.items.weapons.axe.bronze_axe-0")),
(0.15, Item("common.items.weapons.axe.bronze_axe-1")),
(0.15, Item("common.items.weapons.axe.bronze_axe-2")),
(0.04, Item("common.items.weapons.axe.iron_axe-0")),
(0.04, Item("common.items.weapons.axe.iron_axe-1")),
(0.04, Item("common.items.weapons.axe.iron_axe-2")),
(0.04, Item("common.items.weapons.axe.iron_axe-3")),
(0.04, Item("common.items.weapons.axe.iron_axe-4")),
(0.04, Item("common.items.weapons.axe.iron_axe-5")),
(0.04, Item("common.items.weapons.axe.iron_axe-6")),
(0.04, Item("common.items.weapons.axe.iron_axe-7")),
(0.04, Item("common.items.weapons.axe.iron_axe-8")),
(0.04, Item("common.items.weapons.axe.iron_axe-9")),
(0.04, Item("common.items.weapons.axe.steel_axe-0")),
(0.04, Item("common.items.weapons.axe.steel_axe-1")),
(0.04, Item("common.items.weapons.axe.steel_axe-2")),
(0.04, Item("common.items.weapons.axe.steel_axe-3")),
(0.04, Item("common.items.weapons.axe.steel_axe-4")),
(0.04, Item("common.items.weapons.axe.steel_axe-5")),
(0.04, Item("common.items.weapons.axe.steel_axe-6")),
// healing sceptre
(0.5, Item("common.items.weapons.sceptre.staff_nature")),
(0.15, Item("common.items.weapons.sceptre.root_green0")),
(0.25, Item("common.items.weapons.sceptre.totem_green")),
// staves
(1.0, Item("common.items.weapons.staff.bone_staff")),
(0.7, Item("common.items.weapons.staff.heated_arm")),
(0.7, Item("common.items.weapons.staff.golden_khakkara")),
(0.7, Item("common.items.weapons.staff.fiery_wishing_rod")),
(0.7, Item("common.items.weapons.staff.solar")),
// hammers
(0.15, Item("common.items.weapons.hammer.bronze_hammer-0")),
(0.15, Item("common.items.weapons.hammer.bronze_hammer-1")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-0")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-1")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-2")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-3")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-4")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-5")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-6")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-7")),
(0.04, Item("common.items.weapons.hammer.iron_hammer-8")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-0")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-1")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-2")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-3")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-4")),
(0.05, Item("common.items.weapons.hammer.steel_hammer-5")),
// bows
(0.15, Item("common.items.weapons.bow.bone-0")),
(0.15, Item("common.items.weapons.bow.bone-1")),
(0.15, Item("common.items.weapons.bow.bone-2")),
(0.15, Item("common.items.weapons.bow.bone-3")),
(0.04, Item("common.items.weapons.bow.hardwood-0")),
(0.04, Item("common.items.weapons.bow.hardwood-1")),
(0.04, Item("common.items.weapons.bow.hardwood-2")),
(0.04, Item("common.items.weapons.bow.hardwood-3")),
(0.04, Item("common.items.weapons.bow.hardwood-4")),
(0.04, Item("common.items.weapons.bow.hardwood-5")),
(0.03, Item("common.items.weapons.bow.metal-0")),
(0.03, Item("common.items.weapons.bow.metal-1")),
(0.03, Item("common.items.weapons.bow.metal-2")),
(0.03, Item("common.items.weapons.bow.metal-3")),
(0.03, Item("common.items.weapons.bow.metal-4")),
]

View File

@ -0,0 +1,3 @@
[
(1.0, Item("common.items.crafting_ing.icy_fang")),
]

View File

@ -17,7 +17,7 @@ use veloren_common::{
ItemKind,
},
},
lottery::Lottery,
lottery::{Lottery, LootSpec},
};
#[derive(StructOpt)]
@ -219,11 +219,11 @@ fn all_items() -> Result<(), Box<dyn Error>> {
fn loot_table(loot_table: &str) -> Result<(), Box<dyn Error>> {
let mut wtr = csv::Writer::from_path("loot_table.csv")?;
wtr.write_record(&["Item", "Relative Chance"])?;
wtr.write_record(&["Kind", "Item", "Relative Chance"])?;
let loot_table = "common.loot_tables.".to_owned() + loot_table;
let loot_table = Lottery::<String>::load_expect(&loot_table).read();
let loot_table = Lottery::<LootSpec>::load_expect(&loot_table).read();
for (i, (chance, item)) in loot_table.iter().enumerate() {
let chance = if let Some((next_chance, _)) = loot_table.iter().nth(i + 1) {
@ -236,7 +236,12 @@ fn loot_table(loot_table: &str) -> Result<(), Box<dyn Error>> {
.div(10_f32.powi(5))
.to_string();
wtr.write_record(&[item, &chance])?;
let (kind, item) = match item {
LootSpec::Item(item) => ("Item", item),
LootSpec::LootTable(table) => ("LootTable", table),
};
wtr.write_record(&[kind, item, &chance])?;
}
wtr.flush()?;

View File

@ -6,11 +6,17 @@ use serde::Serialize;
use std::{error::Error, fs::File, io::Write};
use structopt::StructOpt;
use comp::item::{
armor::{ArmorKind, Protection},
ItemDesc, ItemKind, ItemTag, Quality,
use veloren_common::{
assets::ASSETS_PATH,
comp::{
self,
item::{
armor::{ArmorKind, Protection},
ItemDesc, ItemKind, ItemTag, Quality,
},
},
lottery::LootSpec,
};
use veloren_common::{assets::ASSETS_PATH, comp};
#[derive(StructOpt)]
struct Cli {
@ -372,17 +378,21 @@ fn loot_table(loot_table: &str) -> Result<(), Box<dyn Error>> {
.map(|(i, x)| (x.to_string(), i))
.collect();
let mut items = Vec::<(f32, String)>::new();
let mut items = Vec::<(f32, LootSpec)>::new();
for record in rdr.records() {
if let Ok(ref record) = record {
let item = record.get(headers["Item"]).expect("No item");
let item = match record.get(headers["Kind"]).expect("No loot specifier") {
"Item" => LootSpec::Item(record.get(headers["Item"]).expect("No item").to_string()),
"LootTable" => LootSpec::LootTable(record.get(headers["Item"]).expect("No loot table").to_string()),
_ => panic!("Loot specifier kind must be either \"Item\" or \"LootTable\""),
};
let chance: f32 = record
.get(headers["Relative Chance"])
.expect("No chance for item in entry")
.parse()
.expect("Not an f32 for chance in entry");
items.push((chance, item.to_string()));
items.push((chance, item));
}
}

View File

@ -13,7 +13,7 @@ use crate::{
CharacterAbility,
},
effect::Effect,
lottery::Lottery,
lottery::{Lottery, LootSpec},
recipe::RecipeInput,
terrain::{Block, SpriteKind},
};
@ -601,44 +601,44 @@ impl Item {
// Containers
// IMPORTANT: Add any new container to `SpriteKind::is_container`
SpriteKind::Chest => {
chosen = Lottery::<String>::load_expect(match rng.gen_range(0..7) {
0 => "common.loot_tables.loot_table_weapon_uncommon",
1 => "common.loot_tables.loot_table_weapon_common",
2 => "common.loot_tables.loot_table_armor_light",
3 => "common.loot_tables.loot_table_armor_cloth",
4 => "common.loot_tables.loot_table_armor_heavy",
_ => "common.loot_tables.loot_table_armor_misc",
chosen = Lottery::<LootSpec>::load_expect(match rng.gen_range(0..7) {
0 => "common.loot_tables.weapon_uncommon",
1 => "common.loot_tables.weapon_common",
2 => "common.loot_tables.armor_light",
3 => "common.loot_tables.armor_cloth",
4 => "common.loot_tables.armor_heavy",
_ => "common.loot_tables.armor_misc",
})
.read();
chosen.choose()
return Some(chosen.choose().to_item())
},
SpriteKind::ChestBurried => {
chosen = Lottery::<String>::load_expect(match rng.gen_range(0..7) {
1 => "common.loot_tables.loot_table_weapon_common",
2 => "common.loot_tables.loot_table_armor_light",
3 => "common.loot_tables.loot_table_armor_cloth",
_ => "common.loot_tables.loot_table_armor_misc",
chosen = Lottery::<LootSpec>::load_expect(match rng.gen_range(0..7) {
1 => "common.loot_tables.weapon_common",
2 => "common.loot_tables.armor_light",
3 => "common.loot_tables.armor_cloth",
_ => "common.loot_tables.armor_misc",
})
.read();
chosen.choose()
return Some(chosen.choose().to_item())
},
SpriteKind::Mud => {
chosen = Lottery::<String>::load_expect(match rng.gen_range(0..5) {
0 => "common.loot_tables.loot_table_crafting",
1 => "common.loot_tables.loot_table_weapon_common",
2 => "common.loot_tables.loot_table_armor_misc",
_ => "common.loot_tables.loot_table_rocks",
chosen = Lottery::<LootSpec>::load_expect(match rng.gen_range(0..5) {
0 => "common.loot_tables.crafting",
1 => "common.loot_tables.weapon_common",
2 => "common.loot_tables.armor_misc",
_ => "common.loot_tables.rocks",
})
.read();
chosen.choose()
return Some(chosen.choose().to_item())
},
SpriteKind::Crate => {
chosen = Lottery::<String>::load_expect(match rng.gen_range(0..4) {
0 => "common.loot_tables.loot_table_crafting",
_ => "common.loot_tables.loot_table_food",
chosen = Lottery::<LootSpec>::load_expect(match rng.gen_range(0..4) {
0 => "common.loot_tables.crafting",
_ => "common.loot_tables.food",
})
.read();
chosen.choose()
return Some(chosen.choose().to_item())
},
SpriteKind::Beehive => "common.items.crafting_ing.honey",

View File

@ -568,18 +568,19 @@ impl LoadoutBuilder {
.unwrap_or_default()
/ 10.0;
for s in backpack.slots_mut() {
if coins > 0 {
let mut coin_item =
Item::new_from_asset_expect("common.items.utility.coins");
coin_item
.set_amount(coins)
.expect("coins should be stackable");
*s = Some(coin_item);
coins = 0;
} else if let Some(item_id) = TradePricing::random_item(Good::Armor, armor)
{
*s = Some(Item::new_from_asset_expect(&item_id));
}
// TODO: Re-implement later
// if coins > 0 {
// let mut coin_item =
// Item::new_from_asset_expect("common.items.utility.coins");
// coin_item
// .set_amount(coins)
// .expect("coins should be stackable");
// *s = Some(coin_item);
// coins = 0;
// } else if let Some(item_id) = TradePricing::random_item(Good::Armor, armor)
// {
// *s = Some(Item::new_from_asset_expect(&item_id));
// }
}
let mut bag1 = Item::new_from_asset_expect(
"common.items.armor.misc.bag.reliable_backpack",
@ -591,9 +592,9 @@ impl LoadoutBuilder {
.unwrap_or_default()
/ 10.0;
for i in bag1.slots_mut() {
if let Some(item_id) = TradePricing::random_item(Good::Tools, weapon) {
*i = Some(Item::new_from_asset_expect(&item_id));
}
// if let Some(item_id) = TradePricing::random_item(Good::Tools, weapon) {
// *i = Some(Item::new_from_asset_expect(&item_id));
// }
}
let mut bag2 = Item::new_from_asset_expect(
"common.items.armor.misc.bag.reliable_backpack",
@ -605,11 +606,11 @@ impl LoadoutBuilder {
.unwrap_or_default()
/ 10.0;
for i in bag2.slots_mut() {
if let Some(item_id) =
TradePricing::random_item(Good::Ingredients, ingredients)
{
*i = Some(Item::new_from_asset_expect(&item_id));
}
// if let Some(item_id) =
// TradePricing::random_item(Good::Ingredients, ingredients)
// {
// *i = Some(Item::new_from_asset_expect(&item_id));
// }
}
let mut bag3 = Item::new_from_asset_expect(
"common.items.armor.misc.bag.reliable_backpack",
@ -621,9 +622,9 @@ impl LoadoutBuilder {
.unwrap_or_default()
/ 10.0;
for i in bag3.slots_mut() {
if let Some(item_id) = TradePricing::random_item(Good::Food, food) {
*i = Some(Item::new_from_asset_expect(&item_id));
}
// if let Some(item_id) = TradePricing::random_item(Good::Food, food) {
// *i = Some(Item::new_from_asset_expect(&item_id));
// }
}
let mut bag4 = Item::new_from_asset_expect(
"common.items.armor.misc.bag.reliable_backpack",
@ -635,9 +636,9 @@ impl LoadoutBuilder {
.unwrap_or_default()
/ 10.0;
for i in bag4.slots_mut() {
if let Some(item_id) = TradePricing::random_item(Good::Potions, potions) {
*i = Some(Item::new_from_asset_expect(&item_id));
}
// if let Some(item_id) = TradePricing::random_item(Good::Potions, potions) {
// *i = Some(Item::new_from_asset_expect(&item_id));
// }
}
LoadoutBuilder::new()
.active_item(active_item)

View File

@ -184,15 +184,16 @@ impl TradePricing {
let mut result = TradePricing::default();
let files = TradingPriceFile::load_expect("common.item_price_calculation");
let contents = files.read();
for i in contents.loot_tables.iter() {
if PRICING_DEBUG {
info!(?i);
}
let loot = ProbabilityFile::load_expect(&i.1);
for j in loot.read().content.iter() {
add(&mut result.get_list_by_path_mut(&j.1), &j.1, i.0 * j.0);
}
}
// TODO: Re-enable this
// for i in contents.loot_tables.iter() {
// if PRICING_DEBUG {
// info!(?i);
// }
// let loot = ProbabilityFile::load_expect(&i.1);
// for j in loot.read().content.iter() {
// add(&mut result.get_list_by_path_mut(&j.1), &j.1, i.0 * j.0);
// }
// }
// Apply recipe book
let book = default_recipe_book().read();
@ -289,27 +290,28 @@ impl TradePricing {
result
}
fn random_item_impl(&self, good: Good, amount: f32) -> Option<String> {
if good == Good::Coin {
Some(TradePricing::COIN_ITEM.into())
} else {
let table = self.get_list(good);
let upper = table.len();
let lower = table
.iter()
.enumerate()
.find(|i| i.1.1 * amount >= 1.0)
.map(|i| i.0)
.unwrap_or(upper - 1);
let index = (rand::random::<f32>() * ((upper - lower) as f32)).floor() as usize + lower;
//.gen_range(lower..upper);
table.get(index).map(|i| i.0.clone())
}
}
// TODO: Re-enable later
// fn random_item_impl(&self, good: Good, amount: f32) -> Option<String> {
// if good == Good::Coin {
// Some(TradePricing::COIN_ITEM.into())
// } else {
// let table = self.get_list(good);
// let upper = table.len();
// let lower = table
// .iter()
// .enumerate()
// .find(|i| i.1.1 * amount >= 1.0)
// .map(|i| i.0)
// .unwrap_or(upper - 1);
// let index = (rand::random::<f32>() * ((upper - lower) as f32)).floor() as usize + lower;
// //.gen_range(lower..upper);
// table.get(index).map(|i| i.0.clone())
// }
// }
pub fn random_item(good: Good, amount: f32) -> Option<String> {
TRADE_PRICING.random_item_impl(good, amount)
}
// pub fn random_item(good: Good, amount: f32) -> Option<String> {
// TRADE_PRICING.random_item_impl(good, amount)
// }
pub fn get_material(item: &str) -> (Good, f32) {
if item == TradePricing::COIN_ITEM {

View File

@ -26,9 +26,9 @@
// Cheese drop rate = 3/X = 29.6%
// Coconut drop rate = 1/X = 9.85%
use crate::assets;
use crate::{assets::{self, AssetExt}, comp::Item};
use rand::prelude::*;
use serde::{de::DeserializeOwned, Deserialize};
use serde::{de::DeserializeOwned, Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Deserialize)]
pub struct Lottery<T> {
@ -72,6 +72,23 @@ impl<T> Lottery<T> {
pub fn total(&self) -> f32 { self.total }
}
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
pub enum LootSpec {
Item(String),
LootTable(String),
}
impl LootSpec {
pub fn to_item(&self) -> Item {
match self {
Self::Item(item) => Item::new_from_asset_expect(&item),
Self::LootTable(table) => {
Lottery::<LootSpec>::load_expect(&table).read().choose().to_item()
},
}
}
}
#[cfg(test)]
mod tests {
use super::*;
@ -79,13 +96,13 @@ mod tests {
#[test]
fn test_loot_table() {
let test = Lottery::<String>::load_expect("common.loot_tables.loot_table");
let test = Lottery::<LootSpec>::load_expect("common.loot_tables.fallback");
for (_, item_asset_specifier) in test.read().iter() {
for (_, to_itemifier) in test.read().iter() {
assert!(
Item::new_from_asset(item_asset_specifier).is_ok(),
Item::new_from_asset(to_itemifier).is_ok(),
"Invalid loot table item '{}'",
item_asset_specifier
to_itemifier
);
}
}

View File

@ -15,10 +15,10 @@ use common::{
chat::{KillSource, KillType},
inventory::item::MaterialStatManifest,
object, Alignment, Body, CharacterState, Energy, EnergyChange, Group, Health, HealthChange,
HealthSource, Inventory, Item, Player, Poise, PoiseChange, PoiseSource, Pos, Stats,
HealthSource, Inventory, Player, Poise, PoiseChange, PoiseSource, Pos, Stats,
},
event::{EventBus, ServerEvent},
lottery::Lottery,
lottery::{Lottery, LootSpec},
outcome::Outcome,
resources::Time,
rtsim::RtSimEntity,
@ -343,25 +343,25 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
let old_body = state.ecs().write_storage::<Body>().remove(entity);
let mut rng = rand::thread_rng();
let mut lottery = || {
Lottery::<String>::load_expect(match old_body {
Lottery::<LootSpec>::load_expect(match old_body {
Some(common::comp::Body::Humanoid(_)) => match rng.gen_range(0..4) {
0 => "common.loot_tables.loot_table_humanoids",
1 => "common.loot_tables.loot_table_armor_light",
2 => "common.loot_tables.loot_table_armor_cloth",
3 => "common.loot_tables.loot_table_weapon_common",
0 => "common.loot_tables.humanoids",
1 => "common.loot_tables.armor_light",
2 => "common.loot_tables.armor_cloth",
3 => "common.loot_tables.weapon_common",
4 => "common.loots_tables.loot_table_armor_misc",
_ => "common.loot_tables.loot_table_humanoids",
_ => "common.loot_tables.humanoids",
},
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.loot_table_rocks",
_ => "common.loot_tables.loot_table_rocks",
1 => "common.loot_tables.rocks",
_ => "common.loot_tables.rocks",
},
_ => match rng.gen_range(0..4) {
0 => "common.loot_tables.loot_table_food",
2 => "common.loot_tables.loot_table_animal_parts",
_ => "common.loot_tables.loot_table_animal_parts",
0 => "common.loot_tables.food",
2 => "common.loot_tables.animal_parts",
_ => "common.loot_tables.animal_parts",
},
}
},
@ -369,82 +369,82 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
match quadruped_medium.species {
quadruped_medium::Species::Frostfang
| quadruped_medium::Species::Roshwalr => {
"common.loot_tables.loot_table_animal_ice"
"common.loot_tables.animal_ice"
},
_ => match rng.gen_range(0..4) {
0 => "common.loot_tables.loot_table_food",
2 => "common.loot_tables.loot_table_animal_parts",
_ => "common.loot_tables.loot_table_animal_parts",
0 => "common.loot_tables.food",
2 => "common.loot_tables.animal_parts",
_ => "common.loot_tables.animal_parts",
},
}
},
Some(common::comp::Body::BirdMedium(_)) => match rng.gen_range(0..3) {
0 => "common.loot_tables.loot_table_food",
_ => "common.loot_tables.loot_table",
0 => "common.loot_tables.food",
_ => "common.loot_tables.fallback",
},
Some(common::comp::Body::FishMedium(_)) => "common.loot_tables.loot_table_fish",
Some(common::comp::Body::FishSmall(_)) => "common.loot_tables.loot_table_fish",
Some(common::comp::Body::FishMedium(_)) => "common.loot_tables.fish",
Some(common::comp::Body::FishSmall(_)) => "common.loot_tables.fish",
Some(common::comp::Body::BipedLarge(biped_large)) => match biped_large.species {
biped_large::Species::Wendigo => match rng.gen_range(0..7) {
0 => "common.loot_tables.loot_table_food",
1 => "common.loot_tables.loot_table_wendigo",
2 => "common.loot_tables.loot_table_weapon_uncommon",
_ => "common.loot_tables.loot_table_cave_large",
0 => "common.loot_tables.food",
1 => "common.loot_tables.wendigo",
2 => "common.loot_tables.weapon_uncommon",
_ => "common.loot_tables.cave_large",
},
biped_large::Species::Troll => match rng.gen_range(0..10) {
0 => "common.loot_tables.loot_table_food",
1 => "common.loot_tables.loot_table_cave_large",
2 => "common.loot_tables.loot_table_weapon_uncommon",
_ => "common.loot_tables.loot_table_troll",
0 => "common.loot_tables.food",
1 => "common.loot_tables.cave_large",
2 => "common.loot_tables.weapon_uncommon",
_ => "common.loot_tables.troll",
},
biped_large::Species::Occultsaurok
| biped_large::Species::Mightysaurok
| biped_large::Species::Slysaurok => "common.loot_tables.loot_table_saurok",
| biped_large::Species::Slysaurok => "common.loot_tables.saurok",
_ => match rng.gen_range(0..4) {
0 => "common.loot_tables.loot_table_food",
1 => "common.loot_tables.loot_table_armor_nature",
_ => "common.loot_tables.loot_table_cave_large",
0 => "common.loot_tables.food",
1 => "common.loot_tables.armor_nature",
_ => "common.loot_tables.cave_large",
},
},
Some(common::comp::Body::Golem(_)) => match rng.gen_range(0..9) {
0 => "common.loot_tables.loot_table_food",
2 => "common.loot_tables.loot_table_armor_light",
3 => "common.loot_tables.loot_table_armor_heavy",
5 => "common.loot_tables.loot_table_weapon_common",
6 => "common.loot_tables.loot_table_weapon_uncommon",
7 => "common.loot_tables.loot_table_weapon_rare",
_ => "common.loot_tables.loot_table",
0 => "common.loot_tables.food",
2 => "common.loot_tables.armor_light",
3 => "common.loot_tables.armor_heavy",
5 => "common.loot_tables.weapon_common",
6 => "common.loot_tables.weapon_uncommon",
7 => "common.loot_tables.weapon_rare",
_ => "common.loot_tables.fallback",
},
Some(common::comp::Body::Theropod(theropod)) => match theropod.species {
theropod::Species::Sandraptor
| theropod::Species::Snowraptor
| theropod::Species::Woodraptor => match rng.gen_range(0..3) {
0 => "common.loot_tables.loot_table_raptor",
_ => "common.loot_tables.loot_table_animal_parts",
0 => "common.loot_tables.raptor",
_ => "common.loot_tables.animal_parts",
},
_ => "common.loot_tables.loot_table_animal_parts",
_ => "common.loot_tables.animal_parts",
},
Some(common::comp::Body::Dragon(_)) => "common.loot_tables.loot_table_weapon_rare",
Some(common::comp::Body::Dragon(_)) => "common.loot_tables.weapon_rare",
Some(common::comp::Body::QuadrupedLow(quadruped_low)) => {
match quadruped_low.species {
quadruped_low::Species::Maneater => {
"common.loot_tables.loot_table_maneater"
"common.loot_tables.maneater"
},
_ => match rng.gen_range(0..3) {
0 => "common.loot_tables.loot_table_food",
1 => "common.loot_tables.loot_table_animal_parts",
_ => "common.loot_tables.loot_table",
0 => "common.loot_tables.food",
1 => "common.loot_tables.animal_parts",
_ => "common.loot_tables.fallback",
},
}
},
_ => "common.loot_tables.loot_table",
_ => "common.loot_tables.fallback",
})
};
let item = {
let mut item_drops = state.ecs().write_storage::<comp::ItemDrop>();
item_drops.remove(entity).map_or_else(
|| Item::new_from_asset_expect(lottery().read().choose()),
|| lottery().read().choose().to_item(),
|item_drop| item_drop.0,
)
};

View File

@ -16,7 +16,7 @@ use common::{
{self},
},
generation::{ChunkSupplement, EntityInfo},
lottery::Lottery,
lottery::{LootSpec, Lottery},
store::{Id, Store},
terrain::{Block, BlockKind, SpriteKind, Structure, StructuresGroup, TerrainChunkSize},
vol::{BaseVol, ReadVol, RectSizedVol, RectVolSize, WriteVol},
@ -553,52 +553,52 @@ impl Floor {
// Bad
let chosen = match room.difficulty {
0 => {
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..4) {
0 => "common.loot_tables.loot_table_humanoids",
1 => "common.loot_tables.loot_table_armor_cloth",
_ => "common.loot_tables.loot_table_weapon_common",
Lottery::<LootSpec>::load_expect(match dynamic_rng.gen_range(0..4) {
0 => "common.loot_tables.humanoids",
1 => "common.loot_tables.armor_cloth",
_ => "common.loot_tables.weapon_common",
})
},
1 => {
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..4) {
0 => "common.loot_tables.loot_table_humanoids",
1 => "common.loot_tables.loot_table_armor_light",
_ => "common.loot_tables.loot_table_weapon_uncommon",
Lottery::<LootSpec>::load_expect(match dynamic_rng.gen_range(0..4) {
0 => "common.loot_tables.humanoids",
1 => "common.loot_tables.armor_light",
_ => "common.loot_tables.weapon_uncommon",
})
},
2 => {
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..4) {
0 => "common.loot_tables.loot_table_humanoids",
1 => "common.loot_tables.loot_table_armor_heavy",
_ => "common.loot_tables.loot_table_weapon_rare",
Lottery::<LootSpec>::load_expect(match dynamic_rng.gen_range(0..4) {
0 => "common.loot_tables.humanoids",
1 => "common.loot_tables.armor_heavy",
_ => "common.loot_tables.weapon_rare",
})
},
3 => {
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..10) {
0 => "common.loot_tables.loot_table_humanoids",
1 => "common.loot_tables.loot_table_armor_heavy",
2 => "common.loot_tables.loot_table_weapon_rare",
_ => "common.loot_tables.loot_table_cultists",
Lottery::<LootSpec>::load_expect(match dynamic_rng.gen_range(0..10) {
0 => "common.loot_tables.humanoids",
1 => "common.loot_tables.armor_heavy",
2 => "common.loot_tables.weapon_rare",
_ => "common.loot_tables.cultists",
})
},
4 => {
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..6) {
0 => "common.loot_tables.loot_table_humanoids",
1 => "common.loot_tables.loot_table_armor_misc",
2 => "common.loot_tables.loot_table_weapon_rare",
_ => "common.loot_tables.loot_table_cultists",
Lottery::<LootSpec>::load_expect(match dynamic_rng.gen_range(0..6) {
0 => "common.loot_tables.humanoids",
1 => "common.loot_tables.armor_misc",
2 => "common.loot_tables.weapon_rare",
_ => "common.loot_tables.cultists",
})
},
5 => {
Lottery::<String>::load_expect(match dynamic_rng.gen_range(0..5) {
0 => "common.loot_tables.loot_table_humanoids",
1 => "common.loot_tables.loot_table_armor_misc",
2 => "common.loot_tables.loot_table_weapon_rare",
_ => "common.loot_tables.loot_table_cultists",
Lottery::<LootSpec>::load_expect(match dynamic_rng.gen_range(0..5) {
0 => "common.loot_tables.humanoids",
1 => "common.loot_tables.armor_misc",
2 => "common.loot_tables.weapon_rare",
_ => "common.loot_tables.cultists",
})
},
_ => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_armor_misc",
_ => Lottery::<LootSpec>::load_expect(
"common.loot_tables.armor_misc",
),
};
let chosen = chosen.read();
@ -617,7 +617,7 @@ impl Floor {
.with_alignment(comp::Alignment::Enemy)
.with_loadout_config(loadout_builder::LoadoutConfig::CultistAcolyte)
.with_skillset_config(common::skillset_builder::SkillSetConfig::CultistAcolyte)
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_level(dynamic_rng.gen_range((room.difficulty as f32).powf(1.25) + 3.0..(room.difficulty as f32).powf(1.5) + 4.0).round() as u16);
let entity = match room.difficulty {
0 => entity
@ -632,7 +632,7 @@ impl Floor {
.with_skillset_config(
common::skillset_builder::SkillSetConfig::Gnarling,
)
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) {
0 => {
@ -661,7 +661,7 @@ impl Floor {
.with_skillset_config(
common::skillset_builder::SkillSetConfig::Adlet,
)
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) {
0 => "common.items.npc_weapons.biped_small.adlet.adlet_bow",
@ -686,7 +686,7 @@ impl Floor {
.with_skillset_config(
common::skillset_builder::SkillSetConfig::Sahagin,
)
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) {
0 => {
@ -714,7 +714,7 @@ impl Floor {
.with_skillset_config(
common::skillset_builder::SkillSetConfig::Haniwa,
)
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) {
0 => {
@ -742,7 +742,7 @@ impl Floor {
.with_skillset_config(
common::skillset_builder::SkillSetConfig::Myrmidon,
)
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) {
0 => {
@ -767,7 +767,7 @@ impl Floor {
.with_skillset_config(
common::skillset_builder::SkillSetConfig::Warlock,
)
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_main_tool(comp::Item::new_from_asset_expect(
"common.items.weapons.staff.cultist_staff",
)),
@ -783,7 +783,7 @@ impl Floor {
.with_skillset_config(
common::skillset_builder::SkillSetConfig::Warlord,
)
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) {
0 => "common.items.weapons.axe.malachite_axe-0",
@ -818,29 +818,29 @@ impl Floor {
if tile_pos == boss_spawn_tile && tile_wcenter.xy() == wpos2d {
let chosen = match room.difficulty {
0 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_weapon_uncommon",
0 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.weapon_uncommon",
),
1 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_weapon_uncommon",
1 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.weapon_uncommon",
),
2 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_armor_heavy",
2 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.armor_heavy",
),
3 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_weapon_rare",
3 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.weapon_rare",
),
4 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_miniboss",
4 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.miniboss",
),
5 => Lottery::<String>::load_expect(
5 => Lottery::<LootSpec>::load_expect(
match dynamic_rng.gen_range(0..3) {
0 => "common.loot_tables.mindflayer",
_ => "common.loot_tables.loot_table_miniboss",
_ => "common.loot_tables.miniboss",
},
),
_ => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_armor_misc",
_ => Lottery::<LootSpec>::load_expect(
"common.loot_tables.armor_misc",
),
};
let chosen = chosen.read();
@ -855,7 +855,7 @@ impl Floor {
),
))
.with_name("Harvester".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
.with_loot_drop(chosen.to_item()),
],
1 => vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32))
@ -866,7 +866,7 @@ impl Floor {
),
))
.with_name("Yeti".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
.with_loot_drop(chosen.to_item()),
],
2 => vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32))
@ -877,7 +877,7 @@ impl Floor {
),
))
.with_name("Tidal Warrior".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
.with_loot_drop(chosen.to_item()),
],
3 => vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32))
@ -888,7 +888,7 @@ impl Floor {
),
))
.with_name("Clay Golem".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
.with_loot_drop(chosen.to_item()),
],
4 => vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32))
@ -899,7 +899,7 @@ impl Floor {
),
))
.with_name("Minotaur".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
.with_loot_drop(chosen.to_item()),
],
5 => vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32))
@ -910,7 +910,7 @@ impl Floor {
),
))
.with_name("Mindflayer".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_skillset_config(
common::skillset_builder::SkillSetConfig::Mindflayer,
),
@ -961,26 +961,26 @@ impl Floor {
if tile_pos == miniboss_spawn_tile && tile_wcenter.xy() == wpos2d {
let chosen = match room.difficulty {
0 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_animal_parts",
0 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.animal_parts",
),
1 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_animal_parts",
1 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.animal_parts",
),
2 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_animal_parts",
2 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.animal_parts",
),
3 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_weapon_rare",
3 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.weapon_rare",
),
4 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_weapon_rare",
4 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.weapon_rare",
),
5 => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_husk",
5 => Lottery::<LootSpec>::load_expect(
"common.loot_tables.husk",
),
_ => Lottery::<String>::load_expect(
"common.loot_tables.loot_table_armor_misc",
_ => Lottery::<LootSpec>::load_expect(
"common.loot_tables.armor_misc",
),
};
let chosen = chosen.read();
@ -995,7 +995,7 @@ impl Floor {
),
))
.with_name("Bonerattler".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
.with_loot_drop(chosen.to_item()),
],
1 => vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32))
@ -1006,9 +1006,7 @@ impl Floor {
)
))
.with_name("Bonerattler".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(
chosen
));
.with_loot_drop(chosen.to_item());
3
],
2 => {
@ -1022,7 +1020,7 @@ impl Floor {
),
))
.with_name("Hakulaq".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
});
entities
},
@ -1032,7 +1030,7 @@ impl Floor {
comp::humanoid::Body::random(),
))
.with_name("Animal Trainer".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_loot_drop(chosen.to_item())
.with_loadout_config(loadout_builder::LoadoutConfig::CultistAcolyte)
.with_skillset_config(
common::skillset_builder::SkillSetConfig::CultistAcolyte
@ -1056,7 +1054,7 @@ impl Floor {
),
))
.with_name("Tamed Darkhound".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
.with_loot_drop(chosen.to_item()),
EntityInfo::at(tile_wcenter.map(|e| e as f32))
.with_body(comp::Body::QuadrupedMedium(
comp::quadruped_medium::Body::random_with(
@ -1065,7 +1063,7 @@ impl Floor {
),
))
.with_name("Tamed Darkhound".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
.with_loot_drop(chosen.to_item()),
],
4 => vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32))
@ -1076,7 +1074,7 @@ impl Floor {
),
))
.with_name("Dullahan Guard".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
.with_loot_drop(chosen.to_item()),
],
5 => {
let mut entities = Vec::new();