Beispiel #1
0
        public void TurnEngine_RemoveIfDead_Dead_True_Should_Return_False()
        {
            // Arrange
            var Monster = new MonsterModel
            {
                CurrentHealth = 1,
                Alive         = true,
                Guid          = "me"
            };

            var PlayerInfo = new PlayerInfoModel(Monster);

            Engine.MonsterList.Clear();
            Engine.MonsterList.Add(PlayerInfo);
            Engine.MakePlayerList();

            // Act
            var result = Engine.RemoveIfDead(PlayerInfo);

            // Reset

            // Assert
            Assert.AreEqual(false, result);
        }
        public void RoundEngine_OrderPlayerListByTurnOrder_Speed_Higher_Should_Pass()
        {
            // Arrange
            var Monster = new BaseMonster
            {
                Speed      = 20,
                Level      = 20,
                CurrHealth = 100,
                ////ExperienceTotal = 1000,
                Name      = "Z",
                ListOrder = 1,
                Guid      = "me"
            };

            var MonsterPlayer = new PlayerInfoModel(Monster);

            Engine.MonsterList.Clear();
            Engine.MonsterList.Add(MonsterPlayer);

            var Character = new BaseCharacter
            {
                Speed      = 1,
                Level      = 1,
                CurrHealth = 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.CurrHealth).ToList();

            // Act
            var result = Engine.OrderPlayerListByTurnOrder();

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