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); } } }
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"); }