From e33effdb8522023ca58c0db50c0655f2d8a11283 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 3 Dec 2021 19:11:00 +0900 Subject: [PATCH] =?UTF-8?q?=E4=BB=95=E5=85=A5=E3=82=8C=E3=83=81=E3=83=A5?= =?UTF-8?q?=E3=83=BC=E3=83=88=E3=83=AA=E3=82=A2=E3=83=AB=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shopping/Scripts/ShopItemPurchaseView.cs | 16 +++--- .../Scenes/shopping/Scripts/Shopping.cs | 54 ++++++++++--------- 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopItemPurchaseView.cs b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopItemPurchaseView.cs index 758a7ae1..33463800 100644 --- a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopItemPurchaseView.cs +++ b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopItemPurchaseView.cs @@ -91,14 +91,18 @@ public class ShopItemPurchaseView : MonoBehaviour currentCount.Value = 1; } - if (GameDataManager.GameData.isFirstPlay) + // tutorial 所持金チェック + if (!GameDataManager.GameData.FinishedFlags.HasFlag(TutorialFlag.Shopping)) { - // マスク表示 - var go = TutorialManager.Instance.ShowTutorialMask(transform.parent, purchaseOnButton.transform as RectTransform); - purchaseOnButton.OnClickAsObservable().Take(1).Subscribe(_ => + if (GameDataManager.GameData.Coin >= data.shopData.price) { - DestroyImmediate(go); - }).AddTo(this); + // マスク表示 + var go = TutorialManager.Instance.ShowTutorialMask(transform.parent, purchaseOnButton.transform as RectTransform); + purchaseOnButton.OnClickAsObservable().Take(1).Subscribe(_ => + { + DestroyImmediate(go); + }).AddTo(this); + } } } diff --git a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs index 8276c78b..105d45c3 100644 --- a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs +++ b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs @@ -17,6 +17,20 @@ public class Shopping : MonoBehaviour SoundManager.Instance.PlayBGM("bgm_shopping"); var gameData = GameDataManager.GameData; + + // 一覧データ + var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ShopDataSheet); + + // tutorial 所持金が指定アイテムの金額以上かどうかチェック + var isTutorial = false; + if (!gameData.FinishedFlags.HasFlag(TutorialFlag.Shopping)) + { + if (gameData.Coin >= (shopDataList.FirstOrDefault(data => data.itemId == 2)?.price ?? 10)) + { + isTutorial = true; + } + } + CoinManager.Instance.ChangeCoin(gameData.Coin); HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart); @@ -36,8 +50,6 @@ public class Shopping : MonoBehaviour HeartMeter.Instance.AddHeart(pair.Current - pair.Previous); }).AddTo(this); - // 一覧データ - var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ShopDataSheet); foreach (var shopData in shopDataList) { if (shopData.Category == ItemCategory.Special) @@ -52,36 +64,28 @@ public class Shopping : MonoBehaviour { itemView.SetItemActive(shopData.price <= ownCoin); }).AddTo(this); - var purchaseSubject = new Subject(); - purchaseSubject.AddTo(itemView); - purchaseSubject.Subscribe(amount => - { - // アイテムを増やす - AddItem(shopData, amount); - itemView.SetStockCount(GetItemAmount(shopData)); - CoinManager.Instance.SubCoin(shopData.price * amount); - gameData.Coin = CoinManager.Instance.OwnCoin; - changeCoinSubject.OnNext(gameData.Coin); - GameDataManager.SaveGameData(); - }).AddTo(itemView); // アイテム購入クリック購読 itemView.PurchaseButtonObservable .ThrottleFirst(TimeSpan.FromSeconds(.3f)) .Where(_ => shopData.price <= CoinManager.Instance.OwnCoin) .Subscribe(_ => { - ShopItemPurchaseView.ShowDialog((shopData, GetItemAmount(shopData)), x => + ShopItemPurchaseView.ShowDialog((shopData, GetItemAmount(shopData)), amount => { - purchaseSubject.OnNext(x); - if (gameData.isFirstPlay) + // アイテムを増やす + AddItem(shopData, amount); + itemView.SetStockCount(GetItemAmount(shopData)); + CoinManager.Instance.SubCoin(shopData.price * amount); + gameData.Coin = CoinManager.Instance.OwnCoin; + changeCoinSubject.OnNext(gameData.Coin); + GameDataManager.SaveGameData(); + + if (isTutorial) { - TutorialManager.Instance.ShowTutorialConversation(6, () => + TutorialManager.Instance.ShowTutorialConversation(8, () => { - var go = FindObjectOfType().transform; - go.transform.FindChildByName("Button_Main", t => - { - TutorialManager.Instance.ShowTutorialMask(go.parent, t as RectTransform, true); - }); + gameData.FinishedFlags |= TutorialFlag.Shopping; + GameDataManager.SaveGameData(); }); } }); @@ -96,10 +100,10 @@ public class Shopping : MonoBehaviour listView.SetTab(ItemCategory.Material); changeCoinSubject.OnNext(CoinManager.Instance.OwnCoin); - if (gameData.isFirstPlay) + if (isTutorial) { listView.ScrollRect.vertical = false; - TutorialManager.Instance.ShowTutorialConversation(5, () => + TutorialManager.Instance.ShowTutorialConversation(7, () => { // マスク表示 var view = listView.ScrollRect.content.GetChild(0).GetComponent();