private void ThinkSeek() { if (this.m_Target != null) { if (this.m_Target is Ship) { this.m_Swarmer.SetShipTarget(this.m_Target.ObjectID, (this.m_Target as Ship).ShipSphere.center, true, 0); } else { this.m_Swarmer.SetShipTarget(this.m_Target.ObjectID, Vector3.Zero, true, 0); } this.m_State = SwarmerAttackerStates.TRACK; } else { if (this.m_SwarmerParent == null) { return; } --this.m_UpdateRate; if (this.m_UpdateRate > 0) { return; } this.m_UpdateRate = 3; Vector3 look = this.m_Swarmer.Position - this.m_SwarmerParent.GetShip().Position; double num = (double)look.Normalize(); this.m_Swarmer.Maneuvering.PostAddGoal(this.m_SwarmerParent.GetShip().Position + look * 1500f, look); } }
private void ThinkTrack() { if (this.m_Target != null) { return; } this.m_Swarmer.SetShipTarget(0, Vector3.Zero, true, 0); this.m_State = SwarmerAttackerStates.SEEK; }
public override void Initialize() { this.m_Target = (IGameObject)null; this.m_SwarmerParent = (SwarmerSpawnerControl)null; this.m_State = SwarmerAttackerStates.SEEK; this.m_UpdateRate = 0; if (this.m_Swarmer == null) { return; } foreach (IGameObject weaponBank in this.m_Swarmer.WeaponBanks) { weaponBank.PostSetProp("IgnoreLineOfSight", true); } }