void Start()
    {
        charge = chargestart;
        rb     = GetComponent <Rigidbody>();

        otherscript  = character.GetComponent <jump>();
        otherscript1 = character.GetComponent <tricks>();

        score = otherscript1.score;
    }
    void Update()

    {
        if (!m_bIsPaused)
        {
            if (Input.GetButtonUp("XBOXSelectButton"))
            {
                // SceneManager.LoadScene(SceneManager.GetActiveScene().name);
                switch (g_bFirstPersonCamera)
                {
                case true:
                    First_Person_Camera.gameObject.SetActive(false);
                    Third_Person_Camera.gameObject.SetActive(true);
                    g_bFirstPersonCamera = false;
                    break;

                case false:
                    First_Person_Camera.gameObject.SetActive(true);
                    Third_Person_Camera.gameObject.SetActive(false);
                    g_bFirstPersonCamera = true;
                    break;
                }
            }

            /***
             *
             * Cheat shit
             *
             ***/

            if (Input.GetButtonUp("XBOXL1Button"))
            {
                if (m_bPlayerUsingCheat)
                {
                    CheatRefresh();
                    m_bPlayerUsingCheat = false;
                }
                else
                {
                    m_bPlayerUsingCheat = true;
                    print("ENABLING CHEATS");
                    m_bTryCheat = true;
                    Invoke("CheatRefresh", 5.0f);
                }

                /*
                 * //if (!m_bJumpCheatEnabled ||)
                 *  m_bPlayerUsingCheat = true;
                 *  print("ENABLING CHEATS");
                 *  m_bTryCheat = true;
                 *  Invoke("CheatRefresh", 5.0f);*/
            }

            if (m_bPlayerUsingCheat)
            {
                if (Input.GetButtonUp("XBOXAButton"))
                {
                    m_sPlayerCheats[m_iCurrentCheatSequence] = "A";
                    m_iCurrentCheatSequence += 1;
                }
                if (Input.GetButtonUp("XBOXBButton"))
                {
                    m_sPlayerCheats[m_iCurrentCheatSequence] = "B";
                    m_iCurrentCheatSequence += 1;
                }
                if (Input.GetButtonUp("XBOXXButton"))
                {
                    m_sPlayerCheats[m_iCurrentCheatSequence] = "X";
                    m_iCurrentCheatSequence += 1;
                }
                if (Input.GetButtonUp("XBOXYButton"))
                {
                    m_sPlayerCheats[m_iCurrentCheatSequence] = "Y";
                    m_iCurrentCheatSequence += 1;
                }

                //if (NumberOfOperations() >= 4 && !CheckIfTricking())
                if (NumberOfOperations() >= 4 && m_bTryCheat)
                {
                    CheckPlayerEnteringCheat();
                }
                else if (NumberOfOperations() >= 4 && !m_bTryCheat)
                {
                    // cancel invoke?
                    // call CheatReset
                }
            }

            /** End of cheat shit **/


            // if (Input.GetAxis("LeftJoystickX_P") < 0.19 && Input.GetAxis("LeftJoystickX_P") > -0.19 && Input.GetAxis("LeftJoystickY_P") < 0.19 && Input.GetAxis("LeftJoystickY_P") > -0.19)
            if (Input.GetAxis("RightJoystickX_P") < 0.19 && Input.GetAxis("RightJoystickX_P") > -0.19 && Input.GetAxis("RightJoystickY_P") < 0.19 && Input.GetAxis("RightJoystickY_P") > -0.19)
            {
                m_bAxisReset = false;
            }

            if (m_bSetScreenShake && !m_bScreenShakeActive)
            {
                SetScreenShake();
            }

            /***
             *
             * Handle side-to-side movement
             *
             ***/
            // if (!g_bPlayerJumping[3] && (Input.GetAxis("RightJoystickX_P") > 0.19 || Input.GetAxis("RightJoystickX_P") < 0.19)) // stops the player's x movement whilst in the air.
            if (!g_bPlayerJumping[3] && (Input.GetAxis("LeftJoystickX_P") > 0.19 || Input.GetAxis("LeftJoystickX_P") < 0.19)) // stops the player's x movement whilst in the air.
            {
                //g_vec3MovementVector.x = Input.GetAxis("RightJoystickX_P") * g_fMovementSpeed;
                g_vec3MovementVector.x = Input.GetAxis("LeftJoystickX_P") * g_fMovementSpeed;
                PushPlayerMovement(g_vec3MovementVector);
            }
            else
            {
                //g_vec3MovementVector.x = Input.GetAxis("RightJoystickX_P") * (g_fMovementSpeed / 3);
                g_vec3MovementVector.x = Input.GetAxis("LeftJoystickX_P") * (g_fMovementSpeed / 3);
                PushPlayerMovement(g_vec3MovementVector);
            }

            /***
             *
             * Handle player jumping
             *
             ***/

            // if (Input.GetAxis("LeftJoystickY_P") > 0.7 && !g_bPlayerJumping[3] && !g_bPlayerJumping[5]) // ++
            if (Input.GetAxis("RightJoystickY_P") > 0.7 && !g_bPlayerJumping[3] && !g_bPlayerJumping[5])
            {
                if (g_bPlayerJumping[0] && !g_bPlayerJumping[7])
                {
                    g_bPlayerJumping[2] = true; // nollie
                    g_bPlayerJumping[5] = true;
                    print("posy jump");
                }
                else
                {
                    g_bPlayerJumping[7] = true;
                    g_bPlayerJumping[0] = true;
                    print("posy attempt jump");
                    Invoke("RefreshShit", 1.0f);
                }
                // Invoke("RefreshShit", 0.1f);
            }

            //else if (Input.GetAxis("LeftJoystickY_P") < -0.7 && !g_bPlayerJumping[3] && !g_bPlayerJumping[5]) // ++
            else if (Input.GetAxis("RightJoystickY_P") < -0.7 && !g_bPlayerJumping[3] && !g_bPlayerJumping[5])
            {
                if (g_bPlayerJumping[0] == true && !g_bPlayerJumping[6])
                {
                    g_bPlayerJumping[1] = true; // ollie
                    g_bPlayerJumping[5] = true;
                    print("negy jump");
                }
                else
                {
                    g_bPlayerJumping[0] = true;
                    g_bPlayerJumping[6] = true;
                    print("negy attempt jump");
                    Invoke("RefreshShit", 1.0f);
                }
                //Invoke("RefreshShit", 0.1f);
            }

            if (g_bPlayerJumping[5])
            {
                g_bPlayerJumping[3]    = true;
                g_bPlayerJumping[5]    = false;
                g_vec3MovementVector.y = g_fJumpPower;
                PushPlayerMovement(g_vec3MovementVector);
                characterController.Move(g_vec3MovementVector * Time.deltaTime);
                PlaySound("jump");
                m_bAxisReset = true;
            }

            /***
             *
             * Handle tricks whilst player is jumping by difficulty
             *
             ***/

            if (menucontroller.IsPlayingHard() == false && g_bPlayerJumping[3] && !g_bPlayerJumping[4] && !m_bAxisReset) // PLAYING EZY
            {
                HandleTricks();
            }
            else // HARD AS F**K
            {
                if (Input.GetAxis("LeftJoystickX_P") < 0.19 || Input.GetAxis("LeftJoystickX_P") > 0.19)
                {
                    var vec3 = new Vector3(0, 0, (Input.GetAxis("LeftJoystickX_P")) * m_rotationSensitivity);
                    this.transform.Rotate(vec3);
                }
            }

            /***
             *
             * Handle other shit - like rotation of wheels and reseting bools when player is grounded..
             *
             ***/
            RotateWheels();

            if (characterController.isGrounded == true && g_bPlayerJumping[3])
            {
                //Third_Person_Camera.GetComponent<cameraChanges>().enabled = true;
                //Invoke("TurnOffScreenShake", 0.5f);
                SetScreenShake();

                /***
                 *
                 * TRICK POINT SYSTEM
                 *
                 ***/

                statistics.g_globalPoints += (m_iTrickPointsEarned * m_iTricksPerformedThisJump);
                print(m_iTrickPointsEarned * m_iTricksPerformedThisJump);

                m_iTricksPerformedThisJump = 1; // default one for the multiplier so it doesnt give 0 points...
                m_iTrickPointsEarned       = 0;
                m_tLastTrick    = m_tCurrentTrick;
                m_tCurrentTrick = tricks.DEFAULT;

                /***
                 *
                 * RESETING NOOBY JUMP BOOL SYSTEM
                 *
                 ***/

                for (int i = 0; i < 8; i++)
                {
                    if (i == 4)
                    {
                        if (g_bPlayerJumping[i] == true)
                        {
                            PlaySound("crash");
                        }
                    }
                    g_bPlayerJumping[i] = false;
                }
                m_iBoostersPerJump = 3; // + some integer value (like donuts collected)
            }

            if (Input.GetButtonUp("RightJoystickC_P"))
            {
                if (g_bPlayerJumping[3] && m_iBoostersPerJump > 0)
                {
                    g_vec3MovementVector.y = 10.0f;
                    PushPlayerMovement(g_vec3MovementVector);
                    characterController.Move(g_vec3MovementVector * Time.deltaTime);
                    m_iBoostersPerJump -= 1;
                    PlaySound("boost");
                }
            }
            g_vec3MovementVector.y -= g_fGravity * Time.deltaTime;
        }

        //

        if (Input.GetButtonUp("XBOXStartButton"))
        {
            switch (m_bIsPaused)
            {
            case false:
                m_bIsPaused = true;
                break;

            case true:
                m_bIsPaused = false;
                break;
            }
        }

        /*
         * if (Input.GetButtonUp("XBOXSelectButton"))
         * {
         *  SceneManager.LoadScene(SceneManager.GetActiveScene().name);
         * }
         *
         * if (Input.GetButtonDown("XBOXSelectButton"))
         * {
         *  Invoke("ReturnToMain", 0.4f);
         * }*/
    }
    void HandleTricks()
    {
        //if (Input.GetAxis("LeftJoystickX_P") < -0.44)
        if (Input.GetAxis("RightJoystickX_P") < -0.44)
        {
            print("EZY TRYNA TRICK1");
            // if (Input.GetAxis("LeftJoystickX_P") < -0.45)
            if (Input.GetAxis("RightJoystickX_P") < -0.45)
            {
                anim.SetTrigger("invertKickFlipping");
                print("PLAYER IS KICK FLIPPING: " + Input.GetAxis("LeftJoystickX_P") + " || " + Input.GetAxis("LeftJoystickY_P"));
                g_bPlayerJumping[4] = true;
                Invoke("TrickRefresh", 1.0f);
                m_tCurrentTrick       = tricks.INVERT_KICKFLIP;
                m_iTrickPointsEarned += (50 * m_iTricksPerformedThisJump);
                UpdateTrickPopupText("Inverse Kick-Flip +" + (50 * m_iTricksPerformedThisJump).ToString() + " points!");
            }
            //else if (Input.GetAxis("LeftJoystickX_P") < -0.65 && (Input.GetAxis("LeftJoystickY_P") < -0.19))
            else if (Input.GetAxis("RightJoystickX_P") < -0.65 && (Input.GetAxis("RightJoystickY_P") < -0.19))
            {
                anim.SetTrigger("isFlipping");
                print("PLAYER IS TREY FLIPPING: " + Input.GetAxis("RightJoystickX_P") + " , " + Input.GetAxis("RightJoystickY_P"));

                g_bPlayerJumping[4] = true;
                Invoke("TrickRefresh", 1.0f);
                m_tCurrentTrick       = tricks.TREY_FLIP;
                m_iTrickPointsEarned += (75 * m_iTricksPerformedThisJump);

                UpdateTrickPopupText("Trey-Flipping +" + (75 * m_iTricksPerformedThisJump).ToString() + " points!");
            }
        }
        // else if (Input.GetAxis("LeftJoystickX_P") > 0.19)
        else if (Input.GetAxis("RightJoystickX_P") > 0.19)
        {
            print("EZY TRYNA TRICK2");
            //if (Input.GetAxis("LeftJoystickX_P") > 0.45)
            if (Input.GetAxis("RightJoystickX_P") > 0.45)
            {
                anim.SetTrigger("kickFlipping");
                g_bPlayerJumping[4] = true;
                Invoke("TrickRefresh", 0.3f);
                m_tCurrentTrick       = tricks.KICKFLIP;
                m_iTrickPointsEarned += (50 * m_iTricksPerformedThisJump);

                UpdateTrickPopupText("Kick-Flipping +" + (50 * m_iTricksPerformedThisJump).ToString() + " points!");
            }
            // else if (Input.GetAxis("LeftJoystickX_P") < 0.65 && (Input.GetAxis("LeftJoystickY_P") < 0.19))
            else if (Input.GetAxis("RightJoystickX_P") < 0.65 && (Input.GetAxis("RightJoystickY_P") < 0.19))
            {
                anim.SetTrigger("isFlipping");
                print("HERE2");
                g_bPlayerJumping[4] = true;
                Invoke("TrickRefresh", 1.0f);
                m_tCurrentTrick       = tricks.INVERT_TREY_FLIP;
                m_iTrickPointsEarned += (75 * m_iTricksPerformedThisJump);

                UpdateTrickPopupText("Inverse Trey-Flipping +" + (75 * m_iTricksPerformedThisJump).ToString() + " points!");
            }
        }

        //if (Input.GetAxis("LeftJoystickY_P") > 0.9f && Input.GetAxis("LeftJoystickX_P") < 0.19 && Input.GetAxis("LeftJoystickX_P") > -0.19)
        if (Input.GetAxis("RightJoystickY_P") > 0.9f && Input.GetAxis("RightJoystickX_P") < 0.19 && Input.GetAxis("RightJoystickX_P") > -0.19)
        {
            anim.SetTrigger("vertFlipping");
            g_bPlayerJumping[4] = true;
            Invoke("TrickRefresh", 1.0f);
            m_tCurrentTrick       = tricks.FLIP;
            m_iTrickPointsEarned += (25 * m_iTricksPerformedThisJump);

            UpdateTrickPopupText("Back-Flipping +" + (25 * m_iTricksPerformedThisJump).ToString() + " points!");
        }
        // if (Input.GetAxis("LeftJoystickY_P") < -0.9f && Input.GetAxis("LeftJoystickX_P") < 0.19 && Input.GetAxis("LeftJoystickX_P") > -0.19)
        if (Input.GetAxis("RightJoystickY_P") < -0.9f && Input.GetAxis("RightJoystickX_P") < 0.19 && Input.GetAxis("RightJoystickX_P") > -0.19)
        {
            anim.SetTrigger("isInvertFlipping");
            g_bPlayerJumping[4] = true;
            Invoke("TrickRefresh", 1.0f);
            m_tCurrentTrick       = tricks.INVERT_FLIP;
            m_iTrickPointsEarned += (25 * m_iTricksPerformedThisJump);

            UpdateTrickPopupText("Front-Flipping +" + (25 * m_iTricksPerformedThisJump).ToString() + " points!");
        }

        if (m_tCurrentTrick != m_tLastTrick && g_bPlayerJumping[4])
        {
            m_bAxisReset                = true;
            timer.gameTimer            += (2.5f * m_iTricksPerformedThisJump);
            m_iTricksPerformedThisJump += 1; // multiplier
        }
    }
    void Start()
    {
        SpawnerSystem = 0;
        print("WIDTH: " + Screen.width + ", HEIGHT: " + Screen.height);

        // Jumping bool setup
        g_bPlayerJumping = new bool[8];
        for (int i = 0; i < 8; i++)
        {
            g_bPlayerJumping[i] = false;
        }

        m_sPlayerCheats = new string[8];
        for (int i = 0; i < 8; i++)
        {
            m_sPlayerCheats[i] = "";
        }

        m_bCheatEnabled = new bool[8];
        for (int i = 0; i < 8; i++)
        {
            m_bCheatEnabled[i] = false;
        }

        m_bTryCheat = false;

        m_bJumpCheatEnabled   = false;
        m_bJumpGravityEnabled = false;

        m_bIsPaused = false;

        m_bPlayerIsAlive = true;

        m_bSetScreenShake = false;

        m_bScreenShakeActive = false;

        m_bAxisReset = false;

        m_bSlowMotionActivated = false;

        First_Person_Camera.gameObject.SetActive(false);
        Third_Person_Camera.gameObject.SetActive(true);
        g_bFirstPersonCamera = false;

        //Player-Controller Allocation Initialization
        characterController = GetComponent <CharacterController>();
        //g_fCharacterDirection = characterController.transform.
        g_sarrControllerID = Input.GetJoystickNames();
        if (Input.GetJoystickNames().Length > 0)
        {
            print("Controller Connected");
            print(g_sarrControllerID[0]);
        }

        m_iCurrentCheatSequence = 0;

        m_rotationSensitivity = 30.5f;

        g_fMovementSpeed = 32;

        g_fJumpPower = 7 * 3.5f;

        g_fJumpTimer = 1.5f;

        g_fTimer = 1.5f;

        // g_fGravity = 20;
        g_fGravity = 9.8f * 3; // g * mass

        m_iBoostersPerJump = 3;

        m_iTrickPointsEarned = 0;

        m_iTricksPerformedThisJump = 0;

        m_tLastTrick = tricks.DEFAULT;

        Third_Person_Camera.GetComponent <cameraChanges>().enabled = false;

        m_asPlayAudio = GetComponent <AudioSource>();

        //if (menucontroller.IsPlayingHard() == false)
        //{
        anim = GetComponent <Animator>();
        // }
    }