示例#1
0
        public void Win()
        {
            ScoreController.Reset();
            EndGameCentral.WinnerTeam = this;

            ShipStatus.Instance.enabled = false;

            AmongUsClient.Instance.allClients.Clear();
            AmongUsClient.Instance.GameState = InnerNetClient.GameStates.Ended;
            AmongUsClient.Instance.OnGameEnd(GameOverReason.ImpostorByKill,
                                             false);

            var val = AmongUsClient.Instance.StartEndGame();

            val.Write((byte)GameOverReason.ImpostorByKill);
            val.Write(false);
            AmongUsClient.Instance.FinishEndGame(val);
        }
示例#2
0
        public static void Update(float DeltaTime)
        {
            if (!Game.IsHost())
            {
                return;
            }
            var Difference = DateTime.Now - LastUpdated;

            if (!(Difference.Seconds >= Military.GameModeInterval.GetValue()))
            {
                return;
            }
            var Teams = TeamsController.GetTeams();

            ScoreController.AddScore(Teams.ToDictionary(Team => Team,
                                                        Team => Points.Count(Point => Team.Compare(Point.CurrentTeam))));

            LastUpdated = DateTime.Now;
        }
示例#3
0
        public static void Use(Flag Flag, PlayerControl Player)
        {
            var Extra = Player.Extra();

            if (!Extra.IsReady())
            {
                return;
            }

            var PlayerTeam   = Extra.Team;
            var CarryingFlag = GetCarryingFlag(Player);

            // Игрок нажал по флагу своего цвета
            if (Flag.Team.Compare(PlayerTeam))
            {
                // Если игрок тащит на себе чужой флаг
                if (CarryingFlag != null)
                {
                    SoundsController.FLAG_CAPTURED.BroadcastGlobally();
                    CarryingFlag.Capturer = null;
                    ScoreController.AddScore(PlayerTeam);
                    Synchronize();
                }

                return;
            }

            if (CarryingFlag != null)
            {
                return;
            }

            SoundsController.FLAG_TAKEN.BroadcastGlobally();
            Flag.Capturer = Player;

            Synchronize();
        }
示例#4
0
 protected override void Handle()
 {
     ScoreController.ReadSync(Reader);
 }