diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index feb87ce2..d55bb73d 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -325,9 +325,24 @@ public class KitchenManager : MonoBehaviour else if (achieved || gameData.OrderIdInProgress == gameData.CancelOrderId && gameData.CancelOrderId > 0) { // 達成済みか、キャンセルされた場合次の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 (orderList.Count > 0) + { + var nextIndex = orderList.FindIndex(data => data.id > gameData.OrderIdInProgress); + nextOrderId = orderList[Mathf.Max(0, nextIndex)].id; + } + else + { +#if UNITY_EDITOR + // オーダーリストがすべて達成済みの場合エラー + Debug.LogError($"店舗レベル{nextOrderLevel}に受けられるオーダーがありませんデータを確認してください\n" + + $"maxOrder:{nextOrderList[0].maxOrder}\n" + + $"delivered:{gameData.DeliveredOrder.Aggregate(string.Empty, (s, data) => $"{s}, {data}")}\n" + + $"orderList:{nextOrderList.Aggregate(string.Empty, (s, data) => $"{s}, {data.id}")}"); +#endif + } } if (gameData.OrderIdInProgress == nextOrderId)