private void CombatHandler(object sender, RawCombatEventArgs args) { if (args.CombatEvent.Ev != null) { return; } /* notify tracking change */ if (args.CombatEvent.Src.Elite != 0) { return; } /* add */ if (args.CombatEvent.Src.Profession != 0) { if (_playersInSquad.ContainsKey(args.CombatEvent.Src.Name)) { return; } string accountName = args.CombatEvent.Dst.Name.StartsWith(":") ? args.CombatEvent.Dst.Name.Substring(1) : args.CombatEvent.Dst.Name; var player = new Player( args.CombatEvent.Src.Name, accountName, args.CombatEvent.Dst.Profession, args.CombatEvent.Dst.Elite, args.CombatEvent.Dst.Self != 0 ); if (_playersInSquad.TryAdd(args.CombatEvent.Src.Name, player)) { this.PlayerAdded?.Invoke(player); } } /* remove */ else { if (_playersInSquad.TryRemove(args.CombatEvent.Src.Name, out var player)) { this.PlayerRemoved?.Invoke(player); } } }
private void DispatchSkillSubscriptions(object sender, RawCombatEventArgs eventHandler) { if (eventHandler.CombatEvent.Ev == null) { return; } uint skillId = eventHandler.CombatEvent.Ev.SkillId; if (!_subscriptions.ContainsKey(skillId)) { return; } foreach (Action <object, RawCombatEventArgs> action in _subscriptions[skillId]) { action(sender, eventHandler); } }
private void OnRawCombatEvent(RawCombatEventArgs e) { RawCombatEvent?.Invoke(this, e); }