Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 54 additions & 51 deletions dnd_creature_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,60 +5,63 @@


file_creatures = _pd.ExcelFile(str(_os.getcwd()) + r"\dbs\dnd_creatures.xlsx")
creatures = open("creatures.py", "w")
crt_list = []

def parseCreatures(file_creatures):
for ark in file_creatures.sheet_names:
nazwa = ark.lower().replace(' ', '_')
arkusz = file_creatures.parse(ark).fillna("")
crt = {}
index = []
crt["MAIN"] = {}
crt["ABILITIES"] = {}
crt["SKILLS"] = {}
crt["PERKS"] = []
crt["EQUIPMENT"] = {}
crt["SPECIAL"] = []
crt["ID"] = nazwa
for row in range(len(arkusz)):
if arkusz["VALUE"][row].isupper():
index.append((arkusz["VALUE"][row], row))
index.append(("END", len(arkusz)))
for i in range(len(index)):
name = index[i][0]
val = index[i][1]
if name == "MAIN":
for row in range(val+1, index[i+1][1]-1):
if arkusz["VALUE"][row] == "hit_dice":
crt["MAIN"]["hit_dice"] = str(arkusz["KEY"][row]).split(",")
else:
crt["MAIN"]["{0}".format(arkusz["VALUE"][row])] = "{0}".format(arkusz["KEY"][row])
elif name == "ABILITIES":
for row in range(val+1, index[i+1][1]):
crt["ABILITIES"]["{0}".format(arkusz["VALUE"][row])] = "{0}".format(arkusz["KEY"][row])
elif name == "SKILLS":
for row in range(val+1, index[i+1][1]):
crt["SKILLS"]["{0}".format(arkusz["VALUE"][row])] = "{0}".format(arkusz["KEY"][row])
elif name == "PERKS":
for row in range(val+1, index[i+1][1]):
crt["PERKS"].append(arkusz["VALUE"][row])
elif name == "EQUIPMENT":
for row in range(val+1, index[i+1][1]):
crt["EQUIPMENT"]["{0}".format(arkusz["VALUE"][row])] = "{0}".format(arkusz["KEY"][row])
elif name == "SPECIAL":
for row in range(val+1, index[i+1][1]):
crt["SPECIAL"].append(arkusz["VALUE"][row])
else:
pass
crt_list.append(crt)
creatures.write(crt["ID"].lower().replace(" ", "_"))
creatures.write(" = %s" % crt)
creatures.write("\n")
creatures.close()
with open("creatures.py", "w") as creatures:

crt_list = []

parseCreatures(file)
def parseCreatures(file_creatures):
for ark in file_creatures.sheet_names:
nazwa = ark.lower().replace(' ', '_')
arkusz = file_creatures.parse(ark).fillna("")
crt = {}
index = []
crt["MAIN"] = {}
crt["ABILITIES"] = {}
crt["SKILLS"] = {}
crt["PERKS"] = []
crt["EQUIPMENT"] = {}
crt["SPECIAL"] = []
crt["ID"] = nazwa
for row in range(len(arkusz)):
if arkusz["VALUE"][row].isupper():
index.append((arkusz["VALUE"][row], row))
index.append(("END", len(arkusz)))
for i in range(len(index)):
name = index[i][0]
val = index[i][1]
if name == "MAIN":
for row in range(val+1, index[i+1][1]-1):
if arkusz["VALUE"][row] == "hit_dice":
crt["MAIN"]["hit_dice"] = str(arkusz["KEY"][row]).split(",")
else:
crt["MAIN"]["{0}".format(arkusz["VALUE"][row])] = "{0}".format(arkusz["KEY"][row])
elif name == "ABILITIES":
for row in range(val+1, index[i+1][1]):
crt["ABILITIES"]["{0}".format(arkusz["VALUE"][row])] = "{0}".format(arkusz["KEY"][row])
elif name == "SKILLS":
for row in range(val+1, index[i+1][1]):
crt["SKILLS"]["{0}".format(arkusz["VALUE"][row])] = "{0}".format(arkusz["KEY"][row])
elif name == "PERKS":
for row in range(val+1, index[i+1][1]):
crt["PERKS"].append(arkusz["VALUE"][row])
elif name == "EQUIPMENT":
for row in range(val+1, index[i+1][1]):
crt["EQUIPMENT"]["{0}".format(arkusz["VALUE"][row])] = "{0}".format(arkusz["KEY"][row])
elif name == "SPECIAL":
for row in range(val+1, index[i+1][1]):
crt["SPECIAL"].append(arkusz["VALUE"][row])
else:
pass
crt_list.append(crt)
creatures.write(crt["ID"].lower().replace(" ", "_"))
creatures.write(" = %s" % crt)
creatures.write("\n")



# ta linijka jest do czegoś potrzebna?
parseCreatures(file)