diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/UpdateDialog.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/UpdateDialog.cs new file mode 100644 index 00000000..6578cf1b --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/UpdateDialog.cs @@ -0,0 +1,37 @@ +using System; +using UniRx; +using UnityEngine; +using UnityEngine.UI; + +namespace MyGame.Scenes.Main.Scripts +{ + public class UpdateDialog : MonoBehaviour + { + private static readonly string CallbackTag = "UpdateDialogCallback"; + private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); + private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); + + [SerializeField] private Animator backgroundAnimator; + [SerializeField] private Button closeButton; + + private void Start() + { + closeButton.OnClickAsObservable().Take(1).Subscribe(_ => + { + LocalCacheManager.Load(CallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(CallbackTag); + transform.parent.SetLocalScale(0); + backgroundAnimator.SetTrigger(CloseTrigger); + this.CallWaitForSeconds(.25f, () => + { + TransitionManager.Instance.UnloadScene(GameScenes.Update); + }); + }).AddTo(this); + } + + public static void ShowDialog(Action onClose = null){ + LocalCacheManager.Save(CallbackTag, onClose); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.Update); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/UpdateDialog.cs.meta b/popcorn/Assets/MyGame/Scenes/Main/Scripts/UpdateDialog.cs.meta new file mode 100644 index 00000000..1ffacdc7 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/UpdateDialog.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7ac380b2956543a6a6b17c6150b154c0 +timeCreated: 1636956028 \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/Main/update.unity b/popcorn/Assets/MyGame/Scenes/Main/update.unity index 588e3efb..5bab4bb4 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/update.unity +++ b/popcorn/Assets/MyGame/Scenes/Main/update.unity @@ -382,7 +382,7 @@ MonoBehaviour: m_GameObject: {fileID: 360429215} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9f6d1b5b8f3a49e4a93060301fc842db, type: 3} + m_Script: {fileID: 11500000, guid: 7ac380b2956543a6a6b17c6150b154c0, type: 3} m_Name: m_EditorClassIdentifier: backgroundAnimator: {fileID: 780755706} diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopLevelUp.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopLevelUp.cs index bf766b1f..def4866f 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopLevelUp.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/ShopLevelUp.cs @@ -1,14 +1,16 @@ using System; using System.Linq; +using MyGame.Scenes.Main.Scripts; using TMPro; using UniRx; using UnityEngine; +using UnityEngine.PlayerLoop; using UnityEngine.UI; public class ShopLevelUp : MonoBehaviour { public static readonly string DataTag = "ShopLevelUpData"; - public static readonly string CallbackTag = "CallbackData"; + public static readonly string CallbackTag = "ShopLevelUpCallback"; private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); @@ -19,13 +21,19 @@ public class ShopLevelUp : MonoBehaviour [SerializeField] private Button closeButton; [SerializeField] private GameObject summaryObject; + private int shopLevel; + private void Start() { - var shopLevel = LocalCacheManager.Load(DataTag); + shopLevel = LocalCacheManager.Load(DataTag); var scriptList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ScriptDataSheet); var targetScriptList = scriptList.Where(data => data.id == shopLevel).ToList(); closeButton.OnClickAsObservable().Take(1).Subscribe(_ => { + GameDataManager.GameData.ViewedShopLevel = shopLevel; + GameDataManager.GameData.OrderConditionCount = 0; + GameDataManager.SaveGameData(); + transform.SetLocalScale(0); backgroundAnimator.SetTrigger(CloseTrigger); this.CallWaitForSeconds(.25f, () => @@ -36,23 +44,13 @@ public class ShopLevelUp : MonoBehaviour LocalCacheManager.Save(BrotherConversation.ScriptDataTag, targetScriptList); LocalCacheManager.Save(BrotherConversation.CallbackTag, new Action(() => { - GameDataManager.GameData.ViewedShopLevel = shopLevel; - GameDataManager.GameData.OrderConditionCount = 0; - GameDataManager.SaveGameData(); - HeartMeter.Instance.SetShopLevel(GameDataManager.GameData.ViewedShopLevel, true); - LocalCacheManager.Load(CallbackTag, null)?.Invoke(); - LocalCacheManager.Remove(CallbackTag); + OnClose(); })); TransitionManager.Instance.LoadSceneAdditive(GameScenes.Conversation); } else { - GameDataManager.GameData.ViewedShopLevel = shopLevel; - GameDataManager.GameData.OrderConditionCount = 0; - GameDataManager.SaveGameData(); - HeartMeter.Instance.SetShopLevel(GameDataManager.GameData.ViewedShopLevel, true); - LocalCacheManager.Load(CallbackTag, null)?.Invoke(); - LocalCacheManager.Remove(CallbackTag); + OnClose(); } }); }).AddTo(this); @@ -69,4 +67,24 @@ public class ShopLevelUp : MonoBehaviour summaryObject.SetActive(true); }); } + + private void OnClose() + { + // 店舗レベル15以降実装後不要になる処理 + if (shopLevel == Const.MaxShopLevel) + { + UpdateDialog.ShowDialog(() => + { + HeartMeter.Instance.SetShopLevel(GameDataManager.GameData.ViewedShopLevel, true); + LocalCacheManager.Load(CallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(CallbackTag); + }); + } + else + { + HeartMeter.Instance.SetShopLevel(GameDataManager.GameData.ViewedShopLevel, true); + LocalCacheManager.Load(CallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(CallbackTag); + } + } } diff --git a/popcorn/Assets/MyGame/Scripts/Const.cs b/popcorn/Assets/MyGame/Scripts/Const.cs index e4a96164..f57c434e 100644 --- a/popcorn/Assets/MyGame/Scripts/Const.cs +++ b/popcorn/Assets/MyGame/Scripts/Const.cs @@ -10,6 +10,7 @@ public static class Const { public static readonly int DefaultMachineLevel = 1; public static readonly int DefaultRecipeId = 1; public static readonly int DefaultPanId = 1; + public static readonly int MaxShopLevel = 14; public static readonly int TankCapacity = 20; public static readonly int SpecialShopLevel = 9999; public static readonly int SpecialCategory = 9999; diff --git a/popcorn/Assets/MyGame/Scripts/TransitionManager.cs b/popcorn/Assets/MyGame/Scripts/TransitionManager.cs index 7cfde6c7..45b0b9eb 100644 --- a/popcorn/Assets/MyGame/Scripts/TransitionManager.cs +++ b/popcorn/Assets/MyGame/Scripts/TransitionManager.cs @@ -38,6 +38,7 @@ public enum GameScenes WatchMovieCoin, WatchMovieCoinGet, ApplicationExitConfirmDialog, + Update, } public enum SceneType diff --git a/popcorn/ProjectSettings/EditorBuildSettings.asset b/popcorn/ProjectSettings/EditorBuildSettings.asset index 996b86d5..77364389 100644 --- a/popcorn/ProjectSettings/EditorBuildSettings.asset +++ b/popcorn/ProjectSettings/EditorBuildSettings.asset @@ -101,4 +101,7 @@ EditorBuildSettings: - enabled: 1 path: Assets/MyGame/Scenes/ApplicationExitConfirmDialog/ApplicationExitConfirmDialog.unity guid: c25d0bb8eeefa744eb98fc07808adad7 + - enabled: 1 + path: Assets/MyGame/Scenes/Main/Update.unity + guid: 940b0354731698e4381318e56969feaf m_configObjects: {}