internal async Task Go() {
_goCommand?.RaiseCanExecuteChanged();
var selectedMode = SelectedModeViewModel;
if (selectedMode == null) return;
try {
await selectedMode.Drive(new Game.BasicProperties {
CarId = SelectedCar.Id,
CarSkinId = SelectedCar.SelectedSkin?.Id,
CarSetupId = _carSetupId,
TrackId = SelectedTrack.Id,
TrackConfigurationId = SelectedTrack.LayoutId
}, AssistsViewModel.ToGameProperties(), new Game.ConditionProperties {
AmbientTemperature = Temperature,
RoadTemperature = RoadTemperature,
SunAngle = Game.ConditionProperties.GetSunAngle(_forceTime ?? Time),
TimeMultipler = TimeMultipler,
CloudSpeed = 0.2,
WeatherName = SelectedWeather?.Id
}, SelectedTrackPropertiesPreset.Properties);
} finally {
_goCommand?.RaiseCanExecuteChanged();
}
}