public void InitializeWithDetonator(GameObject target, Vector3 offSet, float laserSpeed, GameObject postCollisionParticleSystem, Elite_Laser_Trigger_Script.homingTargetInformation hm)
    {
        this.target = target;
        this.targetOffset = offSet;
        this.laserSpeed = laserSpeed;
        if (postCollisionParticleSystem)
        {
            this.detonatorPrefab = (GameObject)Instantiate(postCollisionParticleSystem);
        }
        else
        {
            this.detonatorPrefab = (GameObject)Instantiate(this.detonatorPrefab);
        }

        // Special Homing Laser Values
        this.initialHomingOffset = hm.initialHomingOffset;
        this.closingMagnitude = hm.closingMagnitude;
        this.percentToCloseOffset = hm.percentToCloseOffset;

        if (target)
        {
            this.transform.LookAt(target.transform.position + targetOffset + initialHomingOffset, new Vector3(0, 1, 0)); // Set the direction here
        }
        else
        {
            this.transform.LookAt(nonTargetDirection + initialHomingOffset, new Vector3(0, 1, 0)); // Set the direction here
        }
        //Debug.Log(this.transform.forward);
    }
 public void FireHomingLaserAtDetonator(GameObject target, Vector3 offSet, float laserSpeed, GameObject postCollisionParticleSystem, Elite_Laser_Trigger_Script.homingTargetInformation hm)
 {
     GameObject laser = (GameObject)Instantiate(Resources.Load("Prefabs/Level_1/Elite_Laser_Homing"), cannons[currentCannon].transform.position, Quaternion.identity);
     laser.GetComponent<Elite_Laser_Homing_Script>().InitializeWithDetonator(target, offSet, laserSpeed, postCollisionParticleSystem, hm);
     currentCannon++;
     if (currentCannon >= cannons.Length)
     {
         currentCannon = 0;
     }
 }
    public void Initialize(GameObject target, Vector3 offSet, float laserSpeed, GameObject postCollisionParticleSystem, Elite_Laser_Trigger_Script.homingTargetInformation hm, bool dei)
    {
        this.target = target;
        this.targetOffset = offSet;
        this.laserSpeed = laserSpeed;
        this.postCollisionParticleSystem = postCollisionParticleSystem;

        // Special Homing Laser Values
        this.initialHomingOffset = hm.initialHomingOffset;
        this.closingMagnitude = hm.closingMagnitude;
        this.percentToCloseOffset = hm.percentToCloseOffset;

        if (target)
        {
            this.transform.LookAt(target.transform.position + targetOffset + initialHomingOffset, new Vector3(0, 1, 0)); // Set the direction here
        }
        else
        {
            this.transform.LookAt(nonTargetDirection + initialHomingOffset, new Vector3(0, 1, 0)); // Set the direction here
        }
        //Debug.Log(this.transform.forward);
        dontExplodeInitially = dei;
        this.gameObject.GetComponent<BoxCollider>().isTrigger = dontExplodeInitially;
    }