public Sprite getSprite(InputManager.PlayerID pID, Vector3 dir) { InputManager.PlayerColor clr = InputManager.S.getPlayerColorWithPlayerID(pID); switch (clr) { case InputManager.PlayerColor.Red: //use red return(red_left[0]); case InputManager.PlayerColor.Blue: //use blue return(blue_left[0]); //currentColor = ColorSprite.BLUE; case InputManager.PlayerColor.Green: return(green_left[0]); //R.GetComponent<SpriteRenderer>().sprite = green_left[0]; //currentColor = ColorSprite.GREEN; //use green case InputManager.PlayerColor.Yellow: return(yellow_left[0]); //R.GetComponent<SpriteRenderer>().sprite = yellow_left[0]; //currentColor = ColorSprite.YELLOW; //use yellow } return(null); }
void setScoreTextColor(InputManager.PlayerID pID, Text scoreText) { InputManager.PlayerColor clr = InputManager.S.getPlayerInfoWithPlayerID(pID).playerClr; if (clr == InputManager.PlayerColor.Blue) { scoreText.color = (Resources.Load("BluePlayer") as Material).color; } else if (clr == InputManager.PlayerColor.Green) { scoreText.color = (Resources.Load("GreenPlayer") as Material).color; } else if (clr == InputManager.PlayerColor.Yellow) { scoreText.color = (Resources.Load("YellowPlayer") as Material).color; } else if (clr == InputManager.PlayerColor.Red) { scoreText.color = (Resources.Load("RedPlayer") as Material).color; } }
// Use this for initialization void Start() { curr_time = Time.time; currentVelocity = Vector3.zero; currentRunner = InputManager.S.getCurrentRunnerID(); prevPosition = R.transform.position; InputManager.PlayerColor curr_color = InputManager.S.getPlayerColorWithPlayerID(currentRunner); switch (curr_color) { case InputManager.PlayerColor.Red: //use red R.GetComponent <SpriteRenderer>().sprite = red_left[0]; currentColor = ColorSprite.RED; break; case InputManager.PlayerColor.Blue: //use blue R.GetComponent <SpriteRenderer>().sprite = blue_left[0]; currentColor = ColorSprite.BLUE; break; case InputManager.PlayerColor.Green: R.GetComponent <SpriteRenderer>().sprite = green_left[0]; currentColor = ColorSprite.GREEN; //use green break; case InputManager.PlayerColor.Yellow: R.GetComponent <SpriteRenderer>().sprite = yellow_left[0]; currentColor = ColorSprite.YELLOW; //use yellow break; } }
void positionCheck() { List <int> scoreList = new List <int>(); scoreList.Add(Scorekeeper.S.p1Score); scoreList.Add(Scorekeeper.S.p2Score); scoreList.Add(Scorekeeper.S.p3Score); scoreList.Add(Scorekeeper.S.p4Score); scoreList.Sort(); //if runner has fallen if (runner.transform.position.y < fallenDetectionDistance) { //who has the lowest score? if (scoreList[0] == Scorekeeper.S.p1Score) { playerWithLowestScore = InputManager.PlayerID.Player1; } else if (scoreList[0] == Scorekeeper.S.p2Score) { playerWithLowestScore = InputManager.PlayerID.Player2; } else if (scoreList[0] == Scorekeeper.S.p3Score) { playerWithLowestScore = InputManager.PlayerID.Player4; } else if (scoreList[0] == Scorekeeper.S.p4Score) { playerWithLowestScore = InputManager.PlayerID.Player4; } // All necessary information for a player can be got through a control ID or a player ID by // using the getPlayerInfoWith*ID (where * = Control or Player). ControlID is one of // {Cannon1, Cannon2, Cannon3, Runner}. PlayerID is one of {Player1, Player2, Player3, Player4}. // A PlayerInfo object is returned on a call to both of these functions. Objects of this class // contain a PlayerID, ControlID and an AIMode. if (InputManager.S.getPlayerInfoWithControlID(InputManager.ControlID.Runner).playerID == playerWithLowestScore) { //find second lowest score player int secondLowestScore = scoreList[1]; if (secondLowestScore == Scorekeeper.S.p1Score) { playerWithLowestScore = InputManager.PlayerID.Player1; } else if (secondLowestScore == Scorekeeper.S.p2Score) { playerWithLowestScore = InputManager.PlayerID.Player2; } else if (secondLowestScore == Scorekeeper.S.p3Score) { playerWithLowestScore = InputManager.PlayerID.Player3; } else if (secondLowestScore == Scorekeeper.S.p4Score) { playerWithLowestScore = InputManager.PlayerID.Player4; } } //swap (Get Control ID of player with lowest score. The runner will then take on the cannon // specified, and the player with the lowest score will now take on the runner role.) //InputManager.S.swapPlayer(InputManager.S.getPlayerInfoWithPlayerID(playerWithLowestScore).controlID); runner.GetComponent <TrailRenderer> ().Clear(); //runner.GetComponent<PlayerControl>().enabled = false; runner.GetComponent <PlayerControl>().runReset(); }//end fall handling }
private void swapHelper(GameObject CannonballGO) { inSwitch = true; CannonControl.freeze = true; PlayerControl.freeze = true; // Destroy all cannonballs when runner is killed var cannonBalls = GameObject.FindGameObjectsWithTag("Projectile"); for (var i = 0; i < cannonBalls.Length; i++) { Destroy(cannonBalls [i]); } Debug.Log("OnCollisionEnter" + Time.time); // Debug.Log (InputManager.S.getDebugPlayerNum () + " " + PlayerControl.S.controller); // swaps the player controlling the cannon InputManager.ControlID cID = CannonballGO.GetComponent <CannonBallMetadata>().controllerThatFired(); InputManager.PlayerID newRunnerID = InputManager.S.getPlayerIDWithControlID(cID); InputManager.PlayerID oldRunnerID = InputManager.S.getCurrentRunnerID(); InputManager.PlayerColor newColor = InputManager.S.getPlayerColorWithPlayerID(newRunnerID); InputManager.PlayerColor oldColor = InputManager.S.getPlayerColorWithPlayerID(oldRunnerID); //Debug.Log("NEW" + newRunnerID); //Debug.Log("OLD" + oldRunnerID); //swaps the material of the player - CHANGED TO SWAP SPRITE //Material runnerMaterial = new Material (runner.GetComponent<SpriteRenderer> ().material); //setMaterial(collision.gameObject.GetComponent<CannonBallMetadata> ().getCannonControlMaterial ()); //collision.gameObject.GetComponent<CannonBallMetadata> ().setCannonControlMaterial (runnerMaterial); //change color of cannon /* * switch(oldRunnerID) { //old runner becomes new cannon * case InputManager.PlayerID.Player1: * CannonballGO.GetComponent<CannonBallMetadata>().setCannonControlMaterial(player1Material); //r * break; * case InputManager.PlayerID.Player2: * CannonballGO.GetComponent<CannonBallMetadata>().setCannonControlMaterial(player2Material); //b * break; * case InputManager.PlayerID.Player3: * CannonballGO.GetComponent<CannonBallMetadata>().setCannonControlMaterial(player3Material); //g * break; * case InputManager.PlayerID.Player4: * CannonballGO.GetComponent<CannonBallMetadata>().setCannonControlMaterial(player4Material); //y * break; * }*/ //change color of cannon switch (oldColor) { //old runner becomes new cannon case InputManager.PlayerColor.Red: CannonballGO.GetComponent <CannonBallMetadata>().setCannonControlMaterial(player1Material); //r break; case InputManager.PlayerColor.Blue: CannonballGO.GetComponent <CannonBallMetadata>().setCannonControlMaterial(player2Material); //b break; case InputManager.PlayerColor.Green: CannonballGO.GetComponent <CannonBallMetadata>().setCannonControlMaterial(player3Material); //g break; case InputManager.PlayerColor.Yellow: CannonballGO.GetComponent <CannonBallMetadata>().setCannonControlMaterial(player4Material); //y break; } /* * switch (newRunnerID) { //old runner becomes new cannon * case InputManager.PlayerID.Player1: * RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.RED; * break; * case InputManager.PlayerID.Player2: * RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.BLUE; * break; * case InputManager.PlayerID.Player3: * RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.GREEN; * break; * case InputManager.PlayerID.Player4: * RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.YELLOW; * break; * }*/ switch (newColor) { //old runner becomes new cannon case InputManager.PlayerColor.Red: RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.RED; break; case InputManager.PlayerColor.Blue: RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.BLUE; break; case InputManager.PlayerColor.Green: RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.GREEN; break; case InputManager.PlayerColor.Yellow: RunnerAnimation.R.currentColor = RunnerAnimation.ColorSprite.YELLOW; break; } //Debug.Log (cID); //Debug.Log (oldRunnerID); //Debug.Log (newRunnerID); switch (cID) { case InputManager.ControlID.Cannon1: /* * switch (oldRunnerID) { //old runner becomes new cannon * case InputManager.PlayerID.Player1: * cannon1Sprite.GetComponent<SpriteRenderer>().sprite = p1; * break; * case InputManager.PlayerID.Player2: * cannon1Sprite.GetComponent<SpriteRenderer>().sprite = p2; * break; * case InputManager.PlayerID.Player3: * cannon1Sprite.GetComponent<SpriteRenderer>().sprite = p3; * break; * case InputManager.PlayerID.Player4: * cannon1Sprite.GetComponent<SpriteRenderer>().sprite = p4; * break; * } * break;*/ switch (oldColor) { //old runner becomes new cannon case InputManager.PlayerColor.Red: cannon1Sprite.GetComponent <SpriteRenderer>().sprite = p1; //r break; case InputManager.PlayerColor.Blue: cannon1Sprite.GetComponent <SpriteRenderer>().sprite = p2; //b break; case InputManager.PlayerColor.Green: cannon1Sprite.GetComponent <SpriteRenderer>().sprite = p3; //g break; case InputManager.PlayerColor.Yellow: cannon1Sprite.GetComponent <SpriteRenderer>().sprite = p4; //y break; } break; case InputManager.ControlID.Cannon2: /* * switch (oldRunnerID) { //old runner becomes new cannon * case InputManager.PlayerID.Player1: * cannon2Sprite.GetComponent<SpriteRenderer>().sprite = p1; * break; * case InputManager.PlayerID.Player2: * cannon2Sprite.GetComponent<SpriteRenderer>().sprite = p2; * break; * case InputManager.PlayerID.Player3: * cannon2Sprite.GetComponent<SpriteRenderer>().sprite = p3; * break; * case InputManager.PlayerID.Player4: * cannon2Sprite.GetComponent<SpriteRenderer>().sprite = p4; * break; * } * break;*/ switch (oldColor) { //old runner becomes new cannon case InputManager.PlayerColor.Red: cannon2Sprite.GetComponent <SpriteRenderer>().sprite = p1; break; case InputManager.PlayerColor.Blue: cannon2Sprite.GetComponent <SpriteRenderer>().sprite = p2; break; case InputManager.PlayerColor.Green: cannon2Sprite.GetComponent <SpriteRenderer>().sprite = p3; break; case InputManager.PlayerColor.Yellow: cannon2Sprite.GetComponent <SpriteRenderer>().sprite = p4; break; } break; case InputManager.ControlID.Cannon3: /* * switch (oldRunnerID) { //old runner becomes new cannon * case InputManager.PlayerID.Player1: * cannon3Sprite.GetComponent<SpriteRenderer>().sprite = p1_l; * break; * case InputManager.PlayerID.Player2: * cannon3Sprite.GetComponent<SpriteRenderer>().sprite = p2_l; * break; * case InputManager.PlayerID.Player3: * cannon3Sprite.GetComponent<SpriteRenderer>().sprite = p3_l; * break; * case InputManager.PlayerID.Player4: * cannon3Sprite.GetComponent<SpriteRenderer>().sprite = p4_l; * break; * } * break;*/ switch (oldColor) { //old runner becomes new cannon case InputManager.PlayerColor.Red: cannon3Sprite.GetComponent <SpriteRenderer>().sprite = p1_l; break; case InputManager.PlayerColor.Blue: cannon3Sprite.GetComponent <SpriteRenderer>().sprite = p2_l; break; case InputManager.PlayerColor.Green: cannon3Sprite.GetComponent <SpriteRenderer>().sprite = p3_l; break; case InputManager.PlayerColor.Yellow: cannon3Sprite.GetComponent <SpriteRenderer>().sprite = p4_l; break; } break; } //change sprite related to cannon //setSprite() //change cat //change cat depending on new playerid Vector3 dir = Vector3.zero; Debug.Log("CURR DIRECTION: " + gameObject.GetComponent <Rigidbody>().velocity); setSprite(RunnerAnimation.R.getSprite(newRunnerID, dir)); InputManager.S.swapPlayer(cID); timeLastSwap = Time.time; }
//player is 1-4 public void Score(InputManager.PlayerID pID, int amt) { Dictionary <InputManager.PlayerID, int> scores = new Dictionary <InputManager.PlayerID, int> { { InputManager.PlayerID.Player1, p1Score }, { InputManager.PlayerID.Player2, p2Score }, { InputManager.PlayerID.Player3, p3Score }, { InputManager.PlayerID.Player4, p4Score } }; KeyValuePair <InputManager.PlayerID, int> playerWithHighestScoreInfoAbsolute = scores.OrderByDescending(x => x.Value).First(); scores.Remove(pID); KeyValuePair <InputManager.PlayerID, int> playerWithHighestScoreInfo = scores.OrderByDescending(x => x.Value).First(); switch (pID) { case InputManager.PlayerID.Player1: p1Score += amt; p1ScoreText.text = "P1: " + p1Score; if (p1Score > playerWithHighestScoreInfo.Value && playerWithHighestScoreInfoAbsolute.Key != InputManager.PlayerID.Player1) { GameObject go; switch (InputManager.S.getPlayerInfoWithPlayerID(InputManager.PlayerID.Player1).controlID) { case InputManager.ControlID.Cannon1: go = Scorekeeper.S.spawnPopup("Player 1 takes the lead!", cannon1.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Cannon2: go = Scorekeeper.S.spawnPopup("Player 1 takes the lead!", cannon2.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Cannon3: go = Scorekeeper.S.spawnPopup("Player 1 takes the lead!", cannon3.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Runner: go = Scorekeeper.S.spawnPopup("Player 1 takes the lead!", runner.transform.TransformPoint(3 * Vector3.up)); //go.transform.localScale = new Vector3 (0.5f, 0.5f, 0.5f); break; } } break; case InputManager.PlayerID.Player2: p2Score += amt; p2ScoreText.text = "P2: " + p2Score; if (p2Score > playerWithHighestScoreInfo.Value && playerWithHighestScoreInfoAbsolute.Key != InputManager.PlayerID.Player2) { GameObject go; switch (InputManager.S.getPlayerInfoWithPlayerID(InputManager.PlayerID.Player2).controlID) { case InputManager.ControlID.Cannon1: go = Scorekeeper.S.spawnPopup("Player 2 takes the lead!", cannon1.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Cannon2: go = Scorekeeper.S.spawnPopup("Player 2 takes the lead!", cannon2.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Cannon3: go = Scorekeeper.S.spawnPopup("Player 2 takes the lead!", cannon3.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Runner: go = Scorekeeper.S.spawnPopup("Player 2 takes the lead!", runner.transform.TransformPoint(3 * Vector3.up)); //go.transform.localScale = new Vector3 (0.5f, 0.5f, 0.5f); break; } } break; case InputManager.PlayerID.Player3: p3Score += amt; p3ScoreText.text = "P3: " + p3Score; if (p3Score > playerWithHighestScoreInfo.Value && playerWithHighestScoreInfoAbsolute.Key != InputManager.PlayerID.Player3) { GameObject go; switch (InputManager.S.getPlayerInfoWithPlayerID(InputManager.PlayerID.Player3).controlID) { case InputManager.ControlID.Cannon1: go = Scorekeeper.S.spawnPopup("Player 3 takes the lead!", cannon1.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Cannon2: go = Scorekeeper.S.spawnPopup("Player 3 takes the lead!", cannon2.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Cannon3: go = Scorekeeper.S.spawnPopup("Player 3 takes the lead!", cannon3.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Runner: go = Scorekeeper.S.spawnPopup("Player 3 takes the lead!", runner.transform.TransformPoint(3 * Vector3.up)); //go.transform.localScale = new Vector3 (0.5f, 0.5f, 0.5f); break; } } break; case InputManager.PlayerID.Player4: p4Score += amt; p4ScoreText.text = "P4: " + p4Score; if (p4Score > playerWithHighestScoreInfo.Value && playerWithHighestScoreInfoAbsolute.Key != InputManager.PlayerID.Player4) { GameObject go; switch (InputManager.S.getPlayerInfoWithPlayerID(InputManager.PlayerID.Player4).controlID) { case InputManager.ControlID.Cannon1: go = Scorekeeper.S.spawnPopup("Player 4 takes the lead!", cannon1.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Cannon2: go = Scorekeeper.S.spawnPopup("Player 4 takes the lead!", cannon2.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Cannon3: go = Scorekeeper.S.spawnPopup("Player 4 takes the lead!", cannon3.gameObject.transform.TransformPoint(3 * Vector3.up)); go.transform.localScale = new Vector3(0.15f, 0.15f, 0.15f); break; case InputManager.ControlID.Runner: go = Scorekeeper.S.spawnPopup("Player 4 takes the lead!", runner.transform.TransformPoint(3 * Vector3.up)); //go.transform.localScale = new Vector3 (0.5f, 0.5f, 0.5f); break; } } break; default: // Debug.Assert(false); break; } }