コード例 #1
0
        public ExtractedGame(IGameExtractor extractor)
        {
            MoveList          = extractor.ExtractMoves();
            Abilities         = extractor.ExtractAbilities();
            PokemonList       = extractor.ExtractPokemon();
            GiftPokemonList   = extractor.ExtractGiftPokemon();
            ItemList          = extractor.ExtractItems();
            OverworldItemList = extractor.ExtractOverworldItems();
            Pokemarts         = extractor.ExtractPokemarts().OrderBy(m => m.FirstItemIndex).ToArray();
            TrainerPools      = extractor.ExtractPools(PokemonList, MoveList);

            ValidMoves   = MoveList.Where(m => m.MoveIndex != 0 && m.MoveIndex != 355).ToArray();
            ValidPokemon = PokemonList.Where(p => !RandomizerConstants.SpecialPokemon.Contains(p.Index)).ToArray();
            ValidItems   = ItemList.Where(i => !RandomizerConstants.InvalidItemList.Contains(i.Index)).ToArray();
            NonKeyItems  = ValidItems.Where(i => i.BagSlot != BagSlots.KeyItems && i.BagSlot != BagSlots.None).ToArray();
            TMs          = ItemList.Where(i => i is TM).Select(i => i as TM).ToArray();

            if (extractor is XDExtractor xd)
            {
                isXD       = true;
                TutorMoves = xd.ExtractTutorMoves();
            }
            else
            {
                isXD       = false;
                TutorMoves = Array.Empty <TutorMove>();
            }
        }
コード例 #2
0
        private void loadIsoButton_Click(object sender, EventArgs e)
        {
            openISODialog.Filter          = "Colosseum or XD Game File|*.iso;*.zip";
            openISODialog.CheckFileExists = true;
            if (openISODialog.ShowDialog() == DialogResult.OK)
            {
                iso?.Dispose();
                isoExtractor?.Dispose();

                progressMessageLabel.Text = "Reading ISO...";

                if (OpenFile())
                {
                    iso = isoExtractor.ExtractISO();
                    switch (iso.Game)
                    {
                    case Game.Colosseum:
                    {
                        gamePictureBox.Image          = new Bitmap("Images/colo-logo.jpg");
                        gameExtractor                 = new ColoExtractor();
                        starterComboBox.SelectedItem  = "ESPEON";
                        starter2ComboBox.SelectedItem = "UMBREON";
                        // disable XD only options
                        foreach (Control ctrl in battleBingoTabPage.Controls)
                        {
                            ctrl.Enabled = false;
                        }
                        pokeSpotGroupBox.Enabled = false;
                        break;
                    }

                    case Game.XD:
                    {
                        gamePictureBox.Image         = new Bitmap("Images/xd-logo.jpg");
                        gameExtractor                = new XDExtractor(iso);
                        starterComboBox.SelectedItem = "EEVEE";
                        starter2Label.Visible        = false;
                        starter2ComboBox.Visible     = false;
                        break;
                    }

                    default:
                        return;
                    }
                    gameLabel.Text   = iso.Game.ToString();
                    regionLabel.Text = iso.Region.ToString();

                    progressMessageLabel.Text = "Successfully read ISO";
                }
            }
        }
コード例 #3
0
        public Randomizer(IGameExtractor extractor, int seed = -1)
        {
            if (seed < 0)
            {
                random = new Random();
            }
            else
            {
                random = new Random(seed);
            }

            extractedGameStructures = new ExtractedGame(extractor);
            gameExtractor           = extractor;
        }