public unsafe EvolutionGUI(PartyPokemon pkmn, EvolutionData.EvoData evo)
 {
     _pkmn        = pkmn;
     _evo         = evo;
     _oldNickname = pkmn.Nickname;
     _canCancel   = Evolution.CanCancelEvolution(evo.Method);
     LoadPkmnImage();
     _state          = State.FadeIn;
     _fadeTransition = new FadeFromColorTransition(500, 0);
     Game.Instance.SetCallback(CB_Evolution);
     Game.Instance.SetRCallback(RCB_Evolution);
 }
 public void UpdateToParty(bool shouldCheckEvolution)
 {
     for (int i = 0; i < Party.Count; i++)
     {
         PartyPokemon pp       = Party[i];
         byte         oldLevel = pp.Level;
         pp.UpdateFromBattle(SpritedParty[i].Pkmn);
         if (shouldCheckEvolution && oldLevel != pp.Level)
         {
             EvolutionData.EvoData evo = Evolution.GetLevelUpEvolution(Party, pp);
             if (evo != null)
             {
                 Evolution.AddPendingEvolution(pp, evo);
             }
         }
     }
 }