예제 #1
0
        public bool Stop()
        {
            IsStopped = true;
            GameStopwatch.Stop();
            SendCommand(Commands.STOP);

            return(true);
        }
예제 #2
0
    void Start()
    {
        parkingSpot = GameObject.Find("Empty Parking Spot").GetComponent <ParkingDetector>();

        stopwatch = new GameStopwatch();

        if (StartRaceOnStart)
        {
            StartRace();
        }
    }
예제 #3
0
        public bool EndPart()
        {
            if (IsStopped)
            {
                // Update part to go to the next one
                _initialPartTime         = DateTime.Now;
                IsChangingScore          = false;
                IsInitialPartKickOffDone = false;
                GameStopwatch.Reset();

                string command;
                // Send new game part commands
                switch (GamePart)
                {
                case GameParts.FirstHalf:
                    command  = "HALF_TIME";
                    GamePart = GameParts.PreSecondHalf;
                    break;

                case GameParts.SecondHalf:
                    command  = "END_GAME";
                    GamePart = GameParts.PreFirstHalfOvertime;
                    break;

                case GameParts.FirstHalfOvertime:
                    command  = "HALF_TIME";
                    GamePart = GameParts.PreSecondHalfOvertime;
                    break;

                case GameParts.SecondHalfOvertime:
                    command  = "END_GAME";
                    GamePart = GameParts.Penalties;
                    break;

                case GameParts.Penalties:
                    command  = "HALF_TIME";
                    GamePart = GameParts.GameOver;
                    break;

                default:
                    return(false);
                }

                SendCommand(command);
            }

            return(IsStopped);
        }
예제 #4
0
        public bool Start()
        {
            if (IsStopped)
            {
                // Change game part when starting the initial kickoff
                if (!IsInitialPartKickOffDone)
                {
                    // Update game part and kickoff info
                    IsInitialPartKickOffDone = true;
                    LastTeamToKickOff        = _nextTeamToKickOff;
                    _initialPartTime         = DateTime.Now;

                    // Send new game part command
                    switch (GamePart)
                    {
                    case GameParts.PreFirstHalf:
                        SendCommand(Commands.FIRST_HALF);
                        GamePart = GameParts.FirstHalf;
                        break;

                    case GameParts.PreSecondHalf:
                        SendCommand(Commands.SECOND_HALF);
                        GamePart = GameParts.SecondHalf;
                        break;

                    case GameParts.PreFirstHalfOvertime:
                        SendCommand(Commands.FIRST_HALF_OVERTIME);
                        GamePart = GameParts.FirstHalfOvertime;
                        break;

                    case GameParts.PreSecondHalfOvertime:
                        SendCommand(Commands.SECOND_HALF_OVERTIME);
                        GamePart = GameParts.SecondHalfOvertime;
                        break;
                    }
                }

                IsChangingScore = false;
                GameStopwatch.Start();
                SendCommand(Commands.START);
            }

            return(IsStopped);
        }
예제 #5
0
        public bool Reset()
        {
            if (IsStopped)
            {
                GamePart         = GameParts.PreFirstHalf;
                _initialPartTime = DateTime.Now;

                IsInitialPartKickOffDone = false;
                LastTeamToKickOff        = TeamColors.None;
                GameStopwatch.Reset();

                CyanScore    = 0;
                MagentaScore = 0;

                SendCommand(Commands.RESET);
            }

            return(IsStopped);
        }