private IEnumerator HandleFiringBeam(BeamController beam) { float elapsed = 0f; yield return(null); while (m_Player && m_Player.IsFiring && this && m_AIActor.sprite && m_AIActor.healthHaver && !m_IsDisconnected) { elapsed += BraveTime.DeltaTime; if (!m_AIActor.TargetRigidbody) { m_AIActor.PlayerTarget = m_Player; } if (!m_MirrorGunToggle) { beam.CeaseAttack(); beam.DestroyBeam(); yield break; } if (m_AIActor.CurrentGun) { beam.Origin = m_AIActor.CurrentGun.sprite.WorldCenter; beam.LateUpdatePosition(m_AIActor.CurrentGun.sprite.WorldCenter); } else { beam.Origin = m_AIActor.specRigidbody.UnitCenter; beam.LateUpdatePosition(m_AIActor.specRigidbody.UnitCenter); } // beam.Origin = m_AIActor.specRigidbody.UnitCenter; // beam.LateUpdatePosition(m_AIActor.specRigidbody.UnitCenter); if (m_Player) { float angle = ((m_AIActor.TargetRigidbody.GetUnitCenter(ColliderType.HitBox) - m_AIActor.specRigidbody.UnitCenter).ToAngle()); if (m_AIActor.CurrentGun) { angle = ((m_AIActor.TargetRigidbody.GetUnitCenter(ColliderType.HitBox) - m_AIActor.CurrentGun.sprite.WorldCenter).ToAngle()); } if (m_InvertSweepAngle) { angle = (angle + m_BeamSweepAngle); } else { angle = (angle - m_BeamSweepAngle); } beam.Direction = BraveMathCollege.DegreesToVector(angle, 1); if (m_Player.IsDodgeRolling) { beam.CeaseAttack(); beam.DestroyBeam(); yield break; } } yield return(null); } beam.CeaseAttack(); beam.DestroyBeam(); yield break; }