// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (Launcher == null) { Launcher = FindObjectOfType <RocketLauncher>(); } Launcher.Launch(); }
public async Task Launch(int id) { if (gameRunning) { await Task.FromResult(false); } await Task.Run(async() => { bool errored = false; var game = await _unitOfWork.GamesRepository.GetByIDAsync(id); try { var system = await _unitOfWork.GamingSystemRepository.GetByIDAsync(game.SystemId); gameRunning = true; if (game != null) { _runningGame = game; RocketLauncher rl = new RocketLauncher("I:\\Rocketlauncher"); var startTime = DateTime.Now; system.LastLaunched = startTime; game.LastPlayed = startTime; await _hubContext.Clients.All.SendAsync("ReceiveMessage", "RetroDb", "RlStarted"); rl.Launch(game.FileName, system.Name); var endTime = DateTime.Now; game.TimePlayed = endTime - startTime; //Todo: add times played } } catch { errored = true; } finally { gameRunning = false; _runningGame = null; await _hubContext.Clients.All.SendAsync("ReceiveMessage", "RetroDb", "RlEnded"); } if (!errored) { await _hubContext.Clients.All.SendAsync("ReceiveMessage", "RetroDb", "RlError"); _unitOfWork.GamesRepository.Update(game); _unitOfWork.Save(); } }); }
public void LaunchGame_Rl() { Assert.True(Directory.Exists(_rl.InstallPath)); _rl.Launch("3D Boxing (Europe)", "Amstrad CPC"); }