Example #1
0
        public void TestTarget_NoTargetCondition_TargetAccepted()
        {
            int firstTarget = 0;
            MockCard card = new MockCard();
            MockUnit someUnit = new MockUnit();

            bool result = card.TestTarget(firstTarget, someUnit);

            Assert.IsTrue(result);
        }
Example #2
0
        public void TestTarget_ValidTarget_TargetAccepted()
        {
            int firstTarget = 0;
            MockCard card = new MockCard();
            MockUnit someUnit = new MockUnit();

            card.SetTargetCondition(firstTarget,unit => unit is UnitEntity);
            bool result = card.TestTarget(firstTarget, someUnit);

            Assert.IsTrue(result);
        }
Example #3
0
        public void FireAbility_HasValidTarget_Resolves()
        {
            bool hasfired = false;
            bool resolvesEventTriggered = false;

            Ability abi = new MockAbility(() => hasfired = true);
            abi.EventManager = this.EventManager;

            this.EventManager.Register(new Trigger<AbilityResolvesEvent>(_ => resolvesEventTriggered = true));

            UnitEntity unit = new MockUnit();
            abi.SetTarget(0, new XmasUniversal[] { unit });

            this.ActionManager.Queue(abi);
            this.ActionManager.ExecuteActions();

            Assert.IsTrue(hasfired);
            Assert.IsTrue(resolvesEventTriggered);
        }
Example #4
0
        public void FireAbility_TargetConditionFalse_DoesNotResolve()
        {
            bool hasfired = false;
            bool resolvesEventTriggered = false;
            bool targetBecomesInvalid = true;

            Ability abi = new MockAbility(() => hasfired = true);
            abi.EventManager = this.EventManager;

            this.EventManager.Register(new Trigger<AbilityResolvesEvent>(_ => resolvesEventTriggered = true));
            this.EventManager.Register(new Trigger<AbilityTargetInvalidEvent>(_ => targetBecomesInvalid = true));

            UnitEntity unit = new MockUnit();
            abi.SetTarget(0, new XmasUniversal[] { unit });

            abi.SetTargetCondition(0, _ => false);

            this.ActionManager.Queue(abi);
            this.ActionManager.ExecuteActions();

            Assert.IsFalse(hasfired);
            Assert.IsFalse(resolvesEventTriggered);
            Assert.IsTrue(targetBecomesInvalid);
        }
Example #5
0
        public void Targets_HasOneOnFirstTargetZeroOnSecondTargetTwoOnThirdTarget_ReturnsCorrectTargets()
        {
            UnitEntity first = new MockUnit();

            UnitEntity Third1 = new MockUnit();
            UnitEntity Third2 = new MockUnit();
            Ability abi = new MockAbility(null);
            abi.SetTarget(0, new object[] { first });
            abi.SetTarget(2, new object[] { Third1, Third2 });

            var targets = abi.Targets;
            int secondcount = 0;

            Assert.AreEqual(first, targets[0][0]);
            Assert.AreEqual(secondcount, targets[1].Length);
            Assert.AreEqual(Third1, targets[2][0]);
            Assert.AreEqual(Third2, targets[2][1]);
        }