/// <summary> /// Save the current state including free prize times /// </summary> public override void SaveState() { MyDebug.Log("FreePrizeManager: SaveState"); PlayerPrefs.SetString("FreePrize.NextCountdownStart", NextCountdownStart.ToString()); PlayerPrefs.SetString("FreePrize.NextPrize", NextFreePrizeAvailable.ToString()); PlayerPrefs.Save(); }
/// <summary> /// Save the current state including free prize times /// </summary> public override void SaveState() { MyDebug.Log("FreePrizeManager: SaveState"); PreferencesFactory.SetString("FreePrize.NextCountdownStart", NextCountdownStart.ToString(CultureInfo.InvariantCulture)); PreferencesFactory.SetString("FreePrize.NextPrize", NextFreePrizeAvailable.ToString(CultureInfo.InvariantCulture)); PreferencesFactory.Save(); }
void RegisterLocalNotifications() { // NextFreePrizeAvailable is 00:00 every day // between 13:00 & 16:00 int min = 13 * 60 * 60; // h * min * sec int max = 16 * 60 * 60; DateTime fireDate; string text; // register local notification for everyday for first 10 days for (int i = 0; i < _notificationDays.Length; i++) { int day = _notificationDays [i]; text = RandomNotificationText(); fireDate = NextFreePrizeAvailable.AddDays(day).AddSeconds(UnityEngine.Random.Range(min, max)); LocalNotifications.RegisterNotification(Constants.NotificationPrizeAvailableStart + day + 1, fireDate, text); } }
/// <summary> /// Returns the time until the next free prize will be available. /// </summary> /// <returns></returns> public TimeSpan GetTimeToPrize() { return(NextFreePrizeAvailable.Subtract(DateTime.UtcNow)); }
/// <summary> /// Called from singletong Awake() - Load saved prize times, or setup new if first run or not saving across restarts /// </summary> protected override void GameSetup() { base.GameSetup(); if (SaveAcrossRestarts && PreferencesFactory.HasKey("FreePrize.NextCountdownStart")) { NextCountdownStart = DateTime.Parse(PreferencesFactory.GetString("FreePrize.NextCountdownStart", DateTime.UtcNow.ToString(CultureInfo.InvariantCulture))); // start countdown immediately if new game NextFreePrizeAvailable = DateTime.Parse(PreferencesFactory.GetString("FreePrize.NextPrize", NextFreePrizeAvailable.ToString(CultureInfo.InvariantCulture))); SetCurrentPrizeAmount(); } else { StartNewCountdown(); } }
/// <summary> /// Returns the time until the next free prize will be available. /// </summary> /// <returns></returns> public TimeSpan GetTimeToPrize() { return(NextFreePrizeAvailable.Subtract(UnbiasedTime.Instance.Now())); }
/// <summary> /// Called from singletong Awake() - Load saved prize times, or setup new if first run or not saving across restarts /// </summary> protected override void GameSetup() { base.GameSetup(); if (SaveAcrossRestarts && PreferencesFactory.HasKey("FreePrize.NextCountdownStart")) { NextCountdownStart = DateTime.Parse(PreferencesFactory.GetString("FreePrize.NextCountdownStart", UnbiasedTime.Instance.Now().ToString(CultureInfo.InvariantCulture))); // start countdown immediately if new game NextFreePrizeAvailable = DateTime.Parse(PreferencesFactory.GetString("FreePrize.NextPrize", NextFreePrizeAvailable.ToString(CultureInfo.InvariantCulture))); SetCurrentPrizeAmount(); } else { StartNewCountdown(); SetCurrentPrizeAmount(); } GameManager.SafeAddListener <UserNotificationsChangedMessage>(UserNotificationsChangedHandler); GameManager.SafeAddListener <LocalisationChangedMessage>(LocalisationHandler); // #if !UNITY_EDITOR CancelLocalNotifications(); RegisterLocalNotifications(); #endif }
/// <summary> /// Called from singletong Awake() - Load saved prize times, or setup new if first run or not saving across restarts /// </summary> protected override void GameSetup() { base.GameSetup(); if (SaveAcrossRestarts && PlayerPrefs.HasKey("FreePrize.NextCountdownStart")) { NextCountdownStart = DateTime.Parse(PlayerPrefs.GetString("FreePrize.NextCountdownStart", DateTime.UtcNow.ToString())); // start countdown immediately if new game NextFreePrizeAvailable = DateTime.Parse(PlayerPrefs.GetString("FreePrize.NextPrize", NextFreePrizeAvailable.ToString())); } else { StartNewCountdown(); } }