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>(); } }
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"; } } }
public Randomizer(IGameExtractor extractor, int seed = -1) { if (seed < 0) { random = new Random(); } else { random = new Random(seed); } extractedGameStructures = new ExtractedGame(extractor); gameExtractor = extractor; }