private void OnEnable() { saveDataAccessor = new SaveDataAccessor(); currentlySelectedModeIndex = (int)saveDataAccessor.GetDataValue<Theme.ColorMode>(SaveKeys.SELECTED_COLOR_MODE); HighlightButton(currentlySelectedModeIndex); }
public static void ClearChallenges() { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); saveDataAccessor.SetData(SaveKeys.COMPLETED_CHALLENGES_SAVE_KEY, null); DataTracker.dataTracker.SaveData(); }
private void SubscribeChallenges(int pack, int level) { packIndex = pack; levelIndex = level; currentChallengeLog = GetCurrentChallengeLog(packIndex, levelIndex); 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(); currentChallenges = new List <IChallenge>(); for (int i = 0; i < challengeCount; i++) { int challengeKey = Challenge.GetChallengeKey(packIndex, levelIndex, i); if (challengeDictionary == null || !challengeDictionary.ContainsKey(challengeKey) || challengeDictionary[challengeKey] == false) { IChallenge challenge = currentChallengeLog.GetChallengeData(i) as IChallenge; challenge.SetUpChallenge(); currentChallenges.Add(challenge); } } } }
public override void DisableInstructions() { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); saveDataAccessor.SetData(SaveKeys.DEFEAT_TUTORIAL_COMPLETE, true); DataTracker.dataTracker.SaveData(); base.DisableInstructions(); }
public void SetTheme() { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); saveDataAccessor.SetData(SaveKeys.SELECTED_THEME_KEY, themeToPreview.name); DataTracker.dataTracker.SaveData(); ThemeManager.SetTheme(themeToPreview); ThemeManager.InvokeUpdateMethod(); }
public void NavigateToTransformerInstructions() { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); bool tutorialCompleted = saveDataAccessor.GetDataValue <bool>(SaveKeys.TRANSFORMER_TUTORIAL_COMPLETE); if (!tutorialCompleted) { menuSwipeController.TransitionToPanel(7); saveDataAccessor.SetData(SaveKeys.TRANSFORMER_TUTORIAL_COMPLETE, true); DataTracker.dataTracker.SaveData(); } }
public void CheckGameState() { if (!CheckForVictory(gameBoardParent, solutionBoardParent)) { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); if (!saveDataAccessor.GetDataValue <bool>(SaveKeys.DEFEAT_TUTORIAL_COMPLETE)) { CheckForDefeat(gameBoardParent, solutionBoardParent); } } onUpdateBoard?.Invoke(); }
private void Awake() { menuSwipeController.SetCurrentPanel(lastSelectPackIndex); SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); Dictionary <int, int> completedLevels = saveDataAccessor.GetDataValue <Dictionary <int, int> >(SaveKeys.COMPLETED_LEVELS_SAVE_KEY); int highestDisplayedPackUnlock = saveDataAccessor.GetDataValue <int>(SaveKeys.HIGHEST_DISPLAYED_PACK_UNLOCK); int highestCompletedPackLevel; int lastUnlock = 0; PackButton currentPackButton; Queue <Action> buttonActions = new Queue <Action>(); for (int i = 0; i < packButtonParent.childCount; i++) { if (completedLevels == null) { highestCompletedPackLevel = 0; } else if (completedLevels.TryGetValue(i + 0, out int highestLeve)) { highestCompletedPackLevel = highestLeve; } else { highestCompletedPackLevel = 0; } currentPackButton = packButtonParent.GetChild(i).GetComponent <PackButton>(); Action buttonAction = currentPackButton.CheckForUnlock(highestCompletedPackLevel, highestDisplayedPackUnlock, out bool displayUnlock); if (buttonAction != null && displayUnlock) { buttonActions.Enqueue(menuSwipeController.BeginRightTransition); buttonActions.Enqueue(buttonAction); lastUnlock = i; } } if (lastUnlock > highestDisplayedPackUnlock) { saveDataAccessor.SetData(SaveKeys.HIGHEST_DISPLAYED_PACK_UNLOCK, lastUnlock); DataTracker.dataTracker.SaveData(); } StartCoroutine(SetButtonStates(buttonActions)); }
public void BeginPlay() { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); if (!saveDataAccessor.GetDataValue <bool>(SaveKeys.INITIAL_TUTORIAL_COMPLETE)) { NavigateToTutorial(); } else { targetSceneName = playMenu; } onExitFinish += SceneManager.LoadScene; sceneAnimator.SetTrigger("Exit"); }
public void SetText(int packIndex, int levelIndex) { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); Dictionary <int, float> bestLevelTimes = saveDataAccessor.GetDataValue <Dictionary <int, float> >(SaveKeys.BEST_LEVEL_TIMES); int levelKey = GameManager.GetLevelKey(packIndex + 1, levelIndex + 1); if (bestLevelTimes != null && bestLevelTimes.ContainsKey(levelKey)) { string timerText = GameTime.GetGameTimeFormat(bestLevelTimes[levelKey]); bestTimeText.text = timerText; } else { bestTimeText.text = "--:--.--"; } }
public static void SetAllChallengesToComplete() { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); Dictionary <int, bool> completedChallenges = saveDataAccessor.GetDataValue <Dictionary <int, bool> >(SaveKeys.COMPLETED_CHALLENGES_SAVE_KEY); if (completedChallenges == null) { completedChallenges = new Dictionary <int, bool>(); } string baseChallengeLogs = "Assets/Resources/ChallengeLogs/"; ChallengeLog[] packLogs; string[] levelPackDirectories = Directory.GetDirectories(baseChallengeLogs); for (int i = 0; i < levelPackDirectories.Length; i++) { packLogs = Resources.LoadAll <ChallengeLog>($"ChallengeLogs/Level_Pack_{i + 1}/"); if (packLogs != null) { ChallengeLog currentLog; for (int j = 0; j < packLogs.Length; j++) { currentLog = packLogs[j]; Debug.Log($"{currentLog.name} has {currentLog.GetChallengeCount()} challenges"); for (int h = 0; h < currentLog.GetChallengeCount(); h++) { int levelIndex = Int32.Parse(currentLog.name.Split('_')[1]); Debug.Log($"Setting Challenge {h + 1} for Level_{i + 1}-{levelIndex}"); int key = Challenge.GetChallengeKey(i + 1, levelIndex, h); if (completedChallenges.TryGetValue(key, out bool val)) { completedChallenges[key] = true; } else { completedChallenges.Add(key, true); } } } } } saveDataAccessor.SetData(SaveKeys.COMPLETED_CHALLENGES_SAVE_KEY, completedChallenges); DataTracker.dataTracker.SaveData(); }
public void SetCompletionPercentage() { int packIndex = transform.GetSiblingIndex(); ChallengeLog[] packLogs = Resources.LoadAll <ChallengeLog>($"ChallengeLogs/Level_Pack_{packIndex + 1}/"); SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); Dictionary <int, bool> completedChallenges = saveDataAccessor.GetDataValue <Dictionary <int, bool> >(SaveKeys.COMPLETED_CHALLENGES_SAVE_KEY); float amountOfChallenges = 0; float completedChallengeCount = 0; if (packLogs != null && packLogs.Length > 0 && completedChallenges != null && completedChallenges.Count > 0) { ChallengeLog currentLog; int currentChallengeCount; for (int index = 0; index < packLogs.Length; index++) { currentLog = packLogs[index]; int levelIndex = Int32.Parse(currentLog.name.Split('_')[1]); currentChallengeCount = currentLog.GetChallengeCount(); amountOfChallenges += currentChallengeCount; for (int challengeIndex = 0; challengeIndex < currentChallengeCount; challengeIndex++) { int challengeKey = Challenge.GetChallengeKey(packIndex + 1, levelIndex, challengeIndex); if (completedChallenges.TryGetValue(challengeKey, out bool result)) { if (result == true) { completedChallengeCount++; } } } } completionText.text = $"{((completedChallengeCount / amountOfChallenges) * 100).ToString("F0")}%"; } else { completionText.text = "--%"; } }
public static void SetHighestPackLevel(int packIndex, int levelIndex) { if (packIndex < 1 || levelIndex < 1) { Debug.LogError("Indexes Out Of Range, Try again (Indexes start from 1)"); return; } SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); #region Save Completed Level Index Dictionary <int, int> completedLevels = saveDataAccessor.GetDataValue <Dictionary <int, int> >(SaveKeys.COMPLETED_LEVELS_SAVE_KEY); if (completedLevels == null) { completedLevels = new Dictionary <int, int>(); completedLevels.Add(packIndex, levelIndex); saveDataAccessor.SetData(SaveKeys.COMPLETED_LEVELS_SAVE_KEY, completedLevels); DataTracker.dataTracker.SaveData(); } else if (!completedLevels.ContainsKey(packIndex)) { completedLevels.Add(packIndex, levelIndex); saveDataAccessor.SetData(SaveKeys.COMPLETED_LEVELS_SAVE_KEY, completedLevels); DataTracker.dataTracker.SaveData(); } else { int highestCompletedLevel = completedLevels[packIndex]; if (levelIndex > highestCompletedLevel) { completedLevels[packIndex] = levelIndex; saveDataAccessor.SetData(SaveKeys.COMPLETED_LEVELS_SAVE_KEY, completedLevels); DataTracker.dataTracker.SaveData(); } } #endregion }
public void UpdateChallengeEntry(Challenge challengeData, int packIndex, int levelIndex) { challengeText.text = $"- {challengeData.challengeDescription}"; SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); Dictionary <int, bool> challengeDictionary = saveDataAccessor.GetDataValue <Dictionary <int, bool> >($"CompletedChallenges"); if (challengeDictionary != null) { if (challengeDictionary.TryGetValue(Challenge.GetChallengeKey(packIndex, levelIndex, challengeIndex), out bool challengeCompleted)) { if (challengeCompleted) { starThemeElement.SetElementToHighlighted(); return; } } } starThemeElement.SetElementToNormal(); return; }
private void OnEnable() { saveDataAccessor = new SaveDataAccessor(); availableThemes = Resources.LoadAll <Theme>("Themes"); string currentlySelectedThemeName = ThemeManager.GetCurrentTheme().name; int counter = 0; foreach (Theme theme in availableThemes) { if (theme.name == currentlySelectedThemeName) { currentlySelectedTheme = theme; currentlySelectedThemeIndex = counter; selectedThemeTitleText.text = theme.name; } else { counter++; } } }
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; } } } } } }
public static void UnlockAllLevels() { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); #region Save Completed Level Index Dictionary <int, int> completedLevels = saveDataAccessor.GetDataValue <Dictionary <int, int> >(SaveKeys.COMPLETED_LEVELS_SAVE_KEY); int highestLevelIndex = 99; for (int packIndex = 1; packIndex <= 3; packIndex++) { if (completedLevels == null) { completedLevels = new Dictionary <int, int>(); completedLevels.Add(packIndex, highestLevelIndex); saveDataAccessor.SetData(SaveKeys.COMPLETED_LEVELS_SAVE_KEY, completedLevels); DataTracker.dataTracker.SaveData(); } else if (!completedLevels.ContainsKey(packIndex)) { completedLevels.Add(packIndex, highestLevelIndex); saveDataAccessor.SetData(SaveKeys.COMPLETED_LEVELS_SAVE_KEY, completedLevels); DataTracker.dataTracker.SaveData(); } else { int highestCompletedLevel = completedLevels[packIndex]; if (highestLevelIndex > highestCompletedLevel) { completedLevels[packIndex] = highestLevelIndex; saveDataAccessor.SetData(SaveKeys.COMPLETED_LEVELS_SAVE_KEY, completedLevels); DataTracker.dataTracker.SaveData(); } } } #endregion }
public bool CheckForCompletedUnlocks(int packIndex, int levelIndex) { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); Dictionary <int, bool> unlockDictionary = saveDataAccessor.GetDataValue <Dictionary <int, bool> >(SaveKeys.UNLOCK_SAVE_KEY); notificationsToCreate = new Queue <Unlock>(); int counter = 0; for (int i = 0; i < unlockSettings.unlocks.Count; i++) { IUnlock unlockInterface = unlockSettings.unlocks[i] as IUnlock; if (unlockInterface.CheckForCompletion(packIndex, levelIndex)) { if (unlockDictionary == null) { unlockDictionary = new Dictionary <int, bool>(); unlockDictionary.Add(i, true); saveDataAccessor.SetData(SaveKeys.UNLOCK_SAVE_KEY, unlockDictionary); DataTracker.dataTracker.SaveData(); AddNotificationToQueue(unlockSettings.unlocks[i]); counter++; } else if (!unlockDictionary.ContainsKey(i)) { unlockDictionary[i] = true; saveDataAccessor.SetData(SaveKeys.UNLOCK_SAVE_KEY, unlockDictionary); DataTracker.dataTracker.SaveData(); AddNotificationToQueue(unlockSettings.unlocks[i]); counter++; } } } return(counter > 0); }
private void OnGUI() { if (DataTracker.gameData == null) { EditorGUILayout.LabelField("No Game Data is Available", EditorStyles.boldLabel, GUILayout.Width(300)); return; } SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); Dictionary <int, bool> completedChallenges = saveDataAccessor.GetDataValue <Dictionary <int, bool> >(SaveKeys.COMPLETED_CHALLENGES_SAVE_KEY); if (completedChallenges == null) { return; } scrollView = EditorGUILayout.BeginScrollView(scrollView); foreach (KeyValuePair <int, bool> entry in completedChallenges) { EditorGUILayout.LabelField($"{entry.Key}: {entry.Value}"); } EditorGUILayout.EndScrollView(); }
public void UnlockLevelButton() { locked = false; GetComponent <Button>().interactable = true; SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); ChallengeLog challengeLog = ChallengeManager.GetCurrentChallengeLog(manager.levelPackIndex + 1, buttonIndex + 1); Dictionary <int, bool> completedChallenges = saveDataAccessor.GetDataValue <Dictionary <int, bool> >(SaveKeys.COMPLETED_CHALLENGES_SAVE_KEY); if (challengeLog != null && completedChallenges != null) { for (int i = 0; i < challengeLog.GetChallengeCount(); i++) { int challengeKey = Challenge.GetChallengeKey(manager.levelPackIndex + 1, buttonIndex + 1, i); if (completedChallenges.TryGetValue(challengeKey, out bool challengeResult)) { if (!challengeResult) { completionIcon.SetActive(false); return; } } else { completionIcon.SetActive(false); return; } } completionIcon.SetActive(true); } else { completionIcon.SetActive(false); } }
private void Awake() { SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); Dictionary <int, int> displayedLevelUnlocks = saveDataAccessor.GetDataValue <Dictionary <int, int> >(SaveKeys.HIGHEST_DISPLAYED_LEVEL_UNLOCK); Dictionary <int, int> completedLevels = saveDataAccessor.GetDataValue <Dictionary <int, int> >(SaveKeys.COMPLETED_LEVELS_SAVE_KEY); int highestDisplayedUnlock; if (displayedLevelUnlocks != null) { highestDisplayedUnlock = displayedLevelUnlocks.TryGetValue(levelPackIndex + 1, out int hdu) ? hdu : 0; } else { highestDisplayedUnlock = 0; } int highestLevelUnlocked; if (completedLevels != null) { highestLevelUnlocked = completedLevels.TryGetValue(levelPackIndex + 1, out int hlu) ? hlu : 0; } else { highestLevelUnlocked = 0; } Queue <Action> buttonActions = new Queue <Action>(); LevelButton currentLevelButton; int currentPackTracker = 0, lastPanelToUnlockALevel = 0; foreach (Transform panelParent in levelSelectParentList) { for (int i = 0; i < panelParent.childCount; i++) { currentLevelButton = panelParent.GetChild(i).GetComponent <LevelButton>(); Action newAction = currentLevelButton.SetLevelButtonState(highestLevelUnlocked, highestDisplayedUnlock, out bool displayUnlock); if (newAction != null) { buttonActions.Enqueue(newAction); } if (currentPackTracker > lastPanelToUnlockALevel && displayUnlock) { lastPanelToUnlockALevel = currentPackTracker; buttonActions.Enqueue(levelSelectPanelController.BeginRightTransition); buttonActions.Enqueue(levelSelectPanelController.DisableInput); } } buttonActions.Enqueue(levelSelectPanelController.EnableInput); currentPackTracker++; } #region Save Displayed Level Unlock Value if (displayedLevelUnlocks == null) { displayedLevelUnlocks = new Dictionary <int, int>(); displayedLevelUnlocks.Add(levelPackIndex + 1, highestLevelUnlocked); saveDataAccessor.SetData(SaveKeys.HIGHEST_DISPLAYED_LEVEL_UNLOCK, displayedLevelUnlocks); DataTracker.dataTracker.SaveData(); } else if (!displayedLevelUnlocks.ContainsKey(levelPackIndex + 1)) { displayedLevelUnlocks.Add(levelPackIndex + 1, highestLevelUnlocked); saveDataAccessor.SetData(SaveKeys.HIGHEST_DISPLAYED_LEVEL_UNLOCK, displayedLevelUnlocks); DataTracker.dataTracker.SaveData(); } else if (highestLevelUnlocked > highestDisplayedUnlock) { displayedLevelUnlocks[levelPackIndex + 1] = highestLevelUnlocked; saveDataAccessor.SetData(SaveKeys.HIGHEST_DISPLAYED_LEVEL_UNLOCK, displayedLevelUnlocks); DataTracker.dataTracker.SaveData(); } #endregion StartCoroutine(SetButtonStates(buttonActions)); }
public void CompleteLevel() { onVictory?.Invoke(); DisplayVictoryScreen(); SaveDataAccessor saveDataAccessor = new SaveDataAccessor(); #region Save Completed Level Index Dictionary <int, int> completedLevels = saveDataAccessor.GetDataValue <Dictionary <int, int> >(SaveKeys.COMPLETED_LEVELS_SAVE_KEY); if (completedLevels == null) { completedLevels = new Dictionary <int, int>(); completedLevels.Add(currentPackIndex, currentLevelIndex); saveDataAccessor.SetData(SaveKeys.COMPLETED_LEVELS_SAVE_KEY, completedLevels); DataTracker.dataTracker.SaveData(); } else if (!completedLevels.ContainsKey(currentPackIndex)) { completedLevels.Add(currentPackIndex, currentLevelIndex); saveDataAccessor.SetData(SaveKeys.COMPLETED_LEVELS_SAVE_KEY, completedLevels); DataTracker.dataTracker.SaveData(); } else { int highestCompletedLevel = completedLevels[currentPackIndex]; if (currentLevelIndex > highestCompletedLevel) { completedLevels[currentPackIndex] = currentLevelIndex; saveDataAccessor.SetData(SaveKeys.COMPLETED_LEVELS_SAVE_KEY, completedLevels); DataTracker.dataTracker.SaveData(); } } #endregion #region Save Level Time Dictionary <int, float> bestLevelTimes = saveDataAccessor.GetDataValue <Dictionary <int, float> >(SaveKeys.BEST_LEVEL_TIMES); int levelKey = GetLevelKey(currentPackIndex, currentLevelIndex); if (bestLevelTimes == null) { bestLevelTimes = new Dictionary <int, float>(); bestLevelTimes.Add(levelKey, levelTimer); saveDataAccessor.SetData(SaveKeys.BEST_LEVEL_TIMES, bestLevelTimes); DataTracker.dataTracker.SaveData(); } else if (!bestLevelTimes.ContainsKey(levelKey)) { bestLevelTimes.Add(levelKey, levelTimer); saveDataAccessor.SetData(SaveKeys.BEST_LEVEL_TIMES, bestLevelTimes); DataTracker.dataTracker.SaveData(); } else if (bestLevelTimes[levelKey] > levelTimer) { bestLevelTimes[levelKey] = levelTimer; saveDataAccessor.SetData(SaveKeys.BEST_LEVEL_TIMES, bestLevelTimes); DataTracker.dataTracker.SaveData(); } #endregion }