Ejemplo n.º 1
0
    private void OnTriggerEnter(Collider other)
    {
        //on grabbing the flux, set fluxplayer to this player
        if (other.gameObject.CompareTag("Flux"))
        {
            gm.fluxPlayer = this;
            gm.ColorSwitch();
            gm.textFluxD1.text = "Spark: " + gm.fluxPlayer.ToString();
            gm.textFluxD2.text = "Spark: " + gm.fluxPlayer.ToString();
            gm.textFluxD3.text = "Spark: " + gm.fluxPlayer.ToString();
            gm.StartCoroutine("FluxColliderSeconds");
            Spectator._instance.SwitchCam(camera);
            StartCoroutine(Spectator._instance.LerpCamToPos(2));
            Destroy(other.gameObject);
            GetComponent <VirtualController>().SetVibration();

            audioObj.GetComponent <GeneralAudio>().SparkSound();
        }

        //on stepping on platform while holding flux, claim it
        if (other.gameObject.CompareTag("ColorPlatform") && gm.fluxPlayer == this)
        {
            PlatformState platform = other.gameObject.GetComponent <PlatformState>();

            if ((platform.GetPlayerID() != playerID) && (platform.GetIsChanging() == false))
            {
                platform.ChangeColorTo(playerID, playerColor);
                gm.updateScore();
                gm.SpeedPlayers();
                audioObj.GetComponent <GeneralAudio>().CheckPointSound();
            }
        }

        //single collision flux transfer + starting cooldown

        /*if (other.gameObject.CompareTag("FluxCollider" )){
         *              if(gm.fluxPlayer == other.gameObject.transform.parent.GetComponent<PlayerFlux>() && !gm.isFluxPlayerColliderOnCD){
         *                      Debug.Log("Parent Collision");
         *                      gm.fluxPlayer = this;
         *                      gm.textFluxPlayer.text = "Flux: " + gm.fluxPlayer.ToString();
         *                      gm.StartCoroutine("FluxColliderSeconds");
         *              }
         *              else{
         *                      return;
         *              }
         *      }*/
    }
Ejemplo n.º 2
0
    public void updateScore()
    {
        if (winCountDownTime >= 0 && isWinCountDownActive)
        {
            stopWinCountDown = true;
        }
        pastPlayer1Score = player1score;
        pastPlayer2Score = player2score;
        player1score     = 0;
        player2score     = 0;
        foreach (GameObject platform in platformArray)
        {
            PlatformState state = platform.GetComponent <PlatformState>();
            if (state.GetPlayerID() == 1)
            {
                player1score++;
            }
            else if (state.GetPlayerID() == 2)
            {
                player2score++;
            }
        }
        WinCondition();

        //change score UI
        if (pastPlayer1Score < player1score && pastPlayer2Score == player2score)
        {
            //change white to player 1
            scoreHexagonList_D1[player1score - 1].StartChangingColor(Color.white, player1color);
            scoreHexagonList_D2[player1score - 1].StartChangingColor(Color.white, player1color);
            scoreHexagonList_D3[player1score - 1].StartChangingColor(Color.white, player1color);
        }
        else if (pastPlayer1Score == player1score && pastPlayer2Score < player2score)
        {
            // change white to player 2
            scoreHexagonList_D1[platformsTotal - player2score].StartChangingColor(Color.white, player2color);
            scoreHexagonList_D2[platformsTotal - player2score].StartChangingColor(Color.white, player2color);
            scoreHexagonList_D3[platformsTotal - player2score].StartChangingColor(Color.white, player2color);
        }
        else if (pastPlayer1Score < player1score && pastPlayer2Score > player2score)
        {
            if (player1score + player2score == platformsTotal)
            {
                //change one from player 2 to player 1
                scoreHexagonList_D1[player1score - 1].StartChangingColor(player2color, player1color);
                scoreHexagonList_D2[player1score - 1].StartChangingColor(player2color, player1color);
                scoreHexagonList_D3[player1score - 1].StartChangingColor(player2color, player1color);
            }
            else
            {
                //change a white one to player 1 and a player 2 one to white
                scoreHexagonList_D1[player1score - 1].StartChangingColor(Color.white, player1color);
                scoreHexagonList_D1[platformsTotal - player2score - 1].StartChangingColor(player2color, Color.white);
                scoreHexagonList_D2[player1score - 1].StartChangingColor(Color.white, player1color);
                scoreHexagonList_D2[platformsTotal - player2score - 1].StartChangingColor(player2color, Color.white);
                scoreHexagonList_D3[player1score - 1].StartChangingColor(Color.white, player1color);
                scoreHexagonList_D3[platformsTotal - player2score - 1].StartChangingColor(player2color, Color.white);
            }
        }
        else if (pastPlayer1Score > player1score && pastPlayer2Score < player2score)
        {
            if (player1score + player2score == platformsTotal)
            {
                //change one from player 1 to player 2
                scoreHexagonList_D1[platformsTotal - player2score].StartChangingColor(player1color, player2color);
                scoreHexagonList_D2[platformsTotal - player2score].StartChangingColor(player1color, player2color);
                scoreHexagonList_D3[platformsTotal - player2score].StartChangingColor(player1color, player2color);
            }
            else
            {
                //change a white one to player 2 and a player 1 one to white
                scoreHexagonList_D1[platformsTotal - player2score].StartChangingColor(Color.white, player2color);
                scoreHexagonList_D1[player1score].StartChangingColor(player1color, Color.white);
                scoreHexagonList_D2[platformsTotal - player2score].StartChangingColor(Color.white, player2color);
                scoreHexagonList_D2[player1score].StartChangingColor(player1color, Color.white);
                scoreHexagonList_D3[platformsTotal - player2score].StartChangingColor(Color.white, player2color);
                scoreHexagonList_D3[player1score].StartChangingColor(player1color, Color.white);
            }
        }

        //move the arrow
        if (fluxPlayer == player1)
        {
            scoreArrow_D1.transform.localPosition = scoreHexagonList_D1[Mathf.Clamp(player1score - 1, 0, platformsTotal - 1)].transform.localPosition;
            scoreArrow_D2.transform.localPosition = scoreHexagonList_D2[Mathf.Clamp(player1score - 1, 0, platformsTotal - 1)].transform.localPosition;
            scoreArrow_D3.transform.localPosition = scoreHexagonList_D3[Mathf.Clamp(player1score - 1, 0, platformsTotal - 1)].transform.localPosition;

            scoreArrow_D1.GetComponent <Image>().sprite = scoreArrowSprite;
            scoreArrow_D2.GetComponent <Image>().sprite = scoreArrowSprite;
            scoreArrow_D3.GetComponent <Image>().sprite = scoreArrowSprite;
        }
        else
        {
            scoreArrow_D1.transform.localPosition = scoreHexagonList_D1[Mathf.Clamp(platformsTotal - player2score, 0, platformsTotal - 1)].transform.localPosition;
            scoreArrow_D2.transform.localPosition = scoreHexagonList_D2[Mathf.Clamp(platformsTotal - player2score, 0, platformsTotal - 1)].transform.localPosition;
            scoreArrow_D3.transform.localPosition = scoreHexagonList_D3[Mathf.Clamp(platformsTotal - player2score, 0, platformsTotal - 1)].transform.localPosition;

            scoreArrow_D1.GetComponent <Image>().sprite = scoreArrowSprite;
            scoreArrow_D2.GetComponent <Image>().sprite = scoreArrowSprite;
            scoreArrow_D3.GetComponent <Image>().sprite = scoreArrowSprite;
        }
    }