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)