Ejemplo n.º 1
0
        public void onGameFinish(xCoreLevel level)
        {
            var players = level.Points.OrderByDescending((KeyValuePair <string, int> arg) => arg.Value);
            //string st = "§a!====§7[§fTop §4Kills§7]§a====!\n";
            string st = "§a§l--------------------§r\n";

            st += new String(' ', (20 - NameGame.Length) / 2) + NameGame + "\n\n";
            string winner = level.GetSurvivalPlayers()[0].Username;

            st += new String(' ', (20 - winner.Length) / 2) + "§7" + winner + "\n";
            int    ii = 1;
            string ll = "1st Killer - 0";

            foreach (var s in players)
            {
                /*if (ii <= 3)
                 * {
                 *      st += "§a#" + ii + " §f|§4 " + s.Key + " §f| §4Kills §a" + s.Value + "\n";
                 * }*/

                if (ii == 1)
                {
                    st += new String(' ', (20 - ll.Length) / 2) + "§e1st Killer - §7" + s.Key + " - " + s.Value + "\n";
                }
                else if (ii == 2)
                {
                    st += new String(' ', (20 - ll.Length) / 2) + "§62nd Killer - §7" + s.Key + " - " + s.Value + "\n";
                }
                else if (ii == 3)
                {
                    st += new String(' ', (20 - ll.Length) / 2) + "§c3rd Killer - §7" + s.Key + " - " + s.Value + "\n";
                }
                ii++;
            }
            st += "\n§a§l--------------------";
            foreach (xPlayer pl in level.GetSurvivalPlayers())
            {
                Core.BossBar.SetNameTag(level, pl.Username + " win!");
                pl.SendMessage(Prefix + pl.PlayerData.lang.get("sw.finish.win"));
                //Core.UpdateStats(pl, 50, 10, Booster);
                //Core.UpdateData(pl, "wins", 1, this);
            }
            level.BroadcastMessage(st);
            level.Time   = 10;
            level.Status = Status.Finish;
        }
Ejemplo n.º 2
0
        public void onGameMatch(xCoreLevel level)
        {
            level.Status = Status.Match;
            level.Time   = 10;
            level.pvp    = false;
            int i = 0;
            List <PlayerLocation> loc = DeathPoints[level.Map.Name];

            foreach (Player player in level.GetSurvivalPlayers())
            {
                player.Teleport(loc[i]);
                player.SetNoAi(true);
                i++;
            }
        }
Ejemplo n.º 3
0
        public void Timer(Player[] players, xCoreLevel level)
        {
            if (level.Status == Status.Game)
            {
                switch (level.Time)
                {
                case 600:
                    foreach (xPlayer p in level.GetSpawnedPlayers())
                    {
                        p.SendMessage(p.PlayerData.lang.get("sw.timer.game.prerefill5"));
                    }
                    break;

                case 580:
                    //
                    break;

                case 420:
                    foreach (xPlayer p in level.GetSpawnedPlayers())
                    {
                        p.SendMessage(p.PlayerData.lang.get("sw.timer.game.prerefill2"));
                    }
                    break;

                case 300:
                    ChestFill(level);
                    foreach (xPlayer p in level.GetSpawnedPlayers())
                    {
                        p.SendMessage(p.PlayerData.lang.get("sw.timer.game.refill"));
                    }
                    break;

                case 0:
                    onGameMatch(level);
                    break;

                default:
                    Player[] Survided = level.GetSurvivalPlayers();
                    if (Survided.Count() <= 3)
                    {
                        if (Survided.Count() <= 1)
                        {
                            onGameFinish(level);
                            return;
                        }
                        if (level.Time > 30)
                        {
                            level.Time = 30;
                        }
                    }
                    Core.BossBar.SetNameTag(level, "sw.game.timer.string", true);
                    foreach (xPlayer p in level.GetSpawnedPlayers())
                    {
                        /*level.BroadcastPopup(p,
                         */Core.BossBar.SendName(p, string.Format(p.PlayerData.lang.get("sw.game.timer.string"), Survided.Count(), level.Map.Name, level.TimeString));
                    }
                    break;
                }
                level.Time--;
            }
            else if (level.Status == Status.Finish)
            {
                switch (level.Time)
                {
                case 10:
                    foreach (xPlayer p in level.GetSpawnedPlayers())
                    {
                        p.SendMessage(Prefix + p.PlayerData.lang.get("xcore.finish.to"));
                    }
                    break;

                case 0:
                    onGameReload(level);
                    break;

                default:
                    if (players.Length == 0)
                    {
                        onGameReload(level);
                    }

                    /*foreach (Player p in level.GetSpawnedPlayers())
                     * {
                     *      level.BroadcastPopup(p, level.TimeString);
                     * }*/
                    Core.BossBar.SetNameTag(level, level.TimeString);
                    break;
                }
                level.Time--;
            }
            else if (level.Status == Status.Match)
            {
                if (level.Time > 0)
                {
                    Core.BossBar.SetNameTag(level, level.TimeString);
                }
                else if (level.Time == 0)
                {
                    level.pvp = true;
                    Core.BossBar.SetNameTag(level, "Deathmatch");
                    foreach (xPlayer player in level.GetSpawnedPlayers())
                    {
                        player.SendMessage(Prefix + player.PlayerData.lang.get("sg.timer.dm.start"));
                        player.SetNoAi(false);
                    }
                }
                Player[] Survided = level.GetSurvivalPlayers();
                if (Survided.Count() <= 1)
                {
                    onGameFinish(level);
                    return;
                }
                level.Time--;
            }
            else if (level.Status == Status.Start)
            {
                if (players.Length >= MinPlayers)
                {
                    switch (level.Time)
                    {
                    case 160:
                    case 120:
                    case 60:
                    case 30:
                    case 20:
                    case 10:
                    case 4:
                    case 3:
                    case 2:
                    case 1:
                        foreach (xPlayer player in level.GetSpawnedPlayers())
                        {
                            player.SendMessage(Prefix + string.Format(player.PlayerData.lang.get("xcore.start.to"), level.Time));
                        }
                        break;

                    case 5:
                        onGamePreStart(level);
                        break;

                    case 0:
                        onGameStart(level);
                        break;

                    default:
                        if (players.Length >= (level.Slots / 2))
                        {
                            if (level.Time > 60)
                            {
                                level.Time = 55;
                                return;
                            }
                        }
                        break;
                    }
                    Core.BossBar.SetNameTag(level, level.TimeString);
                    level.Time--;
                }
                else
                {
                    Core.BossBar.SetNameTag(level, "xcore.start.noplayers", true);
                    foreach (xPlayer player in level.GetSpawnedPlayers())
                    {
                        Core.BossBar.SendName(player, string.Format(player.PlayerData.lang.get("xcore.start.noplayers"), MinPlayers));
                    }
                    level.Time       = 85;
                    level.PreStarted = false;
                }
            }
        }