空のタンク入れ替え対応

This commit is contained in:
kimura 2022-04-19 17:47:13 +09:00
parent 5749c53260
commit 81b2e56b2f
1 changed files with 8 additions and 8 deletions

View File

@ -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();
// タンク入れ替え