internal void RemoveSquadron(Squadron squadron) { foreach (var entry in squadron.AircraftsWithRelPositions) { RemoveAircraft(entry.Key); } Squadrons.Remove(squadron); ActiveSquadrons.Remove(squadron); }
protected override void OnRawDataUpdated() { Name = RawData.Name; Option = RawData.Option; Squadrons.UpdateRawData(RawData.Squadrons, r => new AirForceSquadron(this, r), (rpData, rpRawData) => rpData.Update(rpRawData)); CombatRadius = RawData.CombatRadius; UpdateFighterPower(); UpdateLBASConsumption(); }
internal void AddSquadron(Squadron squadron, CCPoint position, float CCdirection) { squadron.Leader.Position = position; squadron.Leader.RotateTo(CCdirection); // rotate all formation positions correctly around the leader and set everyone to their positions float angle = Constants.CCDegreesToMathRadians(CCdirection); foreach (var entry in squadron.AircraftsWithRelPositions) { var formationPoint = CCPoint.RotateByAngle(entry.Value, CCPoint.Zero, angle); entry.Key.Position = position + formationPoint; entry.Key.RotateTo(CCdirection); AddAircraft(entry.Key); } squadron.GenerateWayPoint(); Squadrons.Add(squadron); }
private void SetSquadrons(string apiname, dynamic data) { foreach (var elem in data) { int id = (int)elem.api_squadron_id; if (!Squadrons.ContainsKey(id)) { var a = new BaseAirCorpsSquadron(); a.LoadFromResponse(apiname, elem); Squadrons.Add(a); } else { Squadrons[id].LoadFromResponse(apiname, elem); } } }