コード例 #1
0
        public async Task GetEggGroupInstanceByIdDeserializeAllProperties()
        {
            DataFetcher.SetHttpClient(FakeHttpClientAdapter.Singleton);

            var eggGroup = await EggGroup.GetInstanceAsync(1);

            eggGroup.AssertResourceWellConfigured();
        }
コード例 #2
0
    public PokemonData(int Id, int[] regionalDex /*, string name*/, Type?type1, Type?type2, eAbility.Ability[] abilities,  //eAbility.Ability? ability1, eAbility.Ability? ability2, eAbility.Ability? hiddenAbility,
                       /*float maleRatio,*/ int catchRate, EggGroup eggGroup1, EggGroup eggGroup2, int hatchTime,
                       float height, float weight, int baseExpYield, int levelingRate,
                       /*int? evYieldHP, int? evYieldATK, int? evYieldDEF, int? evYieldSPA, int? evYieldSPD, int? evYieldSPE,*/
                       PokedexColor pokedexColor,  /*int baseFriendship,* / string species, string pokedexEntry,*/
                       int baseStatsHP, int baseStatsATK, int baseStatsDEF, int baseStatsSPA, int baseStatsSPD, int baseStatsSPE,
                       float luminance, /*Color lightColor,*/ int[] movesetLevels, eMoves.Move[] movesetMoves, int[] tmList,
                       int[] evolutionID, int[] evolutionLevel, int[] evolutionMethod, /*string[] evolutionRequirements,* /*int? forms,*/ int[,] heldItem = null)
    {//new PokemonData(1,1,"Bulbasaur",12,4,65,null,34,45,1,7,20,7f,69f,64,4,PokemonData.PokedexColor.GREEN,"Seed","\"Bulbasaur can be seen napping in bright sunlight. There is a seed on its back. By soaking up the sun’s rays, the seed grows progressively larger.\"",45,49,49,65,65,45,0f,new int[]{1,3,7,9,13,13,15,19,21,25,27,31,33,37},new int[]{33,45,73,22,77,79,36,75,230,74,38,388,235,402},new int[]{14,15,70,76,92,104,113,148,156,164,182,188,207,213,214,216,218,219,237,241,249,263,267,290,412,447,474,496,497,590},new int[]{2},new int[]{16},new int[]{1})
        PokedexTranslation translation = PokemonDatabase.GetPokedexTranslation(Id);

        this.ID = Id;
        this.regionalPokedex = regionalDex;
        this.Name            = translation.Name;
        this.Species         = translation.Species;
        this.pokedexEntry    = translation.PokedexEntry;
        //this.forms = forms; //ToDo: need new mechanic for how this should work

        this.type1     = type1 != null ? (PokemonData.Type)type1 : PokemonData.Type.NONE;
        this.type2     = type2 != null ? (PokemonData.Type)type2 : PokemonData.Type.NONE;
        this.Abilities = abilities;
        //this.ability1Id = (eAbility.Ability)ability1;
        //this.ability2Id = (eAbility.Ability)ability2;
        //this.hiddenAbilityId = (eAbility.Ability)hiddenAbility;

        //this.maleRatio = maleRatio; //ToDo
        this.catchRate = catchRate;
        this.eggGroup1 = eggGroup1;
        this.eggGroup2 = eggGroup2;
        this.hatchTime = hatchTime;

        this.height       = height;
        this.weight       = weight;
        this.baseExpYield = baseExpYield;
        this.levelingRate = (LevelingRate)levelingRate; //== null ? (PokemonData.LevelingRate)levelingRate : PokemonData.LevelingRate.NONE;

        this.baseStatsHP  = baseStatsHP;
        this.baseStatsATK = baseStatsATK;
        this.baseStatsDEF = baseStatsDEF;
        this.baseStatsSPA = baseStatsSPA;
        this.baseStatsSPD = baseStatsSPD;
        this.baseStatsSPE = baseStatsSPE;
        //this.baseFriendship = baseFriendship; //ToDo: forgot to implement when transfering database

        this.luminance = luminance;
        //this.lightColor = lightColor;
        this.pokedexColor = pokedexColor | PokemonData.PokedexColor.NONE;

        //ToDo: wild pokemon held items not yet implemented
        this.heldItem = heldItem; //[item id,% chance]

        this.movesetLevels = movesetLevels;
        this.movesetMoves  = movesetMoves; //ToDo: Array Cast conversion
        //this.tmList = tmList; //ToDo: Need new item database array/enum for this; one that's regional/generation dependant

        this.evolutionID = evolutionID;
        //this.evolutionRequirements = evolutionRequirements;
    }
