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); }
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); }
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); }