From 75e97396d3a8e39d7f133eb91dd4bd9b1e57d822 Mon Sep 17 00:00:00 2001 From: kimura Date: Wed, 13 Oct 2021 11:29:31 +0900 Subject: [PATCH] =?UTF-8?q?=E8=B2=A9=E5=A3=B2=E9=80=9A=E7=9F=A5=E3=81=A8?= =?UTF-8?q?=E8=A3=9C=E5=85=85=E9=80=9A=E7=9F=A5=E3=82=92=E5=88=86=E3=81=91?= =?UTF-8?q?=E3=81=9F/=E3=81=9D=E3=82=8C=E3=81=AB=E4=BC=B4=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/marketing/Scripts/Market.cs | 26 ++++++------- .../Scenes/marketing/Scripts/MarketManager.cs | 37 +++++++++---------- .../Scenes/marketing/Scripts/ShopStockView.cs | 1 - 3 files changed, 31 insertions(+), 33 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs index a7c1d170..3c6d597e 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs @@ -41,8 +41,10 @@ public class Market : SingletonMonoBehaviour public Subject SellObservable => sellObservable; private readonly Subject sellObservable = new Subject(); - public Subject<(bool isReorder, List orders)> SellOrderSubject => sellOrderSubject; - private readonly Subject<(bool isReorder, List orders)> sellOrderSubject = new Subject<(bool, List)>(); + public Subject> SellOrderSubject => sellOrderSubject; + private readonly Subject> sellOrderSubject = new Subject>(); + public Subject<(bool isReorder, List refillList)> RefillSubject => refillSubject; + private readonly Subject<(bool isReorder, List refillList)> refillSubject = new Subject<(bool, List)>(); private int orderIndex; private int oneByOneIndex = 0; @@ -63,25 +65,23 @@ public class Market : SingletonMonoBehaviour StockFlavorLog(); #endif - // 陳列 - displayFlavors = gameData.ShopStock.ToList(); - - // 売り順決定 - shuffledOrder = ShuffleOrder(displayFlavors.Count); + // 陳列/売り順決定 + ReShuffle(gameData.ShopStock); Observable.Interval(TimeSpan.FromSeconds(1f)) .Where(_ => shuffledOrder.Count == 0) .Where(_ => gameData.ShopStock.Count > 0) .Subscribe(_ => { +#if UNITY_EDITOR || DEVELOPMENT_BUILD Debug.Log("displayFlavors updated"); - displayFlavors = gameData.ShopStock.ToList(); - shuffledOrder = ShuffleOrder(displayFlavors.Count); +#endif + ReShuffle(gameData.ShopStock); shopState.Value = ShopState.Open; }); // お店の状態設定 - shopState.Value = gameData.ShopStock.Count == 0 ? ShopState.Close : ShopState.Open; + CheckStock(gameData.ShopStock); // 購入リクエスト var maxOrder = orderPosisionObject.transform.childCount; @@ -200,11 +200,12 @@ public class Market : SingletonMonoBehaviour this.CallWaitForSeconds(1.5f, () => { sellObservable.OnNext(coin); - sellOrderSubject.OnNext((isReorder, orders)); - shopState.Value = gameData.ShopStock.Count == 0 ? ShopState.Close : ShopState.Open; + sellOrderSubject.OnNext(orders); + CheckStock(gameData.ShopStock); this.CallWaitForSeconds(1f, () => { + refillSubject.OnNext((isReorder, refillList)); foreach (var controller in customers) { controller.SetPurchased(); @@ -331,7 +332,6 @@ public class Market : SingletonMonoBehaviour var count = CustomerList.Count(c => c.State.Value == CustomerState.Wait || c.State.Value == CustomerState.Order); if (count < BrotherPinkView.Instance.FewerBorder) { - Debug.Log($"market set walk"); BrotherPinkView.Instance.SetWalk(); } }).AddTo(this); diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs index 6d256b3e..48ff89b8 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/MarketManager.cs @@ -53,33 +53,32 @@ public class MarketManager : MonoBehaviour blueView.SellAction(); }).AddTo(this); - market.SellOrderSubject.Subscribe(x => + market.SellOrderSubject.Subscribe(orders => { // 販売アニメーション - foreach (var order in x.orders) + foreach (var order in orders) { cartView.SellStock(order); - }; + } + }).AddTo(this); - // 時間を開けて補充アニメーション - this.CallWaitForSeconds(1f, () => + market.RefillSubject.Subscribe(x => + { + stockView.SetStock(gameData.StorageTanks); + if (x.isReorder) { - stockView.SetStock(gameData.StorageTanks); - if (gameData.ShopStock.Count == Market.ShopStockCount) + // 陳列表示更新(陳列13=650ms,7=350ms) + var stocks = market.ShuffledOrder.Select(i => (i, market.DisplayFlavors[i])).ToList(); + cartView.SetStock(stocks, true); + } + else + { + // 補充したフレーバーのスキンを設定 + foreach (var order in x.refillList) { - // 補充したフレーバーのスキンを設定 - foreach (var order in x.orders) - { - cartView.Refill(order, market.DisplayFlavors[order]); - } + cartView.Refill(order, market.DisplayFlavors[order]); } - else if (x.isReorder) - { - // 陳列表示更新(陳列13=650ms,7=350ms) - var stocks = market.ShuffledOrder.Select(i => (i, market.DisplayFlavors[i])).ToList(); - cartView.SetStock(stocks, true); - } - }); + } }).AddTo(this); // 開閉店 diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopStockView.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopStockView.cs index fbabd628..90900b39 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopStockView.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopStockView.cs @@ -12,7 +12,6 @@ public class ShopStockView : MonoBehaviour { var totalCapacity = tanks.Sum(x => x.Capacity); var totalStock = tanks.Sum(x => x.Stock); - Debug.Log($"Tank:{totalStock}/{totalCapacity}"); var newPos = popcornImage.transform.localPosition; newPos.y = Mathf.Lerp(minPosision, maxPosision, (float) totalStock / totalCapacity); popcornImage.transform.localPosition = newPos;