Beispiel #1
0
        static void Output(GroupPlayers list, Player p, bool showWhenEmpty)
        {
            StringBuilder data = list.builder;

            if (data.Length == 0 && !showWhenEmpty)
            {
                return;
            }
            if (data.Length > 0)
            {
                data.Remove(data.Length - 1, 1);
            }

            string title = ":" + list.group.Color + GetPlural(list.group.Name) + ":";

            p.Message(title + data.ToString());
        }
Beispiel #2
0
        public static string Output(GroupPlayers list)
        {
            StringBuilder data = list.builder;

            if (data.Length == 0)
            {
                return(null);
            }
            if (data.Length > 0)
            {
                data.Remove(data.Length - 1, 1);
            }

            string title = "**" + GetPlural(list.group.Name) + "**:";

            return(title + data + "\n");
        }
Beispiel #3
0
        public override void Use(Player p, string message, CommandData data)
        {
            int totalPlayers = 0;

            if (message.Length > 0)
            {
                Group grp = Matcher.FindRanks(p, message);
                if (grp == null)
                {
                    return;
                }

                GroupPlayers rankPlayers = Make(p, data, grp, ref totalPlayers);
                if (totalPlayers == 0)
                {
                    p.Message("There are no players of that rank online.");
                }
                else
                {
                    Output(rankPlayers, p, false);
                }
                return;
            }

            List <GroupPlayers> allPlayers = new List <GroupPlayers>();

            foreach (Group grp in Group.GroupList)
            {
                allPlayers.Add(Make(p, data, grp, ref totalPlayers));
            }

            if (totalPlayers == 1)
            {
                p.Message("There is &a1 &Splayer online.");
            }
            else
            {
                p.Message("There are &a" + totalPlayers + " &Splayers online.");
            }

            for (int i = allPlayers.Count - 1; i >= 0; i--)
            {
                Output(allPlayers[i], p, Server.Config.ListEmptyRanks);
            }
        }
Beispiel #4
0
        public void RecalculatePoints()
        {
            foreach (GroupPlayerInfo player in Players)
            {
                player.Points     = GetPlayerPoints(player.Id);
                player.BergerKoef = GetBergerKoef(player.Id);
            }

            bool all_matches_over = true;

            foreach (MatchInfo match in Matches.Values)
            {
                all_matches_over = all_matches_over && match.IsOver;
            }
            List <GroupPlayerInfo> players = new List <GroupPlayerInfo>(GroupPlayers.Values.ToArray());

            players.Sort(new GroupPlayerInfo.ComparerByPoints());
            int index = 0;
            int points = -1; double kb = -1;

            foreach (GroupPlayerInfo player in players)
            {
                if (GroupPlayers[player.Id].Points != points || GroupPlayers[player.Id].BergerKoef != kb)
                {
                    index++;
                    kb     = GroupPlayers[player.Id].BergerKoef;
                    points = GroupPlayers[player.Id].Points;
                }
                if (all_matches_over)
                {
                    GroupPlayers[player.Id].Place = index;
                }
                else
                {
                    GroupPlayers[player.Id].Place = 0;
                }
            }

            // Пересортировуем группу по очкам
            GroupPlayers.Clear();
            foreach (GroupPlayerInfo player in players)
            {
                GroupPlayers.Add(player.Id, player);
            }
        }
Beispiel #5
0
        static void Append(GroupPlayers list, Player p, bool showmaps)
        {
            StringBuilder data = list.builder;

            data.Append(' ');
            if (p.voice)
            {
                data.Append("+").Append(list.group.Color);
            }
            data.Append(Colors.Strip(Player.Console.FormatNick(p)));

            if (p.muted)
            {
                data.Append("-muted");
            }
            if (p.frozen)
            {
                data.Append("-frozen");
            }
            if (p.Game.Referee)
            {
                data.Append("-ref");
            }
            if (p.IsAfk)
            {
                data.Append("-afk");
            }
            if (p.Unverified)
            {
                data.Append("-unverified");
            }

            if (!showmaps)
            {
                data.Append(","); return;
            }

            string lvlName = Colors.Strip(p.level.name);             // for museums

            data.Append(" (").Append(lvlName).Append("),");
        }
Beispiel #6
0
        static void Append(Player target, GroupPlayers list, Player p)
        {
            StringBuilder data = list.builder;

            data.Append(' ');
            if (p.voice)
            {
                data.Append("&f+").Append(list.group.Color);
            }
            data.Append(Colors.StripUsed(target.FormatNick(p)));

            if (p.hidden)
            {
                data.Append("-hidden");
            }
            if (p.muted)
            {
                data.Append("-muted");
            }
            if (p.frozen)
            {
                data.Append("-frozen");
            }
            if (p.Game.Referee)
            {
                data.Append("-ref");
            }
            if (p.IsAfk)
            {
                data.Append("-afk");
            }
            if (p.Unverified)
            {
                data.Append("-unverified");
            }

            string lvlName = Colors.Strip(p.level.name); // for museums

            data.Append(" (").Append(lvlName).Append("),");
        }
Beispiel #7
0
        static void Append(GroupPlayers list, Player pl)
        {
            StringBuilder data = list.builder;

            data.Append(' ');
            if (pl.voice)
            {
                data.Append("&f+").Append(list.group.Color);
            }
            data.Append(Colors.Strip(pl.DisplayName));

            if (pl.hidden)
            {
                data.Append("-hidden");
            }
            if (pl.muted)
            {
                data.Append("-muted");
            }
            if (pl.frozen)
            {
                data.Append("-frozen");
            }
            if (pl.Game.Referee)
            {
                data.Append("-ref");
            }
            if (pl.IsAfk)
            {
                data.Append("-afk");
            }
            if (pl.Unverified)
            {
                data.Append("-unverified");
            }

            string lvlName = Colors.Strip(pl.level.name); // for museums

            data.Append(" (").Append(lvlName).Append("),");
        }