キッチン大量注文通知修正

This commit is contained in:
kimura 2022-11-14 17:55:54 +09:00
parent fe2b405950
commit d5dce6d722
1 changed files with 26 additions and 33 deletions

View File

@ -38,8 +38,6 @@ public class KitchenManager : MonoBehaviour
SoundManager.Instance.PlayBGM("bgm_Main"); SoundManager.Instance.PlayBGM("bgm_Main");
globalGameData = GameDataManager.GameData; globalGameData = GameDataManager.GameData;
cityGameData = GameDataManager.GetCurrentCityGameData(); cityGameData = GameDataManager.GetCurrentCityGameData();
// globalGameData.CustomizeCoinElapsed = Int32.MaxValue / 2;
// PartTimerManager.Instance.UpdateList();
var cityDataList = SpreadsheetDataManager.Instance.GetBaseDataList<CityData>(Const.CityDataSheet); var cityDataList = SpreadsheetDataManager.Instance.GetBaseDataList<CityData>(Const.CityDataSheet);
var cityData = cityDataList.First(data => data.id == GameDataManager.GameData.CurrentCityId); var cityData = cityDataList.First(data => data.id == GameDataManager.GameData.CurrentCityId);
@ -100,7 +98,27 @@ public class KitchenManager : MonoBehaviour
} }
else else
{ {
CheckOrderAndSetPhoneTap(); orderIndicatorView.SetBadgeActive(false);
var hasNewOrder = CheckOrderAndSetPhoneTap();
if (!hasNewOrder)
{
// 大量注文達成通知
var bulkOrderList = SpreadsheetDataManager.Instance.GetBaseDataList<BulkOrderData>(Const.BulkOrderDataSheet);
if (bulkOrderList.FirstOrDefault(data => data.id == cityGameData.OrderIdInProgress) is { } bulkOrderData)
{
var completed = cityGameData.CompletedProductList.Count == bulkOrderData.OrderList.Count(tuple => tuple.productId != 0);
var achieved = cityGameData.AchievedOrderLevel == bulkOrderData.shopLevel || cityGameData.DeliveredOrder.Contains(bulkOrderData.id);
var cancelled = cityGameData.OrderIdInProgress == cityGameData.CancelOrderId;
orderIndicatorView.SetBadgeActive(completed && !achieved && !cancelled);
orderIndicatorView.SetIndicate(false, achieved || cancelled);
if (!cancelled) SetPhoneTap();
}
else
{
orderIndicatorView.SetBadgeActive(false);
orderIndicatorView.SetIndicate(false, true);
}
}
} }
// バイト有効時は自動調理と大量注文が非表示 // バイト有効時は自動調理と大量注文が非表示
partTimerButtonView.gameObject.SetActive(isPartTimer); partTimerButtonView.gameObject.SetActive(isPartTimer);
@ -108,22 +126,6 @@ public class KitchenManager : MonoBehaviour
autoCookView.SetActive(!isPartTimer && globalGameData.ViewedShopLevel >= Const.AutoCookAvailableLevel); autoCookView.SetActive(!isPartTimer && globalGameData.ViewedShopLevel >= Const.AutoCookAvailableLevel);
kitchenView.SetActive(!isPartTimer); kitchenView.SetActive(!isPartTimer);
// 大量注文達成通知
var bulkOrderList = SpreadsheetDataManager.Instance.GetBaseDataList<BulkOrderData>(Const.BulkOrderDataSheet);
if (bulkOrderList.FirstOrDefault(data => data.id == cityGameData.OrderIdInProgress) is { } bulkOrderData)
{
var completed = cityGameData.CompletedProductList.Count == bulkOrderData.OrderList.Count(tuple => tuple.productId != 0);
var achieved = cityGameData.AchievedOrderLevel == bulkOrderData.shopLevel || cityGameData.DeliveredOrder.Contains(bulkOrderData.id);
var cancelled = cityGameData.OrderIdInProgress == cityGameData.CancelOrderId;
orderIndicatorView.SetBadgeActive(completed && !achieved && !cancelled);
orderIndicatorView.SetIndicate(false, achieved || cancelled);
}
else
{
orderIndicatorView.SetBadgeActive(false);
orderIndicatorView.SetIndicate(false, true);
}
// 大量注文の調理から戻ってきたときにダイアログ開く // 大量注文の調理から戻ってきたときにダイアログ開く
if (LocalCacheManager.Load(Const.ProductViewTypeTag, ProductViewType.Default) == ProductViewType.BulkOrder) if (LocalCacheManager.Load(Const.ProductViewTypeTag, ProductViewType.Default) == ProductViewType.BulkOrder)
{ {
@ -368,21 +370,12 @@ public class KitchenManager : MonoBehaviour
} }
// 大量注文タップ時の挙動設定 // 大量注文タップ時の挙動設定
private void CheckOrderAndSetPhoneTap() private bool CheckOrderAndSetPhoneTap()
{ {
if (BulkOrder.CheckBulkOrder() is { } nextOrderData) if (BulkOrder.CheckBulkOrder() is not { } nextOrderData) return false;
{ orderIndicatorView.SetIndicate(true, false);
orderIndicatorView.SetIndicate(true, false); SetPhoneTap(nextOrderData);
SetPhoneTap(nextOrderData); return true;
return;
}
var cancelled = cityGameData.OrderIdInProgress == cityGameData.CancelOrderId;
if (cancelled)
{
return;
}
SetPhoneTap();
} }
private void SetPhoneTap(BulkOrderData nextOrderData = null) private void SetPhoneTap(BulkOrderData nextOrderData = null)