Exemple #1
0
        public static Common.PossibilitySet.Possibility[] GetEncounterPossibilities(PokemonTranslator pokemonTranslator, int level)
        {
            Dictionary <int, List <Common.PossibilitySet.Possibility.IV> > IVs = new Dictionary <int, List <Common.PossibilitySet.Possibility.IV> >();

            for (int attack = PokeConstants.MinRaidBossIV; attack <= PokeConstants.Evaluation.Attribute.Max; attack++)
            {
                for (int defense = PokeConstants.MinRaidBossIV; defense <= PokeConstants.Evaluation.Attribute.Max; defense++)
                {
                    for (int stamina = PokeConstants.MinRaidBossIV; stamina <= PokeConstants.Evaluation.Attribute.Max; stamina++)
                    {
                        Common.IVScore pokemonIV = new Common.IVScore(attack, defense, stamina);
                        Common.IVScore baseIV    = new Common.IVScore(pokemonTranslator.PokemonSettings.stats);

                        int cp = PokeFormulas.GetPokemonCP(baseIV, pokemonIV, level);
                        int hp = PokeFormulas.GetPokemonHP(baseIV.stamina, stamina, level);
                        if (!IVs.ContainsKey(cp))
                        {
                            IVs.Add(cp, new List <Common.PossibilitySet.Possibility.IV>());
                        }
                        IVs[cp].Add(new Common.PossibilitySet.Possibility.IV(pokemonIV, hp));
                    }
                }
            }

            List <Common.PossibilitySet.Possibility> possibilities = new List <Common.PossibilitySet.Possibility>();

            foreach (var ivs in IVs)
            {
                possibilities.Add(new Common.PossibilitySet.Possibility(ivs.Key, ivs.Value.ToArray()));
            }

            return(possibilities.ToArray());
        }
Exemple #2
0
 public static int GetPokemonCP(int baseAttack, int baseDefense, int baseStamina, Common.IVScore pokemonIV, float level)
 {
     return((int)((baseAttack + pokemonIV.attack) * Math.Sqrt((baseDefense + pokemonIV.defense) * (baseStamina + pokemonIV.stamina)) * Math.Pow(GetCMP(level), 2) / 10));
 }
Exemple #3
0
 public static int GetPokemonCP(Common.IVScore baseIV, Common.IVScore pokemonIV, float level)
 {
     return(GetPokemonCP(baseIV.attack, baseIV.defense, baseIV.stamina, pokemonIV, level));
 }