using HarmonyLib;
using KFCommonUtilityLib.Scripts.Attributes;

[TypeTarget(typeof(ItemAction)), ActionDataTarget(typeof(AnimationLockedData))]
public class ActionModuleAnimationLocked
{
    [HarmonyPatch(nameof(ItemAction.StartHolding)), MethodTargetPostfix]
    private void Postfix_StartHolding(AnimationLockedData __customData)
    {
        __customData.isLocked = false;
        __customData.isReloadLocked = false;
    }

    [HarmonyPatch(nameof(ItemAction.IsActionRunning)), MethodTargetPostfix]
    private void Postfix_IsActionRunning(AnimationLockedData __customData, ref bool __result)
    {
        __result |= __customData.isLocked;
    }

    [HarmonyPatch(typeof(ItemActionAttack), nameof(ItemActionAttack.CanReload)), MethodTargetPostfix]
    private void Postfix_CanReload_ItemActionAttack(AnimationLockedData __customData, ref bool __result)
    {
        __result &= !__customData.isReloadLocked;
    }

    public class AnimationLockedData
    {
        public bool isLocked = false;
        public bool isReloadLocked = false;

        public AnimationLockedData(ItemInventoryData invData, int actionIndex, ActionModuleAnimationLocked module)
        {
            
        }
    }
}
