大量注文受注直後にキャンセルできないのを修正

This commit is contained in:
kimura 2021-11-12 20:15:14 +09:00
parent 6df8fa8d9b
commit 3d62cbcff8
2 changed files with 23 additions and 3 deletions

View File

@ -7,6 +7,7 @@ using UnityEngine.UI;
public class BulkOrderNotifyView : MonoBehaviour public class BulkOrderNotifyView : MonoBehaviour
{ {
private static readonly string CallbackTag = "BulkOrderNotifyViewCallback";
private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger");
private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger");
[SerializeField] private Animator backgroundAnimator; [SerializeField] private Animator backgroundAnimator;
@ -66,13 +67,20 @@ public class BulkOrderNotifyView : MonoBehaviour
} }
closeButton.OnClickAsObservable().Take(1).Subscribe(_ => closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
{ {
LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
LocalCacheManager.Remove(CallbackTag);
transform.parent.SetLocalScale(0); transform.parent.SetLocalScale(0);
backgroundAnimator.SetTrigger(CloseTrigger); backgroundAnimator.SetTrigger(CloseTrigger);
this.CallWaitForSeconds(.25f, () => this.CallWaitForSeconds(.25f, () =>
{ {
TransitionManager.Instance.UnloadScene(GameScenes.BulkOrderTelephone); TransitionManager.Instance.UnloadScene(GameScenes.BulkOrderTelephone);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrder);
}); });
}).AddTo(this); }).AddTo(this);
} }
public static void ShowDialog(Action onComplete = null)
{
LocalCacheManager.Save(CallbackTag, onComplete);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderTelephone);
}
} }

View File

@ -189,13 +189,25 @@ public class KitchenManager : MonoBehaviour
var orderData = bulkOrderList.First(data => data.id == result.nextOrderId); var orderData = bulkOrderList.First(data => data.id == result.nextOrderId);
LocalCacheManager.Save(BulkOrder.DataTag, orderData); LocalCacheManager.Save(BulkOrder.DataTag, orderData);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderTelephone); BulkOrderNotifyView.ShowDialog(() =>
{
BulkOrder.ShowDialog(
onAchieved: () =>
{
orderIndicatorView.SetIndicate(false, true);
orderIndicatorView.SetBadgeActive(false);
},
onCancel: () =>
{
orderIndicatorView.SetIndicate(false, true);
orderIndicatorView.SetBadgeActive(false);
});
});
// 通知をタップ後タップ動作を切り替える // 通知をタップ後タップ動作を切り替える
orderIndicatorView.SetIndicate(false, false); orderIndicatorView.SetIndicate(false, false);
orderIndicatorView.TappedPhone orderIndicatorView.TappedPhone
.ThrottleFirst(TimeSpan.FromSeconds(1f)) .ThrottleFirst(TimeSpan.FromSeconds(1f))
.Take(1)
.Subscribe(__ => .Subscribe(__ =>
{ {
BulkOrder.ShowDialog( BulkOrder.ShowDialog(