public override void RefreshImage() { image.sprite = SpriteStorage.GetPokemonSprite( PokemonSpecies.GetPokemonSpeciesById(instanceId).resourceName, PokemonSpecies.SpriteType.Front1, false); }
private IEnumerator AnimationCoroutine() { evolutionCanBeCancelled = true; evolutionHasBeenCancelled = false; EvolutionAnimationComplete = null; float musicInitialVolume = MusicSourceController.singleton.GetVolume(); MusicSourceController.singleton.SetVolume(musicVolume); Sprite startSprite = entranceArguments.PokemonSprite; PokemonSpecies endSpecies = PokemonSpecies.GetPokemonSpeciesById(entranceArguments.evolution.targetId); Sprite endSprite = endSpecies.LoadSprite(PokemonSpecies.SpriteType.Front1, entranceArguments.pokemon.gender, entranceArguments.pokemon.IsShiny); pokemonSpriteController.SetSprite(startSprite); yield return(new WaitForSeconds(initialPauseTime)); SoundFXController.singleton.PlayPokemonCry(entranceArguments.pokemon.speciesId); for (byte i = 0; i < bounceCount; i++) { yield return(StartCoroutine(Animation_Bounce(pokemonSpriteController.pokemonSpriteObject, bounceHeight, bounceSingleTime))); } yield return(new WaitForSeconds(bounceToShrinkDelayTime)); yield return(StartCoroutine(GradualEffect((t) => { pokemonSpriteController.SetScale(1 - t); pokemonSpriteController.SetWhiteness(t); }, shrinkTime))); if (!evolutionHasBeenCancelled) { pokemonSpriteController.SetSprite(endSprite); } evolutionCanBeCancelled = false; //Once sprite has been changed, evolution can't be cancelled yield return(StartCoroutine(GradualEffect((t) => { pokemonSpriteController.SetScale(t); pokemonSpriteController.SetWhiteness(1 - t); }, unshrinkTime))); if (!evolutionHasBeenCancelled) { //Evolution is allowed to be completed SoundFXController.singleton.PlaySound("evolution_end"); SoundFXController.singleton.PlayPokemonCry(endSpecies.id); yield return(StartCoroutine( textBoxController.RevealText(entranceArguments.pokemon.GetDisplayName() + " evolved into a " + endSpecies.name + '!', true) )); //Once animation is completed, evolve the pokemon entranceArguments.pokemon.Evolve(entranceArguments.evolution); } else { //Evolution is cancelled yield return(StartCoroutine( textBoxController.RevealText("Oh, " + entranceArguments.pokemon.GetDisplayName() + " stopped evolving", true) )); } yield return(new WaitForSeconds(endDelayTime)); MusicSourceController.singleton.SetVolume(musicInitialVolume); EvolutionAnimationComplete?.Invoke(); yield break; }