Пример #1
0
    /// <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);
    }
Пример #2
0
    /// <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();
        }
    }
Пример #3
0
    /// <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);
    }
Пример #4
0
    /// <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);
    }