using UnityEngine;

public class HorizontalLaser : BarBase
{
    public GameObject horizontalLaserPrefab;

    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        Initialize();
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        if (canFire)
        {
            if (canFireLeft)
            {
                Vector3 leftSide = new Vector3(
                    bounds.min.x - (bounds.size.x / 2.0f),
                    bounds.center.y, 
                    bounds.center.z
                );

                var left = Instantiate(horizontalLaserPrefab, leftSide, Quaternion.identity);
                var leftLaserScript = left.GetComponent<HorizontalLaser>();
                leftLaserScript.canFireRight = false;

                Physics2D.IgnoreCollision(
                    left.GetComponent<Collider2D>(), 
                    GetComponent<Collider2D>(), 
                    true
                );
            }

            if (canFireRight)
            {
                Vector3 rightSide = new Vector3(
                    bounds.max.x + (bounds.size.x / 2.0f),
                    bounds.center.y,
                    bounds.center.z
                );
                var right = Instantiate(horizontalLaserPrefab, rightSide, Quaternion.identity);
                var rightLaserScript = right.GetComponent<HorizontalLaser>();
                rightLaserScript.canFireLeft = false;

                Physics2D.IgnoreCollision(
                    right.GetComponent<Collider2D>(), 
                    GetComponent<Collider2D>(), 
                    true
                );
            }

            canFire = false;
        }
    }
}