コード例 #3
0
        public async Task GetEggGroupResourceAsyncIntegrationTest()
        {
            // assemble
            PokeApiClient client = new PokeApiClient();

            // act
            EggGroup eggGroup = await client.GetResourceAsync <EggGroup>(1);

            // assert
            Assert.True(eggGroup.Id != default(int));
        }
コード例 #4
0
 internal PokemonSpecies(int number, int gender, EggGroup e1, EggGroup e2, PokemonColor color, int forms)
 {
     _number         = number;
     _genderBoundary = (byte)gender;
     _forms          = new PokemonForm[forms];
     for (int i = 0; i < forms; ++i)
     {
         _forms[i] = new PokemonForm(this, i);
     }
     _eggGroup1 = e1;
     _eggGroup2 = e2;
     _color     = color;
 }
コード例 #5
0
 public static string GetLocalisedName(EggGroup group, CultureInfo culture)
 {
     try
     {
         string result = LanguageResources.ResourceManager.GetString("EggGroup_" + group.ToString(), culture);
         return(result);
     }
     catch (Exception ex)
     {
         Console.WriteLine(nameof(GetLocalisedName) + ": " + ex.Message);
         return(group.ToString());
     }
 }
コード例 #6
0
 public BaseStats(JToken j)
 {
     HP             = j[nameof(HP)].Value <byte>();
     Attack         = j[nameof(Attack)].Value <byte>();
     Defense        = j[nameof(Defense)].Value <byte>();
     SpAttack       = j[nameof(SpAttack)].Value <byte>();
     SpDefense      = j[nameof(SpDefense)].Value <byte>();
     Speed          = j[nameof(Speed)].Value <byte>();
     Type1          = j[nameof(Type1)].ReadEnumValue <PBEType>();
     Type2          = j[nameof(Type2)].ReadEnumValue <PBEType>();
     CatchRate      = j[nameof(CatchRate)].Value <byte>();
     BaseFriendship = j[nameof(BaseFriendship)].Value <byte>();
     EggCycles      = j[nameof(EggCycles)].Value <byte>();
     GenderRatio    = j[nameof(GenderRatio)].ReadEnumValue <PBEGenderRatio>();
     GrowthRate     = j[nameof(GrowthRate)].ReadEnumValue <PBEGrowthRate>();
     BaseEXPYield   = j[nameof(BaseEXPYield)].Value <ushort>();
     EggGroup1      = j[nameof(EggGroup1)].ReadEnumValue <EggGroup>();
     EggGroup2      = j[nameof(EggGroup2)].ReadEnumValue <EggGroup>();
     Ability1       = j[nameof(Ability1)].ReadEnumValue <PBEAbility>();
     Ability2       = j[nameof(Ability2)].ReadEnumValue <PBEAbility>();
     AbilityH       = j[nameof(AbilityH)].ReadEnumValue <PBEAbility>();
     FleeRate       = j[nameof(FleeRate)].Value <byte>();
     Weight         = j[nameof(Weight)].Value <double>();
 }
