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; }
public void setMetadata(InputManager.ControlID cID, CannonControl cc) { _fired_from_control_id = cID; _cc = cc; }