Пример #1
0
        private void ShowWildPokemon(PBEBattlePokemon pkmn)
        {
            PkmnPosition pos = GetStuff(pkmn, pkmn.FieldPosition);

            UpdatePokemon(pkmn, pos, true, false); // Only set the info to visible because the sprite is already loaded and visible
            pos.InfoVisible = true;
        }
        // Will cause double load for some cases (like status2 updating)
        // Because new animated image is created
        public void UpdateSprites(PkmnPosition pos, bool paused)
        {
            Mini = PokemonImageUtils.GetMini(Pkmn.KnownSpecies, Pkmn.KnownForm, Pkmn.KnownGender, Pkmn.KnownShiny, PartyPkmn.IsEgg);
            PBEStatus2 status2 = _useKnownInfo ? Pkmn.KnownStatus2 : Pkmn.Status2;

            AnimImage = PokemonImageUtils.GetPokemonImage(Pkmn.KnownSpecies, Pkmn.KnownForm, Pkmn.KnownGender, Pkmn.KnownShiny, _backImage,
                                                          status2.HasFlag(PBEStatus2.Substitute), status2.HasFlag(PBEStatus2.Disguised) ? DisguisedPID : PartyPkmn.PID, PartyPkmn.IsEgg);
            AnimImage.IsPaused = paused;
            if (pos is null)
            {
                return; // Only for updating visibility below
            }
            if (!status2.HasFlag(PBEStatus2.Substitute))
            {
                if (status2.HasFlag(PBEStatus2.Airborne) ||
                    status2.HasFlag(PBEStatus2.ShadowForce) ||
                    status2.HasFlag(PBEStatus2.Underground) ||
                    status2.HasFlag(PBEStatus2.Underwater))
                {
                    pos.PkmnVisible = false;
                }
                else
                {
                    pos.PkmnVisible = true;
                }
            }
        }
Пример #3
0
        // pkmn.FieldPosition must be updated before calling these
        private void ShowPokemon(PBEBattlePokemon pkmn)
        {
            PkmnPosition pos = GetStuff(pkmn, pkmn.FieldPosition);

            UpdatePokemon(pkmn, pos, true, true);
            pos.InfoVisible = true;
            pos.PkmnVisible = true;
        }
Пример #4
0
        private void HidePokemon(PBEBattlePokemon pkmn, PBEFieldPosition oldPosition)
        {
            PkmnPosition  pos = GetStuff(pkmn, oldPosition);
            AnimatedImage img = pos.SPkmn.AnimImage;

            pos.InfoVisible = false;
            pos.PkmnVisible = false;
            img.IsPaused    = true;
        }
Пример #5
0
        private void UpdatePokemon(PBEBattlePokemon pkmn, PkmnPosition pos, bool info, bool sprite)
        {
            SpritedBattlePokemon sPkmn = SpritedParties[pkmn.Trainer.Id][pkmn];

            if (info)
            {
                sPkmn.UpdateInfoBar();
            }
            if (sprite)
            {
                sPkmn.UpdateSprites(pos, false);
            }
            pos.SPkmn = sPkmn;
        }
 public SpritedBattlePokemonParty(PBEList <PBEBattlePokemon> pBattle, Party p, bool backImage, bool useKnownInfo, BattleGUI battleGUI)
 {
     Party        = p;
     BattleParty  = pBattle;
     SpritedParty = new SpritedBattlePokemon[pBattle.Count];
     for (int i = 0; i < pBattle.Count; i++)
     {
         PkmnPosition     wildPos = null;
         PBEBattlePokemon pPkmn   = pBattle[i];
         if (pPkmn.IsWild)
         {
             wildPos = battleGUI.GetStuff(pPkmn, pPkmn.FieldPosition);
         }
         SpritedParty[i] = new SpritedBattlePokemon(pBattle[i], p[i], backImage, useKnownInfo, wildPos);
     }
 }
