Example #1
0
 public void AddToZone(PlayerPeer player)
 {
     if (m_playersInZone.TryAdd(player.ID, player))
     {
         lock (m_playerArray)
         {
             m_playerListIsDirty = true;
         }
     }
 }
Example #2
0
        public void RemoveFromZone(PlayerPeer player)
        {
            PlayerPeer removedPlayer = default(PlayerPeer);

            if (m_playersInZone.TryRemove(player.ID, out removedPlayer))
            {
                lock (m_playerArray)
                {
                    m_playerListIsDirty = true;
                }
            }
        }
Example #3
0
        public Task <IEntity> GetTarget(int id)
        {
            return(m_fiber.Enqueue(() =>
            {
                PlayerPeer player = default(PlayerPeer);
                NPCInstance npc = default(NPCInstance);
                IEntity target = default(IEntity);

                if (m_playersInZone.TryGetValue(id, out player))
                {
                    target = (IEntity)player;
                }
                else if (m_npcs.TryGetValue(id, out npc))
                {
                    target = (IEntity)npc;
                }

                return target;
            }, false));
        }