def pokemon_asset_path(pkm, classifier=None, gender=GENDER_UNSET, form=None, costume=None, weather=None, shiny=False): gender_suffix = gender_assets_suffix = '' form_suffix = form_assets_suffix = '' costume_suffix = costume_assets_suffix = '' weather_suffix = '_{}'.format(WeatherCondition.Name(weather)) if weather else '' shiny_suffix = '_shiny' if shiny else '' if gender in (MALE, FEMALE): gender_assets_suffix = '_{:02d}'.format(gender - 1) gender_suffix = '_{}'.format(Gender.Name(gender)) elif gender in (GENDER_UNSET, GENDERLESS): gender_assets_suffix = '_00' if pkm > 0 else '' if form and pkm == 201: # Unown = no gender gender_suffix = gender_assets_suffix = '' form_assets_suffix = '_{:02d}'.format(form + 10) form_suffix = '_{}'.format(Form.Name(form)) if costume: costume_assets_suffix = '_{:02d}'.format(costume) costume_suffix = '_{}'.format(Costume.Name(costume)) if not gender_assets_suffix and not form_assets_suffix and not costume_assets_suffix: gender_assets_suffix = '_16' if pkm == 201 else '_00' if pkm > 0 else '' #Castform if form and pkm == 351: gender_suffix = gender_assets_suffix = '' gender_suffix = '_{}'.format(Gender.Name(gender)) form_assets_suffix = '_{:02d}'.format(form - 18) form_suffix = '_{}'.format(Form.Name(form)) assets_basedir = os.path.join(pogo_assets, 'decrypted_assets') assets_fullname = os.path.join(assets_basedir, 'pokemon_icon_{:03d}{}{}{}{}.png'.format(pkm, gender_assets_suffix, form_assets_suffix, costume_assets_suffix, shiny_suffix)) target_path = os.path.join(path_generated, 'pokemon_{}'.format(classifier)) if classifier else os.path.join( path_generated, 'pokemon') target_name = os.path.join(target_path, "pkm_{:03d}{}{}{}{}{}.png".format(pkm, gender_suffix, form_suffix, costume_suffix, weather_suffix, shiny_suffix)) if os.path.isfile(assets_fullname): return assets_fullname, target_name else: if gender == MALE: log.warning("Cannot find PogoAssets file {}".format(assets_fullname)) # Dummy Pokemon icon return os.path.join(assets_basedir, 'pokemon_icon_000.png'), os.path.join(target_path, 'pkm_000.png') return pokemon_asset_path(pkm, classifier=classifier, gender=MALE, form=form, costume=costume, weather=weather, shiny=shiny)
def pokemon_asset_path_shuffle(pkm, time, classifier=None, medal=None, gender=GENDER_UNSET, form=None, costume=None, weather=None, shiny=False, previous_id=None): medal_suffix = '' gender_suffix = gender_assets_suffix = '' form_suffix = form_assets_suffix = '' costume_suffix = costume_assets_suffix = '' weather_suffix = '_{}'.format( WeatherCondition.Name(weather)) if weather else '' shiny_suffix = '_shiny' if shiny else '' time_suffix = '_{}'.format( GetMapObjectsResponse.TimeOfDay.Name(time)) if time else '' previous_id_suffix = '' # Genderless For Ditto, Should Be Proper Anyway... if gender in (GENDERLESS, MALE, FEMALE): gender_assets_suffix = '' gender_suffix = '_{}'.format(Gender.Name(gender)) elif gender in (GENDER_UNSET, GENDERLESS): gender_assets_suffix = '' if pkm > 0 else '' if form and pkm == 201: # Unown = no gender if gender: gender_suffix = gender_assets_suffix = '' form_assets_suffix = '_{:02d}'.format(form + 10) form_suffix = '_{}'.format(Form.Name(form)) if form and pkm == 351: # Castform Gender if gender: gender_suffix = gender_assets_suffix = '' gender_suffix = '_{}'.format(Gender.Name(gender)) # Castform Form form_assets_suffix = '_{:02d}'.format(form) form_suffix = '_{}'.format(Form.Name(form)) if costume: costume_assets_suffix = '_{:02d}'.format(costume) costume_suffix = '_{}'.format(Costume.Name(costume)) if medal: medal_suffix = '_MEDAL' if pkm == 132: if previous_id: previous_id_suffix = '_{}'.format(previous_id) if not gender_assets_suffix and not form_assets_suffix and not costume_assets_suffix: gender_assets_suffix = '_16' if pkm == 201 else '' if pkm > 0 else '' assets_basedir = os.path.join(pogo_assets, 'sprites') assets_fullname = os.path.join( assets_basedir, '{}{}{}{}{}.png'.format(pkm, gender_assets_suffix, form_assets_suffix, costume_assets_suffix, shiny_suffix)) target_path = os.path.join(path_generated, 'pokemon_{}'.format( classifier)) if classifier else os.path.join(path_generated, 'pokemon') target_name = os.path.join( target_path, "pkm_{:03d}{}{}{}{}{}{}{}{}.png".format( pkm, medal_suffix, gender_suffix, form_suffix, costume_suffix, weather_suffix, shiny_suffix, time_suffix, previous_id_suffix)) if os.path.isfile(assets_fullname): return assets_fullname, target_name else: if gender == MALE: log.warning( "Cannot find PogoAssets file {}".format(assets_fullname)) # Dummy Pokemon icon return os.path.join(assets_basedir, 'pokemon_icon_000.png'), os.path.join( target_path, 'pkm_000.png') return pokemon_asset_path_shuffle(pkm, time, classifier=classifier, medal=medal, gender=MALE, form=form, costume=costume, weather=weather, shiny=shiny, previous_id=previous_id)