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);
        }
示例#3
0
 public void SaveSquadron(SquadronSaveData squadron)
 {
     savedSquadrons.Add(squadron);
 }