From 074964aa871c415ab115b111698bd58118e36b35 Mon Sep 17 00:00:00 2001 From: omicron Date: Wed, 25 Oct 2023 14:30:30 +0200 Subject: [PATCH] Split stackable property away from the class in items.json --- contrib/items.py | 72 + d2warehouse/data/items.json | 5726 ++++++++++++++------------ d2warehouse/parser.py | 6 +- d2warehouse/tests/test_parse_item.py | 5 + 4 files changed, 3247 insertions(+), 2562 deletions(-) create mode 100644 contrib/items.py diff --git a/contrib/items.py b/contrib/items.py new file mode 100644 index 0000000..2022d1b --- /dev/null +++ b/contrib/items.py @@ -0,0 +1,72 @@ +import json +import csv + +items = {} + +item_patches = { + "tbk": {"class": "tome"}, + "ibk": {"class": "tome"}, +} + +# build code -> names map +with open("item-names.json", encoding="utf-8-sig") as f: + names = json.load(f) + +names = [] +for entry in names: + code = entry["Key"] + if len(code) != 3 or not code.islower(): + continue + name = entry["enUS"] + names[code] = {"name": name} + +# Extract items +with open("armor.txt", newline="") as f: + reader = csv.DictReader(f, delimiter="\t") + for row in reader: + if row["name"] == "Expansion": + continue + code = row["code"] + assert code not in items + items[code] = { + "name": names[code] if code in names else row["name"], + "class": "armor", + "type": row["type"], + "stackable": bool(row["stackable"]), + } + +with open("weapons.txt", newline="") as f: + reader = csv.DictReader(f, delimiter="\t") + for row in reader: + if row["name"] == "Expansion": + continue + code = row["code"] + if code in items: + print("Already in", code) + assert code not in items + items[code] = { + "name": names[code] if code in names else row["name"], + "class": "weapon", + "type": row["type"], + "stackable": bool(row["stackable"]), + } + +with open("misc.txt", newline="") as f: + reader = csv.DictReader(f, delimiter="\t") + for row in reader: + if row["name"] == "Expansion": + continue + code = row["code"] + assert code not in items + items[code] = { + "name": names[code] if code in names else row["name"], + "class": "misc", + "type": row["type"], + "stackable": bool(row["stackable"]), + } + +for code, patch in item_patches.items(): + items[code].update(patch) + +with open("items.json", "w") as f: + json.dump(items, f, indent=4) diff --git a/d2warehouse/data/items.json b/d2warehouse/data/items.json index 3413d31..5028329 100644 --- a/d2warehouse/data/items.json +++ b/d2warehouse/data/items.json @@ -1,3350 +1,3956 @@ { - "qf1": { - "name": "Khalim's Flail", - "class": "weapon", - "type": "mace" - }, - "qf2": { - "name": "Khalim's Will", - "class": "weapon", - "type": "mace" - }, - "qey": { - "name": "Khalim's Eye", - "class": "misc", - "type": "ques" - }, - "qbr": { - "name": "Khalim's Brain", - "class": "misc", - "type": "ques" - }, - "qhr": { - "name": "Khalim's Heart", - "class": "misc", - "type": "ques" - }, "cap": { "name": "Cap", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "skp": { "name": "Skull Cap", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "hlm": { "name": "Helm", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "fhl": { "name": "Full Helm", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "ghm": { "name": "Great Helm", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "crn": { "name": "Crown", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "msk": { "name": "Mask", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "qui": { "name": "Quilted Armor", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "lea": { "name": "Leather Armor", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "hla": { "name": "Hard Leather Armor", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "stu": { "name": "Studded Leather ", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "rng": { "name": "Ring Mail", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "scl": { "name": "Scale Mail", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "chn": { "name": "Chain Mail", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "brs": { "name": "Breast Plate", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "spl": { "name": "Splint Mail", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "plt": { "name": "Plate Mail", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "fld": { "name": "Field Plate", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "gth": { "name": "Gothic Plate", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "ful": { "name": "Full Plate Mail", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "aar": { "name": "Ancient Armor", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "ltp": { "name": "Light Plate", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "buc": { "name": "Buckler", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "sml": { "name": "Small Shield", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "lrg": { "name": "Large Shield", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "kit": { "name": "Kite Shield", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "tow": { "name": "Tower Shield", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "gts": { "name": "Gothic Shield", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "lgl": { "name": "Leather Gloves", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "vgl": { "name": "Heavy Gloves", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "mgl": { "name": "Chain Gloves", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "tgl": { "name": "Light Gauntlets", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "hgl": { "name": "Gauntlets", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "lbt": { "name": "Boots", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "vbt": { "name": "Heavy Boots", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "mbt": { "name": "Chain Boots", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "tbt": { "name": "Light Plated Boots", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "hbt": { "name": "Greaves", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "lbl": { "name": "Sash", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "vbl": { "name": "Light Belt", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "mbl": { "name": "Belt", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "tbl": { "name": "Heavy Belt", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "hbl": { "name": "Plated Belt", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "bhm": { "name": "Bone Helm", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "bsh": { "name": "Bone Shield", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "spk": { "name": "Spiked Shield", "class": "armor", - "type": "shie" - }, - "hax": { - "name": "Hand Axe", - "class": "weapon", - "type": "axe" - }, - "axe": { - "name": "Axe", - "class": "weapon", - "type": "axe" - }, - "2ax": { - "name": "Double Axe", - "class": "weapon", - "type": "axe" - }, - "mpi": { - "name": "Military Pick", - "class": "weapon", - "type": "axe" - }, - "wax": { - "name": "War Axe", - "class": "weapon", - "type": "axe" - }, - "lax": { - "name": "Large Axe", - "class": "weapon", - "type": "axe" - }, - "bax": { - "name": "Broad Axe ", - "class": "weapon", - "type": "axe" - }, - "btx": { - "name": "Battle Axe", - "class": "weapon", - "type": "axe" - }, - "gax": { - "name": "Great Axe", - "class": "weapon", - "type": "axe" - }, - "gix": { - "name": "Giant Axe", - "class": "weapon", - "type": "axe" - }, - "wnd": { - "name": "Wand", - "class": "weapon", - "type": "wand" - }, - "ywn": { - "name": "Yew Wand", - "class": "weapon", - "type": "wand" - }, - "bwn": { - "name": "Bone Wand", - "class": "weapon", - "type": "wand" - }, - "gwn": { - "name": "Grim Wand", - "class": "weapon", - "type": "wand" - }, - "clb": { - "name": "Club", - "class": "weapon", - "type": "club" - }, - "scp": { - "name": "Scepter", - "class": "weapon", - "type": "scep" - }, - "gsc": { - "name": "Grand Scepter", - "class": "weapon", - "type": "scep" - }, - "wsp": { - "name": "War Scepter", - "class": "weapon", - "type": "scep" - }, - "spc": { - "name": "Spiked Club", - "class": "weapon", - "type": "club" - }, - "mac": { - "name": "Mace", - "class": "weapon", - "type": "mace" - }, - "mst": { - "name": "Morning Star", - "class": "weapon", - "type": "mace" - }, - "fla": { - "name": "Flail", - "class": "weapon", - "type": "mace" - }, - "whm": { - "name": "War Hammer", - "class": "weapon", - "type": "hamm" - }, - "mau": { - "name": "Maul", - "class": "weapon", - "type": "hamm" - }, - "gma": { - "name": "Great Maul", - "class": "weapon", - "type": "hamm" - }, - "ssd": { - "name": "Short Sword", - "class": "weapon", - "type": "swor" - }, - "scm": { - "name": "Scimitar", - "class": "weapon", - "type": "swor" - }, - "sbr": { - "name": "Saber", - "class": "weapon", - "type": "swor" - }, - "flc": { - "name": "Falchion", - "class": "weapon", - "type": "swor" - }, - "crs": { - "name": "Crystal Sword", - "class": "weapon", - "type": "swor" - }, - "bsd": { - "name": "Broad Sword", - "class": "weapon", - "type": "swor" - }, - "lsd": { - "name": "Long Sword ", - "class": "weapon", - "type": "swor" - }, - "wsd": { - "name": "War Sword", - "class": "weapon", - "type": "swor" - }, - "2hs": { - "name": "Two-Handed Sword", - "class": "weapon", - "type": "swor" - }, - "clm": { - "name": "Claymore", - "class": "weapon", - "type": "swor" - }, - "gis": { - "name": "Giant Sword", - "class": "weapon", - "type": "swor" - }, - "bsw": { - "name": "Bastard Sword", - "class": "weapon", - "type": "swor" - }, - "flb": { - "name": "Flamberge", - "class": "weapon", - "type": "swor" - }, - "gsd": { - "name": "Great Sword", - "class": "weapon", - "type": "swor" - }, - "dgr": { - "name": "Dagger", - "class": "weapon", - "type": "knif" - }, - "dir": { - "name": "Dirk", - "class": "weapon", - "type": "knif" - }, - "kri": { - "name": "Kriss", - "class": "weapon", - "type": "knif" - }, - "bld": { - "name": "Blade", - "class": "weapon", - "type": "knif" - }, - "tkf": { - "name": "Throwing Knife", - "class": "stackable", - "type": "tkni" - }, - "tax": { - "name": "Throwing Axe", - "class": "stackable", - "type": "taxe" - }, - "bkf": { - "name": "Balanced Knife", - "class": "stackable", - "type": "tkni" - }, - "bal": { - "name": "Balanced Axe", - "class": "stackable", - "type": "taxe" - }, - "jav": { - "name": "Javelin", - "class": "stackable", - "type": "jave" - }, - "pil": { - "name": "Pilum", - "class": "stackable", - "type": "jave" - }, - "ssp": { - "name": "Short Spear", - "class": "stackable", - "type": "jave" - }, - "glv": { - "name": "Glaive", - "class": "stackable", - "type": "jave" - }, - "tsp": { - "name": "Throwing Spear", - "class": "stackable", - "type": "jave" - }, - "spr": { - "name": "Spear", - "class": "weapon", - "type": "spea" - }, - "tri": { - "name": "Trident", - "class": "weapon", - "type": "spea" - }, - "brn": { - "name": "Brandistock", - "class": "weapon", - "type": "spea" - }, - "spt": { - "name": "Spetum", - "class": "weapon", - "type": "spea" - }, - "pik": { - "name": "Pike", - "class": "weapon", - "type": "spea" - }, - "bar": { - "name": "Bardiche", - "class": "weapon", - "type": "pole" - }, - "vou": { - "name": "Voulge", - "class": "weapon", - "type": "pole" - }, - "scy": { - "name": "Scythe", - "class": "weapon", - "type": "pole" - }, - "pax": { - "name": "Poleaxe", - "class": "weapon", - "type": "pole" - }, - "hal": { - "name": "Halberd", - "class": "weapon", - "type": "pole" - }, - "wsc": { - "name": "War Scythe", - "class": "weapon", - "type": "pole" - }, - "sst": { - "name": "Short Staff", - "class": "weapon", - "type": "staf" - }, - "lst": { - "name": "Long Staff", - "class": "weapon", - "type": "staf" - }, - "cst": { - "name": "Gnarled Staff", - "class": "weapon", - "type": "staf" - }, - "bst": { - "name": "Battle Staff", - "class": "weapon", - "type": "staf" - }, - "wst": { - "name": "War Staff", - "class": "weapon", - "type": "staf" - }, - "sbw": { - "name": "Short Bow", - "class": "weapon", - "type": "bow" - }, - "hbw": { - "name": "Hunter's Bow", - "class": "weapon", - "type": "bow" - }, - "lbw": { - "name": "Long Bow", - "class": "weapon", - "type": "bow" - }, - "cbw": { - "name": "Composite Bow", - "class": "weapon", - "type": "bow" - }, - "sbb": { - "name": "Short Battle Bow", - "class": "weapon", - "type": "bow" - }, - "lbb": { - "name": "Long Battle Bow", - "class": "weapon", - "type": "bow" - }, - "swb": { - "name": "Short War Bow", - "class": "weapon", - "type": "bow" - }, - "lwb": { - "name": "Long War Bow", - "class": "weapon", - "type": "bow" - }, - "lxb": { - "name": "Light Crossbow", - "class": "weapon", - "type": "xbow" - }, - "mxb": { - "name": "Crossbow", - "class": "weapon", - "type": "xbow" - }, - "hxb": { - "name": "Heavy Crossbow", - "class": "weapon", - "type": "xbow" - }, - "rxb": { - "name": "Repeating Crossbow", - "class": "weapon", - "type": "xbow" - }, - "xpk": { - "name": "Barbed Shield", - "class": "armor", - "type": "shie" - }, - "xsh": { - "name": "Grim Shield", - "class": "armor", - "type": "shie" - }, - "xh9": { - "name": "Grim Helm", - "class": "armor", - "type": "helm" - }, - "zhb": { - "name": "War Belt", - "class": "armor", - "type": "belt" - }, - "ztb": { - "name": "Battle Belt", - "class": "armor", - "type": "belt" - }, - "zmb": { - "name": "Mesh Belt", - "class": "armor", - "type": "belt" - }, - "zvb": { - "name": "Sharkskin Belt", - "class": "armor", - "type": "belt" - }, - "zlb": { - "name": "Demonhide Sash", - "class": "armor", - "type": "belt" - }, - "xhb": { - "name": "War Boots", - "class": "armor", - "type": "boot" - }, - "xtb": { - "name": "Battle Boots", - "class": "armor", - "type": "boot" - }, - "xmb": { - "name": "Mesh Boots", - "class": "armor", - "type": "boot" - }, - "xvb": { - "name": "Sharkskin Boots", - "class": "armor", - "type": "boot" - }, - "xlb": { - "name": "Demonhide Boots", - "class": "armor", - "type": "boot" - }, - "xtg": { - "name": "Battle Gauntlets", - "class": "armor", - "type": "glov" - }, - "xmg": { - "name": "Heavy Bracers", - "class": "armor", - "type": "glov" - }, - "xvg": { - "name": "Sharkskin Gloves", - "class": "armor", - "type": "glov" - }, - "xlg": { - "name": "Demonhide Gloves", - "class": "armor", - "type": "glov" - }, - "xts": { - "name": "Ancient Shield", - "class": "armor", - "type": "shie" - }, - "xow": { - "name": "Pavise", - "class": "armor", - "type": "shie" - }, - "xit": { - "name": "Dragon Shield", - "class": "armor", - "type": "shie" - }, - "xrg": { - "name": "Scutum", - "class": "armor", - "type": "shie" - }, - "xml": { - "name": "Round Shield", - "class": "armor", - "type": "shie" - }, - "xuc": { - "name": "Defender", - "class": "armor", - "type": "shie" - }, - "xtp": { - "name": "Mage Plate", - "class": "armor", - "type": "tors" - }, - "xar": { - "name": "Ornate Armor", - "class": "armor", - "type": "tors" - }, - "xul": { - "name": "Chaos Armor", - "class": "armor", - "type": "tors" - }, - "xth": { - "name": "Embossed Plate", - "class": "armor", - "type": "tors" - }, - "xld": { - "name": "Sharktooth Armor", - "class": "armor", - "type": "tors" - }, - "xlt": { - "name": "Templar Coat", - "class": "armor", - "type": "tors" - }, - "xpl": { - "name": "Russet Armor", - "class": "armor", - "type": "tors" - }, - "xrs": { - "name": "Cuirass", - "class": "armor", - "type": "tors" - }, - "xhn": { - "name": "Mesh Armor", - "class": "armor", - "type": "tors" - }, - "xcl": { - "name": "Tigulated Mail", - "class": "armor", - "type": "tors" - }, - "xng": { - "name": "Linked Mail", - "class": "armor", - "type": "tors" - }, - "xtu": { - "name": "Trellised Armor", - "class": "armor", - "type": "tors" - }, - "xla": { - "name": "Demonhide Armor", - "class": "armor", - "type": "tors" - }, - "xea": { - "name": "Serpentskin Armor", - "class": "armor", - "type": "tors" - }, - "xui": { - "name": "Ghost Armor", - "class": "armor", - "type": "tors" - }, - "xsk": { - "name": "Death Mask", - "class": "armor", - "type": "helm" - }, - "xrn": { - "name": "Grand Crown", - "class": "armor", - "type": "helm" - }, - "xhl": { - "name": "Basinet", - "class": "armor", - "type": "helm" - }, - "xlm": { - "name": "Casque", - "class": "armor", - "type": "helm" - }, - "xkp": { - "name": "Sallet", - "class": "armor", - "type": "helm" + "type": "shie", + "stackable": false }, "xap": { "name": "War Hat", "class": "armor", - "type": "helm" - }, - "8rx": { - "name": "Chu-Ko-Nu", - "class": "weapon", - "type": "xbow" - }, - "8hx": { - "name": "Ballista", - "class": "weapon", - "type": "xbow" - }, - "8mx": { - "name": "Siege Crossbow", - "class": "weapon", - "type": "xbow" - }, - "8lx": { - "name": "Arbalest", - "class": "weapon", - "type": "xbow" - }, - "8lw": { - "name": "Gothic Bow", - "class": "weapon", - "type": "bow" - }, - "8sw": { - "name": "Rune Bow", - "class": "weapon", - "type": "bow" - }, - "8l8": { - "name": "Long Siege Bow", - "class": "weapon", - "type": "bow" - }, - "8s8": { - "name": "Short Siege Bow", - "class": "weapon", - "type": "bow" - }, - "8cb": { - "name": "Double Bow", - "class": "weapon", - "type": "bow" - }, - "8lb": { - "name": "Cedar Bow", - "class": "weapon", - "type": "bow" - }, - "8hb": { - "name": "Razor Bow", - "class": "weapon", - "type": "bow" - }, - "8sb": { - "name": "Edge Bow", - "class": "weapon", - "type": "bow" - }, - "8ws": { - "name": "Rune Staff", - "class": "weapon", - "type": "staf" - }, - "8bs": { - "name": "Gothic Staff", - "class": "weapon", - "type": "staf" - }, - "8cs": { - "name": "Cedar Staff", - "class": "weapon", - "type": "staf" - }, - "8ls": { - "name": "Quarterstaff", - "class": "weapon", - "type": "staf" - }, - "8ss": { - "name": "Jo Staff", - "class": "weapon", - "type": "staf" - }, - "9wc": { - "name": "Grim Scythe", - "class": "weapon", - "type": "pole" - }, - "9h9": { - "name": "Bec-de-Corbin", - "class": "weapon", - "type": "pole" - }, - "9pa": { - "name": "Partizan", - "class": "weapon", - "type": "pole" - }, - "9s8": { - "name": "Battle Scythe", - "class": "weapon", - "type": "pole" - }, - "9vo": { - "name": "Bill", - "class": "weapon", - "type": "pole" - }, - "9b7": { - "name": "Lochaber Axe", - "class": "weapon", - "type": "pole" - }, - "9p9": { - "name": "Lance", - "class": "weapon", - "type": "spea" - }, - "9st": { - "name": "Yari", - "class": "weapon", - "type": "spea" - }, - "9br": { - "name": "War Fork", - "class": "weapon", - "type": "spea" - }, - "9tr": { - "name": "Fuscina", - "class": "weapon", - "type": "spea" - }, - "9sr": { - "name": "War Spear", - "class": "weapon", - "type": "spea" - }, - "9ts": { - "name": "Harpoon", - "class": "stackable", - "type": "jave" - }, - "9gl": { - "name": "Spiculum", - "class": "stackable", - "type": "jave" - }, - "9s9": { - "name": "Simbilan", - "class": "stackable", - "type": "jave" - }, - "9pi": { - "name": "Great Pilum", - "class": "stackable", - "type": "jave" - }, - "9ja": { - "name": "War Javelin", - "class": "stackable", - "type": "jave" - }, - "9b8": { - "name": "Hurlbat", - "class": "stackable", - "type": "taxe" - }, - "9bk": { - "name": "War Dart", - "class": "stackable", - "type": "tkni" - }, - "9ta": { - "name": "Francisca", - "class": "stackable", - "type": "taxe" - }, - "9tk": { - "name": "Battle Dart", - "class": "stackable", - "type": "tkni" - }, - "9kr": { - "name": "Cinquedeas", - "class": "weapon", - "type": "knif" - }, - "9di": { - "name": "Rondel", - "class": "weapon", - "type": "knif" - }, - "9dg": { - "name": "Poignard", - "class": "weapon", - "type": "knif" - }, - "9gd": { - "name": "Executioner Sword", - "class": "weapon", - "type": "swor" - }, - "9fb": { - "name": "Zweihander", - "class": "weapon", - "type": "swor" - }, - "9gs": { - "name": "Tusk Sword", - "class": "weapon", - "type": "swor" - }, - "9cm": { - "name": "Dacian Falx", - "class": "weapon", - "type": "swor" - }, - "92h": { - "name": "Espandon", - "class": "weapon", - "type": "swor" - }, - "9wd": { - "name": "Ancient Sword", - "class": "weapon", - "type": "swor" - }, - "9ls": { - "name": "Rune Sword", - "class": "weapon", - "type": "swor" - }, - "9bs": { - "name": "Battle Sword", - "class": "weapon", - "type": "swor" - }, - "9cr": { - "name": "Dimensional Blade", - "class": "weapon", - "type": "swor" - }, - "9fc": { - "name": "Tulwar", - "class": "weapon", - "type": "swor" - }, - "9sb": { - "name": "Shamshir", - "class": "weapon", - "type": "swor" - }, - "9sm": { - "name": "Cutlass", - "class": "weapon", - "type": "swor" - }, - "9ss": { - "name": "Gladius", - "class": "weapon", - "type": "swor" - }, - "9gm": { - "name": "Martel de Fer", - "class": "weapon", - "type": "hamm" - }, - "9m9": { - "name": "War Club", - "class": "weapon", - "type": "hamm" - }, - "9wh": { - "name": "Battle Hammer", - "class": "weapon", - "type": "hamm" - }, - "9fl": { - "name": "Knout", - "class": "weapon", - "type": "mace" - }, - "9mt": { - "name": "Jagged Star", - "class": "weapon", - "type": "mace" - }, - "9ma": { - "name": "Flanged Mace", - "class": "weapon", - "type": "mace" - }, - "9sp": { - "name": "Barbed Club", - "class": "weapon", - "type": "club" - }, - "9ws": { - "name": "Divine Scepter", - "class": "weapon", - "type": "scep" - }, - "9qs": { - "name": "Holy Water Sprinkler", - "class": "weapon", - "type": "scep" - }, - "9sc": { - "name": "Rune Scepter", - "class": "weapon", - "type": "scep" - }, - "9cl": { - "name": "Cudgel", - "class": "weapon", - "type": "club" - }, - "9gw": { - "name": "Grave Wand", - "class": "weapon", - "type": "wand" - }, - "9bw": { - "name": "Tomb Wand", - "class": "weapon", - "type": "wand" - }, - "9yw": { - "name": "Petrified Wand", - "class": "weapon", - "type": "wand" - }, - "9wn": { - "name": "Burnt Wand", - "class": "weapon", - "type": "wand" - }, - "9gi": { - "name": "Ancient Axe", - "class": "weapon", - "type": "axe" - }, - "9ga": { - "name": "Gothic Axe", - "class": "weapon", - "type": "axe" - }, - "9bt": { - "name": "Tabar", - "class": "weapon", - "type": "axe" - }, - "9ba": { - "name": "Bearded Axe ", - "class": "weapon", - "type": "axe" - }, - "9la": { - "name": "Military Axe", - "class": "weapon", - "type": "axe" - }, - "9wa": { - "name": "Naga", - "class": "weapon", - "type": "axe" - }, - "9mp": { - "name": "Crowbill", - "class": "weapon", - "type": "axe" - }, - "92a": { - "name": "Twin Axe", - "class": "weapon", - "type": "axe" - }, - "9ax": { - "name": "Cleaver", - "class": "weapon", - "type": "axe" - }, - "9ha": { - "name": "Hatchet", - "class": "weapon", - "type": "axe" - }, - "9b9": { - "name": "Gothic Sword", - "class": "weapon", - "type": "swor" - }, - "gpl": { - "name": "Strangling Gas Potion", - "class": "stackable", - "type": "tpot" - }, - "opl": { - "name": "Fulminating Potion", - "class": "stackable", - "type": "tpot" - }, - "gpm": { - "name": "Choking Gas Potion", - "class": "stackable", - "type": "tpot" - }, - "opm": { - "name": "Exploding Potion", - "class": "stackable", - "type": "tpot" - }, - "gps": { - "name": "Rancid Gas Potion", - "class": "stackable", - "type": "tpot" - }, - "ops": { - "name": "Oil Potion", - "class": "stackable", - "type": "tpot" - }, - "g33": { - "name": "The Gidbinn", - "class": "weapon", - "type": "knif" - }, - "d33": { - "name": "Decoy Gidbinn", - "class": "weapon", - "type": "knif" - }, - "leg": { - "name": "Wirt's Leg", - "class": "weapon", - "type": "club" - }, - "hdm": { - "name": "Horadric Malus", - "class": "weapon", - "type": "hamm" - }, - "hfh": { - "name": "Hellforge Hammer", - "class": "weapon", - "type": "hamm" - }, - "hst": { - "name": "Horadric Staff", - "class": "weapon", - "type": "staf" - }, - "msf": { - "name": "Staff of Kings", - "class": "weapon", - "type": "staf" - }, - "elx": { - "name": "Elixir", - "class": "misc", - "type": "elix" - }, - "tbk": { - "name": "Tome of Town Portal", - "class": "tome", - "type": "book" - }, - "tsc": { - "name": "Scroll of Town Portal", - "class": "misc", - "type": "scro" - }, - "ibk": { - "name": "Tome of Identify", - "class": "tome", - "type": "book" - }, - "isc": { - "name": "Scroll of Identify", - "class": "misc", - "type": "scro" - }, - "vps": { - "name": "Stamina Potion", - "class": "misc", - "type": "spot" - }, - "yps": { - "name": "Antidote Potion", - "class": "misc", - "type": "apot" - }, - "rvs": { - "name": "Rejuvenation Potion", - "class": "misc", - "type": "rpot" - }, - "rvl": { - "name": "Full Rejuvenation Potion", - "class": "misc", - "type": "rpot" - }, - "wms": { - "name": "Thawing Potion", - "class": "misc", - "type": "wpot" - }, - "amu": { - "name": "Amulet", - "class": "misc", - "type": "amul" - }, - "vip": { - "name": "Amulet of the Viper", - "class": "misc", - "type": "amul" - }, - "rin": { - "name": "Ring", - "class": "misc", - "type": "ring" - }, - "bks": { - "name": "Scroll of Inifuss", - "class": "misc", - "type": "ques" - }, - "bkd": { - "name": "Key to the Cairn Stones", - "class": "misc", - "type": "ques" - }, - "aqv": { - "name": "Arrows", - "class": "stackable", - "type": "bowq" - }, - "tch": { - "name": "Torch", - "class": "misc", - "type": "torc" - }, - "cqv": { - "name": "Bolts", - "class": "stackable", - "type": "xboq" - }, - "key": { - "name": "Key", - "class": "stackable", - "type": "key" - }, - "luv": { - "name": "The Black Tower Key", - "class": "misc", - "type": "key" - }, - "j34": { - "name": "A Jade Figurine", - "class": "misc", - "type": "ques" - }, - "g34": { - "name": "The Golden Bird", - "class": "misc", - "type": "ques" - }, - "bbb": { - "name": "Lam Esen's Tome", - "class": "misc", - "type": "ques" - }, - "box": { - "name": "Horadric Cube", - "class": "misc", - "type": "ques" - }, - "tr1": { - "name": "Horadric Scroll", - "class": "misc", - "type": "ques" - }, - "mss": { - "name": "Mephisto's Soulstone", - "class": "misc", - "type": "ques" - }, - "ear": { - "name": "Ear", - "class": "misc", - "type": "play" - }, - "gcv": { - "name": "Chipped Amethyst", - "class": "misc", - "type": "gema" - }, - "gfv": { - "name": "Flawed Amethyst", - "class": "misc", - "type": "gema" - }, - "gsv": { - "name": "Amethyst", - "class": "misc", - "type": "gema" - }, - "gzv": { - "name": "Flawless Amethyst", - "class": "misc", - "type": "gema" - }, - "gpv": { - "name": "Perfect Amethyst", - "class": "misc", - "type": "gema" - }, - "gcy": { - "name": "Chipped Topaz", - "class": "misc", - "type": "gemt" - }, - "gfy": { - "name": "Flawed Topaz", - "class": "misc", - "type": "gemt" - }, - "gsy": { - "name": "Topaz", - "class": "misc", - "type": "gemt" - }, - "gly": { - "name": "Flawless Topaz", - "class": "misc", - "type": "gemt" - }, - "gpy": { - "name": "Perfect Topaz", - "class": "misc", - "type": "gemt" - }, - "gcb": { - "name": "Chipped Sapphire", - "class": "misc", - "type": "gems" - }, - "gfb": { - "name": "Flawed Sapphire", - "class": "misc", - "type": "gems" - }, - "glb": { - "name": "Flawless Sapphire", - "class": "misc", - "type": "gems" - }, - "gpb": { - "name": "Perfect Sapphire", - "class": "misc", - "type": "gems" - }, - "gcg": { - "name": "Chipped Emerald", - "class": "misc", - "type": "geme" - }, - "gfg": { - "name": "Flawed Emerald", - "class": "misc", - "type": "geme" - }, - "glg": { - "name": "Flawless Emerald", - "class": "misc", - "type": "geme" - }, - "gpg": { - "name": "Perfect Emerald", - "class": "misc", - "type": "geme" - }, - "gcr": { - "name": "Chipped Ruby", - "class": "misc", - "type": "gemr" - }, - "gfr": { - "name": "Flawed Ruby", - "class": "misc", - "type": "gemr" - }, - "glr": { - "name": "Flawless Ruby", - "class": "misc", - "type": "gemr" - }, - "gpr": { - "name": "Perfect Ruby", - "class": "misc", - "type": "gemr" - }, - "gcw": { - "name": "Chipped Diamond", - "class": "misc", - "type": "gemd" - }, - "gfw": { - "name": "Flawed Diamond", - "class": "misc", - "type": "gemd" - }, - "glw": { - "name": "Flawless Diamond", - "class": "misc", - "type": "gemd" - }, - "gpw": { - "name": "Perfect Diamond", - "class": "misc", - "type": "gemd" - }, - "hp1": { - "name": "Minor Healing Potion", - "class": "misc", - "type": "hpot" - }, - "hp2": { - "name": "Light Healing Potion", - "class": "misc", - "type": "hpot" - }, - "hp3": { - "name": "Healing Potion", - "class": "misc", - "type": "hpot" - }, - "hp4": { - "name": "Greater Healing Potion", - "class": "misc", - "type": "hpot" - }, - "hp5": { - "name": "Super Healing Potion", - "class": "misc", - "type": "hpot" - }, - "mp1": { - "name": "Minor Mana Potion", - "class": "misc", - "type": "mpot" - }, - "mp2": { - "name": "Light Mana Potion", - "class": "misc", - "type": "mpot" - }, - "mp3": { - "name": "Mana Potion", - "class": "misc", - "type": "mpot" - }, - "mp4": { - "name": "Greater Mana Potion", - "class": "misc", - "type": "mpot" - }, - "mp5": { - "name": "Super Mana Potion", - "class": "misc", - "type": "mpot" - }, - "skc": { - "name": "Chipped Skull", - "class": "misc", - "type": "gemz" - }, - "skf": { - "name": "Flawed Skull", - "class": "misc", - "type": "gemz" - }, - "sku": { - "name": "Skull", - "class": "misc", - "type": "gemz" - }, - "skl": { - "name": "Flawless Skull", - "class": "misc", - "type": "gemz" - }, - "skz": { - "name": "Perfect Skull", - "class": "misc", - "type": "gemz" - }, - "saw": { - "name": "Saw" - }, - "cry": { - "name": "Cry" - }, - "eye": { - "name": "Eye" - }, - "hew": { - "name": "Hew" - }, - "mar": { - "name": "Mar" - }, - "jug": { - "name": "Jug" - }, - "bed": { - "name": "Bed" + "type": "helm", + "stackable": false + }, + "xkp": { + "name": "Sallet", + "class": "armor", + "type": "helm", + "stackable": false + }, + "xlm": { + "name": "Casque", + "class": "armor", + "type": "helm", + "stackable": false + }, + "xhl": { + "name": "Basinet", + "class": "armor", + "type": "helm", + "stackable": false }, "xhm": { "name": "Winged Helm", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, - "neg": { - "name": "Hellspawn Skull", + "xrn": { + "name": "Grand Crown", "class": "armor", - "type": "head" + "type": "helm", + "stackable": false }, - "uhf": { - "name": "Legendary Mallet" + "xsk": { + "name": "Death Mask", + "class": "armor", + "type": "helm", + "stackable": false }, - "7wa": { - "name": "Berserker Axe", - "class": "weapon", - "type": "axe" + "xui": { + "name": "Ghost Armor", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xea": { + "name": "Serpentskin Armor", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xla": { + "name": "Demonhide Armor", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xtu": { + "name": "Trellised Armor", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xng": { + "name": "Linked Mail", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xcl": { + "name": "Tigulated Mail", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xhn": { + "name": "Mesh Armor", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xrs": { + "name": "Cuirass", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xpl": { + "name": "Russet Armor", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xlt": { + "name": "Templar Coat", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xld": { + "name": "Sharktooth Armor", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xth": { + "name": "Embossed Plate", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xul": { + "name": "Chaos Armor", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xar": { + "name": "Ornate Armor", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xtp": { + "name": "Mage Plate", + "class": "armor", + "type": "tors", + "stackable": false + }, + "xuc": { + "name": "Defender", + "class": "armor", + "type": "shie", + "stackable": false + }, + "xml": { + "name": "Round Shield", + "class": "armor", + "type": "shie", + "stackable": false + }, + "xrg": { + "name": "Scutum", + "class": "armor", + "type": "shie", + "stackable": false + }, + "xit": { + "name": "Dragon Shield", + "class": "armor", + "type": "shie", + "stackable": false + }, + "xow": { + "name": "Pavise", + "class": "armor", + "type": "shie", + "stackable": false + }, + "xts": { + "name": "Ancient Shield", + "class": "armor", + "type": "shie", + "stackable": false + }, + "xlg": { + "name": "Demonhide Gloves", + "class": "armor", + "type": "glov", + "stackable": false + }, + "xvg": { + "name": "Sharkskin Gloves", + "class": "armor", + "type": "glov", + "stackable": false + }, + "xmg": { + "name": "Heavy Bracers", + "class": "armor", + "type": "glov", + "stackable": false + }, + "xtg": { + "name": "Battle Gauntlets", + "class": "armor", + "type": "glov", + "stackable": false }, "xhg": { "name": "War Gauntlets", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, - "9bl": { - "name": "Stilleto", - "class": "weapon", - "type": "knif" - }, - "pk1": { - "name": "Key of Terror", - "class": "misc", - "type": "ques" - }, - "pk2": { - "name": "Key of Hate", - "class": "misc", - "type": "ques" - }, - "pk3": { - "name": "Key of Destruction", - "class": "misc", - "type": "ques" - }, - "dhn": { - "name": "Diablo's Horn", - "class": "misc", - "type": "ques" - }, - "bey": { - "name": "Baal's Eye", - "class": "misc", - "type": "ques" - }, - "mbr": { - "name": "Mephisto's Brain", - "class": "misc", - "type": "ques" - }, - "std": { - "name": "Standard of Heroes", - "class": "misc", - "type": "ques" - }, - "tes": { - "name": "Twisted Essence of Suffering", - "class": "misc", - "type": "ques" - }, - "ceh": { - "name": "Charged Essense of Hatred", - "class": "misc", - "type": "ques" - }, - "bet": { - "name": "Burning Essence of Terror", - "class": "misc", - "type": "ques" - }, - "fed": { - "name": "Festering Essence of Destruction", - "class": "misc", - "type": "ques" - }, - "ktr": { - "name": "Katar", - "class": "weapon", - "type": "h2h" - }, - "wrb": { - "name": "Wrist Blade", - "class": "weapon", - "type": "h2h" - }, - "ces": { - "name": "Cestus", - "class": "weapon", - "type": "h2h" - }, - "clw": { - "name": "Claws", - "class": "weapon", - "type": "h2h" - }, - "btl": { - "name": "Blade Talons", - "class": "weapon", - "type": "h2h" - }, - "skr": { - "name": "Scissors Katar", - "class": "weapon", - "type": "h2h" - }, - "9ar": { - "name": "Quhab", - "class": "weapon", - "type": "h2h" - }, - "9wb": { - "name": "Wrist Spike", - "class": "weapon", - "type": "h2h" - }, - "9xf": { - "name": "Fascia", - "class": "weapon", - "type": "h2h" - }, - "9cs": { - "name": "Hand Scythe", - "class": "weapon", - "type": "h2h2" - }, - "9lw": { - "name": "Greater Claws", - "class": "weapon", - "type": "h2h2" - }, - "9tw": { - "name": "Greater Talons", - "class": "weapon", - "type": "h2h2" - }, - "9qr": { - "name": "Scissors Quhab", - "class": "weapon", - "type": "h2h2" - }, - "7ar": { - "name": "Suwayyah", - "class": "weapon", - "type": "h2h2" - }, - "7wb": { - "name": "Wrist Sword", - "class": "weapon", - "type": "h2h2" - }, - "7xf": { - "name": "War Fist", - "class": "weapon", - "type": "h2h2" - }, - "7cs": { - "name": "Battle Cestus", - "class": "weapon", - "type": "h2h2" - }, - "7lw": { - "name": "Feral Claws", - "class": "weapon", - "type": "h2h2" - }, - "7tw": { - "name": "Runic Talons", - "class": "weapon", - "type": "h2h2" - }, - "7qr": { - "name": "Scissors Suwayyah", - "class": "weapon", - "type": "h2h2" - }, - "7ha": { - "name": "Tomahawk", - "class": "weapon", - "type": "axe" - }, - "7ax": { - "name": "Small Crescent", - "class": "weapon", - "type": "axe" - }, - "72a": { - "name": "Ettin Axe", - "class": "weapon", - "type": "axe" - }, - "7mp": { - "name": "War Spike", - "class": "weapon", - "type": "axe" - }, - "7la": { - "name": "Feral Axe", - "class": "weapon", - "type": "axe" - }, - "7ba": { - "name": "Silver-edged Axe", - "class": "weapon", - "type": "axe" - }, - "7bt": { - "name": "Decapitator", - "class": "weapon", - "type": "axe" - }, - "7ga": { - "name": "Champion Axe", - "class": "weapon", - "type": "axe" - }, - "7gi": { - "name": "Glorious Axe", - "class": "weapon", - "type": "axe" - }, - "7wn": { - "name": "Polished Wand", - "class": "weapon", - "type": "wand" - }, - "7yw": { - "name": "Ghost Wand", - "class": "weapon", - "type": "wand" - }, - "7bw": { - "name": "Lich Wand", - "class": "weapon", - "type": "wand" - }, - "7gw": { - "name": "Unearthed Wand", - "class": "weapon", - "type": "wand" - }, - "7cl": { - "name": "Truncheon", - "class": "weapon", - "type": "club" - }, - "7sc": { - "name": "Mighty Scepter", - "class": "weapon", - "type": "scep" - }, - "7qs": { - "name": "Seraph Rod", - "class": "weapon", - "type": "scep" - }, - "7ws": { - "name": "Caduceus", - "class": "weapon", - "type": "scep" - }, - "7sp": { - "name": "Tyrant Club", - "class": "weapon", - "type": "club" - }, - "7ma": { - "name": "Reinforced Mace", - "class": "weapon", - "type": "mace" - }, - "7mt": { - "name": "Devil Star", - "class": "weapon", - "type": "mace" - }, - "7fl": { - "name": "Scourge", - "class": "weapon", - "type": "mace" - }, - "7wh": { - "name": "Legendary Mallet", - "class": "weapon", - "type": "hamm" - }, - "7m7": { - "name": "Ogre Maul", - "class": "weapon", - "type": "hamm" - }, - "7gm": { - "name": "Thunder Maul", - "class": "weapon", - "type": "hamm" - }, - "7ss": { - "name": "Falcata", - "class": "weapon", - "type": "swor" - }, - "7sm": { - "name": "Ataghan", - "class": "weapon", - "type": "swor" - }, - "7sb": { - "name": "Elegant Blade", - "class": "weapon", - "type": "swor" - }, - "7fc": { - "name": "Hydra Edge", - "class": "weapon", - "type": "swor" - }, - "7cr": { - "name": "Phase Blade", - "class": "weapon", - "type": "swor" - }, - "7bs": { - "name": "Conquest Sword", - "class": "weapon", - "type": "swor" - }, - "7ls": { - "name": "Cryptic Sword", - "class": "weapon", - "type": "swor" - }, - "7wd": { - "name": "Mythical Sword", - "class": "weapon", - "type": "swor" - }, - "72h": { - "name": "Legend Sword", - "class": "weapon", - "type": "swor" - }, - "7cm": { - "name": "Highland Blade", - "class": "weapon", - "type": "swor" - }, - "7gs": { - "name": "Balrog Blade", - "class": "weapon", - "type": "swor" - }, - "7b7": { - "name": "Champion Sword", - "class": "weapon", - "type": "swor" - }, - "7fb": { - "name": "Colossal Sword", - "class": "weapon", - "type": "swor" - }, - "7gd": { - "name": "Colossus Blade", - "class": "weapon", - "type": "swor" - }, - "7dg": { - "name": "Bone Knife", - "class": "weapon", - "type": "knif" - }, - "7di": { - "name": "Mithral Point", - "class": "weapon", - "type": "knif" - }, - "7kr": { - "name": "Fanged Knife", - "class": "weapon", - "type": "knif" - }, - "7bl": { - "name": "Legend Spike", - "class": "weapon", - "type": "knif" - }, - "7tk": { - "name": "Flying Knife", - "class": "stackable", - "type": "tkni" - }, - "7ta": { - "name": "Flying Axe", - "class": "stackable", - "type": "taxe" - }, - "7bk": { - "name": "Winged Knife", - "class": "stackable", - "type": "tkni" - }, - "7b8": { - "name": "Winged Axe", - "class": "stackable", - "type": "taxe" - }, - "7ja": { - "name": "Hyperion Javelin", - "class": "stackable", - "type": "jave" - }, - "7pi": { - "name": "Stygian Pilum", - "class": "stackable", - "type": "jave" - }, - "7s7": { - "name": "Balrog Spear", - "class": "stackable", - "type": "jave" - }, - "7gl": { - "name": "Ghost Glaive", - "class": "stackable", - "type": "jave" - }, - "7ts": { - "name": "Winged Harpoon", - "class": "stackable", - "type": "jave" - }, - "7sr": { - "name": "Hyperion Spear", - "class": "weapon", - "type": "spea" - }, - "7tr": { - "name": "Stygian Pike", - "class": "weapon", - "type": "spea" - }, - "7br": { - "name": "Mancatcher", - "class": "weapon", - "type": "spea" - }, - "7st": { - "name": "Ghost Spear", - "class": "weapon", - "type": "spea" - }, - "7p7": { - "name": "War Pike", - "class": "weapon", - "type": "spea" - }, - "7o7": { - "name": "Ogre Axe", - "class": "weapon", - "type": "pole" - }, - "7vo": { - "name": "Colossus Voulge", - "class": "weapon", - "type": "pole" - }, - "7s8": { - "name": "Thresher", - "class": "weapon", - "type": "pole" - }, - "7pa": { - "name": "Cryptic Axe", - "class": "weapon", - "type": "pole" - }, - "7h7": { - "name": "Great Poleaxe", - "class": "weapon", - "type": "pole" - }, - "7wc": { - "name": "Giant Thresher", - "class": "weapon", - "type": "pole" - }, - "6ss": { - "name": "Walking Stick", - "class": "weapon", - "type": "staf" - }, - "6ls": { - "name": "Stalagmite", - "class": "weapon", - "type": "staf" - }, - "6cs": { - "name": "Elder Staff", - "class": "weapon", - "type": "staf" - }, - "6bs": { - "name": "Shillelagh", - "class": "weapon", - "type": "staf" - }, - "6ws": { - "name": "Archon Staff", - "class": "weapon", - "type": "staf" - }, - "6sb": { - "name": "Spider Bow", - "class": "weapon", - "type": "bow" - }, - "6hb": { - "name": "Blade Bow", - "class": "weapon", - "type": "bow" - }, - "6lb": { - "name": "Shadow Bow", - "class": "weapon", - "type": "bow" - }, - "6cb": { - "name": "Great Bow", - "class": "weapon", - "type": "bow" - }, - "6s7": { - "name": "Diamond Bow", - "class": "weapon", - "type": "bow" - }, - "6l7": { - "name": "Crusader Bow", - "class": "weapon", - "type": "bow" - }, - "6sw": { - "name": "Ward Bow", - "class": "weapon", - "type": "bow" - }, - "6lw": { - "name": "Hydra Bow", - "class": "weapon", - "type": "bow" - }, - "6lx": { - "name": "Pellet Bow", - "class": "weapon", - "type": "xbow" - }, - "6mx": { - "name": "Gorgon Crossbow", - "class": "weapon", - "type": "xbow" - }, - "6hx": { - "name": "Colossus Crossbow", - "class": "weapon", - "type": "xbow" - }, - "6rx": { - "name": "Demon Crossbow", - "class": "weapon", - "type": "xbow" - }, - "ob1": { - "name": "Eagle Orb", - "class": "weapon", - "type": "orb" - }, - "ob2": { - "name": "Sacred Globe", - "class": "weapon", - "type": "orb" - }, - "ob3": { - "name": "Smoked Sphere", - "class": "weapon", - "type": "orb" - }, - "ob4": { - "name": "Clasped Orb", - "class": "weapon", - "type": "orb" - }, - "as1": { - "name": "Wraps" - }, - "as2": { - "name": "Knuckles" - }, - "as3": { - "name": "Slashers" - }, - "as4": { - "name": "Splay" - }, - "as5": { - "name": "Hook" - }, - "as6": { - "name": "Shank" - }, - "as7": { - "name": "Claws" - }, - "am1": { - "name": "Stag Bow", - "class": "weapon", - "type": "abow" - }, - "am2": { - "name": "Reflex Bow", - "class": "weapon", - "type": "abow" - }, - "am3": { - "name": "Maiden Spear", - "class": "weapon", - "type": "aspe" - }, - "am4": { - "name": "Maiden Pike", - "class": "weapon", - "type": "aspe" - }, - "am5": { - "name": "Maiden Javelin", - "class": "stackable", - "type": "ajav" - }, - "ob6": { - "name": "Glowing Orb", - "class": "weapon", - "type": "orb" - }, - "ob7": { - "name": "Crystalline Globe", - "class": "weapon", - "type": "orb" - }, - "ob8": { - "name": "Cloudy Sphere", - "class": "weapon", - "type": "orb" - }, - "ob9": { - "name": "Sparkling Ball", - "class": "weapon", - "type": "orb" - }, - "oba": { - "name": "Swirling Crystal", - "class": "weapon", - "type": "orb" - }, - "am6": { - "name": "Ashwood Bow", - "class": "weapon", - "type": "abow" - }, - "am7": { - "name": "Ceremonial Bow", - "class": "weapon", - "type": "abow" - }, - "am8": { - "name": "Ceremonial Spear", - "class": "weapon", - "type": "aspe" - }, - "am9": { - "name": "Ceremonial Pike", - "class": "weapon", - "type": "aspe" - }, - "ama": { - "name": "Ceremonial Javelin", - "class": "stackable", - "type": "ajav" - }, - "obb": { - "name": "Heavenly Stone", - "class": "weapon", - "type": "orb" - }, - "obc": { - "name": "Eldritch Orb", - "class": "weapon", - "type": "orb" - }, - "obd": { - "name": "Demon Heart", - "class": "weapon", - "type": "orb" - }, - "obe": { - "name": "Vortex Orb", - "class": "weapon", - "type": "orb" - }, - "obf": { - "name": "Dimensional Shard", - "class": "weapon", - "type": "orb" - }, - "amb": { - "name": "Matriarchal Bow", - "class": "weapon", - "type": "abow" - }, - "amc": { - "name": "Grand Matron Bow", - "class": "weapon", - "type": "abow" - }, - "amd": { - "name": "Matriarchal Spear", - "class": "weapon", - "type": "aspe" - }, - "ame": { - "name": "Matriarchal Pike", - "class": "weapon", - "type": "aspe" - }, - "amf": { - "name": "Matriarchal Javelin", - "class": "stackable", - "type": "ajav" - }, - "dr4": { - "name": "Falcon Mask", + "xlb": { + "name": "Demonhide Boots", "class": "armor", - "type": "pelt" + "type": "boot", + "stackable": false }, - "dr2": { - "name": "Hawk Helm", + "xvb": { + "name": "Sharkskin Boots", "class": "armor", - "type": "pelt" + "type": "boot", + "stackable": false }, - "dr3": { - "name": "Antlers", + "xmb": { + "name": "Mesh Boots", "class": "armor", - "type": "pelt" + "type": "boot", + "stackable": false + }, + "xtb": { + "name": "Battle Boots", + "class": "armor", + "type": "boot", + "stackable": false + }, + "xhb": { + "name": "War Boots", + "class": "armor", + "type": "boot", + "stackable": false + }, + "zlb": { + "name": "Demonhide Sash", + "class": "armor", + "type": "belt", + "stackable": false + }, + "zvb": { + "name": "Sharkskin Belt", + "class": "armor", + "type": "belt", + "stackable": false + }, + "zmb": { + "name": "Mesh Belt", + "class": "armor", + "type": "belt", + "stackable": false + }, + "ztb": { + "name": "Battle Belt", + "class": "armor", + "type": "belt", + "stackable": false + }, + "zhb": { + "name": "War Belt", + "class": "armor", + "type": "belt", + "stackable": false + }, + "xh9": { + "name": "Grim Helm", + "class": "armor", + "type": "helm", + "stackable": false + }, + "xsh": { + "name": "Grim Shield", + "class": "armor", + "type": "shie", + "stackable": false + }, + "xpk": { + "name": "Barbed Shield", + "class": "armor", + "type": "shie", + "stackable": false }, "dr1": { "name": "Wolf Head", "class": "armor", - "type": "pelt" + "type": "pelt", + "stackable": false + }, + "dr2": { + "name": "Hawk Helm", + "class": "armor", + "type": "pelt", + "stackable": false + }, + "dr3": { + "name": "Antlers", + "class": "armor", + "type": "pelt", + "stackable": false + }, + "dr4": { + "name": "Falcon Mask", + "class": "armor", + "type": "pelt", + "stackable": false }, "dr5": { "name": "Spirit Mask", "class": "armor", - "type": "pelt" + "type": "pelt", + "stackable": false }, "ba1": { "name": "Jawbone Cap", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "ba2": { "name": "Fanged Helm", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "ba3": { "name": "Horned Helm", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "ba4": { "name": "Assault Helmet", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "ba5": { "name": "Avenger Guard", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "pa1": { "name": "Targe", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "pa2": { "name": "Rondache", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "pa3": { "name": "Heraldic Shield", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "pa4": { "name": "Aerin Shield", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "pa5": { "name": "Crown Shield", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "ne1": { "name": "Preserved Head", "class": "armor", - "type": "head" + "type": "head", + "stackable": false }, "ne2": { "name": "Zombie Head", "class": "armor", - "type": "head" + "type": "head", + "stackable": false }, "ne3": { "name": "Unraveller Head", "class": "armor", - "type": "head" + "type": "head", + "stackable": false }, "ne4": { "name": "Gargoyle Head", "class": "armor", - "type": "head" + "type": "head", + "stackable": false }, "ne5": { "name": "Demon Head", "class": "armor", - "type": "head" + "type": "head", + "stackable": false }, "ci0": { "name": "Circlet", "class": "armor", - "type": "circ" + "type": "circ", + "stackable": false }, "ci1": { "name": "Coronet", "class": "armor", - "type": "circ" + "type": "circ", + "stackable": false }, "ci2": { "name": "Tiara", "class": "armor", - "type": "circ" + "type": "circ", + "stackable": false }, "ci3": { "name": "Diadem", "class": "armor", - "type": "circ" + "type": "circ", + "stackable": false }, "uap": { "name": "Shako", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "ukp": { "name": "Hydraskull", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "ulm": { "name": "Armet", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "uhl": { "name": "Giant Conch", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "uhm": { "name": "Spired Helm", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "urn": { "name": "Corona", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "usk": { "name": "Demonhead", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "uui": { "name": "Dusk Shroud", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "uea": { "name": "Wyrmhide", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "ula": { "name": "Scarab Husk", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "utu": { "name": "Wire Fleece", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "ung": { "name": "Diamond Mail", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "ucl": { "name": "Loricated Mail", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "uhn": { "name": "Boneweave", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "urs": { "name": "Great Hauberk", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "upl": { "name": "Balrog Skin", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "ult": { "name": "Hellforge Plate", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "uld": { "name": "Kraken Shell", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "uth": { "name": "Lacquered Plate", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "uul": { "name": "Shadow Plate", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "uar": { "name": "Sacred Armor", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "utp": { "name": "Archon Plate", "class": "armor", - "type": "tors" + "type": "tors", + "stackable": false }, "uuc": { "name": "Heater", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "uml": { "name": "Luna", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "urg": { "name": "Hyperion", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "uit": { "name": "Monarch", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "uow": { "name": "Aegis", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "uts": { "name": "Ward", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "ulg": { "name": "Bramble Mitts", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "uvg": { "name": "Vampirebone Gloves", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "umg": { "name": "Vambraces", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "utg": { "name": "Crusader Gauntlets", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "uhg": { "name": "Ogre Gauntlets", "class": "armor", - "type": "glov" + "type": "glov", + "stackable": false }, "ulb": { "name": "Wyrmhide Boots", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "uvb": { "name": "Scarabshell Boots", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "umb": { "name": "Boneweave Boots", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "utb": { "name": "Mirrored Boots", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "uhb": { "name": "Myrmidon Greaves", "class": "armor", - "type": "boot" + "type": "boot", + "stackable": false }, "ulc": { "name": "Spiderweb Sash", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "uvc": { "name": "Vampirefang Belt", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "umc": { "name": "Mithril Coil", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "utc": { "name": "Troll Belt", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "uhc": { "name": "Colossus Girdle", "class": "armor", - "type": "belt" + "type": "belt", + "stackable": false }, "uh9": { "name": "Bone Visage", "class": "armor", - "type": "helm" + "type": "helm", + "stackable": false }, "ush": { "name": "Troll Nest", "class": "armor", - "type": "shie" + "type": "shie", + "stackable": false }, "upk": { "name": "Blade Barrier", "class": "armor", - "type": "shie" - }, - "dr9": { - "name": "Sacred Feathers", - "class": "armor", - "type": "pelt" - }, - "dr7": { - "name": "Griffon Headress", - "class": "armor", - "type": "pelt" - }, - "dr8": { - "name": "Hunter's Guise", - "class": "armor", - "type": "pelt" + "type": "shie", + "stackable": false }, "dr6": { "name": "Alpha Helm", "class": "armor", - "type": "pelt" + "type": "pelt", + "stackable": false + }, + "dr7": { + "name": "Griffon Headress", + "class": "armor", + "type": "pelt", + "stackable": false + }, + "dr8": { + "name": "Hunter's Guise", + "class": "armor", + "type": "pelt", + "stackable": false + }, + "dr9": { + "name": "Sacred Feathers", + "class": "armor", + "type": "pelt", + "stackable": false }, "dra": { "name": "Totemic Mask", "class": "armor", - "type": "pelt" + "type": "pelt", + "stackable": false }, "ba6": { "name": "Jawbone Visor", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "ba7": { "name": "Lion Helm", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "ba8": { "name": "Rage Mask", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "ba9": { "name": "Savage Helmet", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "baa": { "name": "Slayer Guard", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "pa6": { "name": "Akaran Targe", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "pa7": { "name": "Akaran Rondache", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "pa8": { "name": "Protector Shield", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "pa9": { "name": "Gilded Shield", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "paa": { "name": "Royal Shield", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "ne6": { "name": "Mummified Trophy", "class": "armor", - "type": "head" + "type": "head", + "stackable": false }, "ne7": { "name": "Fetish Trophy", "class": "armor", - "type": "head" + "type": "head", + "stackable": false }, "ne8": { "name": "Sexton Trophy", "class": "armor", - "type": "head" + "type": "head", + "stackable": false }, "ne9": { "name": "Cantor Trophy", "class": "armor", - "type": "head" + "type": "head", + "stackable": false }, "nea": { "name": "Heirophant Trophy", "class": "armor", - "type": "head" - }, - "dre": { - "name": "Sky Spirit", - "class": "armor", - "type": "pelt" - }, - "drc": { - "name": "Sun Spirit", - "class": "armor", - "type": "pelt" - }, - "drd": { - "name": "Earth Spirit", - "class": "armor", - "type": "pelt" + "type": "head", + "stackable": false }, "drb": { "name": "Blood Spirit", "class": "armor", - "type": "pelt" + "type": "pelt", + "stackable": false + }, + "drc": { + "name": "Sun Spirit", + "class": "armor", + "type": "pelt", + "stackable": false + }, + "drd": { + "name": "Earth Spirit", + "class": "armor", + "type": "pelt", + "stackable": false + }, + "dre": { + "name": "Sky Spirit", + "class": "armor", + "type": "pelt", + "stackable": false }, "drf": { "name": "Dream Spirit", "class": "armor", - "type": "pelt" + "type": "pelt", + "stackable": false }, "bab": { "name": "Carnage Helm", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "bac": { "name": "Fury Visor", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "bad": { "name": "Destroyer Helm", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "bae": { "name": "Conqueror Crown", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "baf": { "name": "Guardian Crown", "class": "armor", - "type": "phlm" + "type": "phlm", + "stackable": false }, "pab": { "name": "Sacred Targe", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false }, "pac": { "name": "Sacred Rondache", "class": "armor", - "type": "ashd" - }, - "pae": { - "name": "Zakarum Shield", - "class": "armor", - "type": "ashd" - }, - "paf": { - "name": "Vortex Shield", - "class": "armor", - "type": "ashd" - }, - "neb": { - "name": "Minion Skull", - "class": "armor", - "type": "head" - }, - "nec": { - "name": "Hellspawn Skull" - }, - "ned": { - "name": "Overseer Skull", - "class": "armor", - "type": "head" - }, - "nee": { - "name": "Succubus Skull", - "class": "armor", - "type": "head" - }, - "nef": { - "name": "Bloodlord Skull", - "class": "armor", - "type": "head" - }, - "jew": { - "name": "Jewel", - "class": "misc", - "type": "jewl" - }, - "hrb": { - "name": "Herb", - "class": "misc", - "type": "herb" - }, - "cm1": { - "name": "Small Charm", - "class": "misc", - "type": "scha" - }, - "cm2": { - "name": "Large Charm", - "class": "misc", - "type": "mcha" - }, - "cm3": { - "name": "Grand Charm", - "class": "misc", - "type": "lcha" - }, - "spe": { - "name": "Spleen", - "class": "misc", - "type": "body" - }, - "scz": { - "name": "Scalp", - "class": "misc", - "type": "body" - }, - "sol": { - "name": "Soul", - "class": "misc", - "type": "body" - }, - "qll": { - "name": "Quill", - "class": "misc", - "type": "body" - }, - "fng": { - "name": "Fang", - "class": "misc", - "type": "body" - }, - "flg": { - "name": "Flag", - "class": "misc", - "type": "body" - }, - "tal": { - "name": "Tail", - "class": "misc", - "type": "body" - }, - "hrn": { - "name": "Horn", - "class": "misc", - "type": "body" - }, - "eyz": { - "name": "Eye", - "class": "misc", - "type": "body" - }, - "jaw": { - "name": "Jawbone", - "class": "misc", - "type": "body" - }, - "brz": { - "name": "Brain", - "class": "misc", - "type": "body" - }, - "hrt": { - "name": "Heart", - "class": "misc", - "type": "body" - }, - "ob5": { - "name": "Jared's Stone", - "class": "weapon", - "type": "orb" + "type": "ashd", + "stackable": false }, "pad": { "name": "Ancient Shield", "class": "armor", - "type": "ashd" + "type": "ashd", + "stackable": false + }, + "pae": { + "name": "Zakarum Shield", + "class": "armor", + "type": "ashd", + "stackable": false + }, + "paf": { + "name": "Vortex Shield", + "class": "armor", + "type": "ashd", + "stackable": false + }, + "neb": { + "name": "Minion Skull", + "class": "armor", + "type": "head", + "stackable": false + }, + "neg": { + "name": "Hellspawn Skull", + "class": "armor", + "type": "head", + "stackable": false + }, + "ned": { + "name": "Overseer Skull", + "class": "armor", + "type": "head", + "stackable": false + }, + "nee": { + "name": "Succubus Skull", + "class": "armor", + "type": "head", + "stackable": false + }, + "nef": { + "name": "Bloodlord Skull", + "class": "armor", + "type": "head", + "stackable": false + }, + "hax": { + "name": "Hand Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "axe": { + "name": "Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "2ax": { + "name": "Double Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "mpi": { + "name": "Military Pick", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "wax": { + "name": "War Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "lax": { + "name": "Large Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "bax": { + "name": "Broad Axe ", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "btx": { + "name": "Battle Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "gax": { + "name": "Great Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "gix": { + "name": "Giant Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "wnd": { + "name": "Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "ywn": { + "name": "Yew Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "bwn": { + "name": "Bone Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "gwn": { + "name": "Grim Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "clb": { + "name": "Club", + "class": "weapon", + "type": "club", + "stackable": false + }, + "scp": { + "name": "Scepter", + "class": "weapon", + "type": "scep", + "stackable": false + }, + "gsc": { + "name": "Grand Scepter", + "class": "weapon", + "type": "scep", + "stackable": false + }, + "wsp": { + "name": "War Scepter", + "class": "weapon", + "type": "scep", + "stackable": false + }, + "spc": { + "name": "Spiked Club", + "class": "weapon", + "type": "club", + "stackable": false + }, + "mac": { + "name": "Mace", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "mst": { + "name": "Morning Star", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "fla": { + "name": "Flail", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "whm": { + "name": "War Hammer", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "mau": { + "name": "Maul", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "gma": { + "name": "Great Maul", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "ssd": { + "name": "Short Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "scm": { + "name": "Scimitar", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "sbr": { + "name": "Saber", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "flc": { + "name": "Falchion", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "crs": { + "name": "Crystal Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "bsd": { + "name": "Broad Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "lsd": { + "name": "Long Sword ", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "wsd": { + "name": "War Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "2hs": { + "name": "Two-Handed Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "clm": { + "name": "Claymore", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "gis": { + "name": "Giant Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "bsw": { + "name": "Bastard Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "flb": { + "name": "Flamberge", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "gsd": { + "name": "Great Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "dgr": { + "name": "Dagger", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "dir": { + "name": "Dirk", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "kri": { + "name": "Kriss", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "bld": { + "name": "Blade", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "tkf": { + "name": "Throwing Knife", + "class": "weapon", + "type": "tkni", + "stackable": true + }, + "tax": { + "name": "Throwing Axe", + "class": "weapon", + "type": "taxe", + "stackable": true + }, + "bkf": { + "name": "Balanced Knife", + "class": "weapon", + "type": "tkni", + "stackable": true + }, + "bal": { + "name": "Balanced Axe", + "class": "weapon", + "type": "taxe", + "stackable": true + }, + "jav": { + "name": "Javelin", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "pil": { + "name": "Pilum", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "ssp": { + "name": "Short Spear", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "glv": { + "name": "Glaive", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "tsp": { + "name": "Throwing Spear", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "spr": { + "name": "Spear", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "tri": { + "name": "Trident", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "brn": { + "name": "Brandistock", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "spt": { + "name": "Spetum", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "pik": { + "name": "Pike", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "bar": { + "name": "Bardiche", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "vou": { + "name": "Voulge", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "scy": { + "name": "Scythe", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "pax": { + "name": "Poleaxe", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "hal": { + "name": "Halberd", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "wsc": { + "name": "War Scythe", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "sst": { + "name": "Short Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "lst": { + "name": "Long Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "cst": { + "name": "Gnarled Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "bst": { + "name": "Battle Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "wst": { + "name": "War Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "sbw": { + "name": "Short Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "hbw": { + "name": "Hunter's Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "lbw": { + "name": "Long Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "cbw": { + "name": "Composite Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "sbb": { + "name": "Short Battle Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "lbb": { + "name": "Long Battle Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "swb": { + "name": "Short War Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "lwb": { + "name": "Long War Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "lxb": { + "name": "Light Crossbow", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "mxb": { + "name": "Crossbow", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "hxb": { + "name": "Heavy Crossbow", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "rxb": { + "name": "Repeating Crossbow", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "gps": { + "name": "Rancid Gas Potion", + "class": "weapon", + "type": "tpot", + "stackable": true + }, + "ops": { + "name": "Oil Potion", + "class": "weapon", + "type": "tpot", + "stackable": true + }, + "gpm": { + "name": "Choking Gas Potion", + "class": "weapon", + "type": "tpot", + "stackable": true + }, + "opm": { + "name": "Exploding Potion", + "class": "weapon", + "type": "tpot", + "stackable": true + }, + "gpl": { + "name": "Strangling Gas Potion", + "class": "weapon", + "type": "tpot", + "stackable": true + }, + "opl": { + "name": "Fulminating Potion", + "class": "weapon", + "type": "tpot", + "stackable": true + }, + "d33": { + "name": "Decoy Gidbinn", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "g33": { + "name": "The Gidbinn", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "leg": { + "name": "Wirt's Leg", + "class": "weapon", + "type": "club", + "stackable": false + }, + "hdm": { + "name": "Horadric Malus", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "hfh": { + "name": "Hellforge Hammer", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "hst": { + "name": "Horadric Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "msf": { + "name": "Staff of Kings", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "9ha": { + "name": "Hatchet", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "9ax": { + "name": "Cleaver", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "92a": { + "name": "Twin Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "9mp": { + "name": "Crowbill", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "9wa": { + "name": "Naga", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "9la": { + "name": "Military Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "9ba": { + "name": "Bearded Axe ", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "9bt": { + "name": "Tabar", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "9ga": { + "name": "Gothic Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "9gi": { + "name": "Ancient Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "9wn": { + "name": "Burnt Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "9yw": { + "name": "Petrified Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "9bw": { + "name": "Tomb Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "9gw": { + "name": "Grave Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "9cl": { + "name": "Cudgel", + "class": "weapon", + "type": "club", + "stackable": false + }, + "9sc": { + "name": "Rune Scepter", + "class": "weapon", + "type": "scep", + "stackable": false + }, + "9qs": { + "name": "Holy Water Sprinkler", + "class": "weapon", + "type": "scep", + "stackable": false + }, + "9ws": { + "name": "Divine Scepter", + "class": "weapon", + "type": "scep", + "stackable": false + }, + "9sp": { + "name": "Barbed Club", + "class": "weapon", + "type": "club", + "stackable": false + }, + "9ma": { + "name": "Flanged Mace", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "9mt": { + "name": "Jagged Star", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "9fl": { + "name": "Knout", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "9wh": { + "name": "Battle Hammer", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "9m9": { + "name": "War Club", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "9gm": { + "name": "Martel de Fer", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "9ss": { + "name": "Gladius", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9sm": { + "name": "Cutlass", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9sb": { + "name": "Shamshir", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9fc": { + "name": "Tulwar", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9cr": { + "name": "Dimensional Blade", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9bs": { + "name": "Battle Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9ls": { + "name": "Rune Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9wd": { + "name": "Ancient Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "92h": { + "name": "Espandon", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9cm": { + "name": "Dacian Falx", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9gs": { + "name": "Tusk Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9b9": { + "name": "Gothic Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9fb": { + "name": "Zweihander", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9gd": { + "name": "Executioner Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "9dg": { + "name": "Poignard", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "9di": { + "name": "Rondel", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "9kr": { + "name": "Cinquedeas", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "9bl": { + "name": "Stilleto", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "9tk": { + "name": "Battle Dart", + "class": "weapon", + "type": "tkni", + "stackable": true + }, + "9ta": { + "name": "Francisca", + "class": "weapon", + "type": "taxe", + "stackable": true + }, + "9bk": { + "name": "War Dart", + "class": "weapon", + "type": "tkni", + "stackable": true + }, + "9b8": { + "name": "Hurlbat", + "class": "weapon", + "type": "taxe", + "stackable": true + }, + "9ja": { + "name": "War Javelin", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "9pi": { + "name": "Great Pilum", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "9s9": { + "name": "Simbilan", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "9gl": { + "name": "Spiculum", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "9ts": { + "name": "Harpoon", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "9sr": { + "name": "War Spear", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "9tr": { + "name": "Fuscina", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "9br": { + "name": "War Fork", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "9st": { + "name": "Yari", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "9p9": { + "name": "Lance", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "9b7": { + "name": "Lochaber Axe", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "9vo": { + "name": "Bill", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "9s8": { + "name": "Battle Scythe", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "9pa": { + "name": "Partizan", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "9h9": { + "name": "Bec-de-Corbin", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "9wc": { + "name": "Grim Scythe", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "8ss": { + "name": "Jo Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "8ls": { + "name": "Quarterstaff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "8cs": { + "name": "Cedar Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "8bs": { + "name": "Gothic Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "8ws": { + "name": "Rune Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "8sb": { + "name": "Edge Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "8hb": { + "name": "Razor Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "8lb": { + "name": "Cedar Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "8cb": { + "name": "Double Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "8s8": { + "name": "Short Siege Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "8l8": { + "name": "Long Siege Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "8sw": { + "name": "Rune Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "8lw": { + "name": "Gothic Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "8lx": { + "name": "Arbalest", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "8mx": { + "name": "Siege Crossbow", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "8hx": { + "name": "Ballista", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "8rx": { + "name": "Chu-Ko-Nu", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "qf1": { + "name": "Khalim's Flail", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "qf2": { + "name": "Khalim's Will", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "ktr": { + "name": "Katar", + "class": "weapon", + "type": "h2h", + "stackable": false + }, + "wrb": { + "name": "Wrist Blade", + "class": "weapon", + "type": "h2h", + "stackable": false }, "axf": { "name": "Hatchet Hands", "class": "weapon", - "type": "h2h" + "type": "h2h", + "stackable": false }, - "0sc": { - "name": "Scroll of Knowledge", - "class": "misc", - "type": "scro" + "ces": { + "name": "Cestus", + "class": "weapon", + "type": "h2h", + "stackable": false }, - "": { - "name": "Expansion", + "clw": { + "name": "Claws", + "class": "weapon", + "type": "h2h", + "stackable": false + }, + "btl": { + "name": "Blade Talons", + "class": "weapon", + "type": "h2h", + "stackable": false + }, + "skr": { + "name": "Scissors Katar", + "class": "weapon", + "type": "h2h", + "stackable": false + }, + "9ar": { + "name": "Quhab", + "class": "weapon", + "type": "h2h", + "stackable": false + }, + "9wb": { + "name": "Wrist Spike", + "class": "weapon", + "type": "h2h", + "stackable": false + }, + "9xf": { + "name": "Fascia", + "class": "weapon", + "type": "h2h", + "stackable": false + }, + "9cs": { + "name": "Hand Scythe", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "9lw": { + "name": "Greater Claws", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "9tw": { + "name": "Greater Talons", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "9qr": { + "name": "Scissors Quhab", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "7ar": { + "name": "Suwayyah", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "7wb": { + "name": "Wrist Sword", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "7xf": { + "name": "War Fist", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "7cs": { + "name": "Battle Cestus", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "7lw": { + "name": "Feral Claws", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "7tw": { + "name": "Runic Talons", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "7qr": { + "name": "Scissors Suwayyah", + "class": "weapon", + "type": "h2h2", + "stackable": false + }, + "7ha": { + "name": "Tomahawk", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "7ax": { + "name": "Small Crescent", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "72a": { + "name": "Ettin Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "7mp": { + "name": "War Spike", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "7wa": { + "name": "Berserker Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "7la": { + "name": "Feral Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "7ba": { + "name": "Silver-edged Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "7bt": { + "name": "Decapitator", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "7ga": { + "name": "Champion Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "7gi": { + "name": "Glorious Axe", + "class": "weapon", + "type": "axe", + "stackable": false + }, + "7wn": { + "name": "Polished Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "7yw": { + "name": "Ghost Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "7bw": { + "name": "Lich Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "7gw": { + "name": "Unearthed Wand", + "class": "weapon", + "type": "wand", + "stackable": false + }, + "7cl": { + "name": "Truncheon", + "class": "weapon", + "type": "club", + "stackable": false + }, + "7sc": { + "name": "Mighty Scepter", + "class": "weapon", + "type": "scep", + "stackable": false + }, + "7qs": { + "name": "Seraph Rod", + "class": "weapon", + "type": "scep", + "stackable": false + }, + "7ws": { + "name": "Caduceus", + "class": "weapon", + "type": "scep", + "stackable": false + }, + "7sp": { + "name": "Tyrant Club", + "class": "weapon", + "type": "club", + "stackable": false + }, + "7ma": { + "name": "Reinforced Mace", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "7mt": { + "name": "Devil Star", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "7fl": { + "name": "Scourge", + "class": "weapon", + "type": "mace", + "stackable": false + }, + "7wh": { + "name": "Legendary Mallet", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "7m7": { + "name": "Ogre Maul", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "7gm": { + "name": "Thunder Maul", + "class": "weapon", + "type": "hamm", + "stackable": false + }, + "7ss": { + "name": "Falcata", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7sm": { + "name": "Ataghan", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7sb": { + "name": "Elegant Blade", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7fc": { + "name": "Hydra Edge", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7cr": { + "name": "Phase Blade", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7bs": { + "name": "Conquest Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7ls": { + "name": "Cryptic Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7wd": { + "name": "Mythical Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "72h": { + "name": "Legend Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7cm": { + "name": "Highland Blade", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7gs": { + "name": "Balrog Blade", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7b7": { + "name": "Champion Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7fb": { + "name": "Colossal Sword", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7gd": { + "name": "Colossus Blade", + "class": "weapon", + "type": "swor", + "stackable": false + }, + "7dg": { + "name": "Bone Knife", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "7di": { + "name": "Mithral Point", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "7kr": { + "name": "Fanged Knife", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "7bl": { + "name": "Legend Spike", + "class": "weapon", + "type": "knif", + "stackable": false + }, + "7tk": { + "name": "Flying Knife", + "class": "weapon", + "type": "tkni", + "stackable": true + }, + "7ta": { + "name": "Flying Axe", + "class": "weapon", + "type": "taxe", + "stackable": true + }, + "7bk": { + "name": "Winged Knife", + "class": "weapon", + "type": "tkni", + "stackable": true + }, + "7b8": { + "name": "Winged Axe", + "class": "weapon", + "type": "taxe", + "stackable": true + }, + "7ja": { + "name": "Hyperion Javelin", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "7pi": { + "name": "Stygian Pilum", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "7s7": { + "name": "Balrog Spear", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "7gl": { + "name": "Ghost Glaive", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "7ts": { + "name": "Winged Harpoon", + "class": "weapon", + "type": "jave", + "stackable": true + }, + "7sr": { + "name": "Hyperion Spear", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "7tr": { + "name": "Stygian Pike", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "7br": { + "name": "Mancatcher", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "7st": { + "name": "Ghost Spear", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "7p7": { + "name": "War Pike", + "class": "weapon", + "type": "spea", + "stackable": false + }, + "7o7": { + "name": "Ogre Axe", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "7vo": { + "name": "Colossus Voulge", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "7s8": { + "name": "Thresher", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "7pa": { + "name": "Cryptic Axe", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "7h7": { + "name": "Great Poleaxe", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "7wc": { + "name": "Giant Thresher", + "class": "weapon", + "type": "pole", + "stackable": false + }, + "6ss": { + "name": "Walking Stick", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "6ls": { + "name": "Stalagmite", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "6cs": { + "name": "Elder Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "6bs": { + "name": "Shillelagh", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "6ws": { + "name": "Archon Staff", + "class": "weapon", + "type": "staf", + "stackable": false + }, + "6sb": { + "name": "Spider Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "6hb": { + "name": "Blade Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "6lb": { + "name": "Shadow Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "6cb": { + "name": "Great Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "6s7": { + "name": "Diamond Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "6l7": { + "name": "Crusader Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "6sw": { + "name": "Ward Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "6lw": { + "name": "Hydra Bow", + "class": "weapon", + "type": "bow", + "stackable": false + }, + "6lx": { + "name": "Pellet Bow", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "6mx": { + "name": "Gorgon Crossbow", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "6hx": { + "name": "Colossus Crossbow", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "6rx": { + "name": "Demon Crossbow", + "class": "weapon", + "type": "xbow", + "stackable": false + }, + "ob1": { + "name": "Eagle Orb", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "ob2": { + "name": "Sacred Globe", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "ob3": { + "name": "Smoked Sphere", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "ob4": { + "name": "Clasped Orb", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "ob5": { + "name": "Jared's Stone", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "am1": { + "name": "Stag Bow", + "class": "weapon", + "type": "abow", + "stackable": false + }, + "am2": { + "name": "Reflex Bow", + "class": "weapon", + "type": "abow", + "stackable": false + }, + "am3": { + "name": "Maiden Spear", + "class": "weapon", + "type": "aspe", + "stackable": false + }, + "am4": { + "name": "Maiden Pike", + "class": "weapon", + "type": "aspe", + "stackable": false + }, + "am5": { + "name": "Maiden Javelin", + "class": "weapon", + "type": "ajav", + "stackable": true + }, + "ob6": { + "name": "Glowing Orb", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "ob7": { + "name": "Crystalline Globe", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "ob8": { + "name": "Cloudy Sphere", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "ob9": { + "name": "Sparkling Ball", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "oba": { + "name": "Swirling Crystal", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "am6": { + "name": "Ashwood Bow", + "class": "weapon", + "type": "abow", + "stackable": false + }, + "am7": { + "name": "Ceremonial Bow", + "class": "weapon", + "type": "abow", + "stackable": false + }, + "am8": { + "name": "Ceremonial Spear", + "class": "weapon", + "type": "aspe", + "stackable": false + }, + "am9": { + "name": "Ceremonial Pike", + "class": "weapon", + "type": "aspe", + "stackable": false + }, + "ama": { + "name": "Ceremonial Javelin", + "class": "weapon", + "type": "ajav", + "stackable": true + }, + "obb": { + "name": "Heavenly Stone", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "obc": { + "name": "Eldritch Orb", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "obd": { + "name": "Demon Heart", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "obe": { + "name": "Vortex Orb", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "obf": { + "name": "Dimensional Shard", + "class": "weapon", + "type": "orb", + "stackable": false + }, + "amb": { + "name": "Matriarchal Bow", + "class": "weapon", + "type": "abow", + "stackable": false + }, + "amc": { + "name": "Grand Matron Bow", + "class": "weapon", + "type": "abow", + "stackable": false + }, + "amd": { + "name": "Matriarchal Spear", + "class": "weapon", + "type": "aspe", + "stackable": false + }, + "ame": { + "name": "Matriarchal Pike", + "class": "weapon", + "type": "aspe", + "stackable": false + }, + "amf": { + "name": "Matriarchal Javelin", + "class": "weapon", + "type": "ajav", + "stackable": true + }, + "elx": { + "name": "Elixir", "class": "misc", - "type": "" + "type": "elix", + "stackable": true }, "hpo": { "name": "Healing Potion", "class": "misc", - "type": "hpot" + "type": "hpot", + "stackable": true }, "mpo": { "name": "Mana Potion", "class": "misc", - "type": "mpot" + "type": "mpot", + "stackable": true }, "hpf": { "name": "Full Healing Potion", "class": "misc", - "type": "hpot" + "type": "hpot", + "stackable": true }, "mpf": { "name": "Full Mana Potion", "class": "misc", - "type": "mpot" + "type": "mpot", + "stackable": true + }, + "vps": { + "name": "Stamina Potion", + "class": "misc", + "type": "spot", + "stackable": true + }, + "yps": { + "name": "Antidote Potion", + "class": "misc", + "type": "apot", + "stackable": true + }, + "rvs": { + "name": "Rejuvenation Potion", + "class": "misc", + "type": "rpot", + "stackable": true + }, + "rvl": { + "name": "Full Rejuvenation Potion", + "class": "misc", + "type": "rpot", + "stackable": true + }, + "wms": { + "name": "Thawing Potion", + "class": "misc", + "type": "wpot", + "stackable": true + }, + "tbk": { + "name": "Tome of Town Portal", + "class": "tome", + "type": "book", + "stackable": true + }, + "ibk": { + "name": "Tome of Identify", + "class": "tome", + "type": "book", + "stackable": true + }, + "amu": { + "name": "Amulet", + "class": "misc", + "type": "amul", + "stackable": true + }, + "vip": { + "name": "Amulet of the Viper", + "class": "misc", + "type": "amul", + "stackable": true + }, + "rin": { + "name": "Ring", + "class": "misc", + "type": "ring", + "stackable": true }, "gld": { "name": "Gold", - "class": "stackable", - "type": "gold" + "class": "misc", + "type": "gold", + "stackable": true + }, + "bks": { + "name": "Scroll of Inifuss", + "class": "misc", + "type": "ques", + "stackable": true + }, + "bkd": { + "name": "Key to the Cairn Stones", + "class": "misc", + "type": "ques", + "stackable": true + }, + "aqv": { + "name": "Arrows", + "class": "misc", + "type": "bowq", + "stackable": true + }, + "tch": { + "name": "Torch", + "class": "misc", + "type": "torc", + "stackable": true + }, + "cqv": { + "name": "Bolts", + "class": "misc", + "type": "xboq", + "stackable": true + }, + "tsc": { + "name": "Scroll of Town Portal", + "class": "misc", + "type": "scro", + "stackable": true + }, + "isc": { + "name": "Scroll of Identify", + "class": "misc", + "type": "scro", + "stackable": true + }, + "hrt": { + "name": "Heart", + "class": "misc", + "type": "body", + "stackable": true + }, + "brz": { + "name": "Brain", + "class": "misc", + "type": "body", + "stackable": true + }, + "jaw": { + "name": "Jawbone", + "class": "misc", + "type": "body", + "stackable": true + }, + "eyz": { + "name": "Eye", + "class": "misc", + "type": "body", + "stackable": true + }, + "hrn": { + "name": "Horn", + "class": "misc", + "type": "body", + "stackable": true + }, + "tal": { + "name": "Tail", + "class": "misc", + "type": "body", + "stackable": true + }, + "flg": { + "name": "Flag", + "class": "misc", + "type": "body", + "stackable": true + }, + "fng": { + "name": "Fang", + "class": "misc", + "type": "body", + "stackable": true + }, + "qll": { + "name": "Quill", + "class": "misc", + "type": "body", + "stackable": true + }, + "sol": { + "name": "Soul", + "class": "misc", + "type": "body", + "stackable": true + }, + "scz": { + "name": "Scalp", + "class": "misc", + "type": "body", + "stackable": true + }, + "spe": { + "name": "Spleen", + "class": "misc", + "type": "body", + "stackable": true + }, + "key": { + "name": "Key", + "class": "misc", + "type": "key", + "stackable": true + }, + "luv": { + "name": "The Black Tower Key", + "class": "misc", + "type": "key", + "stackable": true }, "xyz": { "name": "Potion of Life", "class": "misc", - "type": "ques" + "type": "ques", + "stackable": true + }, + "j34": { + "name": "A Jade Figurine", + "class": "misc", + "type": "ques", + "stackable": true + }, + "g34": { + "name": "The Golden Bird", + "class": "misc", + "type": "ques", + "stackable": true + }, + "bbb": { + "name": "Lam Esen's Tome", + "class": "misc", + "type": "ques", + "stackable": true + }, + "box": { + "name": "Horadric Cube", + "class": "misc", + "type": "ques", + "stackable": true + }, + "tr1": { + "name": "Horadric Scroll", + "class": "misc", + "type": "ques", + "stackable": true + }, + "mss": { + "name": "Mephisto's Soulstone", + "class": "misc", + "type": "ques", + "stackable": true }, "ass": { "name": "Book of Skill", "class": "misc", - "type": "ques" + "type": "ques", + "stackable": true + }, + "qey": { + "name": "Khalim's Eye", + "class": "misc", + "type": "ques", + "stackable": true + }, + "qhr": { + "name": "Khalim's Heart", + "class": "misc", + "type": "ques", + "stackable": true + }, + "qbr": { + "name": "Khalim's Brain", + "class": "misc", + "type": "ques", + "stackable": true + }, + "ear": { + "name": "Ear", + "class": "misc", + "type": "play", + "stackable": true + }, + "gcv": { + "name": "Chipped Amethyst", + "class": "misc", + "type": "gema", + "stackable": true + }, + "gfv": { + "name": "Flawed Amethyst", + "class": "misc", + "type": "gema", + "stackable": true + }, + "gsv": { + "name": "Amethyst", + "class": "misc", + "type": "gema", + "stackable": true + }, + "gzv": { + "name": "Flawless Amethyst", + "class": "misc", + "type": "gema", + "stackable": true + }, + "gpv": { + "name": "Perfect Amethyst", + "class": "misc", + "type": "gema", + "stackable": true + }, + "gcy": { + "name": "Chipped Topaz", + "class": "misc", + "type": "gemt", + "stackable": true + }, + "gfy": { + "name": "Flawed Topaz", + "class": "misc", + "type": "gemt", + "stackable": true + }, + "gsy": { + "name": "Topaz", + "class": "misc", + "type": "gemt", + "stackable": true + }, + "gly": { + "name": "Flawless Topaz", + "class": "misc", + "type": "gemt", + "stackable": true + }, + "gpy": { + "name": "Perfect Topaz", + "class": "misc", + "type": "gemt", + "stackable": true + }, + "gcb": { + "name": "Chipped Sapphire", + "class": "misc", + "type": "gems", + "stackable": true + }, + "gfb": { + "name": "Flawed Sapphire", + "class": "misc", + "type": "gems", + "stackable": true }, "gsb": { "name": "Sapphire", "class": "misc", - "type": "gems" + "type": "gems", + "stackable": true + }, + "glb": { + "name": "Flawless Sapphire", + "class": "misc", + "type": "gems", + "stackable": true + }, + "gpb": { + "name": "Perfect Sapphire", + "class": "misc", + "type": "gems", + "stackable": true + }, + "gcg": { + "name": "Chipped Emerald", + "class": "misc", + "type": "geme", + "stackable": true + }, + "gfg": { + "name": "Flawed Emerald", + "class": "misc", + "type": "geme", + "stackable": true }, "gsg": { "name": "Emerald", "class": "misc", - "type": "geme" + "type": "geme", + "stackable": true + }, + "glg": { + "name": "Flawless Emerald", + "class": "misc", + "type": "geme", + "stackable": true + }, + "gpg": { + "name": "Perfect Emerald", + "class": "misc", + "type": "geme", + "stackable": true + }, + "gcr": { + "name": "Chipped Ruby", + "class": "misc", + "type": "gemr", + "stackable": true + }, + "gfr": { + "name": "Flawed Ruby", + "class": "misc", + "type": "gemr", + "stackable": true }, "gsr": { "name": "Ruby", "class": "misc", - "type": "gemr" + "type": "gemr", + "stackable": true + }, + "glr": { + "name": "Flawless Ruby", + "class": "misc", + "type": "gemr", + "stackable": true + }, + "gpr": { + "name": "Perfect Ruby", + "class": "misc", + "type": "gemr", + "stackable": true + }, + "gcw": { + "name": "Chipped Diamond", + "class": "misc", + "type": "gemd", + "stackable": true + }, + "gfw": { + "name": "Flawed Diamond", + "class": "misc", + "type": "gemd", + "stackable": true }, "gsw": { "name": "Diamond", "class": "misc", - "type": "gemd" + "type": "gemd", + "stackable": true + }, + "glw": { + "name": "Flawless Diamond", + "class": "misc", + "type": "gemd", + "stackable": true + }, + "gpw": { + "name": "Perfect Diamond", + "class": "misc", + "type": "gemd", + "stackable": true + }, + "hp1": { + "name": "Minor Healing Potion", + "class": "misc", + "type": "hpot", + "stackable": true + }, + "hp2": { + "name": "Light Healing Potion", + "class": "misc", + "type": "hpot", + "stackable": true + }, + "hp3": { + "name": "Healing Potion", + "class": "misc", + "type": "hpot", + "stackable": true + }, + "hp4": { + "name": "Greater Healing Potion", + "class": "misc", + "type": "hpot", + "stackable": true + }, + "hp5": { + "name": "Super Healing Potion", + "class": "misc", + "type": "hpot", + "stackable": true + }, + "mp1": { + "name": "Minor Mana Potion", + "class": "misc", + "type": "mpot", + "stackable": true + }, + "mp2": { + "name": "Light Mana Potion", + "class": "misc", + "type": "mpot", + "stackable": true + }, + "mp3": { + "name": "Mana Potion", + "class": "misc", + "type": "mpot", + "stackable": true + }, + "mp4": { + "name": "Greater Mana Potion", + "class": "misc", + "type": "mpot", + "stackable": true + }, + "mp5": { + "name": "Super Mana Potion", + "class": "misc", + "type": "mpot", + "stackable": true + }, + "skc": { + "name": "Chipped Skull", + "class": "misc", + "type": "gemz", + "stackable": true + }, + "skf": { + "name": "Flawed Skull", + "class": "misc", + "type": "gemz", + "stackable": true + }, + "sku": { + "name": "Skull", + "class": "misc", + "type": "gemz", + "stackable": true + }, + "skl": { + "name": "Flawless Skull", + "class": "misc", + "type": "gemz", + "stackable": true + }, + "skz": { + "name": "Perfect Skull", + "class": "misc", + "type": "gemz", + "stackable": true + }, + "hrb": { + "name": "Herb", + "class": "misc", + "type": "herb", + "stackable": true + }, + "cm1": { + "name": "Small Charm", + "class": "misc", + "type": "scha", + "stackable": true + }, + "cm2": { + "name": "Large Charm", + "class": "misc", + "type": "mcha", + "stackable": true + }, + "cm3": { + "name": "Grand Charm", + "class": "misc", + "type": "lcha", + "stackable": true }, "rps": { "name": "Small Red Potion", - "class": "stackable", - "type": "hpot" + "class": "misc", + "type": "hpot", + "stackable": true }, "rpl": { "name": "Large Red Potion", - "class": "stackable", - "type": "hpot" + "class": "misc", + "type": "hpot", + "stackable": true }, "bps": { "name": "Small Blue Potion", - "class": "stackable", - "type": "mpot" + "class": "misc", + "type": "mpot", + "stackable": true }, "bpl": { "name": "Large Blue Potion", - "class": "stackable", - "type": "mpot" + "class": "misc", + "type": "mpot", + "stackable": true }, "r01": { "name": "El Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r02": { "name": "Eld Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r03": { "name": "Tir Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r04": { "name": "Nef Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r05": { "name": "Eth Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r06": { "name": "Ith Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r07": { "name": "Tal Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r08": { "name": "Ral Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r09": { "name": "Ort Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r10": { "name": "Thul Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r11": { "name": "Amn Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r12": { "name": "Sol Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r13": { "name": "Shael Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r14": { "name": "Dol Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r15": { "name": "Hel Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r16": { "name": "Io Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r17": { "name": "Lum Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r18": { "name": "Ko Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r19": { "name": "Fal Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r20": { "name": "Lem Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r21": { "name": "Pul Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r22": { "name": "Um Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r23": { "name": "Mal Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r24": { "name": "Ist Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r25": { "name": "Gul Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r26": { "name": "Vex Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r27": { "name": "Ohm Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r28": { "name": "Lo Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r29": { "name": "Sur Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r30": { "name": "Ber Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r31": { "name": "Jah Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r32": { "name": "Cham Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true }, "r33": { "name": "Zod Rune", "class": "misc", - "type": "rune" + "type": "rune", + "stackable": true + }, + "jew": { + "name": "Jewel", + "class": "misc", + "type": "jewl", + "stackable": true }, "ice": { "name": "Malah's Potion", "class": "misc", - "type": "ques" + "type": "ques", + "stackable": true + }, + "0sc": { + "name": "Scroll of Knowledge", + "class": "misc", + "type": "scro", + "stackable": true }, "tr2": { "name": "Scroll of Resistance", "class": "misc", - "type": "ques" + "type": "ques", + "stackable": true + }, + "pk1": { + "name": "Key of Terror", + "class": "misc", + "type": "ques", + "stackable": true + }, + "pk2": { + "name": "Key of Hate", + "class": "misc", + "type": "ques", + "stackable": true + }, + "pk3": { + "name": "Key of Destruction", + "class": "misc", + "type": "ques", + "stackable": true + }, + "dhn": { + "name": "Diablo's Horn", + "class": "misc", + "type": "ques", + "stackable": true + }, + "bey": { + "name": "Baal's Eye", + "class": "misc", + "type": "ques", + "stackable": true + }, + "mbr": { + "name": "Mephisto's Brain", + "class": "misc", + "type": "ques", + "stackable": true }, "toa": { "name": "Token of Absolution", "class": "misc", - "type": "ques" + "type": "ques", + "stackable": true + }, + "tes": { + "name": "Twisted Essence of Suffering", + "class": "misc", + "type": "ques", + "stackable": true + }, + "ceh": { + "name": "Charged Essense of Hatred", + "class": "misc", + "type": "ques", + "stackable": true + }, + "bet": { + "name": "Burning Essence of Terror", + "class": "misc", + "type": "ques", + "stackable": true + }, + "fed": { + "name": "Festering Essence of Destruction", + "class": "misc", + "type": "ques", + "stackable": true + }, + "std": { + "name": "Standard of Heroes", + "class": "misc", + "type": "ques", + "stackable": true } } \ No newline at end of file diff --git a/d2warehouse/parser.py b/d2warehouse/parser.py index a175f9c..3059359 100644 --- a/d2warehouse/parser.py +++ b/d2warehouse/parser.py @@ -311,7 +311,9 @@ def parse_personalization(bits: bitarray) -> tuple[str, int]: def parse_basetype_data(bits: bitarray, item: Item) -> tuple[Item, int]: - cls = lookup_basetype(item.code)["class"] + basetype = lookup_basetype(item.code) + cls = basetype["class"] + stackable = basetype["stackable"] ptr = 0 if cls == "tome": @@ -331,7 +333,7 @@ def parse_basetype_data(bits: bitarray, item: Item) -> tuple[Item, int]: item.durability = ba2int(bits[ptr : ptr + 8]) ptr += 8 + 1 # uknown bit after durability - if cls in ["tome", "stackable"]: + if stackable: item.quantity = ba2int(bits[ptr : ptr + 9]) ptr += 9 diff --git a/d2warehouse/tests/test_parse_item.py b/d2warehouse/tests/test_parse_item.py index 68fbbdc..00398a5 100644 --- a/d2warehouse/tests/test_parse_item.py +++ b/d2warehouse/tests/test_parse_item.py @@ -113,3 +113,8 @@ class ParseItemTest(unittest.TestCase): self.assertEqual(str(item.stats[1]), "Lightning Resist +13%") self.assertEqual(str(item.stats[2]), "Cold Resist +13%") self.assertEqual(str(item.stats[3]), "Poison Resist +13%") + + def test_stackable_weapon(self): + data = bytes.fromhex("10208000054814dddb852a79b4708640408096ff") + data, item = parse_item(data) + self.assertEqual(data, b"")