예제 #1
0
    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);
    }
예제 #2
0
    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;
        }
    }
예제 #3
0
    // 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;
        }
    }
예제 #4
0
    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
    }
예제 #5
0
    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;
    }
예제 #6
0
    //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;
        }
    }