Fix issue in item extraction when stackable is "0" instead of ""

This commit is contained in:
2023-10-25 16:41:27 +02:00
parent 074964aa87
commit b5b7149c79
3 changed files with 150 additions and 144 deletions

View File

@@ -32,7 +32,7 @@ with open("armor.txt", newline="") as f:
"name": names[code] if code in names else row["name"], "name": names[code] if code in names else row["name"],
"class": "armor", "class": "armor",
"type": row["type"], "type": row["type"],
"stackable": bool(row["stackable"]), "stackable": row["stackable"] == "1",
} }
with open("weapons.txt", newline="") as f: with open("weapons.txt", newline="") as f:
@@ -48,7 +48,7 @@ with open("weapons.txt", newline="") as f:
"name": names[code] if code in names else row["name"], "name": names[code] if code in names else row["name"],
"class": "weapon", "class": "weapon",
"type": row["type"], "type": row["type"],
"stackable": bool(row["stackable"]), "stackable": row["stackable"] == "1",
} }
with open("misc.txt", newline="") as f: with open("misc.txt", newline="") as f:
@@ -62,7 +62,7 @@ with open("misc.txt", newline="") as f:
"name": names[code] if code in names else row["name"], "name": names[code] if code in names else row["name"],
"class": "misc", "class": "misc",
"type": row["type"], "type": row["type"],
"stackable": bool(row["stackable"]), "stackable": row["stackable"] == "1",
} }
for code, patch in item_patches.items(): for code, patch in item_patches.items():

View File

