public InputModel NewGameInput() { var allExternalThreats = ExternalThreatFactory.AllExternalThreats .Select(threat => new ExternalThreatModel(threat)) .ToList(); var allInternalThreats = InternalThreatFactory.AllInternalThreats .Select(threat => new InternalThreatModel(threat)) .ToList(); var inputModel = new InputModel { SingleActions = ActionModel.AllSingleActionModels.OrderBy(action => action.FirstAction).ThenBy(action => action.SecondAction), DoubleActions = ActionModel.AllSelectableDoubleActionModels.OrderBy(action => action.FirstAction).ThenBy(action => action.SecondAction), SpecializationActions = PlayerSpecializationActionModel.AllPlayerSpecializationActionModels .OrderBy(action => action.PlayerSpecialization) .ThenBy(player => player.Hotkey), Tracks = TrackFactory.CreateAllTracks() .Select(track => new TrackSnapshotModel(track, new List <int>())) .ToList(), AllInternalThreats = new AllThreatsModel(allInternalThreats), AllExternalThreats = new AllThreatsModel(allExternalThreats), PlayerSpecializations = EnumFactory.All <PlayerSpecialization>().ToList(), AllDamageTokens = EnumFactory.All <DamageToken>(), DamageableZones = EnumFactory.All <ZoneLocation>() }; return(inputModel); }