Ejemplo n.º 1
0
        void DoRound()
        {
            if (!Running)
            {
                return;
            }
            List <Player> players = DoRoundCountdown();

            if (players == null)
            {
                return;
            }
            RoundInProgress = true;
            Random random = new Random();
            Player first  = PickFirstZombie(random, players);

            CurLevel.ChatLevel(first.color + first.name + " %Sstarted the infection!");
            first.Game.Infected = true;
            PlayerMoneyChanged(first);
            UpdatePlayerColor(first, InfectCol);

            RoundInProgress = true;
            int    roundMins = random.Next(CurLevel.MinRoundTime, CurLevel.MaxRoundTime);
            string suffix    = roundMins == 1 ? " %Sminute!" : " %Sminutes!";

            CurLevel.ChatLevel("The round will last for &a" + roundMins + suffix);
            RoundEnd       = DateTime.UtcNow.AddMinutes(roundMins);
            timer          = new System.Timers.Timer(roundMins * 60 * 1000);
            timer.Elapsed += new ElapsedEventHandler(EndRound);
            timer.Enabled  = true;

            Player[] online = PlayerInfo.Online.Items;
            foreach (Player p in online)
            {
                if (p.level == null || p.level != CurLevel || p.Game.Referee)
                {
                    continue;
                }
                if (p != first)
                {
                    Alive.Add(p);
                }
            }

            Infected.Clear();
            Infected.Add(first);
            UpdateAllPlayerStatus();
            DoCoreGame(random);

            if (!Running)
            {
                Status = ZombieGameStatus.LastRound; return;
            }
            else
            {
                HandOutRewards();
            }
        }
Ejemplo n.º 2
0
        public void InfectPlayer(Player p)
        {
            if (!RoundInProgress || p == null)
            {
                return;
            }
            Infected.Add(p);
            Alive.Remove(p);

            p.Game.Infected = true;
            UpdatePlayerColor(p, Colors.red);
            UpdateAllPlayerStatus();
            PlayerMoneyChanged(p);
        }
Ejemplo n.º 3
0
        public void InfectPlayer(Player p, Player killer)
        {
            if (!RoundInProgress || p == null)
            {
                return;
            }
            Infected.Add(p);
            Alive.Remove(p);

            p.Game.CurrentRoundsSurvived = 0;
            p.Game.TimeInfected          = DateTime.UtcNow;
            p.SetPrefix();
            ResetPlayerState(p, true);

            CheckHumanPledge(p, killer);
            CheckBounty(p, killer);
        }
Ejemplo n.º 4
0
        public void InfectPlayer(Player p)
        {
            if (!RoundInProgress || p == null)
            {
                return;
            }
            Infected.Add(p);
            Alive.Remove(p);
            p.Game.CurrentRoundsSurvived = 0;
            p.SetPrefix();

            if (p.Game.Invisible)
            {
                p.SendCpeMessage(CpeMessageType.BottomRight2, "", false);
                Player.GlobalSpawn(p, false);
                p.Game.ResetInvisibility();
            }

            p.Game.Infected = true;
            UpdatePlayerColor(p, Colors.red);
            UpdateAllPlayerStatus();
            PlayerMoneyChanged(p);
        }