private Achievment AddAchievment(string filename, AchievmentCode achievmentCode, int maxValue) { var achievmentParametr = TryRead <AchievmentProgress>(filename, ach => new AchievmentProgress(ach)); var achievement = new Achievment(achievmentParametr, "Plunger", maxValue); achievement.OnDataChanged.Subscribe(ach => Write(filename, ach.AchievmentProgress)); //achievement.OnDataChanged.Subscribe(ach => Debug.Log($"{ach.ProgressValue} {achievement.MaxValue}")); achievements.Add(achievmentCode, achievement); return(achievement); }
public Achievment Find(AchievmentCode code) { return(achievements[code]); }
public static IDisposable Subscribe(this AchievmentCode achievmentCode, UnityAction <Achievment> handler) { return(DB.Data.Find(achievmentCode).OnDataChanged.Subscribe(handler)); }
public static UnityAction GetIncreasedHandler(this AchievmentCode achievmentCode, int increaseCount = 1) { var achievement = DB.Data.Find(achievmentCode); return(() => achievement.ProgressValue += increaseCount); }