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")
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")
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")