/// <summary> /// est-ce qu'on peut bouger droite / gauche ? /// </summary> /// <returns></returns> private bool CanMove() { /*//si on ne bouge pas les input, ne rien faire * if (playerInput.Horiz == 0 && playerInput.Verti == 0) * return (false); */ //si on a juste sauté, ne rien faire if (!worldCollision.CoolDownGroundedJump.IsReady() || !worldCollision.CoolDownGrounded.IsReady()) { return(false); } if (playerPenduleMove.IsAirTense) { return(false); } //ne pas bouger quand on est gripped if (grip.Gripped) { return(false); } //si on est en l'air, et pas sur un objet exeption, ne rien faire (pour l'instant !!) if (!worldCollision.IsGroundedSafe()) { //ici on est peut être pas grounded, mais on peut être sur ExeptionPlayer ?? if (!worldCollision.IsGroundeExeptionSafe()) { //ici on est en l'air //Debug.Log("ici on est en l'air, ne rien faire"); playerAirMove.TryToMove(); return(false); } else { //Debug.Log("ici on peut bouger ????? on est su rle player..."); return(false); //ici on est en collision avec un player ? OK } } if (worldCollision.GetSimpleCollisionSafe() == CollisionSimple.Ceilling) { return(false); } /* * //on est au sol, on bouge les inputs et les coolDown JUMP & MOVE sont OP ! * Collider coll; * if (!worldCollision.PlatformManager.IsWalkable(out coll)) * return (false); */ return(true); }
/// <summary> /// ici tente de jumper /// </summary> public void TryToJump() { if (!playerJump.CanJump()) { return; } //grip.ResetGrip(); if (!worldCollision.IsGroundedSafe() && !worldCollision.IsGroundeExeptionSafe()) { //Debug.Log("ici jump double"); AirJump(); } else { /*if (worldCollision.IsGroundeExeptionSafe() && playerManager.AreBothNotGrounded()) * { * Debug.Log("si les 2 joueurs sont en l'air, ne pas sauter !"); * return; * }*/ //Debug.Log("ici jump sumple"); SimpleJump(); } }
/// <summary> /// renvoi vrai ou faux si on a le droit de sauter /// </summary> /// <returns></returns> public bool CanJump() { //on touche pas à la touche saut if (!playerInput.JumpInput) { return(false); } //faux si on hold pas et quand a pas laché if (jumpStop && (!stayHold || (stayHold && playerInput.GripInput && ScoreManager.Instance.Data.GetSimplified()))) { return(false); } if (playerInput.GripInput && ScoreManager.Instance.Data.GetSimplified()) { return(false); } //faux si le cooldown n'est pas fini if (!coolDownJump.IsReady()) { return(false); } if (!worldCollision.IsGroundedSafe() && worldCollision.IsGroundeExeptionSafe() && playerManager.AreBothNotGrounded()) { Debug.Log("si les 2 joueurs sont en l'air, ne pas sauter !"); return(false); } if (!allowWallJump && !worldCollision.IsOnFloor()) { return(false); } //ici on est ok pour sauter (tester si onground pour jump ou double jump ou rien) Collider coll; if (!worldCollision.PlatformManager.IsJumpable(out coll)) { return(false); } return(true); }
/// <summary> /// est-ce qu'on peut bouger droite / gauche ? /// </summary> /// <returns></returns> private bool CanMove() { //si on ne bouge pas les input, ne rien faire if (PlayerInputScript.Horiz == 0 && PlayerInputScript.Verti == 0) { return(false); } //si on est dessous, ne pas activer le airMove if (!playerManager.IsUnderOtherPlayer(playerController.IdPlayer, 0.5f) && !playerManager.IsOtherIsGripped(playerController.IdPlayer) && stopWhenHoriz) { return(false); } //si on a juste sauté, ne rien faire if (!worldCollision.CoolDownGroundedJump.IsReady() || !worldCollision.CoolDownGrounded.IsReady()) { return(false); } //si la rope n'est pas assez tendu pour le air move if (!ropeHandler.IsTenseForAirMove) { return(false); } //ne pas bouger quand on est gripped if (grip.Gripped) { return(false); } if (!CheckDistanceAndNumberParticle()) { return(false); } //si on est en auto AirMove... ne rien faire ! if (playerControlledAirJump.InAutoAirMove) { return(false); } //si on est en l'air, et pas sur un objet exeption... ok pendule if (!worldCollision.IsGroundedSafe()) { //ici on est peut être pas grounded, mais on peut être sur ExeptionPlayer ?? if (!worldCollision.IsGroundeExeptionSafe()) { return(true); } else { //ici on est en collision avec un player ? OK } } //ici on est grounded ? //ici on est au sol, accepté quand même si le cooldown n'est pas fini if (!coolDownStilAccrocheABitWhenEndTense.IsReady()) { //ici on est sur le ground, MAIS le cooldown n'est pas fini ! return(true); } //on est au sol, on bouge les inputs et les coolDown JUMP & MOVE sont OP ! return(false); }