private void ThinkTrack() { if (this.m_Target == null) { if (this.m_Target != this.m_LocustNest) { this.m_State = LocustFighterStates.SEEK; } else { this.m_State = LocustFighterStates.IDLE; } } else { if (!(this.m_Target is StellarBody)) { return; } StellarBody target = this.m_Target as StellarBody; float num = target.Parameters.Radius + this.m_LocustFighter.ShipSphere.radius; if ((double)(target.Parameters.Position - this.m_LocustFighter.Position).LengthSquared >= (double)num * (double)num) { return; } this.m_State = LocustFighterStates.ASSAULT; if (this.m_LocustNest == null) { return; } this.m_LocustNest.NotifyFighterHasLanded(); } }
private void ThinkIdle() { if (this.m_Target == null || this.m_Target == this.m_LocustNest) { return; } this.m_State = LocustFighterStates.TRACK; }
private void ThinkSeek() { if (this.m_Target == null) { return; } if (this.m_Target != this.m_LocustNest) { this.m_State = LocustFighterStates.TRACK; } else { this.m_State = LocustFighterStates.IDLE; } }
private void ThinkAssault() { bool flag = this.m_Target == null; if (this.m_Target is StellarBody) { StellarBody target = this.m_Target as StellarBody; float num = target.Parameters.Radius + this.m_LocustFighter.ShipSphere.radius; if ((double)(target.Parameters.Position - this.m_LocustFighter.Position).LengthSquared > (double)num * (double)num) { flag = true; } } if (!flag) { return; } this.m_State = LocustFighterStates.SEEK; this.SetTarget((IGameObject)null); }
public override void Initialize() { this.m_Target = (IGameObject)null; this.m_LocustNest = (LocustNestControl)null; this.m_State = LocustFighterStates.IDLE; }