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);
        }
Esempio n. 2
0
        public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> suspensionState)
        {
            session = SessionState["State"] as IXWingSessionState;

            if (session.ActiveSquadron.Squadron is NullSquadron)
            {
                SquadronViewModel = new SquadronViewModel(SquadronFactory.CreateSquadron(parameter as IFaction));
                session.SetActiveSquadron(SquadronViewModel);
            }
            else
            {
                SquadronViewModel = session.ActiveSquadron;
            }

            //NavigationService.ClearHistory();
            await Task.CompletedTask;
        }
Esempio n. 3
0
 public SquadronBuilderViewModel()
 {
     SquadronViewModel = new SquadronViewModel(SquadronFactory.CreateSquadron());
 }