Пример #1
0
    protected override SpawnInfo GetNextSpawn()
    {
        var spawn = new SpawnInfo();

        spawn.BossName = L("Pillow Fighters");
        spawn.Time     = ErinnTime.GetNextTime(19, 0).DateTime;
        spawn.LifeSpan = TimeSpan.FromMinutes(6);

        return(spawn);
    }
Пример #2
0
        /// <summary>
        /// Sets skill's auto cancel time and cool down.
        /// </summary>
        /// <param name="creature"></param>
        /// <param name="skill"></param>
        private void SetTimers(Creature creature, Skill skill)
        {
            var duration = this.GetDuration(creature, skill);

            duration = TimeSpan.FromMilliseconds(Math.Max(1000, duration.TotalMilliseconds * ChannelServer.Instance.Conf.World.PaladinDurationRate));

            creature.Skills.CancelAfter(skill.Info.Id, duration);
            skill.SetCoolDownEnd(ErinnTime.GetNextTime(6, 0).DateTime);

            creature.Death += this.OnDeath;
        }
Пример #3
0
        public void GetNextTime()
        {
            // 12 hours
            {
                var now  = DateTime.Parse("2016-01-01 00:00:00");
                var then = DateTime.Parse("2016-01-01 00:18:00");
                var time = ErinnTime.GetNextTime(now, 12, 0);
                Assert.Equal(then, time.DateTime);
            }

            // 24 hours
            {
                var now  = DateTime.Parse("2016-01-01 00:00:00");
                var then = DateTime.Parse("2016-01-01 00:36:00");
                var time = ErinnTime.GetNextTime(now, 0, 0);
                Assert.Equal(then, time.DateTime);
            }

            // Hours
            for (int i = 1; i < 24; ++i)
            {
                var now  = DateTime.Parse("2016-01-01 00:00:00");
                var then = now.AddSeconds(i * 90);
                var time = ErinnTime.GetNextTime(now, i, 0);
                Assert.Equal(then, time.DateTime);
            }

            // Minutes
            for (int i = 0; i < 60; ++i)
            {
                var now  = DateTime.Parse("2016-01-01 00:00:00");
                var then = now.AddSeconds(90).AddMilliseconds(i * 1500);
                var time = ErinnTime.GetNextTime(now, 1, i);
                Assert.Equal(then, time.DateTime);
            }

            // 23 hours, rollover
            {
                var now  = DateTime.Parse("2016-01-01 00:04:30");
                var then = now.AddSeconds(23 * 90);
                var time = ErinnTime.GetNextTime(now, 2, 0);
                Assert.Equal(then, time.DateTime);
            }

            // Real world 1
            {
                var now  = DateTime.Parse("2016-12-02 16:32");
                var then = DateTime.Parse("2016-12-02 16:40:30");
                var time = ErinnTime.GetNextTime(now, 19, 0);
                Assert.Equal(then, time.DateTime);
            }

            // Real world 2
            {
                var now  = DateTime.Parse("2016-12-02 11:17");
                var then = DateTime.Parse("2016-12-02 11:52:30");
                var time = ErinnTime.GetNextTime(now, 19, 0);
                Assert.Equal(then, time.DateTime);
            }

            // 2 hours based on now (one random test, just in case)
            {
                var erinnNow = ErinnTime.Now;
                var now      = erinnNow.DateTime;
                var then     = now.AddSeconds(2 * 90);
                var time     = ErinnTime.GetNextTime(now, (erinnNow.Hour + 2) % 24, erinnNow.Minute);
                Assert.Equal(then, time.DateTime);
            }
        }