Пример #7
0
        public BattleGUI(PBEBattleFormat format)
        {
            _positions = new PkmnPosition[2][];
            switch (format)
            {
            case PBEBattleFormat.Single:
            {
                _positions[0] = new PkmnPosition[1]
                {
                    new PkmnPosition(0.015f, 0.25f, 0.40f, 0.95f)     // Center
                };
                _positions[1] = new PkmnPosition[1]
                {
                    new PkmnPosition(0.10f, 0.015f, 0.73f, 0.51f)     // Center
                };
                break;
            }

            case PBEBattleFormat.Double:
            {
                _positions[0] = new PkmnPosition[2]
                {
                    new PkmnPosition(0.015f, 0.25f, 0.25f, 0.92f),    // Left
                    new PkmnPosition(0.295f, 0.27f, 0.58f, 0.96f)     // Right
                };
                _positions[1] = new PkmnPosition[2]
                {
                    new PkmnPosition(0.38f, 0.035f, 0.85f, 0.53f),    // Left
                    new PkmnPosition(0.10f, 0.015f, 0.63f, 0.52f)     // Right
                };
                break;
            }

            case PBEBattleFormat.Triple:
            {
                _positions[0] = new PkmnPosition[3]
                {
                    new PkmnPosition(0.015f, 0.25f, 0.12f, 0.96f),   // Left
                    new PkmnPosition(0.295f, 0.27f, 0.38f, 0.89f),   // Center
                    new PkmnPosition(0.575f, 0.29f, 0.7f, 0.94f)     // Right
                };
                _positions[1] = new PkmnPosition[3]
                {
                    new PkmnPosition(0.66f, 0.055f, 0.91f, 0.525f),   // Left
                    new PkmnPosition(0.38f, 0.035f, 0.75f, 0.55f),    // Center
                    new PkmnPosition(0.10f, 0.015f, 0.56f, 0.53f)     // Right
                };
                break;
            }

            case PBEBattleFormat.Rotation:
            {
                _positions[0] = new PkmnPosition[3]
                {
                    new PkmnPosition(0.015f, 0.25f, 0.06f, 0.99f),    // Left
                    new PkmnPosition(0.295f, 0.27f, 0.4f, 0.89f),     // Center
                    new PkmnPosition(0.575f, 0.29f, 0.88f, 1.025f)    // Right
                };
                _positions[1] = new PkmnPosition[3]
                {
                    new PkmnPosition(0.66f, 0.055f, 0.97f, 0.48f),   // Left
                    new PkmnPosition(0.38f, 0.035f, 0.75f, 0.55f),   // Center
                    new PkmnPosition(0.10f, 0.015f, 0.5f, 0.49f)     // Right
                };
                break;
            }

            default: throw new ArgumentOutOfRangeException(nameof(format));
            }
        }
Пример #8
0
        private void UpdatePokemon(PBEBattlePokemon pkmn, bool info, bool sprite)
        {
            PkmnPosition pos = GetStuff(pkmn, pkmn.FieldPosition);

            UpdatePokemon(pkmn, pos, info, sprite);
        }
 public SpritedBattlePokemon(PBEBattlePokemon pkmn, PartyPokemon pPkmn, bool backImage, bool useKnownInfo, PkmnPosition wildPos)
 {
     PartyPkmn     = pPkmn;
     Pkmn          = pkmn;
     DisguisedPID  = pPkmn.PID; // By default, use our own PID (for example, wild disguised pkmn)
     _backImage    = backImage;
     _useKnownInfo = useKnownInfo;
     InfoBarImg    = new Image(100, useKnownInfo ? 30 : 42);
     UpdateInfoBar();
     UpdateSprites(wildPos, wildPos is null);
     UpdateAnimationSpeed(); // Ensure the proper speed is set upon entering battle
     if (wildPos != null)
     {
         wildPos.InfoVisible = false;
         wildPos.PkmnVisible = true;
         wildPos.SPkmn       = this;
     }
 }
Пример #10
0
 private static unsafe void RenderPkmnInfo(uint *bmpAddress, int bmpWidth, int bmpHeight, PkmnPosition pos)
 {
     pos.SPkmn.InfoBarImg.DrawOn(bmpAddress, bmpWidth, bmpHeight, pos.BarX, pos.BarY);
 }
Пример #11
0
        private static unsafe void RenderPkmn(uint *bmpAddress, int bmpWidth, int bmpHeight, PkmnPosition pos, bool ally)
        {
            SpritedBattlePokemon sPkmn = pos.SPkmn;
            AnimatedImage        img   = sPkmn.AnimImage;
            int width  = img.Width;
            int height = img.Height;

            if (ally)
            {
                width  *= 2;
                height *= 2;
            }
            img.DrawSizedOn(bmpAddress, bmpWidth, bmpHeight,
                            RenderUtils.GetCoordinatesForCentering(bmpWidth, width, pos.MonX), RenderUtils.GetCoordinatesForEndAlign(bmpHeight, height, pos.MonY), width, height);
        }