static public void SendAchievementUnlocked(AchievementSettings ach) { AnalyticsEvent.AchievementUnlocked(ach.title, new Dictionary <string, object> { { "time", DateTime.Now } }); }
public static void UnlockToggleFromAchievement(AchievementSettings setting) { if (setting != null) { if (setting.complete) { switch ((int)setting.partAwarded) { case 0: if (setting.indexOfPart < _S._turretToggleList.Length && setting.indexOfPart > 0) { _S._turretToggleList[setting.indexOfPart].interactable = true; } else { Debug.LogError("achievement out of range."); } break; case 1: if (setting.indexOfPart < _S._bodyToggleList.Length && setting.indexOfPart > 0) { _S._bodyToggleList[setting.indexOfPart].interactable = true; } else { Debug.LogError("achievement out of range."); } break; } } else { switch ((int)setting.partAwarded) { case 0: if (setting.indexOfPart < _S._turretToggleList.Length && setting.indexOfPart > 0) { _S._turretToggleList[setting.indexOfPart].interactable = false; } else { Debug.LogError("achievement out of range."); } break; case 1: if (setting.indexOfPart < _S._bodyToggleList.Length && setting.indexOfPart > 0) { _S._bodyToggleList[setting.indexOfPart].interactable = false; } else { Debug.LogError("achievement out of range."); } break; } } } }
public void SetAchievementPanel(AchievementSettings settings) { achivementTitle.text = settings.achievementTitle; achievementText.text = settings.achievementText; medalImage.sprite = settings.medalImage; achievementArt.sprite = settings.achievementArt; }
private void Update() { //queue for achievements. if (_settingsQueue.Count > 0) { if (UIScript.AchievementDone()) { AchievementSettings setting = _settingsQueue.Peek(); UIScript.DisplayAchievementForTime(displayTime, setting.title, setting.description.Replace("#", "" + setting.count)); _settingsQueue.Dequeue(); } } }
//decided I'd try to only run this on an event(aka when the value changed) so after I add the value //I just call it on the script I added it from. plan on making methods later to make it simpler. /// <summary> /// make sure to call this after changing variables /// </summary> public static void AchievementCheck() { if (SaveGameManager.CheckHighScore(SCORE) && !_S._newHighScore) { _S._newHighScore = true; AchievementSettings highScoreSettings = new AchievementSettings(); highScoreSettings.title = _S.highScoreTitle; highScoreSettings.description = _S.highScoreDescription; highScoreSettings.count = SCORE; _S._settingsQueue.Enqueue(highScoreSettings); UIScript.SetGameOverText("HIGH SCORE!"); } foreach (AchievementSettings setting in _S.settings) { switch ((int)setting.achievementType) { case 0: //LuckyShot if (BULLET_WRAP_COUNT >= setting.count && !setting.complete) { setting.complete = true; _S._settingsQueue.Enqueue(setting); CustomAnalytics.SendAchievementUnlocked(setting); } break; case 1: //AsteroidHitCount if (ASTEROIDS_HIT >= setting.count && !setting.complete) { setting.complete = true; _S._settingsQueue.Enqueue(setting); CustomAnalytics.SendAchievementUnlocked(setting); } break; case 2: //BulletsFired if (BULLETS_FIRED >= setting.count && !setting.complete) { setting.complete = true; _S._settingsQueue.Enqueue(setting); CustomAnalytics.SendAchievementUnlocked(setting); } break; case 3: //Points if (SCORE >= setting.count && !setting.complete) { setting.complete = true; _S._settingsQueue.Enqueue(setting); CustomAnalytics.SendAchievementUnlocked(setting); } break; case 4: //LevelsComplete if (AsteraX.GetLevel() >= setting.count && !setting.complete) { setting.complete = true; _S._settingsQueue.Enqueue(setting); CustomAnalytics.SendAchievementUnlocked(setting); } break; default: break; } UIScript.UnlockToggleFromAchievement(setting); } SaveGameManager.Save(); }