アップデート待ってねPopup追加

This commit is contained in:
kimura 2021-11-15 15:35:41 +09:00
parent 9726536df0
commit 5da45a65e3
7 changed files with 78 additions and 15 deletions

View File

@ -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<Action>(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);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 7ac380b2956543a6a6b17c6150b154c0
timeCreated: 1636956028

View File

@ -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}

View File

@ -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<int>(DataTag);
shopLevel = LocalCacheManager.Load<int>(DataTag);
var scriptList = SpreadsheetDataManager.Instance.GetBaseDataList<BrotherScriptData>(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<Action>(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<Action>(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<Action>(CallbackTag, null)?.Invoke();
LocalCacheManager.Remove(CallbackTag);
});
}
else
{
HeartMeter.Instance.SetShopLevel(GameDataManager.GameData.ViewedShopLevel, true);
LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
LocalCacheManager.Remove(CallbackTag);
}
}
}

View File

@ -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;

View File

@ -38,6 +38,7 @@ public enum GameScenes
WatchMovieCoin,
WatchMovieCoinGet,
ApplicationExitConfirmDialog,
Update,
}
public enum SceneType

View File

@ -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: {}