diff --git a/library/Pokedex/Pokedex.cs b/library/Pokedex/Pokedex.cs index 9f91c545..393aec36 100644 --- a/library/Pokedex/Pokedex.cs +++ b/library/Pokedex/Pokedex.cs @@ -55,7 +55,24 @@ namespace PkmnFoundations.Pokedex private void BuildAdditionalIndexes() { + Dictionary items3 = new Dictionary(); + Dictionary items4 = new Dictionary(); + Dictionary items5 = new Dictionary(); + Dictionary items6 = new Dictionary(); + m_items_generations = new Dictionary>(); + m_items_generations.Add(Generations.Generation3, items3); + m_items_generations.Add(Generations.Generation4, items4); + m_items_generations.Add(Generations.Generation5, items5); + m_items_generations.Add(Generations.Generation6, items6); + foreach (var pair in m_items) + { + Item i = pair.Value; + if (i.Value3 != null) items3.Add((int)i.Value3, i); + if (i.Value4 != null) items4.Add((int)i.Value4, i); + if (i.Value5 != null) items5.Add((int)i.Value5, i); + if (i.Value6 != null) items6.Add((int)i.Value6, i); + } } private void PrefetchRelations() @@ -96,6 +113,8 @@ namespace PkmnFoundations.Pokedex private Dictionary m_types; private Dictionary m_abilities; + private Dictionary> m_items_generations; + public Species Species(int national_dex) { return m_species[national_dex]; @@ -121,6 +140,11 @@ namespace PkmnFoundations.Pokedex return m_items[id]; } + public Item Items(Generations generation, int value) + { + return m_items_generations[generation][value]; + } + public Move Moves(int value) { return m_moves[value];