From 079d45c6b6f2f725cd15688765552646d76ccacf Mon Sep 17 00:00:00 2001 From: kimura Date: Thu, 28 Oct 2021 13:40:18 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AA=E3=83=AF=E3=83=BC=E3=83=89=E3=82=BF?= =?UTF-8?q?=E3=82=A4=E3=83=9E=E3=83=BC=E3=81=AE=E3=83=95=E3=82=A9=E3=82=A2?= =?UTF-8?q?=E3=82=B0=E3=83=A9=E3=82=A6=E3=83=B3=E3=83=89=E5=BE=A9=E5=B8=B0?= =?UTF-8?q?=E6=99=82=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/CornField/Scripts/CornField.cs | 12 ++++++++++-- .../MyGame/Scenes/Main/Scripts/MissionManager.cs | 2 +- .../MyGame/Scenes/marketing/Scripts/MarketManager.cs | 11 ++++++++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs index c0f6dfa8..e7df4d94 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs @@ -5,7 +5,6 @@ using System.Linq; using MyGame.Scenes.CornField.Scripts; using MyGame.Scripts; using UniRx; -using UniRx.Triggers; using UnityEngine; using UnityEngine.UI; using Random = UnityEngine.Random; @@ -175,18 +174,27 @@ public class CornField : MonoBehaviour }).AddTo(this); // 残り時間表示 + IDisposable timerDisposable = null; resetFertilizerTimer .Subscribe(x => { + timerDisposable?.Dispose(); fertilizerButtonView.SetButtonActive(x <= 0); fertilizerButtonView.SetTime(x); - SetFertilizerTimer(x).AddTo(this); + timerDisposable = SetFertilizerTimer(x).AddTo(this); }).AddTo(this); // 残り時間を取得 var remaining = (int)DateTime.FromBinary(gameData.fertilizerTime).Subtract(DateTime.UtcNow).TotalSeconds; resetFertilizerTimer.OnNext(remaining); + Observable.EveryApplicationPause() + .Where(pause => !pause) + .Subscribe(_ => + { + resetFertilizerTimer.OnNext((int) DateTime.FromBinary(gameData.fertilizerTime).Subtract(DateTime.UtcNow).TotalSeconds); + }).AddTo(this); + // 収穫カウンター+吸収演出 cornHarvester.FinishHarvested .Scan((list, newList) => (newList.count, list.colliders.Concat(newList.colliders).ToList())) diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs index aa407c35..580d966e 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs @@ -54,7 +54,7 @@ public class MissionManager : MonoBehaviour timeLimitText.text = String.Format(TimeFormat, 0, 0, 0); } Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f)) - .Select(x => limitTime.Add(TimeSpan.FromSeconds(-x))) + .Select(x => gameData.GetDailyMissionLimitTime()) .TakeWhile(x => x.TotalSeconds > 0) .Subscribe(x => { diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs index ad790176..8aae8266 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs @@ -102,12 +102,14 @@ public class MarketManager : MonoBehaviour }); }).AddTo(this); + IDisposable timerDisposable = null; resetRefreshTimer .Subscribe(time => { + timerDisposable?.Dispose(); rewardButtonView.SetButtonActive(time <= 0); rewardButtonView.SetTime(time); - Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f)) + timerDisposable = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f)) .Select(x => (int)(time - x)) .TakeWhile(x => x > 0) .Subscribe(x => @@ -121,6 +123,13 @@ public class MarketManager : MonoBehaviour var remaining = (int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds; resetRefreshTimer.OnNext(remaining); + + Observable.EveryApplicationPause() + .Where(pause => !pause) + .Subscribe(_ => + { + resetRefreshTimer.OnNext((int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds); + }).AddTo(this); market.IsPromotion.Subscribe(active => {