diff --git a/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs b/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs index 03bf27d0..395808d1 100644 --- a/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs +++ b/popcorn/Assets/MyGame/Scenes/DebugOption/Scripts/DebugOptionManager.cs @@ -119,6 +119,9 @@ public class DebugOptionManager : MonoBehaviour bulkOrderResetButton.OnClickAsObservable().Subscribe(_ => { gameData.AchievedOrderLevel = 0; + gameData.OrderIdInProgress = 0; + gameData.CancelOrderId = 0; + gameData.CompletedProductList.Clear(); }).AddTo(this); shopLevelUpResetButton.OnClickAsObservable().Subscribe(_ => diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrder.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrder.cs index 3ed99bcd..ebb9a20b 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrder.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrder.cs @@ -14,8 +14,8 @@ public class BulkOrder : MonoBehaviour { public static readonly string DataTag = "BulkOrderData"; public static readonly string MaterialNumberTag = "BulkOrderMaterialNumber"; - public static readonly string CancelCallbackTag = "BulkOrderCancelCallback"; - public static readonly string AchievedCallbackTag = "BulkOrderAchievedCallback"; + private static readonly string CancelCallbackTag = "BulkOrderCancelCallback"; + private static readonly string AchievedCallbackTag = "BulkOrderAchievedCallback"; private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); [SerializeField] private Animator backgroundAnimator; @@ -57,7 +57,7 @@ public class BulkOrder : MonoBehaviour LocalCacheManager.Save(DataTag, bulkOrderData); cancelButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => { - LocalCacheManager.Save(CancelCallbackTag, new Action(() => + BulkOrderCancelView.ShowDialog(() => { // 試食数追加 if (gameData.CompletedProductList.Exists(data => data.Number == 1)) @@ -76,6 +76,8 @@ public class BulkOrder : MonoBehaviour // カウントリセット gameData.OrderConditionCount = 0; GameDataManager.SaveGameData(); + LocalCacheManager.Load(CancelCallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(CancelCallbackTag); // キャンセルと同時に閉じる transform.parent.SetLocalScale(0); backgroundAnimator.SetTrigger(CloseTrigger); @@ -83,8 +85,7 @@ public class BulkOrder : MonoBehaviour { TransitionManager.Instance.UnloadScene(GameScenes.BulkOrder); }); - })); - TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderCancel); + }); }).AddTo(this); // 納品チェック @@ -106,7 +107,7 @@ public class BulkOrder : MonoBehaviour // 納品 deliveredButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => { - LocalCacheManager.Save(AchievedCallbackTag, new Action(() => + BulkOrderAchievedView.ShowDialog(() => { // 獲得 var rarityList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.RarityDataSheet); @@ -131,11 +132,12 @@ public class BulkOrder : MonoBehaviour gameData.AchievedOrderLevel = bulkOrderData.shopLevel; } GameDataManager.SaveGameData(); + LocalCacheManager.Load(AchievedCallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(AchievedCallbackTag); TransitionManager.Instance.UnloadScene(GameScenes.BulkOrder); - })); + }); transform.SetLocalScale(0); backgroundAnimator.SetTrigger(CloseTrigger); - TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderAchievement); }).AddTo(this); var productList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ProductDataSheet); @@ -221,6 +223,14 @@ public class BulkOrder : MonoBehaviour } } + public static void ShowDialog(Action onComplete = null, Action onAchieved = null, Action onCancel = null) + { + LocalCacheManager.Remove(Const.ProductViewTypeTag); + LocalCacheManager.Save(AchievedCallbackTag, onAchieved); + LocalCacheManager.Save(CancelCallbackTag, onCancel); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrder); + } + public static int CalcBonus(List rarityList, List resultData, int shopLevel) { var totalBonus = 0; diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderAchievedView.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderAchievedView.cs index 93f179a5..092b4ef2 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderAchievedView.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderAchievedView.cs @@ -6,6 +6,7 @@ using UnityEngine.UI; public class BulkOrderAchievedView : MonoBehaviour { + private static readonly string CallbackTag = "BulkOrderAchievedViewCallback"; private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); [SerializeField] private Animator backgroundAnimator; @@ -34,14 +35,8 @@ public class BulkOrderAchievedView : MonoBehaviour } closeButton.OnClickAsObservable().Take(1).Subscribe(_ => { - if (LocalCacheManager.Load(BulkOrder.AchievedCallbackTag, null) is Action callback) - { - callback.Invoke(); - } - if (LocalCacheManager.Load(KitchenManager.ArchivedCallbackTag, null) is Action kitchenCallback) - { - kitchenCallback.Invoke(); - } + LocalCacheManager.Load(CallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(CallbackTag); transform.parent.SetLocalScale(0); backgroundAnimator.SetTrigger(CloseTrigger); this.CallWaitForSeconds(.25f, () => @@ -50,4 +45,10 @@ public class BulkOrderAchievedView : MonoBehaviour }); }).AddTo(this); } + + public static void ShowDialog(Action onComplete = null) + { + LocalCacheManager.Save(CallbackTag, onComplete); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderAchievement); + } } diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderCancelView.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderCancelView.cs index 3c0b95c4..bcfaba1a 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderCancelView.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderCancelView.cs @@ -5,6 +5,7 @@ using UnityEngine.UI; public class BulkOrderCancelView : MonoBehaviour { + private static readonly string CallbackTag = "BulkOrderCancelViewCallback"; private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); [SerializeField] private Animator backgroundAnimator; @@ -32,14 +33,8 @@ public class BulkOrderCancelView : MonoBehaviour }).AddTo(this); cancelButton.OnClickAsObservable().Take(1).Subscribe(_ => { - if (LocalCacheManager.Load(BulkOrder.CancelCallbackTag, null) is Action callback) - { - callback.Invoke(); - } - if (LocalCacheManager.Load(KitchenManager.ArchivedCallbackTag, null) is Action kitchenCallback) - { - kitchenCallback.Invoke(); - } + LocalCacheManager.Load(CallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(CallbackTag); transform.parent.SetLocalScale(0); backgroundAnimator.SetTrigger(CloseTrigger); this.CallWaitForSeconds(.25f, () => @@ -48,4 +43,10 @@ public class BulkOrderCancelView : MonoBehaviour }); }).AddTo(this); } + + public static void ShowDialog(Action onComplete = null) + { + LocalCacheManager.Save(CallbackTag, onComplete); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderCancel); + } } diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index 4325415b..ac53072c 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -11,7 +11,6 @@ using UnityEngine.UI; public class KitchenManager : MonoBehaviour { - public static readonly string ArchivedCallbackTag = "KitchenCancelCallback"; private static readonly double refreshWaitTime = 300; [SerializeField] int refreshRewardCoin = 100; [SerializeField] private Button cookingButton; @@ -148,10 +147,23 @@ public class KitchenManager : MonoBehaviour var achieved = bulkOrderData is null || gameData.DeliveredOrder.Contains(bulkOrderData.id) || gameData.AchievedOrderLevel == bulkOrderData.shopLevel; var cancelled = gameData.OrderIdInProgress == gameData.CancelOrderId; GameDataManager.SaveGameData(); - LocalCacheManager.Save(ArchivedCallbackTag, new Action(() => + + if (bulkOrderData != null) { - orderIndicatorView.SetIndicate(false, true); - })); + var orderList = new List + { + bulkOrderData.productId1, + bulkOrderData.productId2, + bulkOrderData.productId3, + }; + var completed = gameData.CompletedProductList.Count == orderList.Count(x => x != 0); + orderIndicatorView.SetBadgeActive(completed && !achieved); + } + else + { + orderIndicatorView.SetBadgeActive(false); + } + orderIndicatorView.SetIndicate(result.result, achieved || cancelled); if (result.result) { @@ -181,11 +193,23 @@ public class KitchenManager : MonoBehaviour // 通知をタップ後タップ動作を切り替える orderIndicatorView.SetIndicate(false, false); - orderIndicatorView.TappedPhone.ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(__ => - { - LocalCacheManager.Remove(Const.ProductViewTypeTag); - TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrder); - }).AddTo(this); + orderIndicatorView.TappedPhone + .ThrottleFirst(TimeSpan.FromSeconds(1f)) + .Take(1) + .Subscribe(__ => + { + BulkOrder.ShowDialog( + onAchieved: () => + { + orderIndicatorView.SetIndicate(false, true); + orderIndicatorView.SetBadgeActive(false); + }, + onCancel: () => + { + orderIndicatorView.SetIndicate(false, true); + orderIndicatorView.SetBadgeActive(false); + }); + }).AddTo(this); }).AddTo(this); } else @@ -196,8 +220,17 @@ public class KitchenManager : MonoBehaviour .ThrottleFirst(TimeSpan.FromSeconds(1f)) .Subscribe(_ => { - LocalCacheManager.Remove(Const.ProductViewTypeTag); - TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrder); + BulkOrder.ShowDialog( + onAchieved: () => + { + orderIndicatorView.SetIndicate(false, true); + orderIndicatorView.SetBadgeActive(false); + }, + onCancel: () => + { + orderIndicatorView.SetIndicate(false, true); + orderIndicatorView.SetBadgeActive(false); + }); }).AddTo(this); } }