From 38ebc2010c3de6a3e61f854dfa0430e3d7a5e141 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 3 Sep 2021 15:27:19 +0900 Subject: [PATCH] =?UTF-8?q?=E9=A0=86=E7=95=AA=E5=BE=85=E3=81=A1=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3/=E5=86=8D=E9=99=B3=E5=88=97=E6=99=82?= =?UTF-8?q?=E3=81=AE=E8=A1=A8=E7=A4=BA=E3=82=92=E6=94=B9=E5=96=84/?= =?UTF-8?q?=E3=81=8A=E5=AE=A2=E3=81=95=E3=82=93=E3=81=AE=E3=82=BF=E3=83=83?= =?UTF-8?q?=E3=83=97=E3=82=92=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/marketing/Scripts/Market.cs | 44 ++++++++++++++++--- .../marketing/Scripts/MarketCartView.cs | 2 +- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs index 8b59dcf4..e15a1a5d 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs @@ -150,7 +150,7 @@ public class Market : MonoBehaviour }).AddTo(customerController); }).AddTo(this); - requestSubject.BatchFrame(30, FrameCountType.Update).Subscribe(customers => + requestSubject.BatchFrame().Subscribe(customers => { if (gameData.ShopStock.Count == 0) { @@ -161,7 +161,6 @@ public class Market : MonoBehaviour var dontBuyCustomerList = new List(); foreach (var controller in customers) { - Debug.Log(shuffledOrder.Aggregate("", (s, i) => $"{s},{i}")); // 売り切れ if (shuffledOrder.Count == 0) { @@ -192,6 +191,10 @@ public class Market : MonoBehaviour // 購入 var flavors = orders.Select(x => (displayFlavors[x], 0)).ToList(); +#if UNITY_EDITOR + Debug.Log($"bb order: {orders.Count} {orders.Aggregate("", (s, i) => $"{s},{i}")}"); + Debug.Log($"bb shuffledOrder:{shuffledOrder.Count} {shuffledOrder.Aggregate("", (s, i) => $"{s},{i}")}"); +#endif coin += SellPopcorn(flavors); var remainStockCount = gameData.ShopStock.Count; @@ -204,7 +207,6 @@ public class Market : MonoBehaviour if (gameData.ShopStock.Count == ShopStockCount) { shuffledOrder.AddRange(orders); - Debug.Log($"remain {remainStockCount}, order {orders.Count}"); var stock = gameData.ShopStock.GetRange(remainStockCount, orders.Count).ToArray(); for (int i = 0; i < orders.Count; i++) { @@ -230,6 +232,7 @@ public class Market : MonoBehaviour { cartView.SellStock(order); } + blueView.SellAction(); // コイン獲得 CoinManager.Instance.AddCoinWithEffect(coin, () => { }); @@ -261,7 +264,26 @@ public class Market : MonoBehaviour } else if (setStockFlag) { - cartView.SetStock(displayFlavors); +#if UNITY_EDITOR + Debug.Log($"bb setStockFlag {displayFlavors.Count} {shuffledOrder.Count}"); +#endif + // 陳列 + cartView.ResetDisplay(); + for (int i = 0; i < displayFlavors.Count; i++) + { + var index = i; + this.CallWaitForSeconds(.05f * i, () => + { + if (!shuffledOrder.Contains(index)) + { +#if UNITY_EDITOR + Debug.Log($"bb no refill"); +#endif + return; + } + cartView.Refill(index, displayFlavors[index]); + }); + } } }); }); @@ -340,19 +362,28 @@ public class Market : MonoBehaviour } }).AddTo(customerController); + var customerObject = customer.transform.GetChild(0).gameObject; if (x.isCustomer) { // 購入客リスト追加 customerList.Add(customerController); + if (customerObject.TryGetComponent(typeof(Collider2D), out var target)) + { + Destroy(target); + } } else { // 歩行者はタップ後購入客 customerController.ChangeCustomerState(CustomerState.Walk); - var eventTrigger = customer.transform.GetChild(0).gameObject.AddComponent(); + var eventTrigger = customerObject.AddComponent(); eventTrigger.OnPointerClickAsObservable().Take(1).Subscribe(_ => { customerList.Add(customerController); + if (customerObject.TryGetComponent(typeof(Collider2D), out var target)) + { + Destroy(target); + } }).AddTo(customerController); } }).AddTo(this); @@ -366,8 +397,7 @@ public class Market : MonoBehaviour { return 0; } - Debug.Log($"sellCount:{flavors.Count} {shuffledOrder.Count}"); - + // フレーバーを売る var coin = 0; foreach (var flavorData in flavors) diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketCartView.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketCartView.cs index ac371eab..77a23552 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketCartView.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketCartView.cs @@ -6,7 +6,7 @@ public class MarketCartView : MonoBehaviour { [SerializeField] private List popcornPositions; - private void ResetDisplay() + public void ResetDisplay() { foreach (var popcorn in popcornPositions) {