Skip to content

Commit 407b221

Browse files
committed
Replaced ability generation script with full build data generation script
1 parent ef9496b commit 407b221

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed
Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
import xml.etree.ElementTree
77

88

9-
def generate_abilities(balance_data_path):
9+
def generate_build_data(balance_data_path):
1010
abilities = {}
11+
units = {}
1112

1213
for xml_file_path in glob.glob(os.path.join(balance_data_path, "*.xml")):
1314
tree = xml.etree.ElementTree.parse(xml_file_path)
@@ -19,8 +20,13 @@ def generate_abilities(balance_data_path):
1920

2021
unit_name = root.get("id")
2122

23+
meta_element = root.find("./meta")
24+
25+
if unit_name and meta_element is not None and meta_element.get("index"):
26+
units[meta_element.get("index")] = unit_name
27+
2228
build_unit_element = root.find("./builds/unit")
23-
if build_unit_element:
29+
if build_unit_element is not None:
2430
build_ability_index = build_unit_element.get("ability")
2531

2632
if unit_name == "SCV":
@@ -54,13 +60,16 @@ def generate_abilities(balance_data_path):
5460
abilities[train_ability_index] = "{}Train{}".format(unit_name, trained_unit_name)
5561

5662
research_upgrade_element = root.find("./researches/upgrade")
57-
if research_upgrade_element:
63+
if research_upgrade_element is not None:
5864
research_ability_index = research_upgrade_element.get("ability")
5965
research_ability_name = "{}Research".format(unit_name)
6066

6167
abilities[research_ability_index] = research_ability_name
6268

63-
return collections.OrderedDict(sorted(abilities.items(), key=lambda x: int(x[0])))
69+
sorted_abilities = collections.OrderedDict(sorted(abilities.items(), key=lambda x: int(x[0])))
70+
sorted_units = collections.OrderedDict(sorted(units.items(), key=lambda x: int(x[0])))
71+
72+
return sorted_units, sorted_abilities
6473

6574

6675
def main():
@@ -72,11 +81,16 @@ def main():
7281

7382
args = parser.parse_args()
7483

75-
abilities = generate_abilities(args.balance_data_path)
84+
units, abilities = generate_build_data(args.balance_data_path)
7685

77-
if not abilities:
86+
if not units or not abilities:
7887
raise ValueError("No balance data found at provided balance data path.")
7988

89+
with open('{}_units.csv'.format(args.build_version), 'w', newline='') as csvfile:
90+
csv_writer = csv.writer(csvfile, delimiter=',')
91+
for unit_index, unit_name in units.items():
92+
csv_writer.writerow([unit_index, unit_name])
93+
8094
with open('{}_abilities.csv'.format(args.build_version), 'w', newline='') as csvfile:
8195
csv_writer = csv.writer(csvfile, delimiter=',')
8296
for ability_index, ability_name in abilities.items():

0 commit comments

Comments
 (0)