宣伝待ちタイマー改善

This commit is contained in:
kimura 2021-12-14 13:40:36 +09:00
parent 9a3089a4f6
commit d7e9172635
1 changed files with 9 additions and 6 deletions

View File

@ -24,7 +24,7 @@ public class MarketManager : MonoBehaviour
private Market market; private Market market;
List<ProductData> productDataList; List<ProductData> productDataList;
private readonly Subject<int> resetRefreshTimer = new Subject<int>(); private readonly Subject<Unit> resetRefreshTimer = new Subject<Unit>();
private readonly CompositeDisposable ShopClosedCompositeDisposable = new CompositeDisposable(); private readonly CompositeDisposable ShopClosedCompositeDisposable = new CompositeDisposable();
private void Start() private void Start()
@ -67,7 +67,7 @@ public class MarketManager : MonoBehaviour
gameData.FinishTutorial(); gameData.FinishTutorial();
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
walkerMask.gameObject.SetActive(false); walkerMask.gameObject.SetActive(false);
resetRefreshTimer.OnNext((int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds); resetRefreshTimer.OnNext(Unit.Default);
SetShopView(market.CurrentShopState.Value); SetShopView(market.CurrentShopState.Value);
}).AddTo(controller).AddTo(this); }).AddTo(controller).AddTo(this);
}); });
@ -118,14 +118,17 @@ public class MarketManager : MonoBehaviour
gameData.increaseCustomerTime = DateTime.UtcNow.AddSeconds(10).ToBinary(); gameData.increaseCustomerTime = DateTime.UtcNow.AddSeconds(10).ToBinary();
#endif #endif
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
resetRefreshTimer.OnNext((int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds); resetRefreshTimer.OnNext(Unit.Default);
}); });
}).AddTo(this); }).AddTo(this);
// onNextをトリガーに実行
IDisposable timerDisposable = null; IDisposable timerDisposable = null;
resetRefreshTimer resetRefreshTimer
.Select(_ => (int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds)
.Subscribe(time => .Subscribe(time =>
{ {
// タイマーの更新処理
timerDisposable?.Dispose(); timerDisposable?.Dispose();
rewardButtonView.SetButtonActive(time <= 0); rewardButtonView.SetButtonActive(time <= 0);
rewardButtonView.SetTime(time); rewardButtonView.SetTime(time);
@ -141,14 +144,14 @@ public class MarketManager : MonoBehaviour
}).AddTo(this); }).AddTo(this);
}).AddTo(this); }).AddTo(this);
var remaining = (int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds; resetRefreshTimer.OnNext(Unit.Default);
resetRefreshTimer.OnNext(remaining);
// アプリ復帰時に残り時間更新
Observable.EveryApplicationPause() Observable.EveryApplicationPause()
.Where(pause => !pause) .Where(pause => !pause)
.Subscribe(_ => .Subscribe(_ =>
{ {
resetRefreshTimer.OnNext((int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds); resetRefreshTimer.OnNext(Unit.Default);
}).AddTo(this); }).AddTo(this);
market.IsPromotion.Subscribe(active => market.IsPromotion.Subscribe(active =>