diff --git a/generate/generator.go b/generate/generator.go index 9aa2cf8..2a1882d 100644 --- a/generate/generator.go +++ b/generate/generator.go @@ -715,11 +715,23 @@ func GenNaiveSearchIndex(item models.Item) string { func itemCategoryAttribute(item models.Item) []string { res := make([]string, 0, 5) + if item.Influences.Elder { + res = append(res, "influences", "influence", "elder") + } if item.Influences.Shaper { - res = append(res, "shaper") + res = append(res, "influences", "influence", "shaper") } - if item.Influences.Elder { - res = append(res, "elder") + if item.Influences.Crusader { + res = append(res, "influences", "influence", "crusader") + } + if item.Influences.Hunter { + res = append(res, "influences", "influence", "hunter") + } + if item.Influences.Redeemer { + res = append(res, "influences", "influence", "redeemer") + } + if item.Influences.Warlord { + res = append(res, "warlord") } if item.IsIdentified { res = append(res, "identified") @@ -759,43 +771,43 @@ func itemCategoryType(categories models.Category) []string { res := make([]string, 0, 5) if categories.Armor != nil { - res = append(res, "armor", "armour", "armors", "armours") + res = append(res, models.Armors...) for _, v := range *categories.Armor { res = append(res, v) } } if categories.Accessories != nil { - res = append(res, "accessory", "accessories") + res = append(res, models.Accessories...) for _, v := range *categories.Accessories { res = append(res, v) } } if categories.Currency != nil { - res = append(res, "currency", "currencies") + res = append(res, models.Currencies...) for _, v := range *categories.Currency { res = append(res, v) } } if categories.Jewels != nil { - res = append(res, "jewel", "jewels") + res = append(res, models.Jewels...) for _, v := range *categories.Jewels { res = append(res, v) } } if categories.Weapons != nil { - res = append(res, "weapon", "weapons") + res = append(res, models.Weapons...) for _, v := range *categories.Weapons { res = append(res, v) } } if categories.Gems != nil { - res = append(res, "gem", "gems") + res = append(res, models.Gems...) for _, v := range *categories.Gems { res = append(res, v) } } if categories.Maps != nil { - res = append(res, "map", "maps") + res = append(res, models.Maps...) for _, v := range *categories.Maps { res = append(res, v) } @@ -808,7 +820,52 @@ func itemCategoryType(categories models.Category) []string { func ItemCategory(item models.Item) string { attributes := itemCategoryAttribute(item) types := itemCategoryType(item.Category) + if len(types) == 0 { + types = tryDeduceTypeOfObject(item) + } res := append(attributes, types...) sort.Strings(res) return strings.Join(res, " ") } + +// tryDeduceTypeOfObject tries to deduce categories of an object using object +// name when the Categories section is missing. +func tryDeduceTypeOfObject(item models.Item) []string { + // Try to match known base type. + if attributes, ok := models.BaseTypes[item.Type]; ok { + return attributes + } + + // Try to deduce item type with the frame type. + switch item.FrameType { + case models.GemFrameType: + return models.Gems + case models.CurrencyFrameType: + if strings.Contains(item.Type, "Oil") { + return models.Oils + } + if strings.Contains(item.Type, "Fossil") { + return models.Fossils + } + if strings.Contains(item.Type, "Essence") { + return models.Essences + } + return models.Currencies + case models.DivinationCardFrameType: + return models.Cards + case models.QuestItemFrameType: + return models.Quests + } + + // Detect jewels type. + if strings.Contains(item.Type, "Jewel") { + return models.Jewels + } + + // Detect map type. + if strings.Contains(item.Type, "Map") { + return models.Maps + } + + return []string{} +} diff --git a/models/base_types.go b/models/base_types.go new file mode 100644 index 0000000..65f85a0 --- /dev/null +++ b/models/base_types.go @@ -0,0 +1,907 @@ +package models + +var ( + // Armors categories. + Armors = []string{"armor", "armour", "armors", "armours"} + chest = append(Armors, "chest") + helmet = append(Armors, "helmet") + boots = append(Armors, "boots", "boot") + gloves = append(Armors, "gloves", "glove") + shield = append(Armors, "shield") + + // Weapons categories. + Weapons = []string{"weapon", "weapons"} + oneHandMace = append(Weapons, "1hmace", "mace", "1h") + twoHandMace = append(Weapons, "2hmace", "mace", "2h") + oneHandAxe = append(Weapons, "1haxe", "axe", "1h") + twoHandAxe = append(Weapons, "2haxe", "axe", "2h") + oneHandSword = append(Weapons, "1hsword", "sword", "1h") + twoHandSword = append(Weapons, "2hsword", "sword", "2h") + fishingRod = append(Weapons, "fishingrod", "2h") + thrustingOneHandSword = append(Weapons, "thrusting1hsword", "1hsword", "sword", "1h") + bow = append(Weapons, "bow", "2h") + claw = append(Weapons, "claw", "1h") + dagger = append(Weapons, "dagger", "1h") + runeDagger = append(Weapons, "runedagger", "dagger", "1h") + sceptre = append(Weapons, "sceptre", "1h") + staff = append(Weapons, "staff", "2h") + warstaff = append(Weapons, "warstaff", "staff", "2h") + wand = append(Weapons, "wand", "1h") + + // Accessories categories. + Accessories = []string{"accessory", "accessories"} + amulet = append(Accessories, "amulet") + talisman = append(Accessories, "talisman", "amulet") + belt = append(Accessories, "belt") + ring = append(Accessories, "ring", "rings") + quiver = append(Accessories, "quiver") + + // Currencies categories. + Currencies = []string{"currency", "currencies"} + // Oils categories. + Oils = append(Currencies, "oil", "oils") + // Fossils categories. + Fossils = append(Currencies, "fossil", "fossils") + // Essences categories. + Essences = append(Currencies, "essence", "essences") + + // Jewels categories. + Jewels = []string{"jewel", "jewels"} + // Gems categories. + Gems = []string{"gem", "gems"} + // Maps categories. + Maps = []string{"map", "maps"} + // Cards categories. + Cards = []string{"card", "cards"} + // Quests categories. + Quests = []string{"quest", "quests"} +) + +// BaseTypes holds all objects base types in the game. +var BaseTypes = map[string][]string{ + // ==== Armor ==== + + // == Chest == + + // Strength. + "Plate Vest": chest, + "Chestplate": chest, + "Copper Plate": chest, + "War Plate": chest, + "Full Plate": chest, + "Arena Plate": chest, + "Lordly Plate": chest, + "Bronze Plate": chest, + "Battle Plate": chest, + "Sun Plate": chest, + "Colosseum Plate": chest, + "Majestic Plate": chest, + "Golden Plate": chest, + "Crusader Plate": chest, + "Astral Plate": chest, // Also a tier1 due to %res all. + "Gladiator Plate": chest, + "Glorious Plate": chest, + // Dexterity. + "Shabby Jerkin": chest, + "Strapped Leather": chest, + "Buckskin Tunic": chest, + "Wild Leather": chest, + "Full Leather": chest, + "Sun Leather": chest, + "Thief's Garb": chest, + "Eelskin Tunic": chest, + "Frontier Leather": chest, + "Glorious Leather": chest, + "Coronal Leather": chest, + "Cutthroat's Garb": chest, + "Sharkskin Tunic": chest, + "Destiny Leather": chest, + "Exquisite Leather": chest, + "Zodiac Leather": chest, + "Assassin's Garb": chest, + // Intelligence. + "Simple Robe": chest, + "Silken Vest": chest, + "Scholar's Robe": chest, + "Silken Garb": chest, + "Mage's Vestment": chest, + "Silk Robe": chest, + "Cabalist Regalia": chest, + "Sage's Robe": chest, + "Silken Wrap": chest, + "Conjurer's Vestment": chest, + "Spidersilk Robe": chest, + "Destroyer Regalia": chest, + "Savant's Robe": chest, + "Necromancer Silks": chest, + "Occultist's Vestment": chest, // Also tier1 due to %spell dmg. + "Widowsilk Robe": chest, + "Vaal Regalia": chest, + // Dexterity/Strength. + "Scale Vest": chest, + "Light Brigandine": chest, + "Scale Doublet": chest, + "Infantry Brigandine": chest, + "Full Scale Armour": chest, + "Soldier's Brigandine": chest, + "Field Lamellar": chest, + "Wyrmscale Doublet": chest, + "Hussar Brigandine": chest, + "Full Wyrmscale": chest, + "Commander's Brigandine": chest, + "Battle Lamellar": chest, + "Dragonscale Doublet": chest, + "Desert Brigandine": chest, + "Full Dragonscale": chest, + "General's Brigandine": chest, + "Triumphant Lamellar": chest, + // Strength/Intelligence. + "Chainmail Vest": chest, + "Chainmail Tunic": chest, + "Ringmail Coat": chest, + "Chainmail Doublet": chest, + "Full Ringmail": chest, + "Full Chainmail": chest, + "Holy Chainmail": chest, + "Latticed Ringmail": chest, + "Crusader Chainmail": chest, + "Ornate Ringmail": chest, + "Chain Hauberk": chest, + "Devout Chainmail": chest, + "Loricated Ringmail": chest, + "Conquest Chainmail": chest, + "Elegant Ringmail": chest, + "Saint's Hauberk": chest, + "Saintly Chainmail": chest, + // Dexterity/Intelligence. + "Padded Vest": chest, + "Oiled Vest": chest, + "Padded Jacket": chest, + "Oiled Coat": chest, + "Scarlet Raiment": chest, + "Waxed Garb": chest, + "Bone Armour": chest, + "Quilted Jacket": chest, + "Sleek Coat": chest, + "Crimson Raiment": chest, + "Lacquered Garb": chest, + "Crypt Armour": chest, + "Sentinel Jacket": chest, + "Varnished Coat": chest, + "Blood Raiment": chest, + "Sadist Garb": chest, + "Carnal Armour": chest, + // Strength/Dexterity/Intelligence. + "Sacrificial Garb": chest, + + // == Helmet == + + // Strength. + "Iron Hat": helmet, + "Cone Helmet": helmet, + "Barbute Helmet": helmet, + "Close Helmet": helmet, + "Gladiator Helmet": helmet, + "Reaver Helmet": helmet, + "Siege Helmet": helmet, + "Samite Helmet": helmet, + "Ezomyte Burgonet": helmet, + "Royal Burgonet": helmet, // Weirdly better than an Eternal Burgonet. + "Eternal Burgonet": helmet, + // Dexterity. + "Leather Cap": helmet, + "Tricorne": helmet, + "Leather Hood": helmet, + "Wolf Pelt": helmet, + "Hunter Hood": helmet, + "Noble Tricorne": helmet, + "Ursine Pelt": helmet, + "Silken Hood": helmet, + "Sinner Tricorne": helmet, + "Lion Pelt": helmet, + // Intelligence. + "Vine Circlet": helmet, + "Iron Circlet": helmet, + "Torture Cage": helmet, + "Tribal Circlet": helmet, + "Bone Circlet": helmet, + "Lunaris Circlet": helmet, + "Steel Circlet": helmet, + "Necromancer Circlet": helmet, + "Solaris Circlet": helmet, + "Mind Cage": helmet, + "Hubris Circlet": helmet, + // Strength/Dexterity. + "Battered Helm": helmet, + "Sallet": helmet, + "Visored Sallet": helmet, + "Gilded Sallet": helmet, + "Secutor Helm": helmet, + "Fencer Helm": helmet, + "Lacquered Helmet": helmet, + "Fluted Bascinet": helmet, + "Pig-Faced Bascinet": helmet, + "Nightmare Bascinet": helmet, + // Strength/Intelligence. + "Rusted Coif": helmet, + "Soldier Helmet": helmet, + "Great Helmet": helmet, + "Crusader Helmet": helmet, + "Aventail Helmet": helmet, + "Zealot Helmet": helmet, + "Great Crown": helmet, + "Magistrate Crown": helmet, + "Prophet Crown": helmet, + "Praetor Crown": helmet, + "Bone Helmet": helmet, + // Dexterity/Intelligence. + "Scare Mask": helmet, + "Plague Mask": helmet, + "Iron Mask": helmet, + "Festival Mask": helmet, + "Golden Mask": helmet, + "Raven Mask": helmet, + "Callous Mask": helmet, + "Regicide Mask": helmet, + "Harlequin Mask": helmet, + "Vaal Mask": helmet, + "Deicide Mask": helmet, + + // == Boots == + + // Strength. + "Iron Greaves": boots, + "Steel Greaves": boots, + "Plated Greaves": boots, + "Reinforced Greaves": boots, + "Antique Greaves": boots, + "Ancient Greaves": boots, + "Goliath Greaves": boots, + "Vaal Greaves": boots, + "Titan Greaves": boots, + // Dexterity. + "Rawhide Boots": boots, + "Goathide Boots": boots, + "Deerskin Boots": boots, + "Nubuck Boots": boots, + "Eelskin Boots": boots, + "Sharkskin Boots": boots, + "Shagreen Boots": boots, + "Stealth Boots": boots, + "Slink Boots": boots, + // Intelligence. + "Wool Shoes": boots, + "Velvet Slippers": boots, + "Silk Slippers": boots, + "Scholar Boots": boots, + "Satin Slippers": boots, + "Samite Slippers": boots, + "Conjurer Boots": boots, + "Arcanist Slippers": boots, + "Sorcerer Boots": boots, + // Strength/Dexterity. + "Leatherscale Boots": boots, + "Ironscale Boots": boots, + "Bronzescale Boots": boots, + "Steelscale Boots": boots, + "Serpentscale Boots": boots, + "Wyrmscale Boots": boots, + "Hydrascale Boots": boots, + "Dragonscale Boots": boots, + // Strength/Intelligence. + "Chain Boots": boots, + "Ringmail Boots": boots, + "Mesh Boots": boots, + "Riveted Boots": boots, + "Zealot Boots": boots, + "Soldier Boots": boots, + "Legion Boots": boots, + "Crusader Boots": boots, + // Dexterity/Intelligence. + "Wrapped Boots": boots, + "Strapped Boots": boots, + "Clasped Boots": boots, + "Shackled Boots": boots, + "Trapper Boots": boots, + "Ambush Boots": boots, + "Carnal Boots": boots, + "Assassin's Boots": boots, + "Murder Boots": boots, + // Special. + "Two-Toned Boots": boots, + + // == Gloves == + + // Strength. + "Iron Gauntlets": gloves, + "Plated Gauntlets": gloves, + "Bronze Gauntlets": gloves, + "Steel Gauntlets": gloves, + "Antique Gauntlets": gloves, + "Ancient Gauntlets": gloves, + "Goliath Gauntlets": gloves, + "Vaal Gauntlets": gloves, + "Titan Gauntlets": gloves, + "Spiked Gloves": gloves, + // Dexterity. + "Rawhide Gloves": gloves, + "Goathide Gloves": gloves, + "Deerskin Gloves": gloves, + "Nubuck Gloves": gloves, + "Eelskin Gloves": gloves, + "Sharkskin Gloves": gloves, + "Shagreen Gloves": gloves, + "Stealth Gloves": gloves, + "Gripped Gloves": gloves, + "Slink Gloves": gloves, + // Intelligence). + "Wool Gloves": gloves, + "Velvet Gloves": gloves, + "Silk Gloves": gloves, + "Embroidered Gloves": gloves, + "Satin Gloves": gloves, + "Samite Gloves": gloves, + "Conjurer Gloves": gloves, + "Arcanist Gloves": gloves, + "Sorcerer Gloves": gloves, + "Fingerless Silk Gloves": gloves, + // Strength/Dexterity. + "Fishscale Gauntlets": gloves, + "Ironscale Gauntlets": gloves, + "Bronzescale Gauntlets": gloves, + "Steelscale Gauntlets": gloves, + "Serpentscale Gauntlets": gloves, + "Wyrmscale Gauntlets": gloves, + "Hydrascale Gauntlets": gloves, + "Dragonscale Gauntlets": gloves, + // Strength/Intelligence. + "Chain Gloves": gloves, + "Ringmail Gloves": gloves, + "Mesh Gloves": gloves, + "Riveted Gloves": gloves, + "Zealot Gloves": gloves, + "Soldier Gloves": gloves, + "Legion Gloves": gloves, + "Crusader Gloves": gloves, + // Dexterity/Intelligence. + "Wrapped Mitts": gloves, + "Strapped Mitts": gloves, + "Clasped Mitts": gloves, + "Trapper Mitts": gloves, + "Ambush Mitts": gloves, + "Carnal Mitts": gloves, + "Assassin's Mitts": gloves, + "Murder Mitts": gloves, + + // == Shield == + + // Strength. + "Splintered Tower Shield": shield, + "Corroded Tower Shield": shield, + "Rawhide Tower Shield": shield, + "Cedar Tower Shield": shield, + "Copper Tower Shield": shield, + "Reinforced Tower Shield": shield, + "Painted Tower Shield": shield, + "Buckskin Tower Shield": shield, + "Mahogany Tower Shield": shield, + "Bronze Tower Shield": shield, + "Girded Tower Shield": shield, + "Crested Tower Shield": shield, + "Shagreen Tower Shield": shield, + "Ebony Tower Shield": shield, + "Ezomyte Tower Shield": shield, + "Colossal Tower Shield": shield, + "Pinnacle Tower Shield": shield, + // Dexterity. + "Goathide Buckler": shield, + "Pine Buckler": shield, + "Painted Buckler": shield, + "Hammered Buckler": shield, + "War Buckler": shield, + "Gilded Buckler": shield, + "Oak Buckler": shield, + "Enameled Buckler": shield, + "Corrugated Buckler": shield, + "Battle Buckler": shield, + "Golden Buckler": shield, + "Ironwood Buckler": shield, + "Lacquered Buckler": shield, + "Vaal Buckler": shield, + "Crusader Buckler": shield, + "Imperial Buckler": shield, + // Intelligence. + "Twig Spirit Shield": shield, + "Yew Spirit Shield": shield, + "Bone Spirit Shield": shield, + "Tarnished Spirit Shield": shield, + "Jingling Spirit Shield": shield, + "Brass Spirit Shield": shield, + "Walnut Spirit Shield": shield, + "Ivory Spirit Shield": shield, + "Ancient Spirit Shield": shield, + "Chiming Spirit Shield": shield, + "Thorium Spirit Shield": shield, + "Lacewood Spirit Shield": shield, + "Fossilised Spirit Shield": shield, + "Vaal Spirit Shield": shield, + "Harmonic Spirit Shield": shield, + "Titanium Spirit Shield": shield, + // Strength/Dexterity. + "Rotted Round Shield": shield, + "Fir Round Shield": shield, + "Studded Round Shield": shield, + "Scarlet Round Shield": shield, + "Splendid Round Shield": shield, + "Maple Round Shield": shield, + "Spiked Round Shield": shield, + "Crimson Round Shield": shield, + "Baroque Round Shield": shield, + "Teak Round Shield": shield, + "Spiny Round Shield": shield, + "Cardinal Round Shield": shield, + "Elegant Round Shield": shield, + // Strength/Intelligence. + "Plank Kite Shield": shield, + "Linden Kite Shield": shield, + "Reinforced Kite Shield": shield, + "Layered Kite Shield": shield, + "Ceremonial Kite Shield": shield, + "Etched Kite Shield": shield, + "Steel Kite Shield": shield, + "Laminated Kite Shield": shield, + "Angelic Kite Shield": shield, + "Branded Kite Shield": shield, + "Champion Kite Shield": shield, + "Mosaic Kite Shield": shield, + "Archon Kite Shield": shield, + // Dexterity/Intelligence. + "Spiked Bundle": shield, + "Driftwood Spiked Shield": shield, + "Alloyed Spiked Shield": shield, + "Burnished Spiked Shield": shield, + "Ornate Spiked Shield": shield, + "Redwood Spiked Shield": shield, + "Compound Spiked Shield": shield, + "Polished Spiked Shield": shield, + "Sovereign Spiked Shield": shield, + "Alder Spiked Shield": shield, + "Ezomyte Spiked Shield": shield, + "Mirrored Spiked Shield": shield, + "Supreme Spiked Shield": shield, + + // ==== Weapons ==== + + // == One Hand Mace == + "Driftwood Club": oneHandMace, + "Tribal Club": oneHandMace, + "Spiked Club": oneHandMace, + "Stone Hammer": oneHandMace, + "War Hammer": oneHandMace, + "Bladed Mace": oneHandMace, + "Ceremonial Mace": oneHandMace, + "Dream Mace": oneHandMace, + "Wyrm Mace": oneHandMace, + "Petrified Club": oneHandMace, + "Barbed Club": oneHandMace, + "Rock Breaker": oneHandMace, + "Battle Hammer": oneHandMace, + "Flanged Mace": oneHandMace, + "Ornate Mace": oneHandMace, + "Phantom Mace": oneHandMace, + "Dragon Mace": oneHandMace, + "Ancestral Club": oneHandMace, + "Tenderizer": oneHandMace, + "Gavel": oneHandMace, + "Legion Hammer": oneHandMace, + "Pernarch": oneHandMace, + "Auric Mace": oneHandMace, + "Nightmare Mace": oneHandMace, + "Behemoth Mace": oneHandMace, + + // == Two Hand Mace == + "Driftwood Maul": twoHandMace, + "Tribal Maul": twoHandMace, + "Mallet": twoHandMace, + "Sledgehammer": twoHandMace, + "Jagged Maul": twoHandMace, + "Brass Maul": twoHandMace, + "Fright Maul": twoHandMace, + "Morning Star": twoHandMace, + "Totemic Maul": twoHandMace, + "Great Mallet": twoHandMace, + "Steelhead": twoHandMace, + "Spiny Maul": twoHandMace, + "Plated Maul": twoHandMace, + "Dread Maul": twoHandMace, + "Solar Maul": twoHandMace, + "Karui Maul": twoHandMace, + "Colossus Mallet": twoHandMace, + "Piledriver": twoHandMace, + "Meatgrinder": twoHandMace, + "Imperial Maul": twoHandMace, + "Terror Maul": twoHandMace, + "Coronal Maul": twoHandMace, + + // == One Hand Axe == + "Rusted Hatchet": oneHandAxe, + "Jade Hatchet": oneHandAxe, + "Boarding Axe": oneHandAxe, + "Cleaver": oneHandAxe, + "Broad Axe": oneHandAxe, + "Arming Axe": oneHandAxe, + "Decorative Axe": oneHandAxe, + "Spectral Axe": oneHandAxe, + "Etched Hatchet": oneHandAxe, + "Jasper Axe": oneHandAxe, + "Tomahawk": oneHandAxe, + "Wrist Chopper": oneHandAxe, + "War Axe": oneHandAxe, + "Chest Splitter": oneHandAxe, + "Ceremonial Axe": oneHandAxe, + "Wraith Axe": oneHandAxe, + "Engraved Hatchet": oneHandAxe, + "Karui Axe": oneHandAxe, + "Siege Axe": oneHandAxe, + "Reaver Axe": oneHandAxe, + "Butcher Axe": oneHandAxe, + "Vaal Hatchet": oneHandAxe, + "Royal Axe": oneHandAxe, + "Infernal Axe": oneHandAxe, + "Runic Hatchet": oneHandAxe, + + // == Two Hand Axe == + "Stone Axe": twoHandAxe, + "Jade Chopper": twoHandAxe, + "Woodsplitter": twoHandAxe, + "Poleaxe": twoHandAxe, + "Double Axe": twoHandAxe, + "Gilded Axe": twoHandAxe, + "Shadow Axe": twoHandAxe, + "Dagger Axe": twoHandAxe, + "Jasper Chopper": twoHandAxe, + "Timber Axe": twoHandAxe, + "Headsman Axe": twoHandAxe, + "Labrys": twoHandAxe, + "Noble Axe": twoHandAxe, + "Abyssal Axe": twoHandAxe, + "Karui Chopper": twoHandAxe, + "Talon Axe": twoHandAxe, + "Sundering Axe": twoHandAxe, + "Ezomyte Axe": twoHandAxe, + "Vaal Axe": twoHandAxe, + "Despot Axe": twoHandAxe, + "Void Axe": twoHandAxe, + "Fleshripper": twoHandAxe, + + // == One Hand Sword == + "Rusted Sword": oneHandSword, + "Copper Sword": oneHandSword, + "Sabre": oneHandSword, + "Broad Sword": oneHandSword, + "War Sword": oneHandSword, + "Ancient Sword": oneHandSword, + "Elegant Sword": oneHandSword, + "Dusk Blade": oneHandSword, + "Hook Sword": oneHandSword, + "Variscite Blade": oneHandSword, + "Cutlass": oneHandSword, + "Baselard": oneHandSword, + "Battle Sword": oneHandSword, + "Elder Sword": oneHandSword, + "Graceful Sword": oneHandSword, + "Twilight Blade": oneHandSword, + "Grappler": oneHandSword, + "Gemstone Sword": oneHandSword, + "Corsair Sword": oneHandSword, + "Gladius": oneHandSword, + "Legion Sword": oneHandSword, + "Vaal Blade": oneHandSword, + "Eternal Sword": oneHandSword, + "Midnight Blade": oneHandSword, + "Tiger Hook": oneHandSword, + + // == Two Hand Sword == + "Corroded Blade": twoHandSword, + "Longsword": twoHandSword, + "Bastard Sword": twoHandSword, + "Two-Handed Sword": twoHandSword, + "Etched Greatsword": twoHandSword, + "Ornate Sword": twoHandSword, + "Spectral Sword": twoHandSword, + "Curved Blade": twoHandSword, + "Butcher Sword": twoHandSword, + "Footman Sword": twoHandSword, + "Highland Blade": twoHandSword, + "Engraved Greatsword": twoHandSword, + "Tiger Sword": twoHandSword, + "Wraith Sword": twoHandSword, + "Lithe Blade": twoHandSword, + "Headman's Sword": twoHandSword, + "Reaver Sword": twoHandSword, + "Ezomyte Blade": twoHandSword, + "Vaal Greatsword": twoHandSword, + "Lion Sword": twoHandSword, + "Infernal Sword": twoHandSword, + "Exquisite Blade": twoHandSword, + + // == Fishing rod == + "Fishing Rod": fishingRod, + + // == Thrusting One Hand Sword == + "Rusted Spike": thrustingOneHandSword, + "Whalebone Rapier": thrustingOneHandSword, + "Battered Foil": thrustingOneHandSword, + "Basket Rapier": thrustingOneHandSword, + "Jagged Foil": thrustingOneHandSword, + "Antique Rapier": thrustingOneHandSword, + "Elegant Foil": thrustingOneHandSword, + "Thorn Rapier": thrustingOneHandSword, + "Smallsword": thrustingOneHandSword, + "Wyrmbone Rapier": thrustingOneHandSword, + "Burnished Foil": thrustingOneHandSword, + "Estoc": thrustingOneHandSword, + "Serrated Foil": thrustingOneHandSword, + "Primeval Rapier": thrustingOneHandSword, + "Fancy Foil": thrustingOneHandSword, + "Apex Rapier": thrustingOneHandSword, + "Courtesan Sword": thrustingOneHandSword, + "Dragonbone Rapier": thrustingOneHandSword, + "Tempered Foil": thrustingOneHandSword, + "Pecoraro": thrustingOneHandSword, + "Spiraled Foil": thrustingOneHandSword, + "Vaal Rapier": thrustingOneHandSword, + "Jewelled Foil": thrustingOneHandSword, + "Harpy Rapier": thrustingOneHandSword, + "Dragoon Sword": thrustingOneHandSword, + + // == Bow == + "Crude Bow": bow, + "Short Bow": bow, + "Long Bow": bow, + "Composite Bow": bow, + "Recurve Bow": bow, + "Bone Bow": bow, + "Royal Bow": bow, + "Death Bow": bow, + "Grove Bow": bow, + "Reflex Bow": bow, + "Decurve Bow": bow, + "Compound Bow": bow, + "Sniper Bow": bow, + "Ivory Bow": bow, + "Highborn Bow": bow, + "Decimation Bow": bow, + "Thicket Bow": bow, + "Steelwood Bow": bow, + "Citadel Bow": bow, + "Ranger Bow": bow, + "Assassin Bow": bow, + "Spine Bow": bow, + "Imperial Bow": bow, + "Harbinger Bow": bow, + "Maraketh Bow": bow, + + // == Claw == + "Nailed Fist": claw, + "Sharktooth Claw": claw, + "Awl": claw, + "Cat's Paw": claw, + "Blinder": claw, + "Timeworn Claw": claw, + "Sparkling Claw": claw, + "Fright Claw": claw, + "Double Claw": claw, + "Thresher Claw": claw, + "Gouger": claw, + "Tiger's Paw": claw, + "Gut Ripper": claw, + "Prehistoric Claw": claw, + "Noble Claw": claw, + "Eagle Claw": claw, + "Twin Claw": claw, + "Great White Claw": claw, + "Throat Stabber": claw, + "Hellion's Paw": claw, + "Eye Gouger": claw, + "Vaal Claw": claw, + "Imperial Claw": claw, + "Terror Claw": claw, + "Gemini Claw": claw, + + // == Dagger == + "Glass Shank": dagger, + "Skinning Knife": dagger, + "Stiletto": dagger, + "Flaying Knife": dagger, + "Prong Dagger": dagger, + "Poignard": dagger, + "Trisula": dagger, + "Gutting Knife": dagger, + "Ambusher": dagger, + "Sai": dagger, + + // == Rune Daggers == + "Carving Knife": runeDagger, + "Boot Knife": runeDagger, + "Copper Kris": runeDagger, + "Skean": runeDagger, + "Imp Dagger": runeDagger, + "Butcher Knife": runeDagger, + "Boot Blade": runeDagger, + "Golden Kris": runeDagger, + "Royal Skean": runeDagger, + "Fiend Dagger": runeDagger, + "Slaughter Knife": runeDagger, + "Ezomyte Dagger": runeDagger, + "Platinum Kris": runeDagger, + "Imperial Skean": runeDagger, + "Demon Dagger": runeDagger, + + // == Sceptre == + "Driftwood Sceptre": sceptre, + "Darkwood Sceptre": sceptre, + "Bronze Sceptre": sceptre, + "Quartz Sceptre": sceptre, + "Iron Sceptre": sceptre, + "Ochre Sceptre": sceptre, + "Ritual Sceptre": sceptre, + "Shadow Sceptre": sceptre, + "Grinning Fetish": sceptre, + "Horned Sceptre": sceptre, + "Sekhem": sceptre, + "Crystal Sceptre": sceptre, + "Lead Sceptre": sceptre, + "Blood Sceptre": sceptre, + "Royal Sceptre": sceptre, + "Abyssal Sceptre": sceptre, + "Stag Sceptre": sceptre, + "Karui Sceptre": sceptre, + "Tyrant's Sekhem": sceptre, + "Opal Sceptre": sceptre, + "Platinum Sceptre": sceptre, + "Vaal Sceptre": sceptre, + "Carnal Sceptre": sceptre, + "Void Sceptre": sceptre, + "Sambar Sceptre": sceptre, + + // == Staff == + "Gnarled Branch": staff, + "Primitive Staff": staff, + "Long Staff": staff, + "Royal Staff": staff, + "Crescent Staff": staff, + "Woodful Staff": staff, + "Quarterstaff": staff, + "Highborn Staff": staff, + "Moon Staff": staff, + "Primordial Staff": staff, + "Lathi": staff, + "Imperial Staff": staff, + "Eclipse Staff": staff, + + // == Warstaff == + "Iron Staff": warstaff, + "Coiled Staff": warstaff, + "Vile Staff": warstaff, + "Military Staff": warstaff, + "Serpentine Staff": warstaff, + "Foul Staff": warstaff, + "Ezomyte Staff": warstaff, + "Maelström Staff": warstaff, + "Judgement Staff": warstaff, + + // == Wand == + "Driftwood Wand": wand, + "Goat's Horn": wand, + "Carved Wand": wand, + "Quartz Wand": wand, + "Spiraled Wand": wand, + "Sage Wand": wand, + "Pagan Wand": wand, + "Faun's Horn": wand, + "Engraved Wand": wand, + "Crystal Wand": wand, + "Serpent Wand": wand, + "Omen Wand": wand, + "Heathen Wand": wand, + "Demon's Horn": wand, + "Imbued Wand": wand, + "Opal Wand": wand, + "Tornado Wand": wand, + "Prophecy Wand": wand, + "Profane Wand": wand, + "Convoking Wand": wand, + + // ==== Accessories ==== + + // == Amulets == + "Coral Amulet": amulet, + "Paua Amulet": amulet, + "Amber Amulet": amulet, + "Jade Amulet": amulet, + "Lapis Amulet": amulet, + "Gold Amulet": amulet, + "Agate Amulet": amulet, + "Citrine Amulet": amulet, + "Turquoise Amulet": amulet, + "Onyx Amulet": amulet, + "Marble Amulet": amulet, + "Blue Pearl Amulet": amulet, + "Jet Amulet": amulet, + "Ruby Amulet": amulet, + + // == Talisman == + "Ashscale Talisman": talisman, + "Avian Twins Talisman": talisman, + "Black Maw Talisman": talisman, + "Bonespire Talisman": talisman, + "Breakrib Talisman": talisman, + "Chrysalis Talisman": talisman, + "Clutching Talisman": talisman, + "Deadhand Talisman": talisman, + "Deep One Talisman": talisman, + "Fangjaw Talisman": talisman, + "Greatwolf Talisman": talisman, + "Hexclaw Talisman": talisman, + "Horned Talisman": talisman, + "Lone Antler Talisman": talisman, + "Longtooth Talisman": talisman, + "Mandible Talisman": talisman, + "Monkey Paw Talisman": talisman, + "Monkey Twins Talisman": talisman, + "Primal Skull Talisman": talisman, + "Rot Head Talisman": talisman, + "Rotfeather Talisman": talisman, + "Spinefuse Talisman": talisman, + "Splitnewt Talisman": talisman, + "Three Hands Talisman": talisman, + "Three Rat Talisman": talisman, + "Undying Flesh Talisman": talisman, + "Wereclaw Talisman": talisman, + "Writhing Talisman": talisman, + + // == Belts == + "Chain Belt": belt, + "Rustic Sash": belt, + "Stygian Vise": belt, + "Heavy Belt": belt, + "Leather Belt": belt, + "Cloth Belt": belt, + "Studded Belt": belt, + "Vanguard Belt": belt, + "Crystal Belt": belt, + + // == Rings == + "Breach Ring": ring, + "Coral Ring": ring, + "Iron Ring": ring, + "Paua Ring": ring, + "Unset Ring": ring, + "Sapphire Ring": ring, + "Topaz Ring": ring, + "Ruby Ring": ring, + "Diamond Ring": ring, + "Gold Ring": ring, + "Moonstone Ring": ring, + "Two-Stone Ring": ring, + "Amethyst Ring": ring, + "Prismatic Ring": ring, + "Cerulean Ring": ring, + "Opal Ring": ring, + "Steel Ring": ring, + "Vermillion Ring": ring, + "Golden Hoop": ring, + "Jet Ring": ring, + + // == Quivers == + "Two-Point Arrow Quiver": quiver, + "Serrated Arrow Quiver": quiver, + "Sharktooth Arrow Quiver": quiver, + "Blunt Arrow Quiver": quiver, + "Fire Arrow Quiver": quiver, + "Broadhead Arrow Quiver": quiver, + "Penetrating Arrow Quiver": quiver, + "Ornate Quiver": quiver, + "Spike-Point Arrow Quiver": quiver, +}