Пример #1
0
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)
Пример #2
0
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")