Exemplo n.º 1
0
        public void TurnEngine_TurnAsAttack_Monster_Attacks_Character_Hit_Should_Pass()
        {
            // Arrange
            var Monster       = new MonsterModel();
            var MonsterPlayer = new PlayerInfoModel(Monster);

            Engine.MonsterList.Add(MonsterPlayer);

            var Character       = new CharacterModel();
            var CharacterPlayer = new PlayerInfoModel(Character);

            Engine.CharacterList.Add(CharacterPlayer);

            // Forece a Miss
            DiceHelper.EnableRandomValues();
            DiceHelper.SetForcedRandomValue(20);

            // Act
            var result = Engine.TurnAsAttack(MonsterPlayer, CharacterPlayer, false);

            // Reset
            DiceHelper.DisableRandomValues();

            // Assert
            Assert.AreEqual(true, result);
        }
Exemplo n.º 2
0
        public void TurnEngine_TurnAsAttack_Monster_Attacks_Character_Hit_Should_Pass()
        {
            // Arrange
            Engine.MaxNumberCharacters = 1;
            var Character = new CharacterModel();

            Engine.CharacterList.Add(Character);

            Engine.MaxNumberMonsters = 1;
            var Monster = new MonsterModel();

            Engine.MonsterList.Add(Monster);

            Engine.MakeEntityList();

            // Force a Hit
            DiceHelper.DisableRandomValues();
            DiceHelper.SetForcedDiceRollValue(20);

            // Act
            var result = Engine.TurnAsAttack(
                Engine.EntityList.First(a => a.Id == Monster.Id),
                Engine.EntityList.First(a => a.Id == Character.Id));

            // Reset
            DiceHelper.EnableRandomValues();

            // Assert
            Assert.AreEqual(true, result);
        }
Exemplo n.º 3
0
        public void TurnEngine_DropItems_Character_Items_2_Should_Return_2()
        {
            // Arrange
            var Character = new CharacterModel
            {
                HeadItem = ItemIndexViewModel.Instance.Dataset.FirstOrDefault().Id,
                FeetItem = ItemIndexViewModel.Instance.Dataset.FirstOrDefault().Id,
                Id       = "me"
            };

            Engine.CharacterList.Clear();
            Engine.CharacterList.Add(Character);
            Engine.MakeEntityList();

            DiceHelper.DisableRandomValues();
            DiceHelper.SetForcedDiceRollValue(0);

            // Act
            var result = Engine.DropItems(Engine.EntityList
                                          .Where(a => a.Id == "me").FirstOrDefault());

            // Reset
            DiceHelper.EnableRandomValues();
            Engine.StartBattle(false);

            // Assert
            Assert.AreEqual(2, result);
        }
        public async Task AutoBattleEngine_RunAutoBattle_GameOver_Round_1_Should_Pass()
        {
            /*
             *
             * 1 Character, Speed slowest, only 1 HP
             *
             * 6 Monsters
             *
             * Should end in the first round
             *
             */

            //Arrange

            // Add Characters

            Engine.MaxNumberCharacters = 1;

            var CharacterPlayer = new CharacterModel
            {
                Speed           = -1,       // Will go last...
                Level           = 10,
                CurrentHealth   = 1,
                TotalExperience = 1,
            };

            Engine.CharacterList.Add(CharacterPlayer);


            // Add Monsters

            Engine.MaxNumberMonsters = 6;

            // set dice to always hit
            DiceHelper.DisableRandomValues();
            DiceHelper.SetForcedDiceRollValue(20);

            //Act
            var result = await Engine.RunAutoBattle();

            //Reset
            DiceHelper.DisableRandomValues();
            Engine.MonsterList.Clear();
            Engine.CharacterList.Clear();
            Engine.EntityList.Clear();

            //Assert
            Assert.AreEqual(true, result);
        }
Exemplo n.º 5
0
        public void RollDiceHelper_RollDice_Valid_1Time_6sided_Forced_6_Should_Pass()
        {
            // Arrange
            DiceHelper.EnableRandomValues();
            DiceHelper.SetForcedRandomValue(6);

            // Act
            var result = DiceHelper.RollDice(1, 6);

            // Reset
            DiceHelper.DisableRandomValues();

            // Assert
            Assert.AreEqual(6, result);
        }
        public void AutoBattleEngine_RunAutoBattle_Default_Should_Pass()
        {
            //Arrange

            DiceHelper.EnableRandomValues();
            DiceHelper.SetForcedRandomValue(3);

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

            //Reset
            DiceHelper.DisableRandomValues();

            //Assert
            Assert.IsNotNull(result);
        }
Exemplo n.º 7
0
        public void ItemModel_ScaleLevel_ForcedVaue_Should_Pass()
        {
            // Arrange
            var data = new ItemModel();

            DiceHelper.DisableRandomValues();
            DiceHelper.SetForcedDiceRollValue(1);

            // Act
            var result = data.ScaleLevel(1);

            // Reset
            DiceHelper.DisableRandomValues();

            // Assert
            Assert.AreEqual(1, result);
        }
Exemplo n.º 8
0
        public void TurnEngine_RolltoHitTarget_Forced_20_Should_Hit()
        {
            // Arrange
            var AttackScore  = 1;
            var DefenseScore = 100;

            DiceHelper.DisableRandomValues();
            DiceHelper.SetForcedDiceRollValue(20);

            // Act
            var result = Engine.RollToHitTarget(AttackScore, DefenseScore);

            // Reset
            DiceHelper.EnableRandomValues();

            // Assert
            Assert.AreEqual(HitStatusEnum.Hit, result);
        }
