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(); } } } }
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()); } }