Esempio n. 1
0
        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>");
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
 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"));
 }
Esempio n. 8
0
 public UserStat GetUserStat(string username, UserStat.GameCategory category)
 {
     return(_connection.Query <UserStat>($"SELECT * FROM UserStat WHERE Username='******' AND Category={(int)category}").FirstOrDefault());
 }
Esempio n. 9
0
 public float GetStatAmountNormalized(UserStat.GameCategory statType)
 {
     return(GetSingleStat(statType).GetStatAmountNormalized());
 }
Esempio n. 10
0
 public int GetStatAmount(UserStat.GameCategory statType)
 {
     return(GetSingleStat(statType).GetStatAmount());
 }
Esempio n. 11
0
 public void DecreaseStatAmount(UserStat.GameCategory statType)
 {
     SetStatAmount(statType, GetStatAmount(statType) - 1);
 }
Esempio n. 12
0
 public void SetStatAmount(UserStat.GameCategory statType, int statAmount)
 {
     GetSingleStat(statType).SetStatAmount(statAmount);
     OnStatsChanged?.Invoke(this, EventArgs.Empty);
 }