def repair_decoration_colors(): data = load_data() for entry in data.decoration_map.values(): skill_en = entry['skill_en'] skill_entry = data.skill_map.entry_of("en", skill_en) entry['icon_color'] = skill_entry['icon_color'] decoration_schema = schema.DecorationBaseSchema() result, errors = decoration_schema.dump(data.decoration_map.to_list(), many=True) writer.save_csv("decorations/decoration_base.csv", result)
def update_decorations(mhdata, item_data: ItemCollection): print("Updating decorations") data = DecorationCollection(item_data) skill_text_handler = SkillTextHandler() # write artifact file (used to debug) def create_deco_artifact(d): return {'name': d.name['en'], 'slot': d.size, 'rarity': d.rarity} artifacts.write_dicts_artifact( "decorations_all.csv", list(map(create_deco_artifact, data.decorations))) for entry in mhdata.decoration_map.values(): deco_name = entry['name_en'] try: deco = data.by_name(entry['name_en']) except KeyError: print(f"Could not find decoration {deco_name} in the game files") continue entry['name'] = deco.name entry['rarity'] = deco.rarity for i in range(2): skill_name = None skill_pts = None if i < len(deco.skills): (skill_id, skill_pts) = deco.skills[i] skill_name = skill_text_handler.get_skilltree_name( skill_id)['en'] entry[f'skill{i+1}_name'] = skill_name entry[f'skill{i+1}_level'] = skill_pts writer = create_writer() writer.save_base_map_csv( "decorations/decoration_base.csv", mhdata.decoration_map, schema=schema.DecorationBaseSchema(), translation_filename="decorations/decoration_base_translations.csv") print("Decoration files updated\n")