Example #1
0
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)
Example #2
0
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)