@@ -3051,61 +3051,61 @@
"name": "Elixir", "name": "Elixir",
"class": "misc", "class": "misc",
"type": "elix", "type": "elix",
"stackable": true "stackable": false
}, },
"hpo": { "hpo": {
"name": "Healing Potion", "name": "Healing Potion",
"class": "misc", "class": "misc",
"type": "hpot", "type": "hpot",
"stackable": true "stackable": false
}, },
"mpo": { "mpo": {
"name": "Mana Potion", "name": "Mana Potion",
"class": "misc", "class": "misc",
"type": "mpot", "type": "mpot",
"stackable": true "stackable": false
}, },
"hpf": { "hpf": {
"name": "Full Healing Potion", "name": "Full Healing Potion",
"class": "misc", "class": "misc",
"type": "hpot", "type": "hpot",
"stackable": true "stackable": false
}, },
"mpf": { "mpf": {
"name": "Full Mana Potion", "name": "Full Mana Potion",
"class": "misc", "class": "misc",
"type": "mpot", "type": "mpot",
"stackable": true "stackable": false
}, },
"vps": { "vps": {
"name": "Stamina Potion", "name": "Stamina Potion",
"class": "misc", "class": "misc",
"type": "spot", "type": "spot",
"stackable": true "stackable": false
}, },
"yps": { "yps": {
"name": "Antidote Potion", "name": "Antidote Potion",
"class": "misc", "class": "misc",
"type": "apot", "type": "apot",
"stackable": true "stackable": false
}, },
"rvs": { "rvs": {
"name": "Rejuvenation Potion", "name": "Rejuvenation Potion",
"class": "misc", "class": "misc",
"type": "rpot", "type": "rpot",
"stackable": true "stackable": false
}, },
"rvl": { "rvl": {
"name": "Full Rejuvenation Potion", "name": "Full Rejuvenation Potion",
"class": "misc", "class": "misc",
"type": "rpot", "type": "rpot",
"stackable": true "stackable": false
}, },
"wms": { "wms": {
"name": "Thawing Potion", "name": "Thawing Potion",
"class": "misc", "class": "misc",
"type": "wpot", "type": "wpot",
"stackable": true "stackable": false
}, },
"tbk": { "tbk": {
"name": "Tome of Town Portal", "name": "Tome of Town Portal",
@@ -3123,19 +3123,19 @@
"name": "Amulet", "name": "Amulet",
"class": "misc", "class": "misc",
"type": "amul", "type": "amul",
"stackable": true "stackable": false
}, },
"vip": { "vip": {
"name": "Amulet of the Viper", "name": "Amulet of the Viper",
"class": "misc", "class": "misc",
"type": "amul", "type": "amul",
"stackable": true "stackable": false
}, },
"rin": { "rin": {
"name": "Ring", "name": "Ring",
"class": "misc", "class": "misc",
"type": "ring", "type": "ring",
"stackable": true "stackable": false
}, },
"gld": { "gld": {
"name": "Gold", "name": "Gold",
@@ -3147,13 +3147,13 @@
"name": "Scroll of Inifuss", "name": "Scroll of Inifuss",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"bkd": { "bkd": {
"name": "Key to the Cairn Stones", "name": "Key to the Cairn Stones",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"aqv": { "aqv": {
"name": "Arrows", "name": "Arrows",
@@ -3165,7 +3165,7 @@
"name": "Torch", "name": "Torch",
"class": "misc", "class": "misc",
"type": "torc", "type": "torc",
"stackable": true "stackable": false
}, },
"cqv": { "cqv": {
"name": "Bolts", "name": "Bolts",
@@ -3177,85 +3177,85 @@
"name": "Scroll of Town Portal", "name": "Scroll of Town Portal",
"class": "misc", "class": "misc",
"type": "scro", "type": "scro",
"stackable": true "stackable": false
}, },
"isc": { "isc": {
"name": "Scroll of Identify", "name": "Scroll of Identify",
"class": "misc", "class": "misc",
"type": "scro", "type": "scro",
"stackable": true "stackable": false
}, },
"hrt": { "hrt": {
"name": "Heart", "name": "Heart",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"brz": { "brz": {
"name": "Brain", "name": "Brain",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"jaw": { "jaw": {
"name": "Jawbone", "name": "Jawbone",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"eyz": { "eyz": {
"name": "Eye", "name": "Eye",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"hrn": { "hrn": {
"name": "Horn", "name": "Horn",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"tal": { "tal": {
"name": "Tail", "name": "Tail",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"flg": { "flg": {
"name": "Flag", "name": "Flag",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"fng": { "fng": {
"name": "Fang", "name": "Fang",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"qll": { "qll": {
"name": "Quill", "name": "Quill",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"sol": { "sol": {
"name": "Soul", "name": "Soul",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"scz": { "scz": {
"name": "Scalp", "name": "Scalp",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"spe": { "spe": {
"name": "Spleen", "name": "Spleen",
"class": "misc", "class": "misc",
"type": "body", "type": "body",
"stackable": true "stackable": false
}, },
"key": { "key": {
"name": "Key", "name": "Key",
@@ -3267,373 +3267,373 @@
"name": "The Black Tower Key", "name": "The Black Tower Key",
"class": "misc", "class": "misc",
"type": "key", "type": "key",
"stackable": true "stackable": false
}, },
"xyz": { "xyz": {
"name": "Potion of Life", "name": "Potion of Life",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"j34": { "j34": {
"name": "A Jade Figurine", "name": "A Jade Figurine",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"g34": { "g34": {
"name": "The Golden Bird", "name": "The Golden Bird",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"bbb": { "bbb": {
"name": "Lam Esen's Tome", "name": "Lam Esen's Tome",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"box": { "box": {
"name": "Horadric Cube", "name": "Horadric Cube",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"tr1": { "tr1": {
"name": "Horadric Scroll", "name": "Horadric Scroll",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"mss": { "mss": {
"name": "Mephisto's Soulstone", "name": "Mephisto's Soulstone",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"ass": { "ass": {
"name": "Book of Skill", "name": "Book of Skill",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"qey": { "qey": {
"name": "Khalim's Eye", "name": "Khalim's Eye",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"qhr": { "qhr": {
"name": "Khalim's Heart", "name": "Khalim's Heart",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"qbr": { "qbr": {
"name": "Khalim's Brain", "name": "Khalim's Brain",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"ear": { "ear": {
"name": "Ear", "name": "Ear",
"class": "misc", "class": "misc",
"type": "play", "type": "play",
"stackable": true "stackable": false
}, },
"gcv": { "gcv": {
"name": "Chipped Amethyst", "name": "Chipped Amethyst",
"class": "misc", "class": "misc",
"type": "gema", "type": "gema",
"stackable": true "stackable": false
}, },
"gfv": { "gfv": {
"name": "Flawed Amethyst", "name": "Flawed Amethyst",
"class": "misc", "class": "misc",
"type": "gema", "type": "gema",
"stackable": true "stackable": false
}, },
"gsv": { "gsv": {
"name": "Amethyst", "name": "Amethyst",
"class": "misc", "class": "misc",
"type": "gema", "type": "gema",
"stackable": true "stackable": false
}, },
"gzv": { "gzv": {
"name": "Flawless Amethyst", "name": "Flawless Amethyst",
"class": "misc", "class": "misc",
"type": "gema", "type": "gema",
"stackable": true "stackable": false
}, },
"gpv": { "gpv": {
"name": "Perfect Amethyst", "name": "Perfect Amethyst",
"class": "misc", "class": "misc",
"type": "gema", "type": "gema",
"stackable": true "stackable": false
}, },
"gcy": { "gcy": {
"name": "Chipped Topaz", "name": "Chipped Topaz",
"class": "misc", "class": "misc",
"type": "gemt", "type": "gemt",
"stackable": true "stackable": false
}, },
"gfy": { "gfy": {
"name": "Flawed Topaz", "name": "Flawed Topaz",
"class": "misc", "class": "misc",
"type": "gemt", "type": "gemt",
"stackable": true "stackable": false
}, },
"gsy": { "gsy": {
"name": "Topaz", "name": "Topaz",
"class": "misc", "class": "misc",
"type": "gemt", "type": "gemt",
"stackable": true "stackable": false
}, },
"gly": { "gly": {
"name": "Flawless Topaz", "name": "Flawless Topaz",
"class": "misc", "class": "misc",
"type": "gemt", "type": "gemt",
"stackable": true "stackable": false
}, },
"gpy": { "gpy": {
"name": "Perfect Topaz", "name": "Perfect Topaz",
"class": "misc", "class": "misc",
"type": "gemt", "type": "gemt",
"stackable": true "stackable": false
}, },
"gcb": { "gcb": {
"name": "Chipped Sapphire", "name": "Chipped Sapphire",
"class": "misc", "class": "misc",
"type": "gems", "type": "gems",
"stackable": true "stackable": false
}, },
"gfb": { "gfb": {
"name": "Flawed Sapphire", "name": "Flawed Sapphire",
"class": "misc", "class": "misc",
"type": "gems", "type": "gems",
"stackable": true "stackable": false
}, },
"gsb": { "gsb": {
"name": "Sapphire", "name": "Sapphire",
"class": "misc", "class": "misc",
"type": "gems", "type": "gems",
"stackable": true "stackable": false
}, },
"glb": { "glb": {
"name": "Flawless Sapphire", "name": "Flawless Sapphire",
"class": "misc", "class": "misc",
"type": "gems", "type": "gems",
"stackable": true "stackable": false
}, },
"gpb": { "gpb": {
"name": "Perfect Sapphire", "name": "Perfect Sapphire",
"class": "misc", "class": "misc",
"type": "gems", "type": "gems",
"stackable": true "stackable": false
}, },
"gcg": { "gcg": {
"name": "Chipped Emerald", "name": "Chipped Emerald",
"class": "misc", "class": "misc",
"type": "geme", "type": "geme",
"stackable": true "stackable": false
}, },
"gfg": { "gfg": {
"name": "Flawed Emerald", "name": "Flawed Emerald",
"class": "misc", "class": "misc",
"type": "geme", "type": "geme",
"stackable": true "stackable": false
}, },
"gsg": { "gsg": {
"name": "Emerald", "name": "Emerald",
"class": "misc", "class": "misc",
"type": "geme", "type": "geme",
"stackable": true "stackable": false
}, },
"glg": { "glg": {
"name": "Flawless Emerald", "name": "Flawless Emerald",
"class": "misc", "class": "misc",
"type": "geme", "type": "geme",
"stackable": true "stackable": false
}, },
"gpg": { "gpg": {
"name": "Perfect Emerald", "name": "Perfect Emerald",
"class": "misc", "class": "misc",
"type": "geme", "type": "geme",
"stackable": true "stackable": false
}, },
"gcr": { "gcr": {
"name": "Chipped Ruby", "name": "Chipped Ruby",
"class": "misc", "class": "misc",
"type": "gemr", "type": "gemr",
"stackable": true "stackable": false
}, },
"gfr": { "gfr": {
"name": "Flawed Ruby", "name": "Flawed Ruby",
"class": "misc", "class": "misc",
"type": "gemr", "type": "gemr",
"stackable": true "stackable": false
}, },
"gsr": { "gsr": {
"name": "Ruby", "name": "Ruby",
"class": "misc", "class": "misc",
"type": "gemr", "type": "gemr",
"stackable": true "stackable": false
}, },
"glr": { "glr": {
"name": "Flawless Ruby", "name": "Flawless Ruby",
"class": "misc", "class": "misc",
"type": "gemr", "type": "gemr",
"stackable": true "stackable": false
}, },
"gpr": { "gpr": {
"name": "Perfect Ruby", "name": "Perfect Ruby",
"class": "misc", "class": "misc",
"type": "gemr", "type": "gemr",
"stackable": true "stackable": false
}, },
"gcw": { "gcw": {
"name": "Chipped Diamond", "name": "Chipped Diamond",
"class": "misc", "class": "misc",
"type": "gemd", "type": "gemd",
"stackable": true "stackable": false
}, },
"gfw": { "gfw": {
"name": "Flawed Diamond", "name": "Flawed Diamond",
"class": "misc", "class": "misc",
"type": "gemd", "type": "gemd",
"stackable": true "stackable": false
}, },
"gsw": { "gsw": {
"name": "Diamond", "name": "Diamond",
"class": "misc", "class": "misc",
"type": "gemd", "type": "gemd",
"stackable": true "stackable": false
}, },
"glw": { "glw": {
"name": "Flawless Diamond", "name": "Flawless Diamond",
"class": "misc", "class": "misc",
"type": "gemd", "type": "gemd",
"stackable": true "stackable": false
}, },
"gpw": { "gpw": {
"name": "Perfect Diamond", "name": "Perfect Diamond",
"class": "misc", "class": "misc",
"type": "gemd", "type": "gemd",
"stackable": true "stackable": false
}, },
"hp1": { "hp1": {
"name": "Minor Healing Potion", "name": "Minor Healing Potion",
"class": "misc", "class": "misc",
"type": "hpot", "type": "hpot",
"stackable": true "stackable": false
}, },
"hp2": { "hp2": {
"name": "Light Healing Potion", "name": "Light Healing Potion",
"class": "misc", "class": "misc",
"type": "hpot", "type": "hpot",
"stackable": true "stackable": false
}, },
"hp3": { "hp3": {
"name": "Healing Potion", "name": "Healing Potion",
"class": "misc", "class": "misc",
"type": "hpot", "type": "hpot",
"stackable": true "stackable": false
}, },
"hp4": { "hp4": {
"name": "Greater Healing Potion", "name": "Greater Healing Potion",
"class": "misc", "class": "misc",
"type": "hpot", "type": "hpot",
"stackable": true "stackable": false
}, },
"hp5": { "hp5": {
"name": "Super Healing Potion", "name": "Super Healing Potion",
"class": "misc", "class": "misc",
"type": "hpot", "type": "hpot",
"stackable": true "stackable": false
}, },
"mp1": { "mp1": {
"name": "Minor Mana Potion", "name": "Minor Mana Potion",
"class": "misc", "class": "misc",
"type": "mpot", "type": "mpot",
"stackable": true "stackable": false
}, },
"mp2": { "mp2": {
"name": "Light Mana Potion", "name": "Light Mana Potion",
"class": "misc", "class": "misc",
"type": "mpot", "type": "mpot",
"stackable": true "stackable": false
}, },
"mp3": { "mp3": {
"name": "Mana Potion", "name": "Mana Potion",
"class": "misc", "class": "misc",
"type": "mpot", "type": "mpot",
"stackable": true "stackable": false
}, },
"mp4": { "mp4": {
"name": "Greater Mana Potion", "name": "Greater Mana Potion",
"class": "misc", "class": "misc",
"type": "mpot", "type": "mpot",
"stackable": true "stackable": false
}, },
"mp5": { "mp5": {
"name": "Super Mana Potion", "name": "Super Mana Potion",
"class": "misc", "class": "misc",
"type": "mpot", "type": "mpot",
"stackable": true "stackable": false
}, },
"skc": { "skc": {
"name": "Chipped Skull", "name": "Chipped Skull",
"class": "misc", "class": "misc",
"type": "gemz", "type": "gemz",
"stackable": true "stackable": false
}, },
"skf": { "skf": {
"name": "Flawed Skull", "name": "Flawed Skull",
"class": "misc", "class": "misc",
"type": "gemz", "type": "gemz",
"stackable": true "stackable": false
}, },
"sku": { "sku": {
"name": "Skull", "name": "Skull",
"class": "misc", "class": "misc",
"type": "gemz", "type": "gemz",
"stackable": true "stackable": false
}, },
"skl": { "skl": {
"name": "Flawless Skull", "name": "Flawless Skull",
"class": "misc", "class": "misc",
"type": "gemz", "type": "gemz",
"stackable": true "stackable": false
}, },
"skz": { "skz": {
"name": "Perfect Skull", "name": "Perfect Skull",
"class": "misc", "class": "misc",
"type": "gemz", "type": "gemz",
"stackable": true "stackable": false
}, },
"hrb": { "hrb": {
"name": "Herb", "name": "Herb",
"class": "misc", "class": "misc",
"type": "herb", "type": "herb",
"stackable": true "stackable": false
}, },
"cm1": { "cm1": {
"name": "Small Charm", "name": "Small Charm",
"class": "misc", "class": "misc",
"type": "scha", "type": "scha",
"stackable": true "stackable": false
}, },
"cm2": { "cm2": {
"name": "Large Charm", "name": "Large Charm",
"class": "misc", "class": "misc",
"type": "mcha", "type": "mcha",
"stackable": true "stackable": false
}, },
"cm3": { "cm3": {
"name": "Grand Charm", "name": "Grand Charm",
"class": "misc", "class": "misc",
"type": "lcha", "type": "lcha",
"stackable": true "stackable": false
}, },
"rps": { "rps": {
"name": "Small Red Potion", "name": "Small Red Potion",
@@ -3663,294 +3663,294 @@
"name": "El Rune", "name": "El Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r02": { "r02": {
"name": "Eld Rune", "name": "Eld Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r03": { "r03": {
"name": "Tir Rune", "name": "Tir Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r04": { "r04": {
"name": "Nef Rune", "name": "Nef Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r05": { "r05": {
"name": "Eth Rune", "name": "Eth Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r06": { "r06": {
"name": "Ith Rune", "name": "Ith Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r07": { "r07": {
"name": "Tal Rune", "name": "Tal Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r08": { "r08": {
"name": "Ral Rune", "name": "Ral Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r09": { "r09": {
"name": "Ort Rune", "name": "Ort Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r10": { "r10": {
"name": "Thul Rune", "name": "Thul Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r11": { "r11": {
"name": "Amn Rune", "name": "Amn Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r12": { "r12": {
"name": "Sol Rune", "name": "Sol Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r13": { "r13": {
"name": "Shael Rune", "name": "Shael Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r14": { "r14": {
"name": "Dol Rune", "name": "Dol Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r15": { "r15": {
"name": "Hel Rune", "name": "Hel Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r16": { "r16": {
"name": "Io Rune", "name": "Io Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r17": { "r17": {
"name": "Lum Rune", "name": "Lum Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r18": { "r18": {
"name": "Ko Rune", "name": "Ko Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r19": { "r19": {
"name": "Fal Rune", "name": "Fal Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r20": { "r20": {
"name": "Lem Rune", "name": "Lem Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r21": { "r21": {
"name": "Pul Rune", "name": "Pul Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r22": { "r22": {
"name": "Um Rune", "name": "Um Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r23": { "r23": {
"name": "Mal Rune", "name": "Mal Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r24": { "r24": {
"name": "Ist Rune", "name": "Ist Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r25": { "r25": {
"name": "Gul Rune", "name": "Gul Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r26": { "r26": {
"name": "Vex Rune", "name": "Vex Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r27": { "r27": {
"name": "Ohm Rune", "name": "Ohm Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r28": { "r28": {
"name": "Lo Rune", "name": "Lo Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r29": { "r29": {
"name": "Sur Rune", "name": "Sur Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r30": { "r30": {
"name": "Ber Rune", "name": "Ber Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r31": { "r31": {
"name": "Jah Rune", "name": "Jah Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r32": { "r32": {
"name": "Cham Rune", "name": "Cham Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"r33": { "r33": {
"name": "Zod Rune", "name": "Zod Rune",
"class": "misc", "class": "misc",
"type": "rune", "type": "rune",
"stackable": true "stackable": false
}, },
"jew": { "jew": {
"name": "Jewel", "name": "Jewel",
"class": "misc", "class": "misc",
"type": "jewl", "type": "jewl",
"stackable": true "stackable": false
}, },
"ice": { "ice": {
"name": "Malah's Potion", "name": "Malah's Potion",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"0sc": { "0sc": {
"name": "Scroll of Knowledge", "name": "Scroll of Knowledge",
"class": "misc", "class": "misc",
"type": "scro", "type": "scro",
"stackable": true "stackable": false
}, },
"tr2": { "tr2": {
"name": "Scroll of Resistance", "name": "Scroll of Resistance",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"pk1": { "pk1": {
"name": "Key of Terror", "name": "Key of Terror",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"pk2": { "pk2": {
"name": "Key of Hate", "name": "Key of Hate",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"pk3": { "pk3": {
"name": "Key of Destruction", "name": "Key of Destruction",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"dhn": { "dhn": {
"name": "Diablo's Horn", "name": "Diablo's Horn",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"bey": { "bey": {
"name": "Baal's Eye", "name": "Baal's Eye",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"mbr": { "mbr": {
"name": "Mephisto's Brain", "name": "Mephisto's Brain",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"toa": { "toa": {
"name": "Token of Absolution", "name": "Token of Absolution",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"tes": { "tes": {
"name": "Twisted Essence of Suffering", "name": "Twisted Essence of Suffering",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"ceh": { "ceh": {
"name": "Charged Essense of Hatred", "name": "Charged Essense of Hatred",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"bet": { "bet": {
"name": "Burning Essence of Terror", "name": "Burning Essence of Terror",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"fed": { "fed": {
"name": "Festering Essence of Destruction", "name": "Festering Essence of Destruction",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
}, },
"std": { "std": {
"name": "Standard of Heroes", "name": "Standard of Heroes",
"class": "misc", "class": "misc",
"type": "ques", "type": "ques",
"stackable": true "stackable": false
} }
} }

View File

@@ -118,3 +118,9 @@ class ParseItemTest(unittest.TestCase):
data = bytes.fromhex("10208000054814dddb852a79b4708640408096ff") data = bytes.fromhex("10208000054814dddb852a79b4708640408096ff")
data, item = parse_item(data) data, item = parse_item(data)
self.assertEqual(data, b"") self.assertEqual(data, b"")
def test_token_of_absolution(self):
# this is one of the items that had stackable "0" instead of ""
data = bytes.fromhex("100080000524d4fc5f308dc1e10908fe03")
data, item = parse_item(data)
self.assertEqual(data, b"")