示例#1
0
        public TankPlayerController AddPlayer()
        {
            var newPlayerController = new TankPlayerController();
            m_PlayerControllers.Add(newPlayerController);
            newPlayerController.isActive = true;
            newPlayerController.pid = m_PlayerControllers.Count - 1;

            newPlayerController.m_SpawnPoint = m_SpawnPoints[newPlayerController.pid];

            return newPlayerController;
        }
示例#2
0
        public TankPlayerController AddPlayer()
        {
            var newPlayerController = new TankPlayerController();

            m_PlayerControllers.Add(newPlayerController);
            newPlayerController.isActive = true;
            newPlayerController.pid      = m_PlayerControllers.Count - 1;

            newPlayerController.m_SpawnPoint = m_SpawnPoints[newPlayerController.pid];

            return(newPlayerController);
        }
示例#3
0
        public TankPlayerController AddPlayer()
        {
            // max player count reached?
            if (m_ActivePlayerCount + 1 > m_MaximumPlayerCount)
            {
                return(null);
            }

            var newPlayerController = new TankPlayerController();

            m_PlayerControllers.Add(newPlayerController);
            newPlayerController.isActive      = true;
            newPlayerController.pid           = m_PlayerControllers.Count - 1;
            newPlayerController.m_PlayerColor = m_PlayerColors[m_ActivePlayerCount - 1];
            newPlayerController.m_SpawnPoint  = m_SpawnPoints[m_ActivePlayerCount - 1];

            return(newPlayerController);
        }
示例#4
0
        private IEnumerator RoundEnding()
        {
            m_RoundInProgress = false;

            // Stop tanks from moving.
            DisableTankControl();

            // Clear the winner from the previous round.
            m_RoundWinner = null;

            // See if there is a winner now the round is over.
            m_RoundWinner = GetRoundWinner();

            // If there is a winner, increment their score.
            if (m_RoundWinner != null)
            {
                m_RoundWinner.m_Wins++;
            }

            // Now the winner's score has been incremented, see if someone has one the game.
            m_GameWinner = GetGameWinner();

            // If all other players quit, the remaining winner wins by default.
            if (m_ActivePlayerCount < 2)
            {
                m_GameWinner = m_RoundWinner;
            }

            // Get a message based on the scores and whether or not there is a game winner and display it.
            string message = EndMessage();

            m_MessageText.text = message;

            // Wait for the specified length of time until yielding control back to the game loop.
            yield return(m_EndWait);
        }
示例#5
0
 public void RemovePlayer(TankPlayerController controller)
 {
     controller.Kill();
 }
示例#6
0
 public void RemovePlayer(TankPlayerController controller)
 {
     controller.Kill();
 }
示例#7
0
        private IEnumerator RoundEnding()
        {
            m_RoundInProgress = false;

            // Stop tanks from moving.
            DisableTankControl ();

            // Clear the winner from the previous round.
            m_RoundWinner = null;

            // See if there is a winner now the round is over.
            m_RoundWinner = GetRoundWinner ();

            // If there is a winner, increment their score.
            if (m_RoundWinner != null)
                m_RoundWinner.m_Wins++;

            // Now the winner's score has been incremented, see if someone has one the game.
            m_GameWinner = GetGameWinner ();

            // If all other players quit, the remaining winner wins by default.
            if(m_ActivePlayerCount < 2)
            {
                m_GameWinner = m_RoundWinner;
            }

            // Get a message based on the scores and whether or not there is a game winner and display it.
            string message = EndMessage ();
            m_MessageText.text = message;

            // Wait for the specified length of time until yielding control back to the game loop.
            yield return m_EndWait;
        }
示例#8
0
 public MyInput(TankPlayerController ownerController)
 {
     Contract.Assert(ownerController);
     this.ownerController = ownerController;
 }
示例#9
0
 public DamageInstigator(TankPlayerController playerController, GameObject pawn)
 {
     this.PlayerController = playerController;
     this.Pawn             = pawn;
 }
示例#10
0
 public void WhenPossessedBy(TankPlayerController newController)
 {
     turret?.WhenPossessedBy(new DamageInstigator(newController, gameObject));
 }