private static void SaveSessionScore(string username, float score, UserStat.GameCategory category) { _connection .Query <UserScoreHistory>( "INSERT INTO UserScoreHistory " + $"VALUES(NULL, '{username}', {score}, '{DateTime.Now.ToString(CultureInfo.InvariantCulture)}', {(int)category})"); Debug.Log("<color=green>Score logged</color>"); }
public void ShowGraph(UserStat.GameCategory category, float score, float maxScore) { GameObject _scoreDataHolderGameObject = new GameObject("ScoreDataHolder_Temp"); _scoreDataHolderGameObject.AddComponent <ScoreDataHolder>(); ScoreDataHolder _dataHolder = _scoreDataHolderGameObject.GetComponent <ScoreDataHolder>(); _dataHolder.GameObjectHolder = _scoreDataHolderGameObject; _dataHolder.MaxScore = (int)maxScore; _dataHolder.MinScore = (int)score; _dataHolder.category = category; SceneManager.LoadScene("Remark"); }
private void ShowGraph(UserStat.GameCategory category, int score, int maxScore) { transform.gameObject.SetActive(true); _scoreText.SetText($"Score: {score}/{maxScore}"); DatabaseManager databaseManager = new DatabaseManager(); string loggedUser = databaseManager.GetUsers().FirstOrDefault(i => i.IsLogged)?.Username; _values.Clear(); foreach (var userScoreHistory in databaseManager.GetScoreHistory(loggedUser).Where(i => i.Category == (int)category).ToList()) { _values.Add(userScoreHistory.SessionScore); } PopulateGraph(_values); }
public void UpdateUserStat(string username, UserStat updatedUserStat, UserStat.GameCategory category) { UserStat existingUser = _connection.Query <UserStat>($"SELECT * FROM UserStat WHERE Username='******' AND Category={(int)category}").FirstOrDefault(); if (existingUser == null) { Debug.Log("<color=red>User non-existent</color>"); return; } existingUser = updatedUserStat; _connection.RunInTransaction(() => { _connection.Update(existingUser); }); Debug.Log($"<color=green>User score updated at category:{(int)category}</color>"); // Record the score per game taken. Accumulated to compute for overall // session score which will serve as score history SaveSessionScore(username, existingUser.Score, category); }
private SingleStat GetSingleStat(UserStat.GameCategory statType) { switch (statType) { default: case UserStat.GameCategory.Flexibility: return(flexibility); case UserStat.GameCategory.Language: return(language); case UserStat.GameCategory.Memory: return(memory); case UserStat.GameCategory.ProblemSolving: return(problemSolving); case UserStat.GameCategory.Speed: return(speed); } }
public void SaveScore(UserStat.GameCategory category) { UserPrefs user = GetUsers().FirstOrDefault(u => u.IsLogged); if (user == null) { return; } UserStat stat = GetUserStat(user.Username, category); if (stat == null) { return; } float result = Normalize(Score, _minValue, ScoreLimit, 0f, 1f); result *= 100; stat.Score = float.Parse(result.ToString("0.0")); Debug.Log($"<color=green>Normalized SCORE:{stat.Score}</color>"); UpdateUserStat(user.Username, stat, category); }
public IEnumerable <UserScoreHistory> GetScoreHistory(string username, UserStat.GameCategory category) { return(_connection.Query <UserScoreHistory>($"SELECT * FROM UserScoreHistory WHERE Username='******' AND Category={(int)category} ORDER BY Time DESC")); }
public UserStat GetUserStat(string username, UserStat.GameCategory category) { return(_connection.Query <UserStat>($"SELECT * FROM UserStat WHERE Username='******' AND Category={(int)category}").FirstOrDefault()); }
public float GetStatAmountNormalized(UserStat.GameCategory statType) { return(GetSingleStat(statType).GetStatAmountNormalized()); }
public int GetStatAmount(UserStat.GameCategory statType) { return(GetSingleStat(statType).GetStatAmount()); }
public void DecreaseStatAmount(UserStat.GameCategory statType) { SetStatAmount(statType, GetStatAmount(statType) - 1); }
public void SetStatAmount(UserStat.GameCategory statType, int statAmount) { GetSingleStat(statType).SetStatAmount(statAmount); OnStatsChanged?.Invoke(this, EventArgs.Empty); }