コード例 #7
0
    //E.G.	Poliwhirl(61)
    //		new int[]{62,186},
    //		new string[]{"Stone,Water Stone","Trade\Item,King's Rock"}),
    //
    //E.G. to evolve to sylveon
    //		new int[]{..., 700},
    //		new string[]{..., "Amie\Move,2\Fairy"}),
    //
    //
    //Level,int level
    //	if pokemon's level is greater or equal to int level
    //Stone,string itemName
    //	if name of stone is equal to string itemName
    //Trade
    //	if currently trading pokemon
    //Friendship
    //	if pokemon's friendship is greater or equal to 220
    //Item,string itemName
    //	if pokemon's heldItem is equal to string itemName
    //Gender,Pokemon.Gender
    //  if pokemon's gender is equal to Pokemon.Gender
    //Move,string moveName
    //	if pokemon has a move thats name or typing is equal to string moveName
    //Map,string mapName
    //  if currentMap is equal to string mapName
    //Time,string dayNight
    //	if time is between 9PM and 4AM time is "Night". else time is "Day".
    //	if time is equal to string dayNight (either Day, or Night)
    //
    //		Unique evolution methods:
    //Mantine
    //	if party contains a Remoraid
    //Pangoro
    //	if party contains a dark pokemon
    //Goodra
    //	if currentMap's weather is rain
    //Hitmonlee
    //	if pokemon's ATK is greater than DEF
    //Hitmonchan
    //	if pokemon's ATK is lower than DEF
    //Hitmontop
    //  if pokemon's ATK is equal to DEF
    //Silcoon
    //  if pokemon's shinyValue divided by 2's remainder is equal to 0
    //Cascoon
    //	if pokemon's shinyValue divided by 2's remainder is equal to 1


    public PokemonData(int ID, string name, Type type1, Type type2, string ability1, string ability2, string hiddenAbility,
                       float maleRatio, int catchRate, EggGroup eggGroup1, EggGroup eggGroup2, int hatchTime,
                       float height, float weight, int baseExpYield, LevelingRate levelingRate,
                       int evYieldHP, int evYieldATK, int evYieldDEF, int evYieldSPA, int evYieldSPD, int evYieldSPE,
                       PokedexColor pokedexColor, int baseFriendship,
                       string species, string pokedexEntry,
                       int baseStatsHP, int baseStatsATK, int baseStatsDEF, int baseStatsSPA, int baseStatsSPD, int baseStatsSPE,
                       float luminance, Color lightColor,      //string[] heldItem,
                       int[] movesetLevels, string[] movesetMoves, string[] tmList,
                       int[] evolutionID, string[] evolutionRequirements)
    {
        this.ID            = ID;
        this.name          = name;
        this.type1         = type1;
        this.type2         = type2;
        this.ability1      = ability1;
        this.ability2      = ability2;
        this.hiddenAbility = hiddenAbility;

        this.maleRatio = maleRatio;
        this.catchRate = catchRate;
        this.eggGroup1 = eggGroup1;
        this.eggGroup2 = eggGroup2;
        this.hatchTime = hatchTime;

        this.height       = height;
        this.weight       = weight;
        this.baseExpYield = baseExpYield;
        this.levelingRate = levelingRate;

        this.evYieldHP  = evYieldHP;
        this.evYieldATK = evYieldATK;
        this.evYieldDEF = evYieldDEF;
        this.evYieldSPA = evYieldSPA;
        this.evYieldSPD = evYieldSPD;
        this.evYieldSPE = evYieldSPE;

        this.pokedexColor   = pokedexColor;
        this.baseFriendship = baseFriendship;

        this.species      = species;
        this.pokedexEntry = pokedexEntry;

        this.baseStatsHP  = baseStatsHP;
        this.baseStatsATK = baseStatsATK;
        this.baseStatsDEF = baseStatsDEF;
        this.baseStatsSPA = baseStatsSPA;
        this.baseStatsSPD = baseStatsSPD;
        this.baseStatsSPE = baseStatsSPE;

        this.luminance  = luminance;
        this.lightColor = lightColor;

        //wild pokemon held items not yet implemented
        //this.heldItem = heldItem;

        this.movesetLevels = movesetLevels;
        this.movesetMoves  = movesetMoves;
        this.tmList        = tmList;

        this.evolutionID           = evolutionID;
        this.evolutionRequirements = evolutionRequirements;
    }
コード例 #8
0
ファイル: Data Types.cs プロジェクト: NoahSanders/Pokemon
 /// <summary>
 /// Creates an instance of a PokeEggGroup with the given EggGroup
 /// </summary>
 /// <param name="eggGroup">The EggGroup of the PokeEggGroup to instantiate</param>
 /// <returns>The created instance of the PokeEggGroup</returns>
 public static PokeEggGroup GetInstance(EggGroup eggGroup)
 {
     return GetInstance((int)eggGroup + 1);
 }
