private void OnViewTypeChanged(object sender, SelectionChangedEventArgs e) { if (loaded && comboBoxViewType.SelectedIndex != -1) { viewMode = (PokedexViewModes)((ComboBoxItem)comboBoxViewType.SelectedItem).Tag; //(PokedexViewModes)(comboBoxViewType.SelectedIndex + (gameSave.GameType == GameTypes.XD && comboBoxViewType.SelectedIndex >= 2 ? 1 : 0)); FillPokedex(); } }
private void AddViewTypeComboBoxItem(string name, PokedexViewModes viewType) { ComboBoxItem comboBoxItem = new ComboBoxItem(); comboBoxItem.Content = name; comboBoxItem.Tag = viewType; comboBoxViewType.Items.Add(comboBoxItem); if (viewType == viewMode) { comboBoxViewType.SelectedItem = comboBoxItem; } }
public void RefreshUI() { if (gameSave != null) { childrenHeight = 0; stackPanelStats.Children.Clear(); int livingCount = 0; int unownCount = 0; livingFlags = new bool[386]; unownLivingFlags = new bool[28]; deoxysLivingFlags = new bool[4]; if (gameSave is ManagerGameSave) { for (int j = 0; j < (gameSave as ManagerGameSave).NumPokePCRows; j++) { foreach (IPokemon pokemon in (gameSave as ManagerGameSave).GetPokePCRow(j)) { int dexID = pokemon.DexID; if (dexID == 0 || pokemon.IsEgg) { continue; } if (!livingFlags[dexID - 1]) { livingCount++; livingFlags[dexID - 1] = true; } if (dexID == 201) // Unown Living Flags { int formID = pokemon.FormID; if (!unownLivingFlags[formID]) { unownCount++; unownLivingFlags[formID] = true; } } if (dexID == 386) // Unown Living Flags { int formID = pokemon.FormID; if (!deoxysLivingFlags[formID]) { deoxysLivingFlags[formID] = true; } } } } } else { foreach (IPokemon pokemon in gameSave.PokePC) { int dexID = pokemon.DexID; if (dexID == 0 || pokemon.IsEgg) { continue; } if (!livingFlags[dexID - 1]) { livingCount++; livingFlags[dexID - 1] = true; } if (dexID == 201) // Unown Living Flags { int formID = pokemon.FormID; if (!unownLivingFlags[formID]) { unownCount++; unownLivingFlags[formID] = true; } } if (dexID == 386) // Unown Living Flags { int formID = pokemon.FormID; if (!deoxysLivingFlags[formID]) { deoxysLivingFlags[formID] = true; } } } } loaded = false; comboBoxViewType.Items.Clear(); AddViewTypeComboBoxItem("All Pokémon", PokedexViewModes.All); if (gameSave.GameType == GameTypes.Colosseum || gameSave.GameType == GameTypes.XD) { AddViewTypeComboBoxItem("Registered Pokémon", PokedexViewModes.Owned); } else { AddViewTypeComboBoxItem("Owned Pokémon", PokedexViewModes.Owned); } if (gameSave.GameType != GameTypes.Any && gameSave.GameType != GameTypes.XD) { AddViewTypeComboBoxItem("Seen Pokémon", PokedexViewModes.Seen); if (viewMode == PokedexViewModes.Seen) { viewMode = PokedexViewModes.All; } } AddViewTypeComboBoxItem("Living Pokémon", PokedexViewModes.Living); if (gameSave.GameType == GameTypes.Colosseum || gameSave.GameType == GameTypes.XD) { AddViewTypeComboBoxItem("Missing Registered Pokémon", PokedexViewModes.OwnedMissing); } else { AddViewTypeComboBoxItem("Missing Owned Pokémon", PokedexViewModes.OwnedMissing); } if (gameSave.GameType != GameTypes.Any && gameSave.GameType != GameTypes.XD) { AddViewTypeComboBoxItem("Missing Seen Pokémon", PokedexViewModes.SeenMissing); if (viewMode == PokedexViewModes.SeenMissing) { viewMode = PokedexViewModes.All; } } AddViewTypeComboBoxItem("Missing Living Pokémon", PokedexViewModes.LivingMissing); if (viewMode == PokedexViewModes.All) { comboBoxViewType.SelectedIndex = 0; } loaded = true; if (gameSave.GameType == GameTypes.Colosseum || gameSave.GameType == GameTypes.XD) { this.labelPokedexName.Content = "Strategy Memo"; AddStat("Pokémon Living", livingCount.ToString()); AddStat("Pokémon Registered", gameSave.PokemonOwned.ToString()); if (gameSave.GameType == GameTypes.Colosseum) { AddStat("Pokémon Seen", gameSave.PokemonSeen.ToString()); } AddSeparator(); AddStat("Snagged Pokémon", ((GCGameSave)gameSave).SnaggedPokemon.ToString()); AddStat("Purified Pokémon", ((GCGameSave)gameSave).PurifiedPokemon.ToString()); } else { if (gameSave.HasNationalPokedex) { this.labelPokedexName.Content = "National Pokédex"; } else { this.labelPokedexName.Content = "Pokédex"; } int kantoOwned = 0, kantoSeen = 0; int johtoOwned = 0, johtoSeen = 0; int hoennOwned = 0, hoennSeen = 0; for (ushort i = 1; i <= 386; i++) { if (i <= 151) { kantoOwned += (gameSave.IsPokemonOwned(i) ? 1 : 0); kantoSeen += (gameSave.IsPokemonSeen(i) ? 1 : 0); } else if (i <= 251) { johtoOwned += (gameSave.IsPokemonOwned(i) ? 1 : 0); johtoSeen += (gameSave.IsPokemonSeen(i) ? 1 : 0); } else { hoennOwned += (gameSave.IsPokemonOwned(i) ? 1 : 0); hoennSeen += (gameSave.IsPokemonSeen(i) ? 1 : 0); } } int owned = kantoOwned + johtoOwned + hoennOwned; int seen = kantoSeen + johtoSeen + hoennSeen; AddStat("Pokémon Living", livingCount.ToString()); AddStat("Pokémon Owned", owned.ToString()); if (gameSave.GameType != GameTypes.Any) { AddStat("Pokémon Seen", seen.ToString()); } string oakStatus = "Get Working"; if (livingCount == 386 && unownCount == 28) { oakStatus = "It's a Living Pokédex!"; } else if (owned == 386) { oakStatus = "It's Complete!"; } else if (owned >= 360) { oakStatus = "Final Stretch"; } else if (owned >= 300) { oakStatus = "Almost There"; } else if (owned >= 200) { oakStatus = "Getting There"; } else if (owned >= 100) { oakStatus = "Some Progress"; } AddStat("Oak's Opinion: " + oakStatus, ""); AddSeparator(); if (gameSave.GameType == GameTypes.Ruby || gameSave.GameType == GameTypes.Sapphire || gameSave.GameType == GameTypes.Emerald) { AddStat("Hoenn Owned", hoennOwned.ToString()); if (gameSave.GameType != GameTypes.Any) { AddStat("Hoenn Seen", hoennSeen.ToString()); } AddStat("Kanto Owned", kantoOwned.ToString()); if (gameSave.GameType != GameTypes.Any) { AddStat("Kanto Seen", kantoSeen.ToString()); } AddStat("Johto Owned", johtoOwned.ToString()); if (gameSave.GameType != GameTypes.Any) { AddStat("Johto Seen", johtoSeen.ToString()); } } else { AddStat("Kanto Owned", kantoOwned.ToString()); if (gameSave.GameType != GameTypes.Any) { AddStat("Kanto Seen", kantoSeen.ToString()); } AddStat("Johto Owned", johtoOwned.ToString()); if (gameSave.GameType != GameTypes.Any) { AddStat("Johto Seen", johtoSeen.ToString()); } AddStat("Hoenn Owned", hoennOwned.ToString()); if (gameSave.GameType != GameTypes.Any) { AddStat("Hoenn Seen", hoennSeen.ToString()); } } AddSeparator(); AddStat("Unown Forms", unownCount.ToString()); } FillPokedex(); gridStats.Height = 41 + childrenHeight; stackPanelStats.Height = childrenHeight; gridPokemonInfo.Margin = new Thickness(235, 10 + gridStats.Height + 5, 0, 0); } }
private void OnViewTypeChanged(object sender, SelectionChangedEventArgs e) { if (loaded && comboBoxViewType.SelectedIndex != -1) { viewMode = (PokedexViewModes)((ComboBoxItem)comboBoxViewType.SelectedItem).Tag;//(PokedexViewModes)(comboBoxViewType.SelectedIndex + (gameSave.GameType == GameTypes.XD && comboBoxViewType.SelectedIndex >= 2 ? 1 : 0)); FillPokedex(); } }
private void AddViewTypeComboBoxItem(string name, PokedexViewModes viewType) { ComboBoxItem comboBoxItem = new ComboBoxItem(); comboBoxItem.Content = name; comboBoxItem.Tag = viewType; comboBoxViewType.Items.Add(comboBoxItem); if (viewType == viewMode) comboBoxViewType.SelectedItem = comboBoxItem; }
public void RefreshUI() { if (gameSave != null) { childrenHeight = 0; stackPanelStats.Children.Clear(); int livingCount = 0; int unownCount = 0; livingFlags = new bool[386]; unownLivingFlags = new bool[28]; deoxysLivingFlags = new bool[4]; if (gameSave is ManagerGameSave) { for (int j = 0; j < (gameSave as ManagerGameSave).NumPokePCRows; j++) { foreach (IPokemon pokemon in (gameSave as ManagerGameSave).GetPokePCRow(j)) { int dexID = pokemon.DexID; if (dexID == 0 || pokemon.IsEgg) continue; if (!livingFlags[dexID - 1]) { livingCount++; livingFlags[dexID - 1] = true; } if (dexID == 201) { // Unown Living Flags int formID = pokemon.FormID; if (!unownLivingFlags[formID]) { unownCount++; unownLivingFlags[formID] = true; } } if (dexID == 386) { // Unown Living Flags int formID = pokemon.FormID; if (!deoxysLivingFlags[formID]) deoxysLivingFlags[formID] = true; } } } } else { foreach (IPokemon pokemon in gameSave.PokePC) { int dexID = pokemon.DexID; if (dexID == 0 || pokemon.IsEgg) continue; if (!livingFlags[dexID - 1]) { livingCount++; livingFlags[dexID - 1] = true; } if (dexID == 201) { // Unown Living Flags int formID = pokemon.FormID; if (!unownLivingFlags[formID]) { unownCount++; unownLivingFlags[formID] = true; } } if (dexID == 386) { // Unown Living Flags int formID = pokemon.FormID; if (!deoxysLivingFlags[formID]) deoxysLivingFlags[formID] = true; } } } loaded = false; comboBoxViewType.Items.Clear(); AddViewTypeComboBoxItem("All Pokémon", PokedexViewModes.All); if (gameSave.GameType == GameTypes.Colosseum || gameSave.GameType == GameTypes.XD) AddViewTypeComboBoxItem("Registered Pokémon", PokedexViewModes.Owned); else AddViewTypeComboBoxItem("Owned Pokémon", PokedexViewModes.Owned); if (gameSave.GameType != GameTypes.Any && gameSave.GameType != GameTypes.XD) { AddViewTypeComboBoxItem("Seen Pokémon", PokedexViewModes.Seen); if (viewMode == PokedexViewModes.Seen) viewMode = PokedexViewModes.All; } AddViewTypeComboBoxItem("Living Pokémon", PokedexViewModes.Living); if (gameSave.GameType == GameTypes.Colosseum || gameSave.GameType == GameTypes.XD) AddViewTypeComboBoxItem("Missing Registered Pokémon", PokedexViewModes.OwnedMissing); else AddViewTypeComboBoxItem("Missing Owned Pokémon", PokedexViewModes.OwnedMissing); if (gameSave.GameType != GameTypes.Any && gameSave.GameType != GameTypes.XD) { AddViewTypeComboBoxItem("Missing Seen Pokémon", PokedexViewModes.SeenMissing); if (viewMode == PokedexViewModes.SeenMissing) viewMode = PokedexViewModes.All; } AddViewTypeComboBoxItem("Missing Living Pokémon", PokedexViewModes.LivingMissing); if (viewMode == PokedexViewModes.All) comboBoxViewType.SelectedIndex = 0; loaded = true; if (gameSave.GameType == GameTypes.Colosseum || gameSave.GameType == GameTypes.XD) { this.labelPokedexName.Content = "Strategy Memo"; AddStat("Pokémon Living", livingCount.ToString()); AddStat("Pokémon Registered", gameSave.PokemonOwned.ToString()); if (gameSave.GameType == GameTypes.Colosseum) AddStat("Pokémon Seen", gameSave.PokemonSeen.ToString()); AddSeparator(); AddStat("Snagged Pokémon", ((GCGameSave)gameSave).SnaggedPokemon.ToString()); AddStat("Purified Pokémon", ((GCGameSave)gameSave).PurifiedPokemon.ToString()); } else { if (gameSave.HasNationalPokedex) this.labelPokedexName.Content = "National Pokédex"; else this.labelPokedexName.Content = "Pokédex"; int kantoOwned = 0, kantoSeen = 0; int johtoOwned = 0, johtoSeen = 0; int hoennOwned = 0, hoennSeen = 0; for (ushort i = 1; i <= 386; i++) { if (i <= 151) { kantoOwned += (gameSave.IsPokemonOwned(i) ? 1 : 0); kantoSeen += (gameSave.IsPokemonSeen(i) ? 1 : 0); } else if (i <= 251) { johtoOwned += (gameSave.IsPokemonOwned(i) ? 1 : 0); johtoSeen += (gameSave.IsPokemonSeen(i) ? 1 : 0); } else { hoennOwned += (gameSave.IsPokemonOwned(i) ? 1 : 0); hoennSeen += (gameSave.IsPokemonSeen(i) ? 1 : 0); } } int owned = kantoOwned + johtoOwned + hoennOwned; int seen = kantoSeen + johtoSeen + hoennSeen; AddStat("Pokémon Living", livingCount.ToString()); AddStat("Pokémon Owned", owned.ToString()); if (gameSave.GameType != GameTypes.Any) AddStat("Pokémon Seen", seen.ToString()); string oakStatus = "Get Working"; if (livingCount == 386 && unownCount == 28) oakStatus = "It's a Living Pokédex!"; else if (owned == 386) oakStatus = "It's Complete!"; else if (owned >= 360) oakStatus = "Final Stretch"; else if (owned >= 300) oakStatus = "Almost There"; else if (owned >= 200) oakStatus = "Getting There"; else if (owned >= 100) oakStatus = "Some Progress"; AddStat("Oak's Opinion: " + oakStatus, ""); AddSeparator(); if (gameSave.GameType == GameTypes.Ruby || gameSave.GameType == GameTypes.Sapphire || gameSave.GameType == GameTypes.Emerald) { AddStat("Hoenn Owned", hoennOwned.ToString()); if (gameSave.GameType != GameTypes.Any) AddStat("Hoenn Seen", hoennSeen.ToString()); AddStat("Kanto Owned", kantoOwned.ToString()); if (gameSave.GameType != GameTypes.Any) AddStat("Kanto Seen", kantoSeen.ToString()); AddStat("Johto Owned", johtoOwned.ToString()); if (gameSave.GameType != GameTypes.Any) AddStat("Johto Seen", johtoSeen.ToString()); } else { AddStat("Kanto Owned", kantoOwned.ToString()); if (gameSave.GameType != GameTypes.Any) AddStat("Kanto Seen", kantoSeen.ToString()); AddStat("Johto Owned", johtoOwned.ToString()); if (gameSave.GameType != GameTypes.Any) AddStat("Johto Seen", johtoSeen.ToString()); AddStat("Hoenn Owned", hoennOwned.ToString()); if (gameSave.GameType != GameTypes.Any) AddStat("Hoenn Seen", hoennSeen.ToString()); } AddSeparator(); AddStat("Unown Forms", unownCount.ToString()); } FillPokedex(); gridStats.Height = 41 + childrenHeight; stackPanelStats.Height = childrenHeight; gridPokemonInfo.Margin = new Thickness(235, 10 + gridStats.Height + 5, 0, 0); } }