Esempio n. 1
0
        public void GenerateEnemyTest_ShouldReturn_ExpectedEnemy()
        {
            //Arrange
            Enemy expectedEnemy = new Enemy
            {
                Name   = "Bug",
                Class  = EnemyClassENUM.Backend,
                HP     = 260,
                Armor  = 11,
                Damage = 30,
                CompilerErrorChance = 5,
                RuntimeErrorChance  = 5
            };

            EnemyGeneratorService serviceMocked = Substitute.For <EnemyGeneratorService>();

            string         returnValueName = "Bug";
            EnemyClassENUM returnValueENUM = EnemyClassENUM.Backend;

            serviceMocked.GetRandomName().Returns(returnValueName);
            serviceMocked.GetRandomClass().Returns(returnValueENUM);

            //Act
            Enemy resultEnemy = serviceMocked.GenerateEnemy(_testPlayer).Result;

            //Asserts
            Assert.AreEqual(expectedEnemy.Name, resultEnemy.Name);
            Assert.AreEqual(expectedEnemy.Class, resultEnemy.Class);
            Assert.AreEqual(expectedEnemy.HP, resultEnemy.HP);
            Assert.AreEqual(expectedEnemy.Armor, resultEnemy.Armor);
            Assert.AreEqual(expectedEnemy.Damage, resultEnemy.Damage);
            Assert.AreEqual(expectedEnemy.CompilerErrorChance, resultEnemy.CompilerErrorChance);
            Assert.AreEqual(expectedEnemy.RuntimeErrorChance, resultEnemy.RuntimeErrorChance);
        }
Esempio n. 2
0
        public virtual EnemyClassENUM GetRandomClass()
        {
            Array          values      = Enum.GetValues(typeof(EnemyClassENUM));
            Random         random      = new Random();
            EnemyClassENUM randomClass = (EnemyClassENUM)values.GetValue(random.Next(values.Length));

            return(randomClass);
        }
Esempio n. 3
0
        public int CalculateDamage(int opponentsBlockChance, EnemyClassENUM _class)
        {
            if (RNG.Next(0, 100) < opponentsBlockChance)
            {
                return(0);
            }

            int damage = 10 + RNG.Next(0, 10);

            damage += Design + ProblemSolving + Testing + Algorithm + CleanCode;

            switch (_class)
            {
            case EnemyClassENUM.Frontend:
                damage += Design * 2 + CleanCode;
                break;

            case EnemyClassENUM.Backend:
                damage += ProblemSolving * 2 + Algorithm * 2;
                break;

            case EnemyClassENUM.DevOps:
                damage += Convert.ToInt32(ProblemSolving * 1.5 + Testing);
                break;

            case EnemyClassENUM.Testing:
                damage += Testing * 2 + CleanCode;
                break;
            }

            if (RNG.Next(0, 100) > FastCoding)
            {
                damage *= 2;
            }

            return(damage);
        }