private void didPlayersLeave(GameRoom room, FiberYieldResponse response) { room.Fiber.Run<FiberYieldResponse>(room.PlayersLeft); room.PlayersLeft.Clear(); }
private void askPlayerQuestion(GameRoom room, FiberYieldResponse answer) { gameData.TotalQuestionsAnswered++; var answ = answer.Question; if (answ == null) { ServerLogger.LogDebug("game question over", room); myServerManager.SendGameOver(room); room.Fiber.Run<FiberYieldResponse>(); // profiler.takeSnapshot('game over ' + room.roomID); return; } askQuestion(answ, room); //ServerLogger.Log(gameData.toString()); var dt = new DateTime(); var then = dt.GetMilliseconds(); //ServerLogger.Log(then - now + " Milliseconds"); // ServerLogger.Log(gameData.TotalQuestionsAnswered / ((dt.GetTime() - startTime.GetTime()) / 1000d) + " Answers per seconds", LogLevel.DebugInformation); }
private void processGameResponse(GameRoom room, FiberYieldResponse response) { if (response == null) { ServerLogger.LogDebug("game request over", room); myServerManager.SendGameOver(room); room.Fiber.Run<FiberYieldResponse>(); rooms.Remove(room); room.Unwind(room.Players); return; } switch (response.Type) { case FiberYieldResponseType.AskQuestion: askPlayerQuestion(room, response); break; case FiberYieldResponseType.PlayersLeft: didPlayersLeave(room, response); break; case FiberYieldResponseType.GameOver: gameOver(room); break; case FiberYieldResponseType.Log: gameNoop(room); break; case FiberYieldResponseType.Break: gameNoop(room); break; } }