public override void Fire(RotatorModule rotator, Vector3 basePos, Vector3 position, string fireFunc = "DoFire")
 {
     if (canFire)
     {
         if (!rotator)
         {
             UpdateBeam();
             return;
         }
         float angle = Angle.CalculateAngle(rotator.transform.position, position);
         pointer.eulerAngles = new Vector3(0, 0, angle);
         if (Vector3.Distance(rotator.transform.eulerAngles, pointer.eulerAngles) < 5f)
         {
             UpdateBeam();
         }
         else
         {
             BreakBeam();
         }
     }
     else
     {
         BreakBeam();
     }
 }
 public virtual void Fire(RotatorModule rotator, Vector3 basePos, Vector3 position, string fireFunc = "DoFire")
 {
     if (canFire)
     {
         if (!rotator)
         {
             StartCoroutine(fireFunc);
             return;
         }
         float angle = Angle.CalculateAngle(rotator.transform.position, position);
         pointer.eulerAngles = new Vector3(0, 0, angle);
         if (Vector3.Distance(rotator.transform.eulerAngles, pointer.eulerAngles) < 1f || rotator.type != RotatorModule.RotatorType.Standard)
         {
             StartCoroutine(fireFunc);
         }
     }
 }
Exemple #3
0
 void FindParentRotator()
 {
     if (transform.parent == null)
     {
         parentRotator = GetComponent <RotatorModule>();
     }
     else
     {
         Transform cur = transform;
         while (parentRotator == null && cur.parent)
         {
             parentRotator = cur.GetComponent <RotatorModule>();
             if (!parentRotator)
             {
                 cur = cur.parent;
             }
         }
         parentRotator = cur.GetComponent <RotatorModule>();
     }
 }
 public override void Fire(RotatorModule rotator, Vector3 basePos, Vector3 position, string fireFunc = "DoFire")
 {
     base.Fire(rotator, basePos, position, "Charge");
 }