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); }