Exemplo n.º 9
0
        public void TurnEngine_DropItems_Monster_Items_0_Random_Drop_1_Should_Return_1()
        {
            // Arrange
            var player = new CharacterModel();

            var PlayerInfo = new PlayerInfoModel(player);

            DiceHelper.EnableRandomValues();
            DiceHelper.SetForcedRandomValue(1);

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

            // Reset
            DiceHelper.DisableRandomValues();

            // Assert
            Assert.AreEqual(1, result);
        }
Exemplo n.º 10
0
        public void TurnEngine_RolltoHitTarget_Forced_1_Should_Miss()
        {
            // Arrange
            var AttackScore  = 1;
            var DefenseScore = 100;

            DiceHelper.EnableRandomValues();
            DiceHelper.SetForcedRandomValue(1);

            // Act
            Engine.CurrentAttacker            = new PlayerInfoModel();
            Engine.CurrentAttacker.PlayerType = PlayerTypeEnum.Character;
            var result = Engine.RollToHitTarget(AttackScore, DefenseScore);

            // Reset
            DiceHelper.DisableRandomValues();

            // Assert
            Assert.AreEqual(HitStatusEnum.Miss, result);
        }
        public void AutoBattleEngine_RunAutoBattle_Character_UsedSpecialAblity_Pass()
        {
            //Arrange

            var CharacterPlayerMike = new PlayerInfoModel(
                new CharacterModel
            {
                Speed           = -1,
                Level           = 10,
                CurrentHealth   = 11,
                ExperienceTotal = 1,
                Name            = "Mike",
                ListOrder       = 1,
            });
            var MonsterPlayer = new PlayerInfoModel(
                new CharacterModel
            {
                Speed           = -1,
                Level           = 10,
                CurrentHealth   = 11,
                ExperienceTotal = 1,
                Name            = "Monster",
                ListOrder       = 1,
            });

            Engine.CharacterList.Add(CharacterPlayerMike);
            Engine.MonsterList.Add(MonsterPlayer);
            Engine.UseSpecialAbility = true;


            //Act
            // Have dice rull 19
            DiceHelper.EnableRandomValues();
            DiceHelper.SetForcedRandomValue(19);
            var result = Engine.Attack(CharacterPlayerMike);

            //Reset
            DiceHelper.DisableRandomValues();
            //Assert
            Assert.AreEqual(false, CharacterPlayerMike.ISSpecialAbilityNotUsed);
        }
Exemplo n.º 12
0
        public void TurnEngine_DropItems_Character_Items_2_Should_Return_2()
        {
            // Arrange
            var player = new CharacterModel
            {
                Head = ItemIndexViewModel.Instance.Dataset.FirstOrDefault().Id,
                Feet = ItemIndexViewModel.Instance.Dataset.FirstOrDefault().Id,
            };

            var PlayerInfo = new PlayerInfoModel(player);

            DiceHelper.EnableRandomValues();
            DiceHelper.SetForcedRandomValue(0);

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

            // Reset
            DiceHelper.DisableRandomValues();

            // Assert
            Assert.AreEqual(2, result);
        }
Exemplo n.º 13
0
        public void TurnEngine_DropItems_Character_Items_0_Random_Drop_Should_Return_0()
        {
            // Arrange
            var Character = new CharacterModel();

            Character.Id = "me";
            Engine.CharacterList.Clear();
            Engine.CharacterList.Add(Character);
            Engine.MakeEntityList();

            DiceHelper.DisableRandomValues();
            DiceHelper.SetForcedDiceRollValue(1);

            // Act
            var result = Engine.DropItems(Engine.EntityList
                                          .Where(a => a.Id == "me").FirstOrDefault());

            // Reset
            DiceHelper.EnableRandomValues();
            Engine.StartBattle(false);

            // Assert
            Assert.AreEqual(0, result);
        }
        public async Task AutoBattleEngine_RunAutoBattle_InValid_Trun_Loop_Should_Fail()
        {
            /*
             * Test infinate turn.
             *
             * Monsters overpower Characters game never ends
             *
             * 1 Character
             *      Speed low
             *      Hit weak
             *      Health low
             *
             * 6 Monsters
             *      Speed High
             *      Hit strong
             *      Health High
             *
             * Rolls for always Miss
             *
             * Should never end
             *
             * Inifinite Loop Check should stop the game
             *
             */

            //Arrange

            // Add Characters

            Engine.MaxNumberCharacters = 1;

            var CharacterPlayer = new CharacterModel
            {
                Speed         = 1,
                Level         = 1,
                MaxHealth     = 1,
                CurrentHealth = 1,
            };

            Engine.CharacterList.Add(CharacterPlayer);


            // Add Monsters

            Engine.MaxNumberMonsters = 6;

            // Controll Rolls,  Always Miss
            DiceHelper.DisableRandomValues();
            DiceHelper.SetForcedDiceRollValue(1);

            //Act
            var result = await Engine.RunAutoBattle();

            //Reset
            DiceHelper.EnableRandomValues();
            Engine.CharacterList.Clear();
            Engine.MonsterList.Clear();
            Engine.EntityList.Clear();

            //Assert
            Assert.AreEqual(false, result);
            Assert.AreEqual(true, Engine.Score.TurnCount > Engine.MaxTurnCount);
            Assert.AreEqual(true, Engine.Score.RoundCount < Engine.MaxRoundCount);
        }