Esempio n. 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);
    }
Esempio n. 2
0
    /// <summary>
    /// renvoi vrai ou faux si on a le droit de sauter (selon le hold)
    /// </summary>
    /// <returns></returns>
    public bool CanGrip(bool setupPoint = true)
    {
        //faux si le cooldown n'est pas fini, ou qu'on est pas grounded
        if (!coolDownGrip.IsReady() || !worldCollision.IsGroundedSafe())
        {
            return(false);
        }

        Collider coll;

        if (worldCollision.PlatformManager.IsGrippable(out coll))
        {
            if (!setupPoint)
            {
                return(true);
            }

            // The distance from the explosion position to the surface of the collider.
            //Collider coll = objectToAggrip.GetComponent<Collider>();
            pointAttract = coll.ClosestPointOnBounds(transform.position);
            DebugExtension.DebugWireSphere(pointAttract, 1, 1);
            return(true);
        }


        return(false);
    }
Esempio n. 3
0
    private bool IsInAir()
    {
        bool inAir = !worldCollision.IsGroundedSafe();

        if (!inAir && !playerGrip.Gripped)  //si on est pas en l'air, ni gripped...
        {
            //faire un extra check: si on est sur un wall/ceilling,
            //être toujours considéré comme en l'air !
            bool onFloor = worldCollision.IsOnFloor() || worldCollision.IsOnCoinGround();
            if (!onFloor)
            {
                inAir = true;
            }
            else
            {
                inAir = false;
            }
        }
        if (playerMove.CanMoveOnPlayer(false))
        {
            inAir = false;
        }

        return(inAir);
    }
Esempio n. 4
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();
        }
    }
Esempio n. 5
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);
    }
Esempio n. 6
0
    /// <summary>
    /// peut on modifier en up / down ?
    /// </summary>
    /// <returns></returns>
    private bool CanModifyUpDown()
    {
        //si on n'appuis sur rien
        if (playerInput.Horiz == 0 && playerInput.Verti == 0)
        {
            return(false);
        }

        //si on est pas grounded... NE PAS AUTORISER
        if (!worldCollision.IsGroundedSafe() /* && timeWhenWeCanModifyRope.IsReady()*/)
        {
            if (!timeWhenWeCanModifyRope.IsReady())
            {
                Debug.Log("ici on peut encore modifier, alors qu'on est en l'air");
            }
            else
            {
                return(false);
            }
        }
        if (worldCollision.IsGroundedSafe() && worldCollision.IsOnFloor() /* && timeWhenWeCanModifyRope.IsReady()*/)
        {
            return(false);
        }

        //ici on peut modifier en temps normal... maintenant test la tension, et l'angle de l'input
        if (!ropeHandler.IsTenseForAirMove && timeWhenWeCanModifyRope.IsReady())
        {
            return(false);
        }

        //ne pas changé si on est grippé
        if (playerGrip.Gripped)
        {
            return(false);
        }

        //si l'autre n'est pas grippé, ne rien faire
        if (!playerManager.IsOtherIsGripped(playerController.IdPlayer))
        {
            return(false);
        }

        //ici les conditions sont bonnes !
        return(true);
    }
Esempio n. 7
0
 /// <summary>
 /// ici l'autre player à jumpé, on trigger SetupFlyINgMode pour le prochain appel Grounded
 /// </summary>
 /// <param name="jump">on vient de jumper, ou on viens d'atterir ?</param>
 public void OtherPlayerHasJumped()
 {
     //Debug.Log("set la mass en fly");
     //Debug.Log("ici, player " + playerController.IdPlayer + ", test de setup OU reset");
     //si on est grounded, alors on set la mass en petit !
     if (worldCollision.IsGroundedSafe())
     {
         //Debug.Log("ici set rb little");
         rb.mass = massLittleWhenOtherJump;
         //coolDownOtherHasJumpWaitForGrounded.StartCoolDown();
         isFlyingBecauseOtherHasJump = true;
         //Debug.Log("setup mass 1");
         coolDownOtherHasJumpWaitForGrounded.StartCoolDown();
     }
     //si on est pas grounded, garder la mass en reset
     else if (coolDownOtherHasJumpWaitForGrounded.IsReady())
     {
         //Debug.Log("reset mass 10");
         ResetPlayerHasJump();
     }
 }
Esempio n. 8
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);
    }