クリア後コーン処理を追加

This commit is contained in:
kimura 2021-07-07 15:08:39 +09:00
parent c866583f4a
commit f7c7dacdd6
1 changed files with 18 additions and 14 deletions

View File

@ -26,6 +26,7 @@ public class CornManager : MonoBehaviour
private Corn[] cornArray; private Corn[] cornArray;
private bool isHot; private bool isHot;
private bool isCompleted;
private List<IObservable<CornCondition>> cornConditions = new List<IObservable<CornCondition>>(); private List<IObservable<CornCondition>> cornConditions = new List<IObservable<CornCondition>>();
private readonly ReactiveProperty<float> cornGrowSpeed = new FloatReactiveProperty(0f); private readonly ReactiveProperty<float> cornGrowSpeed = new FloatReactiveProperty(0f);
private readonly CompositeDisposable compositeDisposable = new CompositeDisposable(); private readonly CompositeDisposable compositeDisposable = new CompositeDisposable();
@ -43,6 +44,7 @@ public class CornManager : MonoBehaviour
public void RespawnCorn() public void RespawnCorn()
{ {
isCompleted = false;
compositeDisposable.Clear(); compositeDisposable.Clear();
cornConditions.Clear(); cornConditions.Clear();
for (int i = 0; i < cornArray.Length; i++) for (int i = 0; i < cornArray.Length; i++)
@ -60,7 +62,7 @@ public class CornManager : MonoBehaviour
cornArray[i] = corn; cornArray[i] = corn;
corn.SetCornProperty(baseCornPopTime, cornBurntDuration); corn.SetCornProperty(baseCornPopTime, cornBurntDuration);
cornGrowSpeed.Subscribe(x => cornGrowSpeed.Where(_ => !isCompleted).Subscribe(x =>
{ {
// コーンが弾けた後はRedの場合のみ焦げ進行する // コーンが弾けた後はRedの場合のみ焦げ進行する
if (corn.Condition.Value == CornCondition.Simple && !isHot) if (corn.Condition.Value == CornCondition.Simple && !isHot)
@ -91,6 +93,8 @@ public class CornManager : MonoBehaviour
.FirstOrDefault(x => !x.Contains(CornCondition.Seed)) .FirstOrDefault(x => !x.Contains(CornCondition.Seed))
.Subscribe(x => .Subscribe(x =>
{ {
isCompleted = true;
cornGrowSpeed.Value = 0f;
if (x.Count(c => c == CornCondition.Simple) == x.Count) // すべてのコーンがPopped if (x.Count(c => c == CornCondition.Simple) == x.Count) // すべてのコーンがPopped
{ {
result.SetValueAndForceNotify(CornResult.Perfect); result.SetValueAndForceNotify(CornResult.Perfect);