空のタンク入れ替え対応
This commit is contained in:
parent
5749c53260
commit
81b2e56b2f
|
|
@ -1,7 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using MyGame.Scripts;
|
||||
using UniRx;
|
||||
using UnityEngine;
|
||||
|
|
@ -188,10 +187,10 @@ public class ProductManagement : MonoBehaviour
|
|||
}).AddTo(this);
|
||||
|
||||
// タンククリック検知
|
||||
Observable.Merge(tankList.Select(tankView => tankView.TankClickObservable.Select(_ => tankView)))
|
||||
var tankClickStream = tankList.Select(tankView => tankView.TankClickObservable.Select(_ => tankView)).Merge();
|
||||
tankClickStream
|
||||
.Where(tankView => tankView.State.Value != TankState.Lock)
|
||||
.Where(tankView => tankView.State.Value != TankState.Unavailable)
|
||||
.Where(tankView => gameData.StorageTanks[tankView.TankNumber - 1].Stock > 0)
|
||||
.Subscribe(tankView =>
|
||||
{
|
||||
switch (state.Value)
|
||||
|
|
@ -204,9 +203,13 @@ public class ProductManagement : MonoBehaviour
|
|||
case ManagementState.Replacing:
|
||||
break;
|
||||
case ManagementState.Tasting:
|
||||
var tankData = gameData.StorageTanks[tankView.TankNumber - 1];
|
||||
if (tankData.IsEmpty)
|
||||
{
|
||||
break;
|
||||
}
|
||||
ClearSelectedTank(tankList);
|
||||
tankView.SetState(TankState.Selected);
|
||||
var tankData = gameData.StorageTanks[tankView.TankNumber - 1];
|
||||
selectedTank.Value = (tankView.TankNumber, productList.FirstOrDefault(data => data.id == tankData.FlavorId));
|
||||
break;
|
||||
default:
|
||||
|
|
@ -215,10 +218,7 @@ public class ProductManagement : MonoBehaviour
|
|||
}).AddTo(this);
|
||||
|
||||
// 2連続でクリックされたViewがまとめて取得できるストリーム
|
||||
var replacingObservable = Observable.Merge(tankList.Select(x => x.TankClickObservable.Select(_ => x)))
|
||||
.Where(x => x.State.Value != TankState.Lock)
|
||||
.Where(x => x.State.Value != TankState.Unavailable)
|
||||
.Where(tankView => gameData.StorageTanks[tankView.TankNumber - 1].Stock > 0)
|
||||
var replacingObservable = tankClickStream
|
||||
.TakeWhile(_ => state.Value != ManagementState.Tasting)
|
||||
.Pairwise();
|
||||
// タンク入れ替え
|
||||
|
|
|
|||
Loading…
Reference in New Issue