using Pausable;
using UnityEngine;

namespace AI
{
    [RequireComponent(typeof(Rigidbody2D))]
    public class Projectile : MonoBehaviour, IPausable
    {
        [SerializeField] protected float damageOnContact = 50f;
        private Rigidbody2D _rigidbody = null;

        private void Awake()
        {
            _rigidbody = GetComponent<Rigidbody2D>();
        }

        public void SetVelocity(Vector2 velocity)
        {
            _rigidbody.velocity = velocity;
        }

        private void OnCollisionEnter2D(Collision2D other)
        {
            ProjectilePool.Instance.Return(this);
        }

        public bool IsPaused { get; protected set; } = false;

        public void Pause()
        {
            IsPaused = true;
            UpdateRigidbody();
        }
        public void Resume()
        {
            IsPaused = false;
            UpdateRigidbody();
        }

        private void UpdateRigidbody()
        {
            _rigidbody.simulated = !IsPaused;
        }
    }
}