예제 #1
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="moveThatHit"></param>
    /// <param name="hitBox"></param>
    /// <param name="hurtBox"></param>
    /// <returns></returns>
    private bool WasMoveBlocked(MoveData moveThatHit, Hitbox hitBox, Hitbox hurtBox)
    {
        CommandInterpreter.DIRECTION hitPlayerInputDirection = hurtBox.InteractionHandler.AssociatedCharacterStats.CommandInterpreter.CurrentDirection;
        CharacterInteractionHandler  hurtInteractionHandler  = hurtBox.InteractionHandler is CharacterInteractionHandler ? (CharacterInteractionHandler)hurtBox.InteractionHandler : null;

        if (hurtInteractionHandler == null)
        {
            return(false);
        }
        bool wasGuarded = hurtInteractionHandler.CanPlayerBlock;

        wasGuarded &= hurtInteractionHandler.Hitstun <= 0;
        if (!wasGuarded)
        {
            return(wasGuarded);
        }

        bool isCharacterCrouching = hurtInteractionHandler.MovementMechanics.IsCrouching;

        // Determine if blocked based on height
        switch (hurtInteractionHandler.CurrentHitFromMove.HitType)
        {
        case HitType.Low:
            wasGuarded &= isCharacterCrouching;
            break;

        case HitType.Air:
            wasGuarded &= !isCharacterCrouching;
            break;
        }

        if (!wasGuarded)
        {
            return(wasGuarded);
        }

        return(wasGuarded & (hitPlayerInputDirection == CommandInterpreter.DIRECTION.BACK || hitPlayerInputDirection == CommandInterpreter.DIRECTION.BACK_DOWN));
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="direction"></param>
    public void OnDirectionSet(CommandInterpreter.DIRECTION direction, Vector2Int directionOfJoystick)
    {
        float sizeOfImage = joystickImage.rectTransform.sizeDelta.x / 2;

        cursorImage.rectTransform.localPosition = new Vector2(directionOfJoystick.x, directionOfJoystick.y) * sizeOfImage;
        switch (direction)
        {
        case CommandInterpreter.DIRECTION.UP:
            return;

        case CommandInterpreter.DIRECTION.DOWN:
            return;

        case CommandInterpreter.DIRECTION.FORWARD:
            return;

        case CommandInterpreter.DIRECTION.BACK:
            return;

        case CommandInterpreter.DIRECTION.FORWARD_UP:
            return;

        case CommandInterpreter.DIRECTION.FORWARD_DOWN:
            return;

        case CommandInterpreter.DIRECTION.BACK_UP:
            return;

        case CommandInterpreter.DIRECTION.BACK_DOWN:
            return;

        case CommandInterpreter.DIRECTION.NEUTRAL:

            return;
        }
    }
 private void JoystickDirectionSet(CommandInterpreter.DIRECTION direction, Vector2Int joystickDirectionVec)
 {
     SetHorizontalInput(joystickDirectionVec.x);
     SetVerticalInput(joystickDirectionVec.y);
 }