畑リワードの時間表示処理を移動
This commit is contained in:
parent
7d248d61e3
commit
ff392e8a45
|
|
@ -221,14 +221,10 @@ public class CornField : MonoBehaviour
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
// 残り時間表示
|
// 残り時間表示
|
||||||
IDisposable timerDisposable = null;
|
|
||||||
resetFertilizerTimer
|
resetFertilizerTimer
|
||||||
.Subscribe(x =>
|
.Subscribe(x =>
|
||||||
{
|
{
|
||||||
timerDisposable?.Dispose();
|
fertilizerButtonView.ResetTimer(x);
|
||||||
fertilizerButtonView.SetButtonActive(x <= 0);
|
|
||||||
fertilizerButtonView.SetTime(x);
|
|
||||||
timerDisposable = SetFertilizerTimer(x).AddTo(this);
|
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
// 残り時間を取得
|
// 残り時間を取得
|
||||||
|
|
@ -456,20 +452,6 @@ public class CornField : MonoBehaviour
|
||||||
upgradeButtonBadge.SetActive(upgradePrice <= CoinManager.Instance.OwnCoin);
|
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()
|
private void SetData()
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
var gameData = GameDataManager.GameData;
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ namespace MyGame.Scenes.CornField.Scripts
|
||||||
[SerializeField] private Button rewardButton;
|
[SerializeField] private Button rewardButton;
|
||||||
[SerializeField] private GameObject DisableObject;
|
[SerializeField] private GameObject DisableObject;
|
||||||
[SerializeField] private Text remainTimeText;
|
[SerializeField] private Text remainTimeText;
|
||||||
|
private IDisposable timerDisposable = null;
|
||||||
public IObservable<Unit> RewardButton => rewardButton.OnClickAsObservable().TakeUntilDestroy(this);
|
public IObservable<Unit> RewardButton => rewardButton.OnClickAsObservable().TakeUntilDestroy(this);
|
||||||
|
|
||||||
public void SetButtonActive(bool active)
|
public void SetButtonActive(bool active)
|
||||||
|
|
@ -19,10 +20,27 @@ namespace MyGame.Scenes.CornField.Scripts
|
||||||
DisableObject.SetActive(!active);
|
DisableObject.SetActive(!active);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetTime(int seconds)
|
private void SetTime(int seconds)
|
||||||
{
|
{
|
||||||
seconds = Mathf.Max(0, seconds);
|
seconds = Mathf.Max(0, seconds);
|
||||||
remainTimeText.text = string.Format(remainTimeFormat, seconds / 60, seconds % 60);
|
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);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue