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