예제 #1
0
    public void KillPlayer()
    {
        if (currentState != PLAYER_STATE.DEAD)
        {
            currentState = PLAYER_STATE.DEAD;
            SetPlayerState();
            LevelCam.RemoveTarget(transform.name);
            playerStateEffect.deadStart = true;

            //Game needs to recive info about player death
            switch (StatHolder.CurrentMode)
            {
            case StatHolder.Modes.DM:
                roundManager.alivePlayers.Remove(this.gameObject);
                break;

            case StatHolder.Modes.TDM:
                if (color == Red)
                {
                    roundManager.alivePlayers.Remove(this.gameObject);
                    roundManager.redPlayers.Remove(this.gameObject);
                }
                else if (color == Blue)
                {
                    roundManager.alivePlayers.Remove(this.gameObject);
                    roundManager.bluePlayers.Remove(this.gameObject);
                }
                break;
            }
            roundManager.PlayerChecker();

            if (StatHolder.CurrentMode == StatHolder.Modes.DM && roundManager.alivePlayers.Count > 1)
            {
                audioScript.PlayKnockOutSound();
            }

            if (StatHolder.CurrentMode == StatHolder.Modes.TDM && roundManager.redPlayers.Count > 0 && roundManager.alivePlayers.Count > 1 || StatHolder.CurrentMode == StatHolder.Modes.TDM && roundManager.bluePlayers.Count > 0 && roundManager.alivePlayers.Count > 1)
            {
                if (roundManager.teamWon == false)
                {
                    audioScript.PlayKnockOutSound();
                }
            }
        }
    }
예제 #2
0
    void keyPresses()
    {
        //Makes sure that players are always able to spawn
        if (roundManager.playerSpawns.Count == 0)
        {
            roundManager.playerSpawns.AddRange(GameObject.FindGameObjectsWithTag("playerSpawn"));
        }

        //Player 1 join
        if (joined1 == false && wait1 == false && P1state.Buttons.A == ButtonState.Pressed && P1prevState.Buttons.A == ButtonState.Released)
        {
            wait1 = true;
            StartCoroutine(Player1Joined());
            StatHolder.HowManyPlayers++;


            roundManager.spawnPlayers.Add(roundManager.playerPrefab1);
            roundManager.playerSpawns[Random.Range(0, roundManager.playerSpawns.Count)].GetComponent <PlayerSpawn>().spawnPlayer();
        }


        if (joined1 == true && P1state.Buttons.B == ButtonState.Pressed && P1prevState.Buttons.B == ButtonState.Released)
        {
            joined1 = false;
            StatHolder.HowManyPlayers--;
            LevelCam.RemoveTarget("Player1(Clone)");
            Destroy(roundManager.alivePlayers.Where(obj => obj.name == "Player1(Clone)").SingleOrDefault());
            roundManager.alivePlayers.Remove(roundManager.alivePlayers.Where(obj => obj.name == "Player1(Clone)").SingleOrDefault());
        }


        //Player 2 join
        if (joined2 == false && wait2 == false && P2state.Buttons.A == ButtonState.Pressed && P2prevState.Buttons.A == ButtonState.Released)
        {
            wait2 = true;
            StartCoroutine(Player2Joined());
            StatHolder.HowManyPlayers++;


            roundManager.spawnPlayers.Add(roundManager.playerPrefab2);
            roundManager.playerSpawns[Random.Range(0, roundManager.playerSpawns.Count)].GetComponent <PlayerSpawn>().spawnPlayer();
        }



        if (joined2 == true && P2state.Buttons.B == ButtonState.Pressed && P2prevState.Buttons.B == ButtonState.Released)
        {
            joined2 = false;
            StatHolder.HowManyPlayers--;
            LevelCam.RemoveTarget("Player2(Clone)");
            Destroy(roundManager.alivePlayers.Where(obj => obj.name == "Player2(Clone)").SingleOrDefault());
            roundManager.alivePlayers.Remove(roundManager.alivePlayers.Where(obj => obj.name == "Player2(Clone)").SingleOrDefault());
        }

        //Player 3 join
        if (joined3 == false && wait3 == false && P3state.Buttons.A == ButtonState.Pressed && P3prevState.Buttons.A == ButtonState.Released)
        {
            wait3 = true;
            StartCoroutine(Player3Joined());
            StatHolder.HowManyPlayers++;


            roundManager.spawnPlayers.Add(roundManager.playerPrefab3);
            roundManager.playerSpawns[Random.Range(0, roundManager.playerSpawns.Count)].GetComponent <PlayerSpawn>().spawnPlayer();
        }


        if (joined3 == true && P3state.Buttons.B == ButtonState.Pressed && P3prevState.Buttons.B == ButtonState.Released)
        {
            joined3 = false;
            StatHolder.HowManyPlayers--;
            LevelCam.RemoveTarget("Player3(Clone)");
            Destroy(roundManager.alivePlayers.Where(obj => obj.name == "Player3(Clone)").SingleOrDefault());
            roundManager.alivePlayers.Remove(roundManager.alivePlayers.Where(obj => obj.name == "Player3(Clone)").SingleOrDefault());
        }

        //Player 4 join
        if (joined4 == false && wait4 == false && P4state.Buttons.A == ButtonState.Pressed && P4prevState.Buttons.A == ButtonState.Released)
        {
            wait4 = true;
            StatHolder.HowManyPlayers++;
            StartCoroutine(Player4Joined());

            roundManager.spawnPlayers.Add(roundManager.playerPrefab4);
            roundManager.playerSpawns[Random.Range(0, roundManager.playerSpawns.Count)].GetComponent <PlayerSpawn>().spawnPlayer();
        }



        if (joined4 == true && P4state.Buttons.B == ButtonState.Pressed && P4prevState.Buttons.B == ButtonState.Released)
        {
            joined4 = false;
            StatHolder.HowManyPlayers--;
            LevelCam.RemoveTarget("Player4(Clone)");
            Destroy(roundManager.alivePlayers.Where(obj => obj.name == "Player4(Clone)").SingleOrDefault());
            roundManager.alivePlayers.Remove(roundManager.alivePlayers.Where(obj => obj.name == "Player4(Clone)").SingleOrDefault());
        }
    }