Beispiel #1
0
        protected ConcurrentArrayList <Entities.GameClient> GetPossibleTargets()
        {
            ConcurrentArrayList <Entities.GameClient> Targets = new ConcurrentArrayList <GameClient>();

            if (Screen.MapObjects.Count == 0)
            {
                return(Targets);
            }

            foreach (Maps.IMapObject MapObject in Screen.MapObjects.Values)
            {
                if (ProtectedPlayers.Contains((MapObject as Entities.GameClient)))
                {
                    continue;
                }
                if (MapObject is Entities.GameClient)
                {
                    if ((MapObject as Entities.GameClient).Alive)
                    {
                        Targets.Add(MapObject as Entities.GameClient);
                    }
                }
            }
            return(Targets);
        }
Beispiel #2
0
        public void JoinAsWatcher(Entities.GameClient Watcher)
        {
            Watcher.CanAttack = false;
            Watchers.Add(Watcher);

            ushort[] Location = GenerateRandomLocation();
            Watcher.TeleportDynamic(DynamicID, Location[0], Location[1]);

            SendPacket();
        }
        public static void JoinArena(Entities.GameClient Player)
        {
            if (Player.Battle != null)
            {
                return;
            }
            if (Player.DynamicMap != null)
            {
                return;
            }
            if (Player.ArenaMatch != null)
            {
                return;
            }

            if (PlayerQueue.Contains(Player))
            {
                Player.Arena.Status = Enums.ArenaStatus.NotSignedUp;
                using (var wait = Player.Arena.Build())
                    Player.Send(wait);

                Player.Arena.Status = Enums.ArenaStatus.WaitingForOpponent;
                using (var wait = Player.Arena.Build())
                    Player.Send(wait);
            }
            else
            {
                Player.Arena.Status = Enums.ArenaStatus.WaitingForOpponent;
                using (var wait = Player.Arena.Build())
                    Player.Send(wait);
            }
            if (MatchQueue.Count > 0)
            {
                using (var matches = new Packets.ArenaBattleInfoPacket(MatchQueue.ToDictionary().Values.ToArray()))
                {
                    matches.Page = 1;
                    matches.SetSize();
                    Player.Send(matches);
                }
            }
            PlayerQueue.Add(Player);
            uint DelayedID = 0;

            DelayedID = ProjectX_V3_Lib.Threading.DelayedTask.StartDelayedTask(() =>
            {
                if (HandleMatchUp(Player, FindMatchUp(Player)))
                {
                    ProjectX_V3_Lib.Threading.DelayedTask.Remove(DelayedID);
                }
            }, 10000, 0);
        }
Beispiel #4
0
 public void Join(Entities.GameClient client)
 {
     TeamMembers.Add(client);
     if (MaskedWeaponL > 0)
     {
         client.Equipments.AddMask(MaskedWeaponL, Enums.ItemLocation.WeaponL);
     }
     if (MaskedWeaponR > 0)
     {
         client.Equipments.AddMask(MaskedWeaponR, Enums.ItemLocation.WeaponR);
     }
     if (MaskedGarment > 0)
     {
         client.Equipments.AddMask(MaskedGarment, Enums.ItemLocation.Garment);
     }
 }
        public static string GetName()
        {
            string NewName = string.Empty;
            int    Tries   = 0;

            while (string.IsNullOrWhiteSpace(NewName) && Tries < 100)
            {
                int index = ProjectX_V3_Lib.ThreadSafe.RandomGenerator.Generator.Next(Names.Count - 1);
                NewName = Names[index];
                if (UsedNames.Contains(NewName))
                {
                    NewName = string.Empty;
                }
                else
                {
                    UsedNames.Add(NewName);
                }

                Tries++;
            }
            return(NewName);
        }
        public static void AcceptArena(Entities.GameClient Player)
        {
            if (Player.ArenaMatch == null)
            {
                return;
            }

            if (Player.ArenaMatch.AcceptedFight(Player))
            {
                Player.ArenaMatch.BeginMatch();
                MatchQueue.Add(Player.ArenaMatch);
            }
            else
            {
                if (Player == Player.ArenaMatch.Player1)
                {
                    Player.ArenaMatch.AcceptedFight1 = true;
                }
                else
                {
                    Player.ArenaMatch.AcceptedFight2 = true;
                }
            }
        }