試食モード時にタンクが選択された状態にする対応
This commit is contained in:
parent
81b2e56b2f
commit
6bcafea15e
|
|
@ -160,20 +160,29 @@ public class ProductManagement : MonoBehaviour
|
|||
case ManagementState.Replacing:
|
||||
break;
|
||||
case ManagementState.Tasting:
|
||||
// 空以外のタンクを選択
|
||||
var index = gameData.StorageTanks.FindIndex(tank => tank.Stock > 0);
|
||||
// ストックのあるタンクのIndex取得。なければ試食モード中止。
|
||||
var index = gameData.StorageTanks.FindIndex(tank => !tank.IsEmpty);
|
||||
if (index == -1)
|
||||
{
|
||||
state.Value = ManagementState.None;
|
||||
return;
|
||||
}
|
||||
// 選択中のタンクにストックがあればIndex更新
|
||||
var selectedIndex = tankList.FindIndex(tankView => tankView.State.Value == TankState.Selected);
|
||||
if (selectedIndex != -1 && !gameData.StorageTanks[selectedIndex].IsEmpty)
|
||||
{
|
||||
index = selectedIndex;
|
||||
}
|
||||
|
||||
ChangeAllTankInteractable(tankList, false);
|
||||
ClearSelectedTank(tankList);
|
||||
tankList[index].SetState(TankState.Selected);
|
||||
|
||||
var tankData = gameData.StorageTanks[index];
|
||||
selectedTank.Value = (tankList[index].TankNumber, productList.FirstOrDefault(data => data.id == tankData.FlavorId));
|
||||
Action tastingAction = () =>
|
||||
{
|
||||
state.Value = ManagementState.None;
|
||||
Tasting(selectedTank.Value.num);
|
||||
tankList[selectedTank.Value.num - 1].SetData(gameData.StorageTanks[selectedTank.Value.num - 1]);
|
||||
SetActiveTastingButton(gameData.StorageTanks.Any(tank => !tank.IsEmpty));
|
||||
|
|
@ -240,8 +249,9 @@ public class ProductManagement : MonoBehaviour
|
|||
state.Value = ManagementState.None;
|
||||
}).AddTo(this);
|
||||
|
||||
// 試食ボタン
|
||||
// 空以外のタンクが1つでもあれば有効
|
||||
SetActiveTastingButton(gameData.StorageTanks.Any(tank => !tank.IsEmpty));
|
||||
// 試食ボタン
|
||||
tastingButton.OnClickAsObservable().Subscribe(_ =>
|
||||
{
|
||||
state.Value = ManagementState.Tasting;
|
||||
|
|
@ -291,7 +301,6 @@ public class ProductManagement : MonoBehaviour
|
|||
|
||||
private void Tasting(int tankNumber)
|
||||
{
|
||||
state.Value = ManagementState.None;
|
||||
// 試食フラグに終了時間を設定
|
||||
var tank = GameDataManager.GameData.StorageTanks[tankNumber - 1];
|
||||
GameDataManager.GameData.AddTastingCustomerCount(tank.Stock);
|
||||
|
|
|
|||
Loading…
Reference in New Issue