From a6089901d57e95336d904851963aa5de570e6127 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 14 Oct 2022 18:21:00 +0900 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E9=87=8F=E6=B3=A8=E6=96=87=E3=83=AA?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=AF=E3=82=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/Main/Scripts/BulkOrder.cs | 112 +++++------------- 1 file changed, 29 insertions(+), 83 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrder.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrder.cs index e29d6420..af1ef10f 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrder.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrder.cs @@ -30,6 +30,7 @@ public class BulkOrder : MonoBehaviour [SerializeField] private BulkOrderItemView itemView1; [SerializeField] private BulkOrderItemView itemView2; [SerializeField] private BulkOrderItemView itemView3; + private BulkOrderItemView[] itemViews => new[] { itemView1, itemView2, itemView3 }; [SerializeField] private BulkOrderCharacter bulkOrderCharacter; [SerializeField] private Image orderCharacterImage; @@ -60,17 +61,13 @@ public class BulkOrder : MonoBehaviour BulkOrderCancelView.ShowDialog(() => { // 試食数追加 - if (gameData.CompletedProductList.Exists(data => data.Number == 1)) + foreach (var (id, _, count) in bulkOrderData.OrderList) { - gameData.AddTastingCustomerCount(bulkOrderData.count1); - } - else if (gameData.CompletedProductList.Exists(data => data.Number == 2)) - { - gameData.AddTastingCustomerCount(bulkOrderData.count2); - } - else if (gameData.CompletedProductList.Exists(data => data.Number == 3)) - { - gameData.AddTastingCustomerCount(bulkOrderData.count3); + if (!gameData.CompletedProductList.Exists(data => data.Number == id)) + { + continue; + } + gameData.AddTastingCustomerCount(count); } gameData.CancelOrderId = gameData.OrderIdInProgress; // カウントリセット @@ -91,7 +88,7 @@ public class BulkOrder : MonoBehaviour }).AddTo(this); // 納品チェック - var completed = gameData.CompletedProductList.Count == bulkOrderData.OrderList.Count(data => data.productId != 0); + var completed = gameData.CompletedProductList.Count == bulkOrderData.OrderList.Count(tuple => tuple.productId != 0); var delivered = gameData.DeliveredOrder.Contains(bulkOrderData.id); if (completed) { @@ -127,7 +124,7 @@ public class BulkOrder : MonoBehaviour gameData.BulkOrderDeliveredCount++; gameData.DailyBulkOrderDeliveredCount++; #if UNITY_EDITOR - Debug.Log($"current:{gameData.DeliveredOrder.Count} max:{bulkOrderData.maxOrder}"); + Debug.Log($"Delivered:{gameData.DeliveredOrder.Count}/{bulkOrderData.maxOrder}"); #endif // オーダー上限を超えるとそのLevelでの注文終了 if (gameData.DeliveredOrder.Count == bulkOrderData.maxOrder) @@ -145,86 +142,35 @@ public class BulkOrder : MonoBehaviour }).AddTo(this); var productList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ProductDataSheet); - if (productList.FirstOrDefault(data => data.id == bulkOrderData.productId1) is ProductData data1) + var orderList = bulkOrderData.OrderList; + for (var i = 0; i < itemViews.Length; i++) { - var countByVolume = bulkOrderData.count1 / data1.volume; - var productData = new ProductData(data1, countByVolume); - productData.volume *= countByVolume; - itemView1.SetData(productData); - if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == 1) is BulkOrderResultData resultData) + itemViews[i].gameObject.SetActive(true); + var orderTuple = orderList[i]; + if (productList.FirstOrDefault(data => data.id == orderTuple.productId) is not { } productData) { - itemView1.SetCooked(resultData.Rarity); + itemViews[i].gameObject.SetActive(false); + continue; + } + var countByVolume = orderTuple.count / productData.volume; + var bulkProductData = new ProductData(productData, countByVolume){volume = productData.volume * countByVolume}; + itemViews[i].SetData(bulkProductData); + if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == orderTuple.id) is { } resultData) + { + itemViews[i].SetCooked(resultData.Rarity); } else { - itemView1.SetButtonActive(itemView1.CheckAmount(productData)); + itemViews[i].SetButtonActive(itemViews[i].CheckAmount(bulkProductData)); } - itemView1.CookingButton.ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => + + itemViews[i].CookingButton.ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => { LocalCacheManager.Save(Const.ProductViewTypeTag, ProductViewType.BulkOrder); - LocalCacheManager.Save(MaterialNumberTag, 1); - LocalCacheManager.Save(PopcornGameManager.CookingDataTag, productData); + LocalCacheManager.Save(MaterialNumberTag, orderTuple.id); + LocalCacheManager.Save(PopcornGameManager.CookingDataTag, bulkProductData); RecipeDetailView.ShowDialog(); - }).AddTo(itemView1); - itemView1.gameObject.SetActive(true); - } - else - { - itemView1.gameObject.SetActive(false); - } - if (productList.FirstOrDefault(data => data.id == bulkOrderData.productId2) is ProductData data2) - { - var countByVolume = bulkOrderData.count2 / data2.volume; - var productData = new ProductData(data2, countByVolume); - productData.volume *= countByVolume; - itemView2.SetData(productData); - if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == 2) is BulkOrderResultData resultData) - { - itemView2.SetCooked(resultData.Rarity); - } - else - { - itemView2.SetButtonActive(itemView2.CheckAmount(productData)); - } - itemView2.CookingButton.ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => - { - LocalCacheManager.Save(Const.ProductViewTypeTag, ProductViewType.BulkOrder); - LocalCacheManager.Save(MaterialNumberTag, 2); - LocalCacheManager.Save(PopcornGameManager.CookingDataTag, productData); - RecipeDetailView.ShowDialog(); - }).AddTo(itemView2); - itemView2.gameObject.SetActive(true); - } - else - { - itemView2.gameObject.SetActive(false); - } - if (productList.FirstOrDefault(data => data.id == bulkOrderData.productId3) is ProductData data3) - { - var countByVolume = bulkOrderData.count3 / data3.volume; - var productData = new ProductData(data3, countByVolume); - productData.volume *= countByVolume; - itemView3.SetData(productData); - if (gameData.CompletedProductList.FirstOrDefault(data => data.Number == 3) is BulkOrderResultData resultData) - { - itemView3.SetCooked(resultData.Rarity); - } - else - { - itemView3.SetButtonActive(itemView3.CheckAmount(productData)); - } - itemView3.CookingButton.ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => - { - LocalCacheManager.Save(Const.ProductViewTypeTag, ProductViewType.BulkOrder); - LocalCacheManager.Save(MaterialNumberTag, 3); - LocalCacheManager.Save(PopcornGameManager.CookingDataTag, productData); - RecipeDetailView.ShowDialog(); - }).AddTo(itemView3); - itemView3.gameObject.SetActive(true); - } - else - { - itemView3.gameObject.SetActive(false); + }).AddTo(itemViews[i]); } }