コード例 #9
0
    public PokemonData(int ID, string name, Type type1, Type type2, int?ability1, int?ability2, int?hiddenAbility,
                       float maleRatio, int catchRate, EggGroup eggGroup1, EggGroup eggGroup2, int hatchTime,
                       float height, float weight, int baseExpYield, LevelingRate levelingRate,
                       int evYieldHP, int evYieldATK, int evYieldDEF, int evYieldSPA, int evYieldSPD, int evYieldSPE,
                       PokedexColor pokedexColor, int baseFriendship, int species, string pokedexEntry,
                       int baseStatsHP, int baseStatsATK, int baseStatsDEF, int baseStatsSPA, int baseStatsSPD, int baseStatsSPE,
                       float luminance, Color lightColor, int[] movesetLevels, int[] movesetMoves, int[] tmList,
                       int[] evolutionID, string[] evolutionRequirements, int?forms, System.Collections.Generic.Dictionary <int, float> heldItem = null /*new int[1][] { new int[2]{-1,100} }*/)
    {
        this.ID            = ID;
        this.Species       = name;
        this.type1         = type1;
        this.type2         = type2;
        this.ability1      = (string)ability1.ToString();
        this.ability2      = (string)ability2.ToString();
        this.hiddenAbility = (string)hiddenAbility.ToString();

        this.maleRatio = maleRatio;
        this.catchRate = catchRate;
        this.eggGroup1 = eggGroup1;
        this.eggGroup2 = eggGroup2;
        this.hatchTime = hatchTime;

        this.height       = height;
        this.weight       = weight;
        this.baseExpYield = baseExpYield;
        this.levelingRate = levelingRate;

        this.evYieldHP  = evYieldHP;
        this.evYieldATK = evYieldATK;
        this.evYieldDEF = evYieldDEF;
        this.evYieldSPA = evYieldSPA;
        this.evYieldSPD = evYieldSPD;
        this.evYieldSPE = evYieldSPE;

        this.pokedexColor   = pokedexColor;
        this.baseFriendship = baseFriendship;

        //this.Species = species;
        this.pokedexEntry = pokedexEntry;

        this.baseStatsHP  = baseStatsHP;
        this.baseStatsATK = baseStatsATK;
        this.baseStatsDEF = baseStatsDEF;
        this.baseStatsSPA = baseStatsSPA;
        this.baseStatsSPD = baseStatsSPD;
        this.baseStatsSPE = baseStatsSPE;

        this.luminance  = luminance;
        this.lightColor = lightColor;

        //wild pokemon held items not yet implemented
        //this.heldItem = heldItem; //[item id,% chance]

        this.movesetLevels = movesetLevels;
        //this.movesetMoves = movesetMoves;
        //this.tmList = tmList;

        this.evolutionID           = evolutionID;
        this.evolutionRequirements = evolutionRequirements;
    }
