Modular weapons now work in kits.

This commit is contained in:
Sam 2021-09-03 22:06:15 -04:00
parent c6b5798cfd
commit 4f466d0523
4 changed files with 314 additions and 259 deletions

View File

@ -1,341 +1,371 @@
({
"debug": [
("common.items.debug.admin_black_hole",1),
("common.items.debug.admin_stick",1),
("common.items.debug.admin_sword",1),
("common.items.debug.velorite_bow_debug", 1),
("common.items.debug.admin",1),
(Item("common.items.debug.admin_black_hole"),1),
(Item("common.items.debug.admin_stick"),1),
(Item("common.items.debug.admin_sword"),1),
(Item("common.items.debug.velorite_bow_debug"), 1),
(Item("common.items.debug.admin"),1),
],
"consumables": [
("common.items.consumable.potion_big", 100),
("common.items.consumable.potion_med", 100),
("common.items.consumable.potion_minor", 100),
("common.items.food.apple", 100),
("common.items.food.apple_mushroom_curry", 100),
("common.items.food.apple_stick", 100),
("common.items.food.cactus_colada", 100),
("common.items.food.carrot", 100),
("common.items.food.cheese", 100),
("common.items.food.coconut", 100),
//("common.items.food.coltsfoot", 100),
//("common.items.food.dandelion", 100),
//("common.items.food.garlic", 100),
("common.items.food.lettuce", 100),
//("common.items.food.meat", 100),
("common.items.food.meat.beast_large_cooked", 100),
("common.items.food.meat.beast_large_raw", 100),
("common.items.food.meat.beast_small_cooked", 100),
("common.items.food.meat.beast_small_raw", 100),
("common.items.food.meat.bird_cooked", 100),
("common.items.food.meat.bird_large_cooked", 100),
("common.items.food.meat.bird_large_raw", 100),
("common.items.food.meat.bird_raw", 100),
("common.items.food.meat.fish_cooked", 100),
("common.items.food.meat.fish_raw", 100),
("common.items.food.meat.tough_cooked", 100),
("common.items.food.meat.tough_raw", 100),
("common.items.food.mushroom", 100),
("common.items.food.mushroom_stick", 100),
//("common.items.food.onion", 100),
("common.items.food.plainsalad", 100),
//("common.items.food.sage", 100),
("common.items.food.spore_corruption", 100),
("common.items.food.sunflower_icetea", 100),
("common.items.food.tomato", 100),
("common.items.food.tomatosalad", 100),
(Item("common.items.consumable.potion_big"), 100),
(Item("common.items.consumable.potion_med"), 100),
(Item("common.items.consumable.potion_minor"), 100),
(Item("common.items.food.apple"), 100),
(Item("common.items.food.apple_mushroom_curry"), 100),
(Item("common.items.food.apple_stick"), 100),
(Item("common.items.food.cactus_colada"), 100),
(Item("common.items.food.carrot"), 100),
(Item("common.items.food.cheese"), 100),
(Item("common.items.food.coconut"), 100),
//(Item("common.items.food.coltsfoot"), 100),
//(Item("common.items.food.dandelion"), 100),
//(Item("common.items.food.garlic"), 100),
(Item("common.items.food.lettuce"), 100),
//(Item("common.items.food.meat"), 100),
(Item("common.items.food.meat.beast_large_cooked"), 100),
(Item("common.items.food.meat.beast_large_raw"), 100),
(Item("common.items.food.meat.beast_small_cooked"), 100),
(Item("common.items.food.meat.beast_small_raw"), 100),
(Item("common.items.food.meat.bird_cooked"), 100),
(Item("common.items.food.meat.bird_large_cooked"), 100),
(Item("common.items.food.meat.bird_large_raw"), 100),
(Item("common.items.food.meat.bird_raw"), 100),
(Item("common.items.food.meat.fish_cooked"), 100),
(Item("common.items.food.meat.fish_raw"), 100),
(Item("common.items.food.meat.tough_cooked"), 100),
(Item("common.items.food.meat.tough_raw"), 100),
(Item("common.items.food.mushroom"), 100),
(Item("common.items.food.mushroom_stick"), 100),
//(Item("common.items.food.onion"), 100),
(Item("common.items.food.plainsalad"), 100),
//(Item("common.items.food.sage"), 100),
(Item("common.items.food.spore_corruption"), 100),
(Item("common.items.food.sunflower_icetea"), 100),
(Item("common.items.food.tomato"), 100),
(Item("common.items.food.tomatosalad"), 100),
],
"jewellery": [
// Necklace
("common.items.armor.misc.neck.amethyst", 1),
("common.items.armor.misc.neck.ankh_of_life", 1),
("common.items.armor.misc.neck.carcanet_of_wrath", 1),
("common.items.armor.misc.neck.diamond", 1),
("common.items.armor.misc.neck.emerald", 1),
("common.items.armor.misc.neck.fang", 1),
("common.items.armor.misc.neck.gem_of_resilience", 1),
("common.items.armor.misc.neck.gold", 1),
("common.items.armor.misc.neck.haniwa_talisman", 1),
("common.items.armor.misc.neck.honeycomb_pendant", 1),
("common.items.armor.misc.neck.pendant_of_protection", 1),
("common.items.armor.misc.neck.ruby", 1),
("common.items.armor.misc.neck.sapphire", 1),
("common.items.armor.misc.neck.scratched", 1),
("common.items.armor.misc.neck.shell", 1),
("common.items.armor.misc.neck.topaz", 1),
(Item("common.items.armor.misc.neck.amethyst"), 1),
(Item("common.items.armor.misc.neck.ankh_of_life"), 1),
(Item("common.items.armor.misc.neck.carcanet_of_wrath"), 1),
(Item("common.items.armor.misc.neck.diamond"), 1),
(Item("common.items.armor.misc.neck.emerald"), 1),
(Item("common.items.armor.misc.neck.fang"), 1),
(Item("common.items.armor.misc.neck.gem_of_resilience"), 1),
(Item("common.items.armor.misc.neck.gold"), 1),
(Item("common.items.armor.misc.neck.haniwa_talisman"), 1),
(Item("common.items.armor.misc.neck.honeycomb_pendant"), 1),
(Item("common.items.armor.misc.neck.pendant_of_protection"), 1),
(Item("common.items.armor.misc.neck.ruby"), 1),
(Item("common.items.armor.misc.neck.sapphire"), 1),
(Item("common.items.armor.misc.neck.scratched"), 1),
(Item("common.items.armor.misc.neck.shell"), 1),
(Item("common.items.armor.misc.neck.topaz"), 1),
// Rings
("common.items.armor.misc.ring.diamond", 2),
("common.items.armor.misc.ring.ruby", 2),
("common.items.armor.misc.ring.emerald", 2),
("common.items.armor.misc.ring.sapphire", 2),
("common.items.armor.misc.ring.topaz", 2),
("common.items.armor.misc.ring.amethyst", 2),
("common.items.armor.misc.ring.scratched", 2),
("common.items.armor.misc.ring.gold", 2),
("common.items.armor.cultist.ring", 2),
(Item("common.items.armor.misc.ring.diamond"), 2),
(Item("common.items.armor.misc.ring.ruby"), 2),
(Item("common.items.armor.misc.ring.emerald"), 2),
(Item("common.items.armor.misc.ring.sapphire"), 2),
(Item("common.items.armor.misc.ring.topaz"), 2),
(Item("common.items.armor.misc.ring.amethyst"), 2),
(Item("common.items.armor.misc.ring.scratched"), 2),
(Item("common.items.armor.misc.ring.gold"), 2),
(Item("common.items.armor.cultist.ring"), 2),
],
"endgame": [
// Cultist weapons
("common.items.weapons.hammer.cultist_purp_2h-0",1),
("common.items.weapons.staff.cultist_staff",1),
("common.items.weapons.sword.cultist",1),
("common.items.weapons.bow.velorite",1),
("common.items.weapons.axe.malachite_axe-0",1),
("common.items.weapons.sceptre.sceptre_velorite_0",1),
(Item("common.items.weapons.hammer.cultist_purp_2h-0"),1),
(Item("common.items.weapons.staff.cultist_staff"),1),
(Item("common.items.weapons.sword.cultist"),1),
(Item("common.items.weapons.bow.velorite"),1),
(Item("common.items.weapons.axe.malachite_axe-0"),1),
(Item("common.items.weapons.sceptre.sceptre_velorite_0"),1),
// Legendaries
("common.items.weapons.hammer.mjolnir",1),
("common.items.weapons.staff.laevateinn",1),
("common.items.weapons.sword.caladbolg",1),
("common.items.weapons.bow.sagitta",1),
("common.items.weapons.axe.parashu",1),
("common.items.weapons.sceptre.caduceus",1),
("common.items.weapons.sceptre.root_evil",1),
(Item("common.items.weapons.hammer.mjolnir"),1),
(Item("common.items.weapons.staff.laevateinn"),1),
(Item("common.items.weapons.sword.caladbolg"),1),
(Item("common.items.weapons.bow.sagitta"),1),
(Item("common.items.weapons.axe.parashu"),1),
(Item("common.items.weapons.sceptre.caduceus"),1),
(Item("common.items.weapons.sceptre.root_evil"),1),
],
"tier-5": [
// Hide
("common.items.armor.hide.dragonscale.back", 1),
("common.items.armor.hide.dragonscale.belt", 1),
("common.items.armor.hide.dragonscale.chest", 1),
("common.items.armor.hide.dragonscale.foot", 1),
("common.items.armor.hide.dragonscale.hand", 1),
("common.items.armor.hide.dragonscale.pants", 1),
("common.items.armor.hide.dragonscale.shoulder", 1),
(Item("common.items.armor.hide.dragonscale.back"), 1),
(Item("common.items.armor.hide.dragonscale.belt"), 1),
(Item("common.items.armor.hide.dragonscale.chest"), 1),
(Item("common.items.armor.hide.dragonscale.foot"), 1),
(Item("common.items.armor.hide.dragonscale.hand"), 1),
(Item("common.items.armor.hide.dragonscale.pants"), 1),
(Item("common.items.armor.hide.dragonscale.shoulder"), 1),
// Cloth
("common.items.armor.cloth.sunsilk.back", 1),
("common.items.armor.cloth.sunsilk.belt", 1),
("common.items.armor.cloth.sunsilk.chest", 1),
("common.items.armor.cloth.sunsilk.foot", 1),
("common.items.armor.cloth.sunsilk.hand", 1),
("common.items.armor.cloth.sunsilk.pants", 1),
("common.items.armor.cloth.sunsilk.shoulder", 1),
(Item("common.items.armor.cloth.sunsilk.back"), 1),
(Item("common.items.armor.cloth.sunsilk.belt"), 1),
(Item("common.items.armor.cloth.sunsilk.chest"), 1),
(Item("common.items.armor.cloth.sunsilk.foot"), 1),
(Item("common.items.armor.cloth.sunsilk.hand"), 1),
(Item("common.items.armor.cloth.sunsilk.pants"), 1),
(Item("common.items.armor.cloth.sunsilk.shoulder"), 1),
// Mail
("common.items.armor.mail.orichalcum.back", 1),
("common.items.armor.mail.orichalcum.belt", 1),
("common.items.armor.mail.orichalcum.chest", 1),
("common.items.armor.mail.orichalcum.foot", 1),
("common.items.armor.mail.orichalcum.hand", 1),
("common.items.armor.mail.orichalcum.pants", 1),
("common.items.armor.mail.orichalcum.shoulder", 1),
(Item("common.items.armor.mail.orichalcum.back"), 1),
(Item("common.items.armor.mail.orichalcum.belt"), 1),
(Item("common.items.armor.mail.orichalcum.chest"), 1),
(Item("common.items.armor.mail.orichalcum.foot"), 1),
(Item("common.items.armor.mail.orichalcum.hand"), 1),
(Item("common.items.armor.mail.orichalcum.pants"), 1),
(Item("common.items.armor.mail.orichalcum.shoulder"), 1),
// Weapons
// TODO: Make modular weapons load from this
(ModularWeapon(tool: Sword, material: Orichalcum),1),
(ModularWeapon(tool: Axe, material: Orichalcum),1),
(ModularWeapon(tool: Hammer, material: Orichalcum),1),
(ModularWeapon(tool: Bow, material: Eldwood),1),
(ModularWeapon(tool: Staff, material: Eldwood),1),
(ModularWeapon(tool: Sceptre, material: Eldwood),1),
// Potion Kit
("common.items.consumable.potion_med", 100),
(Item("common.items.consumable.potion_med"), 100),
],
"tier-4": [
// Hide
("common.items.armor.hide.primal.back", 1),
("common.items.armor.hide.primal.belt", 1),
("common.items.armor.hide.primal.chest", 1),
("common.items.armor.hide.primal.foot", 1),
("common.items.armor.hide.primal.hand", 1),
("common.items.armor.hide.primal.pants", 1),
("common.items.armor.hide.primal.shoulder", 1),
(Item("common.items.armor.hide.primal.back"), 1),
(Item("common.items.armor.hide.primal.belt"), 1),
(Item("common.items.armor.hide.primal.chest"), 1),
(Item("common.items.armor.hide.primal.foot"), 1),
(Item("common.items.armor.hide.primal.hand"), 1),
(Item("common.items.armor.hide.primal.pants"), 1),
(Item("common.items.armor.hide.primal.shoulder"), 1),
// Cloth
("common.items.armor.cloth.moonweave.back", 1),
("common.items.armor.cloth.moonweave.belt", 1),
("common.items.armor.cloth.moonweave.chest", 1),
("common.items.armor.cloth.moonweave.foot", 1),
("common.items.armor.cloth.moonweave.hand", 1),
("common.items.armor.cloth.moonweave.pants", 1),
("common.items.armor.cloth.moonweave.shoulder", 1),
(Item("common.items.armor.cloth.moonweave.back"), 1),
(Item("common.items.armor.cloth.moonweave.belt"), 1),
(Item("common.items.armor.cloth.moonweave.chest"), 1),
(Item("common.items.armor.cloth.moonweave.foot"), 1),
(Item("common.items.armor.cloth.moonweave.hand"), 1),
(Item("common.items.armor.cloth.moonweave.pants"), 1),
(Item("common.items.armor.cloth.moonweave.shoulder"), 1),
// Mail
("common.items.armor.mail.bloodsteel.back", 1),
("common.items.armor.mail.bloodsteel.belt", 1),
("common.items.armor.mail.bloodsteel.chest", 1),
("common.items.armor.mail.bloodsteel.foot", 1),
("common.items.armor.mail.bloodsteel.hand", 1),
("common.items.armor.mail.bloodsteel.pants", 1),
("common.items.armor.mail.bloodsteel.shoulder", 1),
(Item("common.items.armor.mail.bloodsteel.back"), 1),
(Item("common.items.armor.mail.bloodsteel.belt"), 1),
(Item("common.items.armor.mail.bloodsteel.chest"), 1),
(Item("common.items.armor.mail.bloodsteel.foot"), 1),
(Item("common.items.armor.mail.bloodsteel.hand"), 1),
(Item("common.items.armor.mail.bloodsteel.pants"), 1),
(Item("common.items.armor.mail.bloodsteel.shoulder"), 1),
// Weapons
// TODO: Make modular weapons load from this
(ModularWeapon(tool: Sword, material: Bloodsteel),1),
(ModularWeapon(tool: Axe, material: Bloodsteel),1),
(ModularWeapon(tool: Hammer, material: Bloodsteel),1),
(ModularWeapon(tool: Bow, material: Frostwood),1),
(ModularWeapon(tool: Staff, material: Frostwood),1),
(ModularWeapon(tool: Sceptre, material: Frostwood),1),
// Potion Kit
("common.items.consumable.potion_med", 100),
(Item("common.items.consumable.potion_med"), 100),
],
"tier-3": [
// Hide
("common.items.armor.hide.carapace.back", 1),
("common.items.armor.hide.carapace.belt", 1),
("common.items.armor.hide.carapace.chest", 1),
("common.items.armor.hide.carapace.foot", 1),
("common.items.armor.hide.carapace.hand", 1),
("common.items.armor.hide.carapace.pants", 1),
("common.items.armor.hide.carapace.shoulder", 1),
(Item("common.items.armor.hide.carapace.back"), 1),
(Item("common.items.armor.hide.carapace.belt"), 1),
(Item("common.items.armor.hide.carapace.chest"), 1),
(Item("common.items.armor.hide.carapace.foot"), 1),
(Item("common.items.armor.hide.carapace.hand"), 1),
(Item("common.items.armor.hide.carapace.pants"), 1),
(Item("common.items.armor.hide.carapace.shoulder"), 1),
// Cloth
("common.items.armor.cloth.druid.back", 1),
("common.items.armor.cloth.druid.belt", 1),
("common.items.armor.cloth.druid.chest", 1),
("common.items.armor.cloth.druid.foot", 1),
("common.items.armor.cloth.druid.hand", 1),
("common.items.armor.cloth.druid.pants", 1),
("common.items.armor.cloth.druid.shoulder", 1),
(Item("common.items.armor.cloth.druid.back"), 1),
(Item("common.items.armor.cloth.druid.belt"), 1),
(Item("common.items.armor.cloth.druid.chest"), 1),
(Item("common.items.armor.cloth.druid.foot"), 1),
(Item("common.items.armor.cloth.druid.hand"), 1),
(Item("common.items.armor.cloth.druid.pants"), 1),
(Item("common.items.armor.cloth.druid.shoulder"), 1),
// Mail
("common.items.armor.mail.cobalt.back", 1),
("common.items.armor.mail.cobalt.belt", 1),
("common.items.armor.mail.cobalt.chest", 1),
("common.items.armor.mail.cobalt.foot", 1),
("common.items.armor.mail.cobalt.hand", 1),
("common.items.armor.mail.cobalt.pants", 1),
("common.items.armor.mail.cobalt.shoulder", 1),
(Item("common.items.armor.mail.cobalt.back"), 1),
(Item("common.items.armor.mail.cobalt.belt"), 1),
(Item("common.items.armor.mail.cobalt.chest"), 1),
(Item("common.items.armor.mail.cobalt.foot"), 1),
(Item("common.items.armor.mail.cobalt.hand"), 1),
(Item("common.items.armor.mail.cobalt.pants"), 1),
(Item("common.items.armor.mail.cobalt.shoulder"), 1),
// Weapons
// TODO: Make modular weapons load from this
(ModularWeapon(tool: Sword, material: Cobalt),1),
(ModularWeapon(tool: Axe, material: Cobalt),1),
(ModularWeapon(tool: Hammer, material: Cobalt),1),
(ModularWeapon(tool: Bow, material: Ironwood),1),
(ModularWeapon(tool: Staff, material: Ironwood),1),
(ModularWeapon(tool: Sceptre, material: Ironwood),1),
// Potion Kit
("common.items.consumable.potion_med", 100),
(Item("common.items.consumable.potion_med"), 100),
],
"tier-2": [
// Hide
("common.items.armor.hide.scale.back", 1),
("common.items.armor.hide.scale.belt", 1),
("common.items.armor.hide.scale.chest", 1),
("common.items.armor.hide.scale.foot", 1),
("common.items.armor.hide.scale.hand", 1),
("common.items.armor.hide.scale.pants", 1),
("common.items.armor.hide.scale.shoulder", 1),
(Item("common.items.armor.hide.scale.back"), 1),
(Item("common.items.armor.hide.scale.belt"), 1),
(Item("common.items.armor.hide.scale.chest"), 1),
(Item("common.items.armor.hide.scale.foot"), 1),
(Item("common.items.armor.hide.scale.hand"), 1),
(Item("common.items.armor.hide.scale.pants"), 1),
(Item("common.items.armor.hide.scale.shoulder"), 1),
// Cloth
("common.items.armor.cloth.silken.back", 1),
("common.items.armor.cloth.silken.belt", 1),
("common.items.armor.cloth.silken.chest", 1),
("common.items.armor.cloth.silken.foot", 1),
("common.items.armor.cloth.silken.hand", 1),
("common.items.armor.cloth.silken.pants", 1),
("common.items.armor.cloth.silken.shoulder", 1),
(Item("common.items.armor.cloth.silken.back"), 1),
(Item("common.items.armor.cloth.silken.belt"), 1),
(Item("common.items.armor.cloth.silken.chest"), 1),
(Item("common.items.armor.cloth.silken.foot"), 1),
(Item("common.items.armor.cloth.silken.hand"), 1),
(Item("common.items.armor.cloth.silken.pants"), 1),
(Item("common.items.armor.cloth.silken.shoulder"), 1),
// Mail
("common.items.armor.mail.steel.back", 1),
("common.items.armor.mail.steel.belt", 1),
("common.items.armor.mail.steel.chest", 1),
("common.items.armor.mail.steel.foot", 1),
("common.items.armor.mail.steel.hand", 1),
("common.items.armor.mail.steel.pants", 1),
("common.items.armor.mail.steel.shoulder", 1),
(Item("common.items.armor.mail.steel.back"), 1),
(Item("common.items.armor.mail.steel.belt"), 1),
(Item("common.items.armor.mail.steel.chest"), 1),
(Item("common.items.armor.mail.steel.foot"), 1),
(Item("common.items.armor.mail.steel.hand"), 1),
(Item("common.items.armor.mail.steel.pants"), 1),
(Item("common.items.armor.mail.steel.shoulder"), 1),
// Weapons
// TODO: Make modular weapons load from this
(ModularWeapon(tool: Sword, material: Steel),1),
(ModularWeapon(tool: Axe, material: Steel),1),
(ModularWeapon(tool: Hammer, material: Steel),1),
(ModularWeapon(tool: Bow, material: Hardwood),1),
(ModularWeapon(tool: Staff, material: Hardwood),1),
(ModularWeapon(tool: Sceptre, material: Hardwood),1),
// Potion Kit
("common.items.consumable.potion_med", 100),
(Item("common.items.consumable.potion_med"), 100),
],
"tier-1": [
// Hide
("common.items.armor.hide.leather.back", 1),
("common.items.armor.hide.leather.belt", 1),
("common.items.armor.hide.leather.chest", 1),
("common.items.armor.hide.leather.foot", 1),
("common.items.armor.hide.leather.hand", 1),
("common.items.armor.hide.leather.pants", 1),
("common.items.armor.hide.leather.shoulder", 1),
(Item("common.items.armor.hide.leather.back"), 1),
(Item("common.items.armor.hide.leather.belt"), 1),
(Item("common.items.armor.hide.leather.chest"), 1),
(Item("common.items.armor.hide.leather.foot"), 1),
(Item("common.items.armor.hide.leather.hand"), 1),
(Item("common.items.armor.hide.leather.pants"), 1),
(Item("common.items.armor.hide.leather.shoulder"), 1),
// Cloth
("common.items.armor.cloth.woolen.back", 1),
("common.items.armor.cloth.woolen.belt", 1),
("common.items.armor.cloth.woolen.chest", 1),
("common.items.armor.cloth.woolen.foot", 1),
("common.items.armor.cloth.woolen.hand", 1),
("common.items.armor.cloth.woolen.pants", 1),
("common.items.armor.cloth.woolen.shoulder", 1),
(Item("common.items.armor.cloth.woolen.back"), 1),
(Item("common.items.armor.cloth.woolen.belt"), 1),
(Item("common.items.armor.cloth.woolen.chest"), 1),
(Item("common.items.armor.cloth.woolen.foot"), 1),
(Item("common.items.armor.cloth.woolen.hand"), 1),
(Item("common.items.armor.cloth.woolen.pants"), 1),
(Item("common.items.armor.cloth.woolen.shoulder"), 1),
// Mail
("common.items.armor.mail.iron.back", 1),
("common.items.armor.mail.iron.belt", 1),
("common.items.armor.mail.iron.chest", 1),
("common.items.armor.mail.iron.foot", 1),
("common.items.armor.mail.iron.hand", 1),
("common.items.armor.mail.iron.pants", 1),
("common.items.armor.mail.iron.shoulder", 1),
(Item("common.items.armor.mail.iron.back"), 1),
(Item("common.items.armor.mail.iron.belt"), 1),
(Item("common.items.armor.mail.iron.chest"), 1),
(Item("common.items.armor.mail.iron.foot"), 1),
(Item("common.items.armor.mail.iron.hand"), 1),
(Item("common.items.armor.mail.iron.pants"), 1),
(Item("common.items.armor.mail.iron.shoulder"), 1),
// Weapons
// TODO: Make modular weapons load from this
(ModularWeapon(tool: Sword, material: Iron),1),
(ModularWeapon(tool: Axe, material: Iron),1),
(ModularWeapon(tool: Hammer, material: Iron),1),
(ModularWeapon(tool: Bow, material: Bamboo),1),
(ModularWeapon(tool: Staff, material: Bamboo),1),
(ModularWeapon(tool: Sceptre, material: Bamboo),1),
// Potion Kit
("common.items.consumable.potion_minor", 100),
(Item("common.items.consumable.potion_minor"), 100),
],
"tier-0": [
// Hide
("common.items.armor.hide.rawhide.back", 1),
("common.items.armor.hide.rawhide.belt", 1),
("common.items.armor.hide.rawhide.chest", 1),
("common.items.armor.hide.rawhide.foot", 1),
("common.items.armor.hide.rawhide.hand", 1),
("common.items.armor.hide.rawhide.pants", 1),
("common.items.armor.hide.rawhide.shoulder", 1),
(Item("common.items.armor.hide.rawhide.back"), 1),
(Item("common.items.armor.hide.rawhide.belt"), 1),
(Item("common.items.armor.hide.rawhide.chest"), 1),
(Item("common.items.armor.hide.rawhide.foot"), 1),
(Item("common.items.armor.hide.rawhide.hand"), 1),
(Item("common.items.armor.hide.rawhide.pants"), 1),
(Item("common.items.armor.hide.rawhide.shoulder"), 1),
// Cloth
("common.items.armor.cloth.linen.back", 1),
("common.items.armor.cloth.linen.belt", 1),
("common.items.armor.cloth.linen.chest", 1),
("common.items.armor.cloth.linen.foot", 1),
("common.items.armor.cloth.linen.hand", 1),
("common.items.armor.cloth.linen.pants", 1),
("common.items.armor.cloth.linen.shoulder", 1),
(Item("common.items.armor.cloth.linen.back"), 1),
(Item("common.items.armor.cloth.linen.belt"), 1),
(Item("common.items.armor.cloth.linen.chest"), 1),
(Item("common.items.armor.cloth.linen.foot"), 1),
(Item("common.items.armor.cloth.linen.hand"), 1),
(Item("common.items.armor.cloth.linen.pants"), 1),
(Item("common.items.armor.cloth.linen.shoulder"), 1),
// Mail
("common.items.armor.mail.bronze.back", 1),
("common.items.armor.mail.bronze.belt", 1),
("common.items.armor.mail.bronze.chest", 1),
("common.items.armor.mail.bronze.foot", 1),
("common.items.armor.mail.bronze.hand", 1),
("common.items.armor.mail.bronze.pants", 1),
("common.items.armor.mail.bronze.shoulder", 1),
(Item("common.items.armor.mail.bronze.back"), 1),
(Item("common.items.armor.mail.bronze.belt"), 1),
(Item("common.items.armor.mail.bronze.chest"), 1),
(Item("common.items.armor.mail.bronze.foot"), 1),
(Item("common.items.armor.mail.bronze.hand"), 1),
(Item("common.items.armor.mail.bronze.pants"), 1),
(Item("common.items.armor.mail.bronze.shoulder"), 1),
// weapons
// TODO: Make modular weapons load from this
(ModularWeapon(tool: Sword, material: Bronze),1),
(ModularWeapon(tool: Axe, material: Bronze),1),
(ModularWeapon(tool: Hammer, material: Bronze),1),
(ModularWeapon(tool: Bow, material: Wood),1),
(ModularWeapon(tool: Staff, material: Wood),1),
(ModularWeapon(tool: Sceptre, material: Wood),1),
// potion kit
("common.items.consumable.potion_minor", 100),
(Item("common.items.consumable.potion_minor"), 100),
],
"ferocious": [
("common.items.armor.ferocious.chest",1),
("common.items.armor.ferocious.pants",1),
("common.items.armor.ferocious.hand",1),
("common.items.armor.ferocious.foot",1),
("common.items.armor.ferocious.shoulder",1),
("common.items.armor.ferocious.belt",1),
("common.items.armor.ferocious.back",1),
(Item("common.items.armor.ferocious.chest"),1),
(Item("common.items.armor.ferocious.pants"),1),
(Item("common.items.armor.ferocious.hand"),1),
(Item("common.items.armor.ferocious.foot"),1),
(Item("common.items.armor.ferocious.shoulder"),1),
(Item("common.items.armor.ferocious.belt"),1),
(Item("common.items.armor.ferocious.back"),1),
],
"cultist": [
("common.items.armor.cultist.chest",1),
("common.items.armor.cultist.pants",1),
("common.items.armor.cultist.hand",1),
("common.items.armor.cultist.foot",1),
("common.items.armor.cultist.shoulder",1),
("common.items.armor.cultist.belt",1),
("common.items.armor.misc.back.dungeon_purple",1),
(Item("common.items.armor.cultist.chest"),1),
(Item("common.items.armor.cultist.pants"),1),
(Item("common.items.armor.cultist.hand"),1),
(Item("common.items.armor.cultist.foot"),1),
(Item("common.items.armor.cultist.shoulder"),1),
(Item("common.items.armor.cultist.belt"),1),
(Item("common.items.armor.misc.back.dungeon_purple"),1),
],
"admin_cosmetics": [
("common.items.debug.cultist_belt",1),
("common.items.debug.cultist_boots",1),
("common.items.debug.cultist_chest_blue",1),
("common.items.debug.cultist_hands_blue",1),
("common.items.debug.cultist_legs_blue",1),
("common.items.debug.cultist_shoulder_blue",1),
("common.items.debug.dungeon_purple",1),
("common.items.debug.admin_back",1),
(Item("common.items.debug.cultist_belt"),1),
(Item("common.items.debug.cultist_boots"),1),
(Item("common.items.debug.cultist_chest_blue"),1),
(Item("common.items.debug.cultist_hands_blue"),1),
(Item("common.items.debug.cultist_legs_blue"),1),
(Item("common.items.debug.cultist_shoulder_blue"),1),
(Item("common.items.debug.dungeon_purple"),1),
(Item("common.items.debug.admin_back"),1),
],
"witch": [
("common.items.armor.witch.back",1),
("common.items.armor.witch.belt",1),
("common.items.armor.witch.chest",1),
("common.items.armor.witch.hand",1),
("common.items.armor.witch.foot",1),
("common.items.armor.witch.hat",1),
("common.items.armor.witch.pants",1),
("common.items.armor.witch.shoulder",1),
("common.items.weapons.sceptre.belzeshrub",1),
("common.items.lantern.pumpkin",1),
(Item("common.items.armor.witch.back"),1),
(Item("common.items.armor.witch.belt"),1),
(Item("common.items.armor.witch.chest"),1),
(Item("common.items.armor.witch.hand"),1),
(Item("common.items.armor.witch.foot"),1),
(Item("common.items.armor.witch.hat"),1),
(Item("common.items.armor.witch.pants"),1),
(Item("common.items.armor.witch.shoulder"),1),
(Item("common.items.weapons.sceptre.belzeshrub"),1),
(Item("common.items.lantern.pumpkin"),1),
],
"merchant": [
("common.items.armor.merchant.back",1),

View File

@ -116,7 +116,15 @@ pub enum ChatCommand {
}
#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
pub struct KitManifest(pub HashMap<String, Vec<(String, u32)>>);
pub enum KitSpec {
Item(String),
ModularWeapon {
tool: comp::tool::ToolKind,
material: comp::item::Material,
},
}
#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
pub struct KitManifest(pub HashMap<String, Vec<(KitSpec, u32)>>);
impl assets::Asset for KitManifest {
type Loader = assets::RonLoader;
@ -961,7 +969,12 @@ mod tests {
let kits = KitManifest::load_expect(KIT_MANIFEST_PATH).read();
for kit in kits.0.values() {
for (item_id, _) in kit.iter() {
std::mem::drop(Item::new_from_asset_expect(item_id));
match item_id {
KitSpec::Item(item_id) => std::mem::drop(Item::new_from_asset_expect(item_id)),
KitSpec::ModularWeapon { tool, material } => {
std::mem::drop(comp::item::modular::random_weapon(*tool, *material, None))
},
}
}
}
}

View File

@ -184,7 +184,11 @@ pub mod tests {
},
LootSpec::Nothing => {},
// TODO: Figure out later
LootSpec::ModularWeapon { .. } => {},
LootSpec::ModularWeapon {
tool,
material,
hands,
} => std::mem::drop(item::modular::random_weapon(*tool, *material, *hands)),
}
}

View File

@ -21,7 +21,8 @@ use common::{
assets,
calendar::Calendar,
cmd::{
ChatCommand, BUFF_PACK, BUFF_PARSER, ITEM_SPECS, KIT_MANIFEST_PATH, PRESET_MANIFEST_PATH,
ChatCommand, KitSpec, BUFF_PACK, BUFF_PARSER, ITEM_SPECS, KIT_MANIFEST_PATH,
PRESET_MANIFEST_PATH,
},
comp::{
self,
@ -1886,7 +1887,9 @@ fn handle_kit(
// TODO: we will probably want to handle modular items here too
let items = &ITEM_SPECS;
let res = push_kit(
items.iter().map(|item_id| (item_id.as_str(), 1)),
items
.iter()
.map(|item_id| (KitSpec::Item(item_id.to_string()), 1)),
items.len(),
server,
target,
@ -1908,7 +1911,7 @@ fn handle_kit(
let res = push_kit(
kit.iter()
.map(|&(ref item_id, quantity)| (item_id.as_str(), quantity)),
.map(|(item_id, quantity)| (item_id.clone(), *quantity)),
kit.len(),
server,
target,
@ -1921,9 +1924,9 @@ fn handle_kit(
}
}
fn push_kit<'a, I>(kit: I, count: usize, server: &mut Server, target: EcsEntity) -> CmdResult<()>
fn push_kit<I>(kit: I, count: usize, server: &mut Server, target: EcsEntity) -> CmdResult<()>
where
I: Iterator<Item = (&'a str, u32)>,
I: Iterator<Item = (KitSpec, u32)>,
{
if let (Some(mut target_inventory), mut target_inv_update) = (
server
@ -1938,8 +1941,13 @@ where
return Err("Inventory doesn't have enough slots".to_owned());
}
for (item_id, quantity) in kit {
let mut item = comp::Item::new_from_asset(item_id)
.map_err(|_| format!("Unknown item: {}", item_id))?;
let mut item = match &item_id {
KitSpec::Item(item_id) => comp::Item::new_from_asset(item_id)
.map_err(|_| format!("Unknown item: {:#?}", item_id))?,
KitSpec::ModularWeapon { tool, material } => {
comp::item::modular::random_weapon(*tool, *material, None)
},
};
let mut res = Ok(());
// Either push stack or push one by one.