/// <inheritdoc/> public void Log(EventPriority priority, string message) { RealmEvent report = new RealmEvent { Uid = Guid.NewGuid().ToString(), Priority = priority, Message = message, AppVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(), Timestamp = DateTimeOffset.Now }; Log(report); }
public void HandleRealmEvent(Enemy enemy, Player killer) { if (enemy.ObjectDesc != null) { TauntData?dat = null; foreach (var i in criticalEnemies) { if ((enemy.ObjectDesc.DisplayId ?? enemy.ObjectDesc.ObjectId) == i.Item1) { dat = i.Item2; break; } } if (dat == null) { return; } if (dat.Value.killed != null) { string[] arr = dat.Value.killed; string msg = arr[rand.Next(0, arr.Length)]; while (killer == null && msg.Contains("{PLAYER}")) { msg = arr[rand.Next(0, arr.Length)]; } msg = msg.Replace("{PLAYER}", killer.Name); BroadcastMsg(msg); } if (rand.NextDouble() < RealmEventProbability) { RealmEvent evt = RealmEventCache[rand.Next(0, RealmEventCache.Count)]; if (GameServer.Manager.GameData.ObjectDescs[GameServer.Manager.GameData.IdToObjectType[evt.Name]].PerRealmMax == 1) { RealmEventCache.Remove(evt); } SpawnEvent(evt.Name, evt.MapSetPiece); dat = null; foreach (var i in criticalEnemies) { if (evt.Name == i.Item1) { dat = i.Item2; break; } } if (dat == null) { return; } if (dat.Value.spawn != null) { string[] arr = dat.Value.spawn; string msg = arr[rand.Next(0, arr.Length)]; BroadcastMsg(msg); } } } }
internal Event([NotNull] RealmEvent log) : base(log.Timestamp.LocalDateTime, Version.Parse(log.AppVersion)) { Priority = log.Priority; Message = log.Message; }