From 7ced53d1040fc6cbe0c96d471825c5ac3633e358 Mon Sep 17 00:00:00 2001 From: kimura Date: Wed, 20 Apr 2022 18:23:09 +0900 Subject: [PATCH] =?UTF-8?q?retryCondition=E3=81=AE=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=88=A4=E5=AE=9A=E3=82=92=E3=82=AD=E3=83=A3=E3=83=B3=E3=82=BB?= =?UTF-8?q?=E3=83=AB=E6=99=82=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/Main/Scripts/KitchenManager.cs | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index df766db2..90a5fb4d 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -298,7 +298,7 @@ public class KitchenManager : MonoBehaviour if (!result.newOrder) { - if (gameData.OrderIdInProgress != gameData.CancelOrderId) + if (!cancelled) { SetPhoneTap(); } @@ -368,39 +368,34 @@ public class KitchenManager : MonoBehaviour private (bool newOrder, int nextOrderId, int nextOrderLevel) CheckBulkOrder() { var gameData = GameDataManager.GameData; - var nextOrderLevel = 0; + var nextOrderLevel = gameData.AchievedOrderLevel + 1; var nextOrderId = gameData.OrderIdInProgress; var bulkOrderList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.BulkOrderDataSheet); - if (!(bulkOrderList.FirstOrDefault(data => data.shopLevel >= gameData.AchievedOrderLevel + 1) is BulkOrderData bulkOrderData)) - { - return (false, nextOrderId, nextOrderLevel); - } - nextOrderLevel = bulkOrderData.shopLevel; + // 店舗レベルより大量注文レベルが大きい場合オーダーなし if (gameData.ViewedShopLevel < nextOrderLevel) { return (false, nextOrderId, nextOrderLevel); } - + // 大量注文レベルが上限の場合オーダーなし + if (bulkOrderList.FirstOrDefault(data => data.shopLevel >= gameData.AchievedOrderLevel + 1) is null) + { + return (false, nextOrderId, nextOrderLevel); + } var achieved = gameData.DeliveredOrder.Contains(gameData.OrderIdInProgress); + var canceled = gameData.OrderIdInProgress == gameData.CancelOrderId; var nextOrderList = bulkOrderList.Where(data => data.shopLevel == nextOrderLevel).ToList(); if (!nextOrderList.Exists(data => data.id == gameData.OrderIdInProgress)) { // まだ次のオーダーが設定されてない場合nextOrderListの一番若いIDを設定 nextOrderId = nextOrderList.First().id; } - else if (achieved || gameData.OrderIdInProgress == gameData.CancelOrderId && gameData.CancelOrderId > 0) + else if (achieved || canceled) { // 達成済みか、キャンセルされた場合次のIDを設定 // 未達成のオーダー var orderList = nextOrderList.Where(data => !gameData.DeliveredOrder.Contains(data.id)).ToList(); - - if (orderList.Count > 0) - { - var nextIndex = orderList.FindIndex(data => data.id > gameData.OrderIdInProgress); - nextOrderId = orderList[Mathf.Max(0, nextIndex)].id; - } - else + if (orderList.Count <= 0) { #if UNITY_EDITOR // オーダーリストがすべて達成済みの場合エラー @@ -409,8 +404,14 @@ public class KitchenManager : MonoBehaviour $"delivered:{gameData.DeliveredOrder.Aggregate(string.Empty, (s, data) => $"{s}, {data}")}\n" + $"orderList:{nextOrderList.Aggregate(string.Empty, (s, data) => $"{s}, {data.id}")}"); #endif + return (false, nextOrderId, nextOrderLevel); } + + var nextIndex = orderList.FindIndex(data => data.id > gameData.OrderIdInProgress); + nextOrderId = orderList[Mathf.Max(0, nextIndex)].id; } + + if (gameData.OrderIdInProgress == nextOrderId) { @@ -418,9 +419,11 @@ public class KitchenManager : MonoBehaviour } var orderData = nextOrderList.First(data => data.id == nextOrderId); - var isFirst = !nextOrderList.Exists(data => data.id == gameData.CancelOrderId); - var condition = isFirst ? orderData.firstOrderCondition : orderData.retryCondition; - + // キャンセル時retryConditionを使う + var condition = canceled ? orderData.retryCondition : orderData.firstOrderCondition; +#if UNITY_EDITOR + Debug.Log($"nextOrderId: {nextOrderId} use {(canceled ? "retryCondition" : "firstOrderCondition")} ({gameData.OrderConditionCount}/{condition})"); +#endif // 条件チェック return (condition <= gameData.OrderConditionCount, nextOrderId, nextOrderLevel); }