public void RoundEngine_OrderPlayerListByTurnOrder_Speed_Higher_Should_Pass() { // Arrange var Monster = new MonsterModel { Speed = 20, Level = 20, CurrentHealth = 100, ExperienceTotal = 1000, Name = "Z", ListOrder = 1, Guid = "me" }; var MonsterPlayer = new PlayerInfoModel(Monster); Engine.MonsterList.Clear(); Engine.MonsterList.Add(MonsterPlayer); var Character = new CharacterModel { Speed = 1, Level = 1, CurrentHealth = 2, ExperienceTotal = 1, Name = "C", ListOrder = 10 }; var CharacterPlayer = new PlayerInfoModel(Character); Engine.CharacterList.Clear(); Engine.CharacterList.Add(CharacterPlayer); // Make the List Engine.PlayerList = Engine.MakePlayerList(); // Sort the list by Current Health, so it has to be resorted. Engine.PlayerList = Engine.PlayerList.OrderBy(m => m.CurrentHealth).ToList(); // Act var result = Engine.OrderPlayerListByTurnOrder(1); // Reset // Assert Assert.AreEqual("me", result[0].Guid); }
public void HakathonScenario_15_Slowest_First_Should_Pass() { /* * Scenario Number: * #15 * * Description: * On a 20% chance the slowest creatures and players will move first instead of fastest * * Changes Required (Classes, Methods etc.) List Files, Methods, and Describe Changes: * AboutPage.Xaml * AboutPage.Xaml.cs * RoundEngine.cs * OrderPlayerListByTurnOrder() * * Test Algrorithm: * Set the "AlwaysSlowest" variable to true to ensure that the slowest goes first. * Add 2 monsters * Check list order for slowest * * Test Conditions: * Slowest activated - Slowest first * Slowest not activated - Slowest second * * Validation: * Validate that the slowest goes first in the list. Validate the slowest is at index 1 */ var Monster = new BaseMonster { Speed = 20, CurrHealth = 12, Name = "A", }; var MonsterPlayer = new PlayerInfoModel(Monster); var saveMonster = Engine.MonsterList; Engine.MonsterList.Clear(); Engine.MonsterList.Add(MonsterPlayer); var Character = new BaseCharacter { Speed = 1, CurrHealth = 10, Name = "B", }; var CharacterPlayer = new PlayerInfoModel(Character); var saveCharacter = Engine.CharacterList; Engine.CharacterList.Clear(); Engine.CharacterList.Add(CharacterPlayer); // Make the List Engine.PlayerList = Engine.MakePlayerList(); // Sort the list by Current Health, so it has to be resorted. Engine.PlayerList = Engine.PlayerList.OrderBy(m => m.CurrHealth).ToList(); Engine.SpeedAlways = true; var result = Engine.OrderPlayerListByTurnOrder(); // Reset Engine.CharacterList = saveCharacter; Engine.MonsterList = saveMonster; // Assert Assert.AreEqual("B", result[0].Name); Assert.AreEqual("A", result[1].Name); }
public void HackathonScenario_Scenario_30_First_Character_Should_Have_Buff() { /* * Scenario Number: * 30 * * Description: * The first player in the player list gets their base attack, speed, defense * values buffed by 2X for the first time they are first in the list. * * Changes Required (Classes, Methods etc.) List Files, Methods, and Describe Changes: * See Defualt Test * * Test Algrorithm: * Create 2 Characters named Bugs and Michael. * Add them to the Player List. * Order the Player List. * Test Conditions: * Control Dice roll so natural hit * Test with Character of not named Bob * * Validation * Verify Enum is Hit * */ //Arrange // Set Character Conditions BattleEngine.MaxNumberPartyCharacters = 2; int tempSpeed = 200; int tempAttack = 1; int tempDefense = 1; var CharacterPlayer1 = new PlayerInfoModel( new CharacterModel { Speed = 200, Level = 1, CurrentHealth = 100, ExperienceTotal = 100, ExperienceRemaining = 1, Defense = 1, Attack = 1, Name = "Bugs", }); var CharacterPlayer2 = new PlayerInfoModel( new CharacterModel { Speed = 200, Level = 1, CurrentHealth = 100, ExperienceTotal = 100, ExperienceRemaining = 1, Attack = 1, Defense = 1, Name = "Michael", }); BattleEngine.PlayerList.Add(CharacterPlayer1); BattleEngine.PlayerList.Add(CharacterPlayer2); // Set Monster Conditions //Act var result = BattleEngine.OrderPlayerListByTurnOrder(); //Reset DiceHelper.DisableForcedRolls(); //Assert Assert.AreEqual(((tempSpeed + result[0].GetSpeedLevelBonus) * 2), result[0].Speed); Assert.AreEqual(((tempAttack + result[0].GetAttackLevelBonus) * 2), result[0].Attack); Assert.AreEqual(((tempDefense + result[0].GetDefenseLevelBonus) * 2), result[0].Defense); }