Beispiel #1
0
    public static Sprite GetPokemonSprite(
        string resourceName,
        PokemonSpecies.SpriteType spriteType,
        bool?gender,
        bool shiny = false
        )
    {
        bool useFemale;

        switch (gender)
        {
        case true:
        case null:
            useFemale = false;
            break;

        case false:
            useFemale = true;
            break;
        }

        return(GetPokemonSprite(resourceName, spriteType, useFemale, shiny));
    }
 public Sprite LoadSprite(PokemonSpecies.SpriteType spriteType)
 => species.LoadSprite(spriteType, gender, IsShiny);
Beispiel #3
0
    public static Sprite GetPokemonSprite(
        string speciesResourceName,
        PokemonSpecies.SpriteType spriteType,
        bool useFemale,
        bool shiny = false)
    {
        #region Resource Name

        string resourceName;
        string alternativeResourceName = null; //The resource path to load if the main can't be found. (this is to use male sprites if female ones can't be found)

        string nameSuffix;
        string alternativeNameSuffix = null;

        nameSuffix = spriteType switch
        {
            PokemonSpecies.SpriteType.Front1 => "front1",
            PokemonSpecies.SpriteType.Front2 => "front2",
            PokemonSpecies.SpriteType.Back => "back",
            PokemonSpecies.SpriteType.Icon => "icon",
            _ => null
        };

        if (nameSuffix == null)
        {
            nameSuffix = "icon";
            Debug.LogError("Unknown sprite type provided - " + spriteType);
        }

        if (spriteType != PokemonSpecies.SpriteType.Icon)
        {
            if (!useFemale)
            {
                nameSuffix += "_m";
            }
            else
            {
                alternativeNameSuffix = nameSuffix + "_m";
                nameSuffix           += "_f";
            }

            if (shiny)
            {
                nameSuffix += "s";

                if (alternativeNameSuffix != null)
                {
                    alternativeNameSuffix += "s";
                }
            }
        }

        resourceName = speciesResourceName + '_' + nameSuffix;

        if (alternativeNameSuffix != null)
        {
            alternativeResourceName = speciesResourceName + '_' + alternativeNameSuffix;
        }

        #endregion

        Sprite sprite = GetSprite(SpriteType.Pokemon,
                                  resourceName,
                                  false);

        if (sprite != null)
        {
            return(sprite);
        }
        else
        {
            if (alternativeResourceName != null)
            {
                return(GetSprite(SpriteType.Pokemon,
                                 alternativeResourceName,
                                 false));
            }
            else
            {
                return(null);
            }
        }
    }