Example #1
0
        private string GenerateAttackEmulation()
        {
            int energy = 0, crush = 0, ability = 0, invalid = 0;

            System.Random enemyAttackRNG;

            for (int level = 1; level < 100; level++)
            {
                Digimon d = Database.GetRandomDigimonForBattle(level);
                if (d == null)
                {
                    continue;
                }
                enemyAttackRNG = new System.Random(gm.GetRandomSavedSeed());
                for (int i = 0; i < 10; i++)
                {
                    int attack = ChooseEnemyAttack(d.GetRegularStats());
                    if (attack == 0)
                    {
                        energy++;
                    }
                    else if (attack == 1)
                    {
                        crush++;
                    }
                    else if (attack == 2)
                    {
                        ability++;
                    }
                    else
                    {
                        invalid++;
                    }
                }
            }

            return($"En: {energy}, Cr: {crush}, Ab: {ability}, Invalid {invalid} <= This should be 0.");

            int ChooseEnemyAttack(MutableCombatStats enemyStats)
            {
                int total     = enemyStats.EN + enemyStats.CR + enemyStats.AB;
                int rngNumber = enemyAttackRNG.Next(total);

                if (rngNumber < enemyStats.EN)
                {
                    return(0);
                }
                else if (rngNumber < enemyStats.EN + enemyStats.CR)
                {
                    return(1);
                }
                else
                {
                    return(2);
                }
            }
        }
Example #2
0
        private string GenerateAttackEmulationForDigimon(string digimon)
        {
            int energy = 0, crush = 0, ability = 0, invalid = 0;

            System.Random enemyAttackRNG;

            for (int attempt = 1; attempt < 50; attempt++)
            {
                Digimon d = Database.GetDigimon(digimon);
                if (d == null)
                {
                    continue;
                }
                enemyAttackRNG = new System.Random(gm.GetRandomSavedSeed());
                Debug.Log($"Attack selected: {enemyAttackRNG}");
                for (int i = 0; i < 20; i++)
                {
                    int attack = ChooseEnemyAttack(d.GetRegularStats());
                    Debug.Log($"Attack selected: {attack}");
                    if (attack == 0)
                    {
                        energy++;
                    }
                    else if (attack == 1)
                    {
                        crush++;
                    }
                    else if (attack == 2)
                    {
                        ability++;
                    }
                    else
                    {
                        invalid++;
                    }
                }
            }

            return($"En: {energy}, Cr: {crush}, Ab: {ability}, Invalid {invalid} <= This should be 0.");

            int ChooseEnemyAttack(MutableCombatStats enemyStats)
            {
                int total = enemyStats.EN + enemyStats.CR + enemyStats.AB;

                Debug.Log($"EN {enemyStats.EN}, CR: {enemyStats.CR}, AB: {enemyStats.AB}, total {total}");
                int rngNumber = enemyAttackRNG.Next(total);

                Debug.Log($"Number chosen: {rngNumber}");

                if (rngNumber < enemyStats.EN)
                {
                    return(0);
                }
                else if (rngNumber < enemyStats.EN + enemyStats.CR)
                {
                    return(1);
                }
                else
                {
                    return(2);
                }
            }
        }