コード例 #10
0
        /// <summary>
        /// Get the <see cref="PokemonType"/> from input in a given culture.
        /// Returns success.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="cultureInfo"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public static bool GetGroupFromLocalisedName(string name, CultureInfo cultureInfo, out EggGroup result)
        {
            try
            {
                IEnumerable <string> matchingResources = LanguageResources.ResourceManager.GetResourceSet(cultureInfo, true, true).OfType <DictionaryEntry>()
                                                         .Where(e => e.Value.ToString().CloseEquals(name)).Select(entry => entry.Key.ToString());

                string key = matchingResources.FirstOrDefault(k => k.StartsWith("EggGroup_"));
                if (key != null)
                {
                    // Success case.
                    return(Enum.TryParse(key.Substring("EggGroup_".Length), out result));
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(nameof(GetGroupFromLocalisedName) + ": " + ex.Message + " -- for name " + name + " and culture " + cultureInfo);
            }
            result = EggGroup.Unknown;
            return(false);
        }
コード例 #11
0
        public IActionResult EggGroup(EggGroup eggGroup)
        {
            this.dataService.DeleteEggGroup(eggGroup.Id);

            return(this.RedirectToAction("EggGroups", "Admin"));
        }
コード例 #12
0
        public IActionResult EggGroup(int id)
        {
            EggGroup model = this.dataService.GetObjectByPropertyValue <EggGroup>("Id", id);

            return(this.View(model));
        }
コード例 #13
0
ファイル: PokemonData.cs プロジェクト: Metasynic/PkmnEngine
        /* The public constructor for a PokemonData takes a lot of parameters. */
        public PokemonData(string pokemonName, byte baseHP, byte baseAttack, byte baseDefence, byte baseSpecialAttack, byte baseSpecialDefence, byte baseSpeed, ushort id, PkmnType type, PkmnType?secondType, bool canHaveGender, string species, double weightKg, double heightM, EggGroup eggGroup, EggGroup?secondEggGroup, ushort baseExp, byte captureRate, byte baseHappiness, GrowthRate growthRate, byte eggCycles, byte maleRatio, byte femaleRatio, EvYield evYield)
        {
            /* The majority of the fields are set directly using the parameters passed in. */
            PokemonName        = pokemonName;
            BaseHP             = baseHP;
            BaseAttack         = baseAttack;
            BaseDefence        = baseDefence;
            BaseSpecialAttack  = baseSpecialAttack;
            BaseSpecialDefence = baseSpecialDefence;
            BaseSpeed          = baseSpeed;
            ID            = id;
            CanHaveGender = canHaveGender;
            Species       = species;
            WeightKg      = weightKg;
            HeightM       = heightM;
            BaseExp       = baseExp;
            CaptureRate   = captureRate;
            BaseHappiness = baseHappiness;
            GrowthRate    = growthRate;
            EggCycles     = eggCycles;
            GenderRatio   = new GenderRatio(maleRatio, femaleRatio);
            EvYield       = evYield;

            /* For the Type and EggGroups properties, which can contain one or two values each,
             * the second parameter can be passed as null.
             * If the second parameter is null, the lists will only contain one item.
             * If the second parameter has a value, the lists will contain two items. */
            Type = new List <PkmnType>();
            Type.Add(type);
            if (secondType.HasValue)
            {
                Type.Add(secondType.Value);
            }
            EggGroups = new List <EggGroup>();
            EggGroups.Add(eggGroup);
            if (secondEggGroup.HasValue)
            {
                EggGroups.Add(secondEggGroup.Value);
            }
        }
コード例 #14
0
        /* This function allows a user to add a new Pokemon species manually. */
        public static void AddPokemon()
        {
            Border("PkmnEngine Editor - Add New Pokemon");

            /* First, the user enters the ID for the Pokemon they're adding. */
            Console.WriteLine("Enter the ID of the Pokemon you wish to add.");
            ushort id = ushort.Parse(Console.ReadLine());

            /* If a PokemonData with that ID already exists, the user is prompted asking if they want to overwrite it. */
            if (PokemonDataManager.PokemonData.ContainsKey(id))
            {
                Console.WriteLine("Pokemon with ID {0} already exists [{1}]. Overwrite? (y/n)", id, PokemonDataManager.PokemonData[id].PokemonName);
                string choice = Console.ReadLine();

                /* If they don't want to overwrite, the function returns. */
                if (choice[0] != 'y' && choice[0] != 'Y')
                {
                    return;
                }
                Console.WriteLine("Pokemon will be overwritten.");
            }

            /* If the user chooses to overwrite the PokemonData, they will then enter all the new information about the PokemonData. */
            Console.WriteLine("Enter name of Pokemon.");
            string name = Console.ReadLine();

            Console.WriteLine("Enter Base HP of Pokemon.");
            byte baseHP = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter Base Attack of Pokemon.");
            byte baseAttack = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter Base Defence of Pokemon.");
            byte baseDefence = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter Base Special Attack of Pokemon.");
            byte baseSpecialAttack = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter Base Special Defence of Pokemon.");
            byte baseSpecialDefence = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter Base Speed of Pokemon.");
            byte baseSpeed = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter whether Pokemon can have genders (True/False).");
            bool canHaveGender = bool.Parse(Console.ReadLine());

            Console.WriteLine("Enter type of Pokemon.");
            PkmnType type = ParseEnum <PkmnType>(Console.ReadLine());

            Console.WriteLine("Enter second type of Pokemon (null for single types).");
            string secondType = Console.ReadLine();

            Console.WriteLine("Enter species description, e.g. Gyarados is \"Atrocious\".");
            string species = Console.ReadLine();

            species = species + " Pokemon"; // Converts "Atrocious" into "Atrocious Pokemon", for example
            Console.WriteLine("Enter the weight of the Pokemon in KG.");
            double weightKg = double.Parse(Console.ReadLine());

            Console.WriteLine("Enter the height of the Pokemon in M.");
            double heightM = double.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Egg Group of the Pokemon.");
            EggGroup eggGroup = ParseEnum <EggGroup>(Console.ReadLine());

            Console.WriteLine("Enter the second Egg Group of the Pokemon (can be null).");
            string secondEggGroup = Console.ReadLine();

            Console.WriteLine("Enter the Base Experience of the Pokemon.");
            ushort baseExp = ushort.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Capture Rate of the Pokemon.");
            byte captureRate = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Base Happiness of the Pokemon.");
            byte baseHappiness = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Growth Rate of the Pokemon.");
            GrowthRate growthRate = ParseEnum <GrowthRate>(Console.ReadLine());

            Console.WriteLine("Enter the Male Gender Ratio of the Pokemon out of 100 (0 for genderless).");
            byte maleRatio = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Female Gender Ratio of the Pokemon out of 100 (0 for genderless).");
            byte femaleRatio = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Egg Cycle count of the Pokemon.");
            byte eggCycles = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the HP EV Yield of the Pokemon.");
            byte hpEvYield = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Attack EV Yield of the Pokemon.");
            byte atkEvYield = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Defence EV Yield of the Pokemon.");
            byte defEvYield = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Special Attack EV Yield of the Pokemon.");
            byte spAtkEvYield = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Special Defence EV Yield of the Pokemon.");
            byte spDefEvYield = byte.Parse(Console.ReadLine());

            Console.WriteLine("Enter the Speed EV Yield of the Pokemon.");
            byte    spdEvYield = byte.Parse(Console.ReadLine());
            EvYield evYield    = new EvYield(hpEvYield, atkEvYield, defEvYield, spAtkEvYield, spDefEvYield, spdEvYield);

            /* Once everything has been calculated, the base stat total is calculated and displayed. */
            int stattotal = (baseHP + baseAttack + baseDefence + baseSpecialAttack + baseSpecialDefence + baseSpeed);

            Console.WriteLine("Stat total is {0}. Adding Pokemon...", stattotal);

            /* One of four possible constructor calls is made, depending on whether the secondType and secondEggGroup are null or not. */
            if (secondType == "null" || secondType == "Null")
            {
                if (secondEggGroup == "null" || secondEggGroup == "Null")
                {
                    PokemonDataManager.PokemonData.Add(id, new PokemonData(name, baseHP, baseAttack, baseDefence, baseSpecialAttack, baseSpecialDefence, baseSpeed, id, type, null, canHaveGender, species, weightKg, heightM, eggGroup, null, baseExp, captureRate, baseHappiness, growthRate, eggCycles, maleRatio, femaleRatio, evYield));
                }
                else
                {
                    EggGroup otherEggGroup = ParseEnum <EggGroup>(secondEggGroup);
                    PokemonDataManager.PokemonData.Add(id, new PokemonData(name, baseHP, baseAttack, baseDefence, baseSpecialAttack, baseSpecialDefence, baseSpeed, id, type, null, canHaveGender, species, weightKg, heightM, eggGroup, otherEggGroup, baseExp, captureRate, baseHappiness, growthRate, eggCycles, maleRatio, femaleRatio, evYield));
                }
            }
            else // secondType != "null" || secondType != "Null"
            {
                PkmnType otherType = ParseEnum <PkmnType>(secondType);
                if (secondEggGroup == "null" || secondEggGroup == "Null")
                {
                    PokemonDataManager.PokemonData.Add(id, new PokemonData(name, baseHP, baseAttack, baseDefence, baseSpecialAttack, baseSpecialDefence, baseSpeed, id, type, otherType, canHaveGender, species, weightKg, heightM, eggGroup, null, baseExp, captureRate, baseHappiness, growthRate, eggCycles, maleRatio, femaleRatio, evYield));
                }
                else
                {
                    EggGroup otherEggGroup = ParseEnum <EggGroup>(secondEggGroup);
                    PokemonDataManager.PokemonData.Add(id, new PokemonData(name, baseHP, baseAttack, baseDefence, baseSpecialAttack, baseSpecialDefence, baseSpeed, id, type, otherType, canHaveGender, species, weightKg, heightM, eggGroup, otherEggGroup, baseExp, captureRate, baseHappiness, growthRate, eggCycles, maleRatio, femaleRatio, evYield));
                }
            }
            Console.WriteLine("{0} has been added successfully!", name);
            System.Threading.Thread.Sleep(2000);
        }