public ZombieAttackState(GameObject followTarget, ZombieComponent zombie, StateMachine stateMachine) : base(zombie, stateMachine)
    {
        FollowTarget   = followTarget;
        UpdateInterval = 2.0f;

        DamagableObject = followTarget.GetComponent <Idamagable>();
    }
    public void attackStruct(float dmg)
    {
        Idamagable attempt = target_Current.GetComponent <Idamagable>();

        if (attempt != null)
        {
            GameObject   trail           = Instantiate(trailPrefab, transform.position, transform.rotation);
            LineRenderer lr              = trail.GetComponent <LineRenderer>();
            GameObject   spawnedSplosion = Instantiate(splosionPrefab, target_Current.transform.position, transform.rotation);

            if (lr != null)
            {
                lr.SetPosition(0, transform.position);
                lr.SetPosition(1, target_Current.transform.position);
            }

            Destroy(trail.gameObject, 0.05f);
            Destroy(spawnedSplosion, 1f);

            attempt.TakeDamage(damage);
        }
    }
        private void TakeDamage(RaycastHit hitInfo)
        {
            Idamagable damagable = hitInfo.collider.GetComponent <Idamagable>();

            damagable?.TakeDamage(WeaponInformation.Damage);
        }