private ISquadron generateSquadronFromSaveData(SquadronSaveData saveData) { var squadron = SquadronFactory.CreateSquadron(GetFaction(saveData.Faction)); foreach (var pilotData in saveData.Pilots) { var pilot = GetPilot(pilotData.Name, pilotData.ShipName); var upgradesToAdd = new List <IUpgrade>(); foreach (var upgradeData in pilotData.Upgrades) { upgradesToAdd.Add(GetUpgrade(upgradeData.Name, upgradeData.UpgradeType)); } foreach (var upgrade in upgradesToAdd.OrderByDescending(x => x.AddUpgradeModifiers.Count())) { pilot.Upgrades.FirstOrDefault(x => x.IsNullUpgrade && x.UpgradeType.Equals(upgrade.UpgradeType))?.SetUpgrade(upgrade); } squadron.AddPilot(pilot); } squadron.SetId(saveData.Id); squadron.CostCap = saveData.CostCap; squadron.Name = saveData.Name; squadron.Description = saveData.Description; return(squadron); }
private SquadronSaveData CompileSaveData(ISquadron squadron) { SquadronSaveData squadronsave = new SquadronSaveData(squadron.Id, squadron.Name, squadron.Description, squadron.CostCap, squadron.Faction.Name); foreach (var pilot in squadron.Pilots.Values) { var pilotSave = new PilotSaveData(pilot.Name, pilot.ShipName); foreach (var upgradeSlot in pilot.Upgrades.Where(x => x.IsNotNullUpgrade)) { pilotSave.Upgrades.Add(new UpgradeSaveData(upgradeSlot.Upgrade.Name, upgradeSlot.Upgrade.UpgradeType.Name)); } squadronsave.Pilots.Add(pilotSave); } return(squadronsave); }
public void SaveSquadron(SquadronSaveData squadron) { savedSquadrons.Add(squadron); }