protected override void Execute()
    {
        Vector2 surroundingsDirection = SurroundingDirectionHelper.GetSurroundingsDirection(playerCollisionDirectionRef.Get(), playerRaycastDirectionRef.Get());

        if (surroundingsDirection == Vector2.zero)
        {
            Abort();
        }
    }
예제 #2
0
    protected override void Execute()
    {
        Vector2 surroundingsDirection = SurroundingDirectionHelper.GetSurroundingsDirection(playerCollisionDirectionRef.Get(), playerRaycastDirectionRef.Get());

        playerBounceEvent.Dispatch(new PlayerBounceEvent.Parameter(
                                       playerVelocityRef.Get().MoveDirection,
                                       surroundingsDirection
                                       ));
    }
    protected override void Execute()
    {
        Vector2 moveDirection;

        if (playerVelocityRef.Get().IsMovingStandard)
        {
            moveDirection = playerVelocityRef.Get().MoveDirection;
        }
        else
        {
            moveDirection = playerVelocityRef.Get().GetPreviousVelocityDirection();
        }

        Vector2     collisionDirection  = playerCollisionDirectionRef.Get().CollisionDirection;
        RaycastData combinedRaycastData = playerRaycastDirectionRef.Get().GetCombinedDirectionAndCenterDistances();

        Vector2 surroundingsDirection = SurroundingDirectionHelper.GetSurroundingsDirection(collisionDirection, combinedRaycastData.Direction);

        playerMoveDirectionRef.Get().TurnToNextDirection(moveDirection, surroundingsDirection, collisionDirection, combinedRaycastData.Distance);
    }
예제 #4
0
    protected override void Execute()
    {
        Vector2 savedDirection = playerTurnDirectionRef.Get().SavedDirection;
        Vector2 moveDirection  = playerVelocityRef.Get().MoveDirection;

        Vector2 newDirection          = savedDirection;
        Vector2 surroundingsDirection = SurroundingDirectionHelper.GetSurroundingsDirection(playerCollisionDirectionRef.Get(), playerRaycastDirectionRef.Get());

        if (surroundingsDirection.x != 0)
        {
            newDirection.x = surroundingsDirection.x * -1;
        }
        else if (surroundingsDirection.y != 0)
        {
            newDirection.y = surroundingsDirection.y * -1;
        }

        playerStatus.Player.transform.position += (Vector3)(newDirection * playerJumpRef.Get().InstantJumpStrength);

        playerSetMoveDirectionEvent.Dispatch(newDirection);
        playerTurnDirectionRef.Get().SavedDirection = newDirection;
        playerTemporarySpeedChangeEvent.Dispatch(new PlayerTemporarySpeedChangeEvent.Parameter(0.5f + playerJumpRef.Get().JumpSpeedBoost));
    }