public void RoundEngine_RoundNextTurn_2Characters_1Monster_Weak_Should_Take_2_Turns() { MockForms.Init(); bool reincarnation = GameGlobals.EnableReincarnation; GameGlobals.EnableReincarnation = false; // Can create a new Round engine... var myRoundEngine = new RoundEngine(); // Start myRoundEngine.StartRound(); // Add moderate monsters // First monster myRoundEngine.MonsterList.Clear(); // start fresh, because it was loaded already with 6... var myMonsterWeak = new Monster(DefaultModels.MonsterDefault()); myMonsterWeak.ScaleLevel(5); myMonsterWeak.Attribute.CurrentHealth = 7; // need to set to enough to last 2 rounds... myRoundEngine.MonsterList.Add(myMonsterWeak); // Add weak character for first... var myCharacterWeak = new Character(DefaultModels.CharacterDefault()); myCharacterWeak.ScaleLevel(10); myRoundEngine.CharacterList.Add(myCharacterWeak); // Add strong character for second var myCharacterStrong = new Character(DefaultModels.CharacterDefault()); myCharacterStrong.ScaleLevel(20); myRoundEngine.CharacterList.Add(myCharacterStrong); // Should be Character 20, Character 10, Monster 5 // Force rolls to 18 for to hit... // Turn off random numbers GameGlobals.SetForcedRandomNumbersValueAndToHit(1, 18); // Character, should kill the monster in the first round. // So the check for the second round will say Round over... var FirstRound = myRoundEngine.RoundNextTurn(); // Character 20 Goes var SecondRound = myRoundEngine.RoundNextTurn(); // Character 10 Goes var Actual = myRoundEngine.RoundNextTurn(); // Over... // Reset GameGlobals.ToggleRandomState(); var Expected = RoundEnum.NextTurn; Assert.AreEqual(Expected, Actual, "Status " + TestContext.CurrentContext.Test.Name); Assert.AreEqual(3, myRoundEngine.BattleScore.TurnCount, "TurnCount " + TestContext.CurrentContext.Test.Name); //Assert.AreEqual(4, myRoundEngine.BattleScore.RoundCount, "RoundCount " + TestContext.CurrentContext.Test.Name); GameGlobals.EnableReincarnation = reincarnation; }
public void RoundEngine_RoundNextTurn_2Characters_1Monster_Strong_Should_Take_3_Rounds() { MockForms.Init(); // No characters, so return should be game over... // Can create a new Round engine... var myRoundEngine = new RoundEngine(); // Start myRoundEngine.StartRound(); // Add moderate monsters // First monster myRoundEngine.MonsterList.Clear(); // start fresh, because it was loaded already with 6... var myMonsterWeak = new Monster(DefaultModels.MonsterDefault()); myMonsterWeak.ScaleLevel(2); myMonsterWeak.Attribute.CurrentHealth = 20; // need to set to enough to last 4 rounds... myRoundEngine.MonsterList.Add(myMonsterWeak); // Add weak character for first... var myCharacterStrong = new Character(DefaultModels.CharacterDefault()); myCharacterStrong.ScaleLevel(10); myRoundEngine.CharacterList.Add(myCharacterStrong); // Add strong character for second myCharacterStrong = new Character(DefaultModels.CharacterDefault()); myCharacterStrong.ScaleLevel(20); myRoundEngine.CharacterList.Add(myCharacterStrong); // Should be Character 20, Character 10, Monster 5 // Force rolls to 18 for to hit... // Turn off random numbers GameGlobals.SetForcedRandomNumbers(1, 18); // Character, should kill the monster in the first round. // So the check for the second round will say Round over... var FirstRound = myRoundEngine.RoundNextTurn(); // Character 20 var SecondRound = myRoundEngine.RoundNextTurn(); // Character 10 goes var ThirdRound = myRoundEngine.RoundNextTurn(); // Monster goes var FourthRound = myRoundEngine.RoundNextTurn(); // Character 20 goes, kills monster... var Actual = myRoundEngine.RoundNextTurn(); // over... // Reset GameGlobals.ToggleRandomState(); var Expected = RoundEnum.NewRound; Assert.AreEqual(Expected, Actual, "Status " + TestContext.CurrentContext.Test.Name); Assert.AreEqual(4, myRoundEngine.BattleScore.TurnCount, "TurnCount " + TestContext.CurrentContext.Test.Name); Assert.AreEqual(1, myRoundEngine.BattleScore.RoundCount, "RoundCount " + TestContext.CurrentContext.Test.Name); }
public void RoundEngine_RoundNextTurn_2_Characters_Should_Return_NextTurn() { MockForms.Init(); // No characters, so return should be game over... // Can create a new Round engine... var myRoundEngine = new RoundEngine(); // Add 2 monsters myRoundEngine.MonsterList.Add(new Monster(DefaultModels.MonsterDefault())); myRoundEngine.MonsterList.Add(new Monster(DefaultModels.MonsterDefault())); // Add 2 characters myRoundEngine.CharacterList.Add(new Character(DefaultModels.CharacterDefault())); myRoundEngine.CharacterList.Add(new Character(DefaultModels.CharacterDefault())); // Start myRoundEngine.StartRound(); // Do the turn... var Actual = myRoundEngine.RoundNextTurn(); // There are 2 characters, and 2 monsters, so the first turn should happen, and it is now next turn... var Expected = RoundEnum.NextTurn; Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
public void RoundEngine_RoundNextTurn_Characters_MonstersDead_Should_Return_NewRound() { MockForms.Init(); // No characters, so return should be game over... // Can create a new Round engine... var myRoundEngine = new RoundEngine(); // Turn off random numbers GameGlobals.SetForcedRandomNumbersValueAndToHit(1, 20); // Start myRoundEngine.StartRound(); // Clear the monster list // Add weak monsters var myMonsterWeak = new Monster(DefaultModels.MonsterDefault()); myMonsterWeak.ScaleLevel(1); myRoundEngine.MonsterList.Clear(); // start fresh, because it was loaded already with 6... myRoundEngine.MonsterList.Add(myMonsterWeak); // Add strong character var myCharacterStrong = new Character(DefaultModels.CharacterDefault()); myCharacterStrong.ScaleLevel(20); myRoundEngine.CharacterList.Add(myCharacterStrong); // Character, should kill the monster in the first round. // So the check for the second round will say Round over... var FirstRound = myRoundEngine.RoundNextTurn(); var Actual = myRoundEngine.RoundNextTurn(); var Expected = RoundEnum.NewRound; // Reset GameGlobals.ToggleRandomState(); Assert.AreEqual(RoundEnum.NextTurn, FirstRound, TestContext.CurrentContext.Test.Name); Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
public void RoundEngine_RoundNextTurn_NoCharacters_GameOver_Should_Pass() { MockForms.Init(); var myRoundEngine = new RoundEngine(); myRoundEngine.StartRound(); var Actual = myRoundEngine.RoundNextTurn(); var Expected = RoundEnum.GameOver; Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
public void RoundEngine_RoundNextTurn_1_Character_Should_Have_NewRound_Should_Pass() { MockForms.Init(); // Start round with one monster and character var myRoundEngine = new RoundEngine(); myRoundEngine.MonsterList.Add(new Monster(DefaultModels.MonsterDefault())); myRoundEngine.CharacterList.Add(new Character(DefaultModels.CharacterDefault())); myRoundEngine.StartRound(); var Expected = RoundEnum.NextTurn; var Actual = myRoundEngine.RoundNextTurn(); Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }
public void RoundEngine_RoundNextTurn_No_Characters_Should_Return_GameOver() { MockForms.Init(); // No characters, so return should be game over... // Can create a new Round engine... var myRoundEngine = new RoundEngine(); myRoundEngine.StartRound(); var Actual = myRoundEngine.RoundNextTurn(); var Expected = RoundEnum.GameOver; Assert.AreEqual(Expected, Actual, TestContext.CurrentContext.Test.Name); }