コード例 #1
0
        public static int?TryProgress(this TrackableDictionary <int, UserAchievement> dict,
                                      AchievementKey key, int increment)
        {
            UserAchievement ach;

            if (dict.TryGetValue((int)key, out ach))
            {
                if (ach.AchieveTime.HasValue)
                {
                    return(null);
                }

                ach = new UserAchievement {
                    Value = ach.Value + increment
                };
                dict[(int)key] = ach;
            }
            else
            {
                ach = new UserAchievement {
                    Value = increment
                };
                dict.Add((int)key, ach);
            }
            return(ach.Value);
        }
コード例 #2
0
        public static bool TryAchieved(this TrackableDictionary <int, UserAchievement> dict,
                                       AchievementKey key)
        {
            UserAchievement ach;

            if (dict.TryGetValue((int)key, out ach))
            {
                if (ach.AchieveTime.HasValue)
                {
                    return(false);
                }

                ach = new UserAchievement {
                    AchieveTime = DateTime.UtcNow, Value = ach.Value
                };
                dict[(int)key] = ach;
            }
            else
            {
                ach = new UserAchievement {
                    AchieveTime = DateTime.UtcNow
                };
                dict.Add((int)key, ach);
            }
            return(true);
        }
コード例 #3
0
        public static bool IsAchieved(this TrackableDictionary <int, UserAchievement> dict,
                                      AchievementKey key)
        {
            UserAchievement ach;

            return(dict.TryGetValue((int)key, out ach) && ach.AchieveTime.HasValue);
        }
コード例 #4
0
        public static bool TryProgress(this TrackableDictionary <int, UserAchievement> dict,
                                       AchievementKey key, int increment, int goal)
        {
            var value = TryProgress(dict, key, increment);

            if (value == null || value < goal)
            {
                return(false);
            }

            return(TryAchieved(dict, key));
        }
コード例 #5
0
ファイル: UserAchievement.cs プロジェクト: SaladLab/TicTacToe
        public static bool TryAchieved(this TrackableDictionary<int, UserAchievement> dict,
                                       AchievementKey key)
        {
            UserAchievement ach;
            if (dict.TryGetValue((int)key, out ach))
            {
                if (ach.AchieveTime.HasValue)
                    return false;

                ach = new UserAchievement { AchieveTime = DateTime.UtcNow, Value = ach.Value };
                dict[(int)key] = ach;
            }
            else
            {
                ach = new UserAchievement { AchieveTime = DateTime.UtcNow };
                dict.Add((int)key, ach);
            }
            return true;
        }
コード例 #6
0
ファイル: UserAchievement.cs プロジェクト: SaladLab/TicTacToe
        public static int? TryProgress(this TrackableDictionary<int, UserAchievement> dict,
                                       AchievementKey key, int increment)
        {
            UserAchievement ach;
            if (dict.TryGetValue((int)key, out ach))
            {
                if (ach.AchieveTime.HasValue)
                    return null;

                ach = new UserAchievement { Value = ach.Value + increment };
                dict[(int)key] = ach;
            }
            else
            {
                ach = new UserAchievement { Value = increment };
                dict.Add((int)key, ach);
            }
            return ach.Value;
        }
コード例 #7
0
ファイル: UserAchievement.cs プロジェクト: SaladLab/TicTacToe
 public static bool IsAchieved(this TrackableDictionary<int, UserAchievement> dict,
                               AchievementKey key)
 {
     UserAchievement ach;
     return dict.TryGetValue((int)key, out ach) && ach.AchieveTime.HasValue;
 }
コード例 #8
0
ファイル: UserAchievement.cs プロジェクト: SaladLab/TicTacToe
        public static bool TryProgress(this TrackableDictionary<int, UserAchievement> dict,
                                       AchievementKey key, int increment, int goal)
        {
            var value = TryProgress(dict, key, increment);
            if (value == null || value < goal)
                return false;

            return TryAchieved(dict, key);
        }