大量注文達成可能バッジ通知処理追加

This commit is contained in:
kimura 2021-11-12 18:35:50 +09:00
parent 0a7d7701aa
commit e0367a3c9a
5 changed files with 83 additions and 35 deletions

View File

@ -119,6 +119,9 @@ public class DebugOptionManager : MonoBehaviour
bulkOrderResetButton.OnClickAsObservable().Subscribe(_ => bulkOrderResetButton.OnClickAsObservable().Subscribe(_ =>
{ {
gameData.AchievedOrderLevel = 0; gameData.AchievedOrderLevel = 0;
gameData.OrderIdInProgress = 0;
gameData.CancelOrderId = 0;
gameData.CompletedProductList.Clear();
}).AddTo(this); }).AddTo(this);
shopLevelUpResetButton.OnClickAsObservable().Subscribe(_ => shopLevelUpResetButton.OnClickAsObservable().Subscribe(_ =>

View File

@ -14,8 +14,8 @@ public class BulkOrder : MonoBehaviour
{ {
public static readonly string DataTag = "BulkOrderData"; public static readonly string DataTag = "BulkOrderData";
public static readonly string MaterialNumberTag = "BulkOrderMaterialNumber"; public static readonly string MaterialNumberTag = "BulkOrderMaterialNumber";
public static readonly string CancelCallbackTag = "BulkOrderCancelCallback"; private static readonly string CancelCallbackTag = "BulkOrderCancelCallback";
public static readonly string AchievedCallbackTag = "BulkOrderAchievedCallback"; private static readonly string AchievedCallbackTag = "BulkOrderAchievedCallback";
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;
@ -57,7 +57,7 @@ public class BulkOrder : MonoBehaviour
LocalCacheManager.Save(DataTag, bulkOrderData); LocalCacheManager.Save(DataTag, bulkOrderData);
cancelButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => cancelButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
{ {
LocalCacheManager.Save(CancelCallbackTag, new Action(() => BulkOrderCancelView.ShowDialog(() =>
{ {
// 試食数追加 // 試食数追加
if (gameData.CompletedProductList.Exists(data => data.Number == 1)) if (gameData.CompletedProductList.Exists(data => data.Number == 1))
@ -76,6 +76,8 @@ public class BulkOrder : MonoBehaviour
// カウントリセット // カウントリセット
gameData.OrderConditionCount = 0; gameData.OrderConditionCount = 0;
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
LocalCacheManager.Load<Action>(CancelCallbackTag, null)?.Invoke();
LocalCacheManager.Remove(CancelCallbackTag);
// キャンセルと同時に閉じる // キャンセルと同時に閉じる
transform.parent.SetLocalScale(0); transform.parent.SetLocalScale(0);
backgroundAnimator.SetTrigger(CloseTrigger); backgroundAnimator.SetTrigger(CloseTrigger);
@ -83,8 +85,7 @@ public class BulkOrder : MonoBehaviour
{ {
TransitionManager.Instance.UnloadScene(GameScenes.BulkOrder); TransitionManager.Instance.UnloadScene(GameScenes.BulkOrder);
}); });
})); });
TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderCancel);
}).AddTo(this); }).AddTo(this);
// 納品チェック // 納品チェック
@ -106,7 +107,7 @@ public class BulkOrder : MonoBehaviour
// 納品 // 納品
deliveredButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => deliveredButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
{ {
LocalCacheManager.Save(AchievedCallbackTag, new Action(() => BulkOrderAchievedView.ShowDialog(() =>
{ {
// 獲得 // 獲得
var rarityList = SpreadsheetDataManager.Instance.GetBaseDataList<RarityData>(Const.RarityDataSheet); var rarityList = SpreadsheetDataManager.Instance.GetBaseDataList<RarityData>(Const.RarityDataSheet);
@ -131,11 +132,12 @@ public class BulkOrder : MonoBehaviour
gameData.AchievedOrderLevel = bulkOrderData.shopLevel; gameData.AchievedOrderLevel = bulkOrderData.shopLevel;
} }
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
LocalCacheManager.Load<Action>(AchievedCallbackTag, null)?.Invoke();
LocalCacheManager.Remove(AchievedCallbackTag);
TransitionManager.Instance.UnloadScene(GameScenes.BulkOrder); TransitionManager.Instance.UnloadScene(GameScenes.BulkOrder);
})); });
transform.SetLocalScale(0); transform.SetLocalScale(0);
backgroundAnimator.SetTrigger(CloseTrigger); backgroundAnimator.SetTrigger(CloseTrigger);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderAchievement);
}).AddTo(this); }).AddTo(this);
var productList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet); var productList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(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<RarityData> rarityList, List<BulkOrderResultData> resultData, int shopLevel) public static int CalcBonus(List<RarityData> rarityList, List<BulkOrderResultData> resultData, int shopLevel)
{ {
var totalBonus = 0; var totalBonus = 0;

View File

@ -6,6 +6,7 @@ using UnityEngine.UI;
public class BulkOrderAchievedView : MonoBehaviour public class BulkOrderAchievedView : MonoBehaviour
{ {
private static readonly string CallbackTag = "BulkOrderAchievedViewCallback";
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;
@ -34,14 +35,8 @@ public class BulkOrderAchievedView : MonoBehaviour
} }
closeButton.OnClickAsObservable().Take(1).Subscribe(_ => closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
{ {
if (LocalCacheManager.Load<Action>(BulkOrder.AchievedCallbackTag, null) is Action callback) LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
{ LocalCacheManager.Remove(CallbackTag);
callback.Invoke();
}
if (LocalCacheManager.Load<Action>(KitchenManager.ArchivedCallbackTag, null) is Action kitchenCallback)
{
kitchenCallback.Invoke();
}
transform.parent.SetLocalScale(0); transform.parent.SetLocalScale(0);
backgroundAnimator.SetTrigger(CloseTrigger); backgroundAnimator.SetTrigger(CloseTrigger);
this.CallWaitForSeconds(.25f, () => this.CallWaitForSeconds(.25f, () =>
@ -50,4 +45,10 @@ public class BulkOrderAchievedView : MonoBehaviour
}); });
}).AddTo(this); }).AddTo(this);
} }
public static void ShowDialog(Action onComplete = null)
{
LocalCacheManager.Save(CallbackTag, onComplete);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderAchievement);
}
} }

