Example #1
0
    Vector3 jumpLogic(Vector3 vel, bool onTheGround)
    {
        //check if the player jumped in the round
        if (Input.GetKey(playerKey))
        {
            mBtnPressed = true;
        }

        if (Input.GetKeyUp(playerKey))
        {
            letJumpGo = true;
        }

        if (Input.GetKey(playerKey) &&
            onTheGround &&
            //letJumpGo &&
            jumpDelay &&
            animationBoard.canJump())
        {
            if (LevelTypeManager.Level.flappyBird != LevelTypeManager.currentLevel)
            {
                num_jumps++;
            }

            vel.y += jumpVel * Time.deltaTime;
            animationBoard.Jump();

            if (powerUps.currentPowerUp == PlayerPowerups.PowerUp.jumpBoost)
            {
                vel.y += jumpBoostVel * Time.deltaTime;
                //PowerupSounds.inst.playBoostJump();
                LevelSounds.inst.playPowerup(transform.position);
            }
            jumpDelay = false;
            letJumpGo = false;
            //landDelay = false;
            if (powerUps.currentPowerUp == PlayerPowerups.PowerUp.doubleJump ||
                powerUps.currentPowerUp == PlayerPowerups.PowerUp.glide)
            {
                Invoke("resetJumpTImer", jumpTimeDelay / 4);
            }
            else
            {
                Invoke("resetJumpTImer", jumpTimeDelay);
            }
            jumpReleased = false;

            if (powerUps.currentPowerUp != PlayerPowerups.PowerUp.jumpBoost)
            {
                LevelSounds.inst.playJump(transform.position);
            }

            if (LevelTypeManager.currentLevel == LevelTypeManager.Level.gravityFlip)
            {
                Debug.Log("Flip gravity");
                flipGravity();
            }
        }
        else if (Input.GetKey(playerKey) &&
                 jumpDelay &&
                 LevelTypeManager.currentLevel == LevelTypeManager.Level.flappyBird)
        {
            vel.y  = 0;
            vel.y += jumpVel * Time.deltaTime;
            animationBoard.Jump();
            Invoke("resetJumpTImer", jumpTimeDelay);
            jumpDelay = false;
            //landDelay = false;
            LevelSounds.inst.playJump(transform.position);
        }
        return(vel);
    }