Beispiel #1
0
def build_decorations(session : sqlalchemy.orm.Session, mhdata):
    "Performs the build process for decorations. Must be done after skills"

    skill_map = mhdata.skill_map
    decoration_map = mhdata.decoration_map

    for decoration_id, entry in decoration_map.items():
        skill_id = skill_map.id_of('en', entry['skill_en'])
        ensure(skill_id, f"Decoration {entry.name('en')} refers to " +
            f"skill {entry['skill_en']}, which doesn't exist.")

        ensure("chances" in entry, "Missing chance data for " + entry.name('en'))
        
        decoration = db.Decoration(
            id=decoration_id,
            rarity=entry['rarity'],
            slot=entry['slot'],
            icon_color=entry['icon_color'],
            skilltree_id=skill_id,
            mysterious_feystone_percent=entry['chances']['mysterious'],
            glowing_feystone_percent=entry['chances']['glowing'],
            worn_feystone_percent=entry['chances']['worn'],
            warped_feystone_percent=entry['chances']['warped']
        )

        for language in cfg.supported_languages:
            decoration.translations.append(db.DecorationText(
                lang_id=language,
                name=get_translated(entry, 'name', language)
            ))

        session.add(decoration)

    print("Built Decorations")
Beispiel #2
0
def build_decorations(session: sqlalchemy.orm.Session, mhdata):
    "Performs the build process for decorations. Must be done after skills"

    skill_map = mhdata.skill_map
    decoration_map = mhdata.decoration_map

    for decoration_id, entry in decoration_map.items():
        skills = [[None, None]] * 2
        for i in [1, 2]:
            skill_name = entry[f'skill{i}_name']
            if skill_name:
                skill_id = skill_map.id_of('en', skill_name)
                ensure(
                    skill_id, f"Decoration {entry.name('en')} refers to " +
                    f"skill {skill_name}, which doesn't exist.")
                skill_level = entry[f"skill{i}_level"]
                skills[i - 1] = [skill_id, skill_level]

        ensure("chances" in entry,
               "Missing chance data for " + entry.name('en'))

        decoration = db.Decoration(
            id=decoration_id,
            rarity=entry['rarity'],
            slot=entry['slot'],
            icon_color=entry['icon_color'],
            skilltree_id=skills[0][0],
            skilltree_level=skills[0][1],
            skilltree2_id=skills[1][0],
            skilltree2_level=skills[1][1],
            mysterious_feystone_percent=entry['chances']['mysterious'],
            glowing_feystone_percent=entry['chances']['glowing'],
            worn_feystone_percent=entry['chances']['worn'],
            warped_feystone_percent=entry['chances']['warped'],
            ancient_feystone_percent=entry['chances']['ancient'],
            carved_feystone_percent=entry['chances']['carved'],
            sealed_feystone_percent=entry['chances']['sealed'],
        )

        for language in cfg.supported_languages:
            decoration.translations.append(
                db.DecorationText(lang_id=language,
                                  name=get_translated(entry, 'name',
                                                      language)))

        session.add(decoration)

    print("Built Decorations")
Beispiel #3
0
def build_decorations(session: sqlalchemy.orm.Session, mhdata):
    "Performs the build process for decorations. Must be done after skills"

    skill_map = mhdata.skill_map
    decoration_map = mhdata.decoration_map

    for decoration_id, entry in decoration_map.items():
        skills = list(datafn.iter_skill_levels(entry, amount=2, pad=True))
        ensure("chances" in entry,
               "Missing chance data for " + entry.name('en'))

        decoration = db.Decoration(
            id=decoration_id,
            rarity=entry['rarity'],
            slot=entry['slot'],
            icon_color=entry['icon_color'],
            skilltree_id=skill_map.id_of('en', skills[0][0]),
            skilltree_level=skills[0][1],
            skilltree2_id=skill_map.id_of('en', skills[1][0]),
            skilltree2_level=skills[1][1],
            mysterious_feystone_percent=entry['chances']['mysterious'],
            glowing_feystone_percent=entry['chances']['glowing'],
            worn_feystone_percent=entry['chances']['worn'],
            warped_feystone_percent=entry['chances']['warped'],
            ancient_feystone_percent=entry['chances']['ancient'],
            carved_feystone_percent=entry['chances']['carved'],
            sealed_feystone_percent=entry['chances']['sealed'],
        )

        for language in cfg.supported_languages:
            decoration.translations.append(
                db.DecorationText(lang_id=language,
                                  name=get_translated(entry, 'name',
                                                      language)))

        session.add(decoration)

    print("Built Decorations")