public BattleBingoCard(int index, ISO iso)
        {
            this.index = index;
            this.iso   = iso;

            StartingPokemon = new BattleBingoPokemon(StartOffset + BingoCardFirstPokemonOffset, iso);
            CouponRewards   = new int[NumberOfBingoCouponRewards];
            var panels = new List <BattleBingoPanel>();


            for (int i = 1; i < NumberOfPokemonPanels; i++)
            {
                var pokemon = new BattleBingoPokemon(StartOffset + BingoCardFirstPokemonOffset + (i * SizeOfBattleBingoPokemonData), iso);
                panels.Add(new BattleBingoPanel(pokemon, iso));
            }

            var mysteryOffset = StartOffset + BingoCardFirstMysteryPanelOffset;

            for (int i = 0; i < NumberOfMysteryPanels; i++)
            {
                var itemType      = (BattleBingoItemType)iso.CommonRel.ExtractedFile.GetByteAtOffset(mysteryOffset++);
                var panelPosition = iso.CommonRel.ExtractedFile.GetByteAtOffset(mysteryOffset++);
                var panel         = new BattleBingoPanel(itemType, iso);
                if (panelPosition < panels.Count)
                {
                    panels.Insert(panelPosition, panel);
                }
                else
                {
                    panels.Add(panel);
                }
            }
            Panels = panels.ToArray();

            for (int i = 0; i < NumberOfBingoCouponRewards; i++)
            {
                CouponRewards[i] = iso.CommonRel.ExtractedFile.GetUShortAtOffset(StartOffset + BingoCardFirstCouponsRewardOffset + i * 2);
            }
        }
 public BattleBingoPanel(BattleBingoPokemon bingoPokemon, ISO iso)
 {
     PanelType    = BattleBingoPanelType.Pokemon;
     BingoPokemon = bingoPokemon;
 }