Example #1
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();
     }
 }
Example #2
0
        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;
            }
        }
Example #3
0
        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);
            }
        }