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); }
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; }
public SquadronBuilderViewModel() { SquadronViewModel = new SquadronViewModel(SquadronFactory.CreateSquadron()); }