From be61ac55322585f84a6a8d4e7c5fe7fd0ceb69a3 Mon Sep 17 00:00:00 2001 From: kimura Date: Tue, 26 Oct 2021 12:31:01 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=AD=E3=83=83=E3=83=81=E3=83=B3=E3=83=81?= =?UTF-8?q?=E3=83=A5=E3=83=BC=E3=83=88=E3=83=AA=E3=82=A2=E3=83=AB=EF=BC=91?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/Main/Scripts/KitchenManager.cs | 49 ++++++++++++++++--- .../Scenes/recipe/Scripts/RecipeDetailView.cs | 12 ++++- .../recipe/Scripts/RecipeSelectDialog.cs | 21 +++++++- 3 files changed, 74 insertions(+), 8 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index 85eee8f2..2ae71741 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -22,15 +22,52 @@ public class KitchenManager : MonoBehaviour // Start is called before the first frame update void Start() { - // レシピの表示 - cookingButton.OnClickAsObservable().Subscribe(_ => - { - LocalCacheManager.Remove(Const.ProductViewTypeTag); - TransitionManager.Instance.LoadSceneAdditive(GameScenes.Recipe); - }); SoundManager.Instance.PlayBGM("bgm_Main"); var gameData = GameDataManager.GameData; + + // レシピの表示 + cookingButton.OnClickAsObservable().Subscribe(_ => + { + RecipeSelectDialog.ShowDialog(ProductViewType.Default, () => + { + if (gameData.isFirstPlay) + { + var go = FindObjectOfType().transform; + go.transform.FindChildByName("Button_field", t => + { + TutorialManager.Instance.ShowTutorialMask(go.parent, t as RectTransform); + }); + } + }); + }); + + // tutorial +#if UNITY_EDITOR + Debug.Log($"isFirstPlay:{gameData.isFirstPlay}"); +#endif + if (gameData.isFirstPlay) + { + gameData.CornSeed = 90; + gameData.Coin = 10; + // 店舗レベル1達成表示 + LocalCacheManager.Save(ShopLevelUp.DataTag, 1); + LocalCacheManager.Save(ShopLevelUp.CallbackTag, new Action(() => + { + TutorialManager.Instance.ShowTutorialConversation(1, () => + { + // マスク表示 + var buttonRectTransform = cookingButton.transform as RectTransform; + var go = TutorialManager.Instance.ShowTutorialMask(buttonRectTransform.parent, buttonRectTransform); + cookingButton.OnClickAsObservable().Take(1).Subscribe(_ => + { + DestroyImmediate(go); + }).AddTo(this); + }); + })); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.StoreLevel); + } + CoinManager.Instance.ChangeCoin(gameData.Coin); HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart); GameDataObserver.Instance.ShopLevelUpdate diff --git a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs index 87560455..864c3d73 100644 --- a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs +++ b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs @@ -41,6 +41,17 @@ public class RecipeDetailView : MonoBehaviour ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor); var viewType = LocalCacheManager.Load(Const.ProductViewTypeTag, ProductViewType.Default); var data = LocalCacheManager.Load(PopcornGameManager.CookingDataTag); + var gameData = GameDataManager.GameData; + + if (gameData.isFirstPlay) + { + TutorialManager.Instance.ShowTutorialConversation(2, () => + { + LocalCacheManager.Load(CallbackTag, null)?.Invoke(); + TransitionManager.Instance.UnloadScene(GameScenes.RecipeChoice); + TransitionManager.Instance.UnloadScene(GameScenes.Recipe); + }); + } cancelButton.OnClickAsObservable().Subscribe(_ => { @@ -57,7 +68,6 @@ public class RecipeDetailView : MonoBehaviour { LocalCacheManager.Save(PopcornGameManager.PanDataTag, panSelector.SelectedPanData.Value); // 消費 - var gameData = GameDataManager.GameData; gameData.CornSeed -= data.MaterialList[0].amount; if (gameData.Material.FirstOrDefault(x => x.Id == data.MaterialList[1].id) is MaterialData material1) { diff --git a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeSelectDialog.cs b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeSelectDialog.cs index ee78a4fb..b82ea051 100644 --- a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeSelectDialog.cs +++ b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeSelectDialog.cs @@ -59,7 +59,13 @@ public class RecipeSelectDialog : MonoBehaviour view.RecipeClickObservable.Subscribe(_ => { LocalCacheManager.Save(PopcornGameManager.CookingDataTag, productData); - TransitionManager.Instance.LoadSceneAdditive(GameScenes.RecipeChoice); + RecipeDetailView.ShowDialog(() => + { + if (gameData.isFirstPlay) + { + LocalCacheManager.Load(CallbackTag, null)?.Invoke(); + } + }); }).AddTo(this); } else @@ -69,6 +75,19 @@ public class RecipeSelectDialog : MonoBehaviour } LayoutRebuilder.ForceRebuildLayoutImmediate(content); scrollRect.verticalNormalizedPosition = 1; + + if (gameData.isFirstPlay) + { + scrollRect.vertical = false; + // マスク表示 + var view = content.GetChild(0).GetComponent(); + var viewRectTransform = view.transform.GetChild(0) as RectTransform; + var go = TutorialManager.Instance.ShowTutorialMask(transform.parent, viewRectTransform); + view.RecipeClickObservable.Take(1).Subscribe(_ => + { + DestroyImmediate(go); + }).AddTo(this); + } } public static void ShowDialog(ProductViewType type, Action onClose = null)