Esempio n. 1
0
 private void Move()
 {
     if (actionsManager.ActionIsAvailable(ActionsManager.Actions.HorizontalMove))
     {
         Climber.ClimbingAction.Direction xDirection = climber.CurrentDirection();
         if (yDirection != .0f)
         {
             if (moveScript.IsInCliffEdge(xDirection, yDirection))
             {
                 if (yDirection > 0)
                 {
                     CliffJump(xDirection);
                 }
             }
             else
             {
                 moveScript.IsMoving = true;
                 moveScript.Call(yDirection);
             }
         }
         else
         {
             moveScript.IsMoving = false;
         }
     }
 }
Esempio n. 2
0
 private void CliffJump(Climber.ClimbingAction.Direction xDirection)
 {
     if (actionsManager.ActionIsAvailable(ActionsManager.Actions.HorizontalMove))
     {
         Vector2 yVector = jumpDirection[xDirection];
         climber.CancelClimbing();
         jumpScript.CallStartCatchingCliff(yVector);
         StartCoroutine(BlockHorizontalMovement());
     }
 }
Esempio n. 3
0
 private float CalculateNewX(Climber.ClimbingAction.Direction xDirection)
 {
     if (xDirection == Climber.ClimbingAction.Direction.Left)
     {
         return(-1f);
     }
     else
     {
         return(1f);
     }
 }
Esempio n. 4
0
    public bool IsInCliffEdge(Climber.ClimbingAction.Direction xDirection, float yDirection)
    {
        bool result = true;

        Vector2[] vectorsCollectionCliff      = VectorsCollectionCliff(xDirection, yDirection);
        Vector2[] vectorsCollectionTopAndDown = VectorsCollectionTopAndDown(yDirection);
        if (yDirection != 0)
        {
            if (wallDistance.CheckContactWithWall(vectorsCollectionCliff) && !wallDistance.CheckContactWithWall(vectorsCollectionTopAndDown))
            {
                result = false;
            }
        }
        return(result);
    }
Esempio n. 5
0
 // We need to check if the object is in contact with the cliff
 private Vector2[] VectorsCollectionCliff(Climber.ClimbingAction.Direction xDirection, float yDirection)
 {
     return(new Vector2[1] {
         new Vector2(CalculateNewX(xDirection), CalculateNewY(yDirection))
     });
 }