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); }
/// <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; }
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); } }