Exemplo n.º 1
0
        public void WarriorClass_Level3_CorrectlySetsUpSelectMove_AttackBoost()
        {
            _chanceService.PushWhichEventOccurs(0);

            int attackIndex, evadeIndex, evadeAndCounterIndex, attackBoostIndex;

            GetLevel3MoveIndices(out attackIndex, out evadeIndex, out evadeAndCounterIndex, out attackBoostIndex);

            List <BattleMove> availableMoves  = _level3Warrior.AvailableMoves;
            StatusMove        attackBoostMove = availableMoves[attackBoostIndex] as StatusMove ?? new StatusMove("", TargetType.Self, null);

            _level3Warrior.AddStatus(attackBoostMove.Status);

            _level3Warrior.SelectMove(_warriorTeam, _humanTeam);

            double[] chances = _chanceService.LastEventOccursArgs;

            Assert.AreEqual(0.65, chances[attackIndex]);
            Assert.AreEqual(0.15, chances[evadeIndex]);
            Assert.AreEqual(0.10, chances[evadeAndCounterIndex]);
            Assert.AreEqual(0.10, chances[attackBoostIndex]);
        }
Exemplo n.º 2
0
        public void WarriorClass_Level1_CorrectlySetsUpSelectMove_WarriorHasAttackBoostStatus()
        {
            _chanceService.PushWhichEventOccurs(0);

            List <BattleMove> availableMoves = _level1Warrior.AvailableMoves;
            int attackIndex      = availableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Attack);
            int evadeIndex       = availableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Status && (bm as StatusMove)?.Status is AutoEvadeStatus);
            int attackBoostIndex = availableMoves.FindIndex(bm => bm.MoveType == BattleMoveType.Status && (bm as StatusMove)?.Status is StatMultiplierStatus);

            StatusMove attackBoostMove = availableMoves[attackBoostIndex] as StatusMove ?? new StatusMove("", TargetType.Self, null);

            _level1Warrior.AddStatus(attackBoostMove.Status);

            _level1Warrior.SelectMove(_warriorTeam, _humanTeam);

            double[] chances = _chanceService.LastEventOccursArgs;

            double oneSixth = 1.0 / 6;

            Assert.AreEqual(2.0 / 3, chances[attackIndex]);
            Assert.AreEqual(oneSixth, chances[evadeIndex]);
            Assert.AreEqual(oneSixth, chances[attackBoostIndex]);
        }