using Darkmatter.Core;
using System;
using System.Collections;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.Animations.Rigging;
using VContainer;

namespace Darkmatter.Presentation
{
    public class PlayerAnimController : HumonoidAnim, IPlayerAnim
    {
        private readonly int shootHash = Animator.StringToHash("IsShooting");
        private readonly int reloadHash = Animator.StringToHash("Reload");
        public TwoBoneIKConstraint HandOnGunIK; //for gunHand Ik
        private Coroutine reloadCoroutine;

        public void PlayReloadAnim(IWeapon currentWeapon)
        {
            if (reloadCoroutine == null)
            {
                reloadCoroutine = StartCoroutine(ReloadRoutine(currentWeapon));
            }
        }

        IEnumerator ReloadRoutine(IWeapon currentWeapon)
        {
            animator.SetLayerWeight(1, 1);
            HandOnGunIK.weight = 0f;
            animator.SetTrigger(reloadHash);

            yield return new WaitForSeconds(3f); //gave the length of the animation very bad practice

            animator.SetLayerWeight(1, 0);
            HandOnGunIK.weight = 1f;
            currentWeapon.Reload();
            reloadCoroutine = null;

        }

        public void PlayShootAnim()
        {
            Debug.Log("player Shoot");
        }
    }
}
