73 lines
1.9 KiB
Python
73 lines
1.9 KiB
Python
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": row["stackable"] == "1",
|
|
}
|
|
|
|
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": row["stackable"] == "1",
|
|
}
|
|
|
|
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": row["stackable"] == "1",
|
|
}
|
|
|
|
for code, patch in item_patches.items():
|
|
items[code].update(patch)
|
|
|
|
with open("items.json", "w") as f:
|
|
json.dump(items, f, indent=4)
|