//Game Analytics // Start = 0, Quit = 1, Finish = 2, Pause = 3, Resume = 4, Restart = 5 private QLGameSourceType MapGameSource(GameSourceType source) { switch (source) { case GameSourceType.Start: return(QLGameSourceType.QLGameSourceTypeStart); case GameSourceType.Finish: return(QLGameSourceType.QLGameSourceTypeFinish); case GameSourceType.Pause: return(QLGameSourceType.QLGameSourceTypePause); case GameSourceType.Quit: return(QLGameSourceType.QLGameSourceTypeQuit); case GameSourceType.Restart: return(QLGameSourceType.QLGameSourceTypeRestart); case GameSourceType.Resume: return(QLGameSourceType.QLGameSourceTypeResume); default: //TODO add asset here? -> SHouldn't reach here return(QLGameSourceType.QLGameSourceTypeQuit); } }
public void SendGameData(GameSourceType gameSource, MainGameData gameData) { LevelID = gameData.Ruleset.Id + "_" + gameData.Ruleset.PuzzleNameKey; //.PuzzleName; if (gameSource == GameSourceType.Start) { GameId = Guid.NewGuid().ToString(); AdjustEvent adjustEvent = new AdjustEvent(Constants.Analytics.AdjustEvents.GamePlayed); Adjust.trackEvent(adjustEvent); } int timeTakenToSolve = 0; int starsEarned = 0; if (gameSource == GameSourceType.Finish) { timeTakenToSolve = gameData.TimeLimit - gameData.SecondsLeft; starsEarned = gameData.StarScore; } if (ShouldSkipSendEvent) { DebugLog($"[ANALYTICS] [Skip] {Constants.Analytics.Events.GameEvent}: {MapGameSource(gameSource).ToString()} " + $"{Constants.Analytics.Parameters.GameType}: {MapGameType(gameData.GameType).ToString()} " + $"{Constants.Analytics.Parameters.GameId}: {GameId} " + $"{Constants.Analytics.Parameters.GameLevel}: {LevelID}" + $"{Constants.Analytics.Parameters.TimeTakenToSolve}: {timeTakenToSolve}" + $"{Constants.Analytics.Parameters.StarsEarned}: {starsEarned}" + $"{Constants.Analytics.Parameters.RemainingFilm}: {gameData.PlayerFilmRemaining}"); return; } QLGameEvent gameEvent = new QLGameEvent(MapGameSource(gameSource), MapGameType(gameData.GameType), GameId, LevelID, timeTakenToSolve, starsEarned, gameData.PlayerFilmRemaining); TrackEvent(gameEvent); }