畑リワードの時間表示処理を移動

This commit is contained in:
kimura 2022-02-14 17:50:25 +09:00
parent 7d248d61e3
commit ff392e8a45
2 changed files with 20 additions and 20 deletions

View File

@ -221,14 +221,10 @@ public class CornField : MonoBehaviour
}).AddTo(this);
// 残り時間表示
IDisposable timerDisposable = null;
resetFertilizerTimer
.Subscribe(x =>
{
timerDisposable?.Dispose();
fertilizerButtonView.SetButtonActive(x <= 0);
fertilizerButtonView.SetTime(x);
timerDisposable = SetFertilizerTimer(x).AddTo(this);
fertilizerButtonView.ResetTimer(x);
}).AddTo(this);
// 残り時間を取得
@ -456,20 +452,6 @@ public class CornField : MonoBehaviour
upgradeButtonBadge.SetActive(upgradePrice <= CoinManager.Instance.OwnCoin);
}
private IDisposable SetFertilizerTimer(int time)
{
return Observable.Timer(TimeSpan.Zero,TimeSpan.FromSeconds(1f))
.Select(x => (int)(time - x))
.TakeWhile(x => x > 0)
.Subscribe(x =>
{
fertilizerButtonView.SetTime(x);
}, () =>
{
fertilizerButtonView.SetButtonActive(true);
});
}
private void SetData()
{
var gameData = GameDataManager.GameData;

View File

@ -11,6 +11,7 @@ namespace MyGame.Scenes.CornField.Scripts
[SerializeField] private Button rewardButton;
[SerializeField] private GameObject DisableObject;
[SerializeField] private Text remainTimeText;
private IDisposable timerDisposable = null;
public IObservable<Unit> RewardButton => rewardButton.OnClickAsObservable().TakeUntilDestroy(this);
public void SetButtonActive(bool active)
@ -19,10 +20,27 @@ namespace MyGame.Scenes.CornField.Scripts
DisableObject.SetActive(!active);
}
public void SetTime(int seconds)
private void SetTime(int seconds)
{
seconds = Mathf.Max(0, seconds);
remainTimeText.text = string.Format(remainTimeFormat, seconds / 60, seconds % 60);
}
public void ResetTimer(int time)
{
timerDisposable?.Dispose();
SetButtonActive(time <= 0);
SetTime(time);
timerDisposable = Observable.Timer(TimeSpan.Zero,TimeSpan.FromSeconds(1f))
.Select(x => (int)(time - x))
.TakeWhile(x => x > 0)
.Subscribe(x =>
{
SetTime(x);
}, () =>
{
SetButtonActive(true);
});
}
}
}