void OnDestroy() { if (mInstance == this) { mInstance = null; } }
public static void Compare(string nickname, Action action, int laps) { LogUtils.Log(nickname); var simpleDuration = TimeTrial.Attack(action, laps); var perFrame = Per.Frame( () => { try { action.Invoke(); return(true); } catch { return(false); } } ); // ReSharper disable once ReturnValueOfPureMethodIsNotUsed var perFrameDuration = TimeTrial.Attack(() => perFrame.Get(), laps); LogUtils.Log( new Dictionary <object, object>() { { nameof(simpleDuration), $"{nameof(simpleDuration.Average)}: {simpleDuration.Average.TotalMilliseconds}, {nameof(simpleDuration.Shortest)}: {simpleDuration.Shortest.TotalMilliseconds}, {nameof(simpleDuration.Longest)}: {simpleDuration.Longest.TotalMilliseconds}" }, { nameof(perFrameDuration), $"{nameof(perFrameDuration.Average)}: {perFrameDuration.Average.TotalMilliseconds}, {nameof(perFrameDuration.Shortest)}: {perFrameDuration.Shortest.TotalMilliseconds}, {nameof(perFrameDuration.Longest)}: {perFrameDuration.Longest.TotalMilliseconds}" }, { "Ratio", perFrameDuration.Average.Divide(simpleDuration.Average) } } ); }
// Use this for initialization //private void Start() //{ // //} // Update is called once per frame //private void Update() //{ // //} private void OnTriggerEnter2D(Collider2D collision) { // If player gets to the level end ... if (_playerLayer == (_playerLayer | (1 << collision.gameObject.layer))) { // Load next scene //GameManager.Instance.GameManagerState.StateChange(_gameScenes); // Disable player control GameManager.Instance.PlayerInstance.GetComponent <CharacterFlags>().IsPlayerControlAllowed = false; // Stop GameManager sound GameManager.Instance.AudioSource.Stop(); // Play sound _audioSource.Play(); // Check for time trial TimeTrial l_timeTrial = GameManager.Instance.TimeTrialClock.GetComponent <TimeTrial>(); // Whether is time trial or not if (l_timeTrial.IsTimeTrial) { ManageTimeTrialLevelEnd(l_timeTrial); } else { ManageLevelEnd(); } } }
public static void TimeTrialProcess(string level) { float t = timeTrialSaved; float tBest = t; if (TimeTrial.Exists(level)) { float lastT = TimeTrial.Load(level); if (t < lastT) { tBest = t; TimeTrial.Save(level, t); } else { tBest = lastT; } } else { tBest = t; TimeTrial.Save(level, t); } //post TimeTrial.Post(level, t); }
void Awake() { if (mInstance == null) { mInstance = this; } }
private void ManageTimeTrialLevelEnd(TimeTrial timeTrial) { // Manage end of time trial timeTrial.EndTimeTrial(); // Set time trial completed banner active _timeTrialCompletedBanner.SetActive(true); }
public void play() { Play.SetActive(false); Options.SetActive(false); Quit.SetActive(false); Standard.SetActive(true); TimeTrial.SetActive(true); Hatefest.SetActive(true); MainMenu.SetActive(true); }
/// <summary> /// Adds a time trial to the list to be submitted /// Calls checkValid, calcTotalTime, and getOptionsText /// </summary> private void addTT() { informationText = ""; if (checkValid()) { informationText = "Adding time trial..."; TimeTrial newTT = new TimeTrial() { ProductionNumber = (int)productionNum, SalesOrder = (int)salesOrder, Date = (DateTime)date, DriveTime = driveTime == null ? 0 : (decimal)driveTime, AVTime = AVTime == null ? 0 : (decimal)AVTime, Model = selectedModel, NumOptions = numOptions == null ? 0 : (int)numOptions, TTOptionTimes = new ObservableCollection <TimeTrialsOptionTime>(), TotalTime = calcTotalTime() }; //Instantiates the options that were a part of the model foreach (TimeTrialsOptionTime TTOption in TTOptions) { TTOption.OptionCode = TTOption.OptionCode.ToUpper(); TTOption.ProductionNumber = (int)productionNum; TTOption.TimeTrial = newTT; newTT.TTOptionTimes.Add(TTOption); } //Sort list alphabetically newTT.TTOptionTimes = new ObservableCollection <TimeTrialsOptionTime>(newTT.TTOptionTimes.OrderBy(i => i.OptionCode)); //Returns a string containing the model options from the list of options newTT.OptionsText = getOptionsText(newTT.TTOptionTimes); // Since the observable collection was created on the UI thread // we have to add the time trial to the list using a delegate function. App.Current.Dispatcher.Invoke(delegate { timeTrials.Add(newTT); }); // Clear necessary input boxes productionNum++; //Plan for the user to enter time trials in production number order driveTime = null; AVTime = null; totalTime = null; numOptions = null; TTOptions = new ObservableCollection <TimeTrialsOptionTime>(); informationText = "Time Trial added"; } }
// Use this for initialization //private void Start() //{ // //} // Update is called once per frame //private void Update() //{ // //} public void OnLevelCompletedBannerEndAnimationEvent() { // Get TimeTrial TimeTrial l_timeTrial = GameManager.Instance.TimeTrialClock.GetComponent <TimeTrial>(); // Set your time text _yourTimeText.text = l_timeTrial.TimeTrialElapsedTime.Minutes.ToString("D2") + ":" + l_timeTrial.TimeTrialElapsedTime.Seconds.ToString("D2") + ":" + l_timeTrial.TimeTrialElapsedTime.Milliseconds.ToString("D3"); // Retrieve level times string l_levelName = SceneManager.GetActiveScene().name; string[] l_levelTimes = GameManager.Instance.RetrieveLevelTimes(l_levelName); // Set level times if (l_levelTimes != null) { _firstTimeText.text = l_levelTimes[0]; _secondTimeText.text = l_levelTimes[1]; _thirdTimeText.text = l_levelTimes[2]; } // Set level time stats UI active _levelTimeStats.SetActive(true); // Start coroutine StartCoroutine(DisplayLevelTimeStatsCoroutine()); // Start coroutine if (_firstTimeText.text.Equals(_yourTimeText.text)) { _blinkTimeStat = _firstTimeText.gameObject; StartCoroutine(BlinkLevelTimeCoroutine()); return; } // if (_secondTimeText.text.Equals(_yourTimeText.text)) { _blinkTimeStat = _secondTimeText.gameObject; StartCoroutine(BlinkLevelTimeCoroutine()); return; } // if (_thirdTimeText.text.Equals(_yourTimeText.text)) { _blinkTimeStat = _thirdTimeText.gameObject; StartCoroutine(BlinkLevelTimeCoroutine()); return; } }
/// <summary> /// Convert Race Entity into Race Object /// </summary> ///<param name="model">TimeTrialViewModel</param> ///<param name="RaceEntity">TimeTrial</param> ///<returns>TimeTrialViewModel</returns> public static TimeTrialViewModel ToViewModel( this TimeTrial entity, TimeTrialViewModel model) { model.Id = entity.Id; model.CalendarId = entity.CalendarId; model.RaceTypeId = entity.RaceTypeId; model.FinYear = entity.Calendar.FinYear.Name; model.Calendar = entity.Calendar.ToViewModel(new CalendarViewModel()); model.DistanceIds = entity.TimeTrialDistances.Select(a => a.DistanceId); return(model); }
public override void Bind(Entity entity, Main main, bool creating = false) { entity.CannotSuspend = true; Transform transform = entity.GetOrCreate <Transform>("Transform"); TimeTrial trial = entity.GetOrCreate <TimeTrial>("TimeTrial"); TimeTrialUI ui = entity.GetOrCreate <TimeTrialUI>("UI"); this.SetMain(entity, main); entity.Add("EndTimeTrial", trial.Disable); entity.Add("StartTimeTrial", trial.Enable); ui.Add(new Binding <float>(ui.ElapsedTime, trial.ElapsedTime)); ui.Add(new Binding <float>(ui.BestTime, trial.BestTime)); ui.Add(new Binding <string>(ui.NextMap, trial.NextMap)); ui.Add(new CommandBinding(trial.Enable, ui.Show)); ui.Add(new CommandBinding(trial.Disable, ui.ShowEnd)); #if STEAMWORKS ui.Add(new CommandBinding(trial.OnLeaderboardError, ui.OnLeaderboardError)); ui.Add(new CommandBinding <LeaderboardScoresDownloaded_t, LeaderboardScoresDownloaded_t>(trial.OnLeaderboardSync, ui.OnLeaderboardSync)); ui.Add(new CommandBinding(ui.LeaderboardSync, trial.LeaderboardSync)); #endif ui.Add(new CommandBinding(ui.Retry, trial.Retry)); ui.Add(new CommandBinding(ui.MainMenu, delegate() { main.CurrentSave.Value = null; main.EditorEnabled.Value = false; IO.MapLoader.Load(main, Main.MenuMap); main.Menu.Show(); })); ui.Add(new CommandBinding(ui.LoadNextMap, delegate() { main.CurrentSave.Value = null; main.EditorEnabled.Value = false; IO.MapLoader.Load(main, trial.NextMap); })); ui.Add(new CommandBinding(ui.Edit, delegate() { main.CurrentSave.Value = null; main.EditorEnabled.Value = true; IO.MapLoader.Load(main, main.MapFile); })); entity.Add("NextMap", trial.NextMap, new PropertyEntry.EditorData { Options = FileFilter.Get(main, main.MapDirectory, new string[] { "", "Challenge" }, IO.MapLoader.MapExtension), }); }
public override void Bind(Entity entity, Main main, bool creating = false) { Transform transform = entity.GetOrCreate <Transform>("Transform"); TimeTrial trial = entity.GetOrCreate <TimeTrial>("TimeTrial"); SetMain(entity, main); entity.Add("EndTimeTrial", trial.EndTimeTrial); entity.Add("StartTimeTrial", trial.StartTimeTrial); entity.Add("Pause", trial.PauseTimer); entity.Add("Resume", trial.ResumeTimer); entity.Add("ParTime", trial.ParTime, "Base par time"); entity.Add("KourTime", trial.KourTime, "Gold medal time"); entity.Add("NextMap", trial.NextMap, new PropertyEntry.EditorData { Options = FileFilter.Get(main, main.MapDirectory, new string[] { "", "Challenge" }, IO.MapLoader.MapExtension), }); }
public async Task <SaveResult> SaveEntityList(TimeTrialViewModel model, TimeTrial parentEntity) { SaveResult saveResult = new SaveResult(); var currentEntities = parentEntity.TimeTrialDistances; if (model.DistanceIds == null) { if (currentEntities.Any()) { var TimeTrialDistanceIds = currentEntities.ToList().ToList().Select(b => b.Id); var toDeleteList = _context.TimeTrialDistance.Where(a => TimeTrialDistanceIds.Contains(a.Id)); _context.TimeTrialDistance.RemoveRange(toDeleteList); await _context.SaveChangesAsync(); saveResult.IsSuccess = true; } else { saveResult.IsSuccess = true; } } else { var regions = _context.Distance.Where(a => model.DistanceIds.Contains(a.Id)); if (currentEntities.Any()) { saveResult.IsSuccess = await AddTimeTrialDistanceWherePreviousExists(model, currentEntities, regions); if (saveResult.IsSuccess) { saveResult = await ManageExistingTimeTrialDistance(model, currentEntities, regions); } } else { saveResult.IsSuccess = await AddEntity(model, currentEntities, regions); } } return(saveResult); }
/// <summary> /// Convert Race Object into Race Entity /// </summary> ///<param name="model">Race</param> ///<param name="RaceEntity">TimeTrial</param> ///<returns>TimeTrial</returns> public static TimeTrial ToEntity(this TimeTrialViewModel model, TimeTrial entity) { if (entity.Id == 0) { entity.CreatedUserId = model.SessionUserId; entity.IsActive = model.IsActive; entity.CalendarId = model.CalendarId; entity.RaceTypeId = model.RaceTypeId; } else { entity.UpdatedUserId = model.SessionUserId; entity.UpdatedTimestamp = DateTime.Now; } return(entity); }
public override void Bind(Entity entity, Main main, bool creating = false) { Transform transform = entity.GetOrCreate <Transform>("Transform"); TimeTrial trial = entity.GetOrCreate <TimeTrial>("TimeTrial"); TimeTrialUI ui = entity.GetOrCreate <TimeTrialUI>("UI"); SetMain(entity, main); entity.Add("EndTimeTrial", trial.Disable); entity.Add("StartTimeTrial", trial.Enable); ui.Add(new Binding <float>(ui.ElapsedTime, trial.ElapsedTime)); ui.Add(new Binding <string>(ui.NextMap, trial.NextMap)); ui.Add(new CommandBinding(trial.Enable, (Action)ui.AnimateIn)); ui.Add(new CommandBinding(trial.Disable, (Action)ui.ShowEndPanel)); ui.Add(new CommandBinding(ui.Retry, trial.Retry)); ui.Add(new CommandBinding(ui.MainMenu, delegate() { main.CurrentSave.Value = null; main.EditorEnabled.Value = false; IO.MapLoader.Load(main, Main.MenuMap); main.Menu.Show(); })); ui.Add(new CommandBinding(ui.LoadNextMap, delegate() { main.CurrentSave.Value = null; main.EditorEnabled.Value = false; IO.MapLoader.Load(main, trial.NextMap); })); ui.Add(new CommandBinding(ui.Edit, delegate() { main.CurrentSave.Value = null; main.EditorEnabled.Value = true; IO.MapLoader.Load(main, main.MapFile); })); entity.Add("NextMap", trial.NextMap, new PropertyEntry.EditorData { Options = FileFilter.Get(main, main.MapDirectory, new string[] { "", "Challenge" }, IO.MapLoader.MapExtension), }); }
protected override void OnOpen() { //save data if best string level = LevelController.levelLoaded; float t = LevelController.timeTrialSaved; float tBest; bool isBest; if (TimeTrial.Exists(level)) { float lastT = TimeTrial.Load(level); if (t < lastT) { tBest = t; isBest = true; //TimeTrial.Save(level, t); } else { tBest = lastT; isBest = false; } } else { tBest = t; isBest = true; //TimeTrial.Save(level, t); } timeLabel.text = LevelController.LevelTimeFormat(t); timeBestLabel.text = LevelController.LevelTimeFormat(tBest); newRecordGO.SetActive(isBest); //post //TimeTrial.Post(level, t); NGUILayoutBase.RefreshNow(transform); }
public TimeTrialUI(TimeTrial tT) { this.theTimeTrial = tT; }
public override void Bind(Entity entity, Main main, bool creating = false) { entity.CannotSuspend = true; Transform transform = entity.GetOrCreate <Transform>("Transform"); TimeTrial trial = entity.GetOrCreate <TimeTrial>("TimeTrial"); TimeTrialUI ui = entity.GetOrCreate <TimeTrialUI>("UI"); this.SetMain(entity, main); entity.Add("EndTimeTrial", trial.Disable); entity.Add("StartTimeTrial", trial.Enable); ui.Add(new Binding <float>(ui.ElapsedTime, trial.ElapsedTime)); ui.Add(new Binding <float>(ui.BestTime, trial.BestTime)); ui.Add(new Binding <string>(ui.NextMap, trial.NextMap)); ui.Add(new CommandBinding(trial.Enable, ui.Show)); ui.Add(new CommandBinding(trial.ShowUI, ui.ShowEnd)); #if STEAMWORKS ui.Add(new CommandBinding(trial.Proxy.OnLeaderboardError, ui.OnLeaderboardError)); ui.Add(new Binding <bool>(trial.Proxy.PersonaNotification, ui.PersonaNotification)); ui.Add(new CommandBinding <LeaderboardScoresDownloaded_t, LeaderboardScoresDownloaded_t>(trial.Proxy.OnLeaderboardSync, ui.OnLeaderboardSync)); #endif ui.Add(new CommandBinding(ui.Retry, trial.Retry)); ui.Add(new CommandBinding(ui.MainMenu, delegate() { main.CurrentSave.Value = null; main.EditorEnabled.Value = false; IO.MapLoader.Load(main, Main.MenuMap); main.Menu.Show(); })); ui.Add(new CommandBinding(ui.LoadNextMap, delegate() { string filenameWithExtension = trial.NextMap; if (!filenameWithExtension.EndsWith(IO.MapLoader.MapExtension)) { filenameWithExtension += IO.MapLoader.MapExtension; } string fullFilename = Path.IsPathRooted(filenameWithExtension) ? filenameWithExtension : Path.GetFullPath(Path.Combine(main.MapDirectory, filenameWithExtension)); main.CurrentSave.Value = null; main.EditorEnabled.Value = false; if (File.Exists(fullFilename)) { IO.MapLoader.Load(main, fullFilename); } else { #if DEMO main.Spawner.StartSpawnPoint.Value = "demo"; #endif IO.MapLoader.Load(main, Main.MenuMap); main.Menu.Show(); } })); ui.Add(new CommandBinding(ui.Edit, delegate() { main.CurrentSave.Value = null; main.EditorEnabled.Value = true; IO.MapLoader.Load(main, main.MapFile); })); entity.Add("NextMap", trial.NextMap, new PropertyEntry.EditorData { Options = FileFilter.Get(main, main.MapDirectory, new string[] { "", "Challenge" }, IO.MapLoader.MapExtension), }); entity.Add("AllowRespawn", trial.AllowRespawn); }
public async Task <SaveResult> SaveEntity(TimeTrialViewModel viewModel) { SaveResult saveResult = new SaveResult(); Dictionary <bool, string> dictionary = new Dictionary <bool, string>(); var entity = new TimeTrial(); try { saveResult = AtLeastOneEvent(viewModel, saveResult); if (!saveResult.IsSuccess) { return(saveResult); } if (viewModel.Id != 0) { if (_context.TimeTrial.IgnoreQueryFilters().Any(a => a.Id == viewModel.Id)) { entity = await _context.TimeTrial .Include(a => a.Calendar) .Include(a => a.TimeTrialDistances) .IgnoreQueryFilters().FirstOrDefaultAsync(a => a.Id == viewModel.Id); } entity = viewModel.ToEntity(entity); _context.TimeTrial.Update(entity); } else { entity = viewModel.ToEntity(entity); _context.TimeTrial.Add(entity); } await _context.SaveChangesAsync(); if (entity.Id > 0) { saveResult.IsSuccess = true; saveResult.Id = entity.Id; viewModel.Id = entity.Id; if (saveResult.IsSuccess) { saveResult = await _timeTrialDistanceBL.SaveEntityList(viewModel, entity); } } } catch (DbUpdateException upDateEx) { var results = upDateEx.GetSqlerrorNo(); string msg = results == (int)SqlErrNo.FK ? ConstEntity.MissingValueMsg : ConstEntity.UniqueKeyMsg; saveResult = dictionary.GetValidateEntityResults(msg).ToSaveResult(); } catch (Exception ex) { saveResult.Message = CrudError.SaveErrorMsg; } return(saveResult); }
private void Start() { tt = GetComponentInParent <TimeTrial>(); }
IEnumerator DoWait() { yield return(StartCoroutine(Achievement.instance.WaitServiceComplete())); waitGO.SetActive(false); UICamera.selectedObject = items[0].l.gameObject; for (int i = 0; i < items.Length; i++) { items[i].l.onClick = OnItemClick; //check locked bool isLocked; if (TimeTrial.instance.data[i].requireUnlock) { if (!Achievement.instance.AchievementIsUnlocked(TimeTrial.instance.data[i].achieveId)) { isLocked = true; //go through slot data ModalSaveSlots modalSlots = UIModalManager.instance.ModalGetController <ModalSaveSlots>("slots"); for (int s = 0; s < modalSlots.slots.Length; s++) { SceneState.instance.ResetGlobalValues(); UserSlotData.LoadSlot(s, false); if (LevelController.IsLevelComplete(TimeTrial.instance.data[i].level)) { isLocked = false; break; } UserSlotData.LoadSlot(-1, false); } } else { isLocked = false; } } else { isLocked = false; } if (isLocked) { items[i].label.text = "?????"; items[i].label.color = Color.gray; items[i].time.text = "BEST - ---:--.--"; items[i].locked = true; } else { items[i].label.text = TimeTrial.instance.data[i].name; items[i].label.color = activeColor; if (TimeTrial.Exists(TimeTrial.instance.data[i].level)) { items[i].time.text = "BEST - " + LevelController.LevelTimeFormat(TimeTrial.Load(TimeTrial.instance.data[i].level)); } else { items[i].time.text = "BEST - ---:--.--"; } items[i].locked = false; } } back.onClick = OnReturn; }