Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
 private void OnRawCombatEvent(RawCombatEventArgs e)
 {
     RawCombatEvent?.Invoke(this, e);
 }