private IEnumerator SendScore(ScoreQuery localEntryData, Action onSuccess, Action onFailure) { string queryJson = JsonConvert.SerializeObject(localEntryData); byte[] queryBytes = new UTF8Encoding().GetBytes(queryJson); using (UnityWebRequest request = new UnityWebRequest("https://us-central1-pok-game.cloudfunctions.net/setScoreRequest", "POST")) { request.uploadHandler = (UploadHandler) new UploadHandlerRaw(queryBytes); request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.SendWebRequest()); if (request.isNetworkError == true) { Debug.LogError("An error has occured while puting Score data: " + request.error); onFailure?.Invoke(); } else { Debug.Log("Successfully send score"); onSuccess?.Invoke(); } } }
public IEnumerator GetRanking(ScoreQuery localEntryData, Action <ScoreResponse> onSuccess, Action onFailure) { Debug.Log("getRank: " + localEntryData.guid); string queryJson = JsonConvert.SerializeObject(localEntryData); byte[] queryBytes = new UTF8Encoding().GetBytes(queryJson); Debug.Log("getRank: " + queryJson); using (UnityWebRequest request = new UnityWebRequest("https://us-central1-pok-game.cloudfunctions.net/getRankingRequest", "POST")) { request.uploadHandler = (UploadHandler) new UploadHandlerRaw(queryBytes); request.downloadHandler = (DownloadHandler) new DownloadHandlerBuffer(); request.SetRequestHeader("Content-Type", "application/json"); yield return(request.SendWebRequest()); if (request.isNetworkError == true) { Debug.LogError("An error has occured while puting Rank request: " + request.error); onFailure?.Invoke(); } else { Debug.Log($"Successfully retrieved Ranks: {request.downloadHandler.text}"); ScoreResponse data = JsonConvert.DeserializeObject <ScoreResponse>(request.downloadHandler.text); onSuccess?.Invoke(data); } } }
private IEnumerator ShowResults() { ScoreQuery query = new ScoreQuery(); query.username = nameInput.text; query.score = score.CurrentScore; query.invscore = -score.CurrentScore; query.guid = FirebaseManager.Instance.UserGuid; rankingManager.SendScoreAndGetRanking(query); ChangeVisibility(resultsCanvasGroup, true); durationText.text = "-" + score.HighestScoreTime.ToString("F1"); heightText.text = score.HighestScore.ToString("F1"); yield return(new WaitForSeconds(fadeDuration)); ChangeVisibility(durationCanvasGroup, true); yield return(new WaitForSeconds(fadeDuration * 2)); ChangeVisibility(heightCanvasGroup, true); yield return(new WaitForSeconds(fadeDuration * 6)); ChangeVisibility(resultsCanvasGroup, false); ShowRankings(); }
public void GetRanking(ScoreQuery localEntryData) { StartCoroutine(FirebaseManager.Instance.GetRanking(localEntryData, (response) => { this.response = response; }, () => { Debug.LogWarning("Couldn't get leaderboards"); })); }
public IEnumerator SendScoreAndGetRanking(ScoreQuery localEntryData, Action <ScoreResponse> onSuccess, Action onFailure) { bool sendScoreGood = false; yield return(StartCoroutine(SendScore(localEntryData, () => sendScoreGood = true, onFailure))); if (sendScoreGood == true) { yield return(StartCoroutine(GetRanking(localEntryData, onSuccess, onFailure))); } }
public void Setup() { var scoreCalculator = new SimpleScoreCalculator(); _scoreQuery = new ScoreQuery(new Mock <ISignaler>().Object, scoreCalculator); var eventBus = new DomainBus(); eventBus.RegisterHandler(() => new GameHandler(_scoreQuery)); var eventStorage = new InMemoryEventStorage(); var sessionFactory = new SessionFactory(eventStorage); var gameService = new GameService(sessionFactory, eventBus); _commandbus = new DomainBus(); _commandbus.RegisterHandler(() => gameService); }
private void ShowLeaderboardsFromMainMenu() { ScoreQuery query = new ScoreQuery(); query.username = PlayerPrefs.GetString("PlayerName", ""); query.score = PlayerPrefs.GetInt("PlayerScore", 0); query.invscore = -query.score; query.guid = string.IsNullOrWhiteSpace(query.username) == true ? "" : FirebaseManager.Instance.UserGuid; rankingManager.GetRanking(query); ChangeVisibility(startMenuCanvasGroup, false); player.CanMove = false; StopInform(); ShowRankings(); }
/// <summary> /// Load your modules or register your services here! /// </summary> /// <param name="kernel">The kernel.</param> private static void RegisterServices(IKernel kernel) { var scoreCalculator = new EloCalculator(); var scoreQuery = new ScoreQuery(new WebSignaler(), scoreCalculator); var eventBus = new DomainBus(); var teamService = new TeamService(); eventBus.RegisterHandler(() => new GameHandler(scoreQuery)); eventBus.RegisterHandler(() => teamService); kernel.Bind <IScoreQuery>().ToConstant(scoreQuery); kernel.Bind <ITeamService>().ToConstant(teamService); var eventStorage = GetEventStorage(eventBus); var sessionFactory = new SessionFactory(eventStorage); kernel.Bind <IEventStorage>().ToConstant(eventStorage); kernel.Bind <ISessionFactory>().ToConstant(sessionFactory); var gameService = new GameService(sessionFactory, eventBus); var commandbus = new DomainBus(); commandbus.RegisterHandler(() => gameService); kernel.Bind <IBus>().ToConstant(commandbus); }