View File

@ -5,6 +5,7 @@ using UnityEngine.UI;
public class BulkOrderCancelView : MonoBehaviour public class BulkOrderCancelView : MonoBehaviour
{ {
private static readonly string CallbackTag = "BulkOrderCancelViewCallback";
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;
@ -32,14 +33,8 @@ public class BulkOrderCancelView : MonoBehaviour
}).AddTo(this); }).AddTo(this);
cancelButton.OnClickAsObservable().Take(1).Subscribe(_ => cancelButton.OnClickAsObservable().Take(1).Subscribe(_ =>
{ {
if (LocalCacheManager.Load<Action>(BulkOrder.CancelCallbackTag, null) is Action callback) LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
{ LocalCacheManager.Remove(CallbackTag);
callback.Invoke();
}
if (LocalCacheManager.Load<Action>(KitchenManager.ArchivedCallbackTag, null) is Action kitchenCallback)
{
kitchenCallback.Invoke();
}
transform.parent.SetLocalScale(0); transform.parent.SetLocalScale(0);
backgroundAnimator.SetTrigger(CloseTrigger); backgroundAnimator.SetTrigger(CloseTrigger);
this.CallWaitForSeconds(.25f, () => this.CallWaitForSeconds(.25f, () =>
@ -48,4 +43,10 @@ public class BulkOrderCancelView : MonoBehaviour
}); });
}).AddTo(this); }).AddTo(this);
} }
public static void ShowDialog(Action onComplete = null)
{
LocalCacheManager.Save(CallbackTag, onComplete);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderCancel);
}
} }

View File

@ -11,7 +11,6 @@ using UnityEngine.UI;
public class KitchenManager : MonoBehaviour public class KitchenManager : MonoBehaviour
{ {
public static readonly string ArchivedCallbackTag = "KitchenCancelCallback";
private static readonly double refreshWaitTime = 300; private static readonly double refreshWaitTime = 300;
[SerializeField] int refreshRewardCoin = 100; [SerializeField] int refreshRewardCoin = 100;
[SerializeField] private Button cookingButton; [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 achieved = bulkOrderData is null || gameData.DeliveredOrder.Contains(bulkOrderData.id) || gameData.AchievedOrderLevel == bulkOrderData.shopLevel;
var cancelled = gameData.OrderIdInProgress == gameData.CancelOrderId; var cancelled = gameData.OrderIdInProgress == gameData.CancelOrderId;
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
LocalCacheManager.Save(ArchivedCallbackTag, new Action(() =>
if (bulkOrderData != null)
{ {
orderIndicatorView.SetIndicate(false, true); var orderList = new List<int>
})); {
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); orderIndicatorView.SetIndicate(result.result, achieved || cancelled);
if (result.result) if (result.result)
{ {
@ -181,11 +193,23 @@ public class KitchenManager : MonoBehaviour
// 通知をタップ後タップ動作を切り替える // 通知をタップ後タップ動作を切り替える
orderIndicatorView.SetIndicate(false, false); orderIndicatorView.SetIndicate(false, false);
orderIndicatorView.TappedPhone.ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(__ => orderIndicatorView.TappedPhone
{ .ThrottleFirst(TimeSpan.FromSeconds(1f))
LocalCacheManager.Remove(Const.ProductViewTypeTag); .Take(1)
TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrder); .Subscribe(__ =>
}).AddTo(this); {
BulkOrder.ShowDialog(
onAchieved: () =>
{
orderIndicatorView.SetIndicate(false, true);
orderIndicatorView.SetBadgeActive(false);
},
onCancel: () =>
{
orderIndicatorView.SetIndicate(false, true);
orderIndicatorView.SetBadgeActive(false);
});
}).AddTo(this);
}).AddTo(this); }).AddTo(this);
} }
else else
@ -196,8 +220,17 @@ public class KitchenManager : MonoBehaviour
.ThrottleFirst(TimeSpan.FromSeconds(1f)) .ThrottleFirst(TimeSpan.FromSeconds(1f))
.Subscribe(_ => .Subscribe(_ =>
{ {
LocalCacheManager.Remove(Const.ProductViewTypeTag); BulkOrder.ShowDialog(
TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrder); onAchieved: () =>
{
orderIndicatorView.SetIndicate(false, true);
orderIndicatorView.SetBadgeActive(false);
},
onCancel: () =>
{
orderIndicatorView.SetIndicate(false, true);
orderIndicatorView.SetBadgeActive(false);
});
}).AddTo(this); }).AddTo(this);
} }
} }