Пример #1
0
    public void CheckChallengesForCompletion()
    {
        if (currentChallengeLog != null)
        {
            SaveDataAccessor       saveDataAccessor    = new SaveDataAccessor();
            Dictionary <int, bool> challengeDictionary = saveDataAccessor.GetDataValue <Dictionary <int, bool> >(SaveKeys.COMPLETED_CHALLENGES_SAVE_KEY);
            int challengeCount = currentChallengeLog.GetChallengeCount();
            for (int i = 0; i < challengeCount; i++)
            {
                IChallenge challenge = currentChallengeLog.GetChallengeData(i) as IChallenge;
                if (challenge != null)
                {
                    int challengeKey = Challenge.GetChallengeKey(packIndex, levelIndex, i);
                    if (challenge.CheckForCompletedChallenge())
                    {
                        if (challengeDictionary == null)
                        {
                            challengeDictionary = new Dictionary <int, bool>();
                            challengeDictionary.Add(challengeKey, true);

                            saveDataAccessor.SetData(SaveKeys.COMPLETED_CHALLENGES_SAVE_KEY, challengeDictionary);
                            DataTracker.dataTracker.SaveData();
                        }
                        else if (!challengeDictionary.ContainsKey(challengeKey))
                        {
                            challengeDictionary.Add(challengeKey, true);

                            saveDataAccessor.SetData(SaveKeys.COMPLETED_CHALLENGES_SAVE_KEY, challengeDictionary);
                            DataTracker.dataTracker.SaveData();
                        }
                        else
                        {
                            challengeDictionary[challengeKey] = true;
                        }
                    }
                }
            }
        }
    }