diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index c5fcafd2..3fb97bd5 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -50,7 +50,7 @@ public class KitchenManager : MonoBehaviour var bulkOrderList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.BulkOrderDataSheet); var bulkOrderData = bulkOrderList.First(data => data.id == gameData.OrderIdInProgress); var result = CheckBulkOrder(); - var achieved = gameData.DeliveredOrder.Contains(bulkOrderData.id); + var achieved = gameData.DeliveredOrder.Contains(bulkOrderData.id) || gameData.AchievedOrderLevel == bulkOrderData.shopLevel; var cancelled = gameData.OrderIdInProgress == gameData.CancelOrderId; GameDataManager.SaveGameData(); LocalCacheManager.Save(ArchivedCallbackTag, new Action(() => @@ -128,26 +128,19 @@ public class KitchenManager : MonoBehaviour return (false, nextOrderId, nextOrderLevel); } - var achieved = gameData.DeliveredOrder.Contains(bulkOrderData.id); + var achieved = gameData.DeliveredOrder.Contains(gameData.OrderIdInProgress); 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 (gameData.OrderIdInProgress == gameData.CancelOrderId && gameData.CancelOrderId > 0) + else if (achieved || gameData.OrderIdInProgress == gameData.CancelOrderId && gameData.CancelOrderId > 0) { - // キャンセルされた場合次のIDを設定 - var orderCount = nextOrderList.Count; - var nextIndex = nextOrderList.FindIndex(data => data.id == gameData.OrderIdInProgress) + 1; - nextOrderId = nextOrderList[nextIndex >= orderCount ? 0 : nextIndex].id; - } - else if (achieved && gameData.DeliveredOrder.Count < bulkOrderData.maxOrder) - { - // 現在のオーダーが達成済みかつmaxOrderに達していなければ次のIDを設定 - var orderCount = nextOrderList.Count; - var nextIndex = nextOrderList.FindIndex(data => data.id == gameData.OrderIdInProgress) + 1; - nextOrderId = nextOrderList[nextIndex >= orderCount ? 0 : nextIndex].id; + // 達成済みか、キャンセルされた場合次のIDを設定 + var orderList = nextOrderList.Where(data => !gameData.DeliveredOrder.Contains(data.id)).ToList(); + var nextIndex = orderList.FindIndex(data => data.id > gameData.OrderIdInProgress); + nextOrderId = orderList[Mathf.Max(0, nextIndex)].id; } if (gameData.OrderIdInProgress == nextOrderId)