Example #1
0
        public void CastTestPushbackRegularSkill()
        {
            BaseEntity mob   = new MockEntity(Engine);
            long       delay = 5;

            double expectedMobHealth      = mob.GetProperty(Entity.HP_KEY).Value;
            double expectedMobHealthAfter = expectedMobHealth - 10;

            _testPlayer.Cast(mob, _testSkill.Key);
            _testPlayer.AddPushback(delay);

            MockTimer timer = (MockTimer)Engine.GetTimer();

            MeNode duration = _testSkill.ByLevel[0].Duration;

            duration = Sanitizer.ReplaceTargetAndSource(duration, _testPlayer, _testPlayer);
            long skillDuration = duration.Resolve().Value.ToLong();

            for (int i = 0; i < skillDuration + delay - 1; ++i)
            {
                timer.ForceTick();
                _testPlayer.Update();
                mob.Update();
                Assert.AreEqual(expectedMobHealth, mob.GetProperty(Entity.HP_KEY).Value);
            }

            timer.ForceTick();
            _testPlayer.Update();
            mob.Update();
            Assert.AreEqual(expectedMobHealthAfter, mob.GetProperty(Entity.HP_KEY).Value);
        }