レベルアップ時に大量注文の新着を確認する処理を追加
This commit is contained in:
parent
e6c045e2b1
commit
d5e4308503
|
|
@ -21,7 +21,8 @@ public class KitchenManager : MonoBehaviour
|
|||
[SerializeField] private BulkOrderIndicatorView orderIndicatorView;
|
||||
|
||||
private readonly Subject<Unit> showAdDialogSubject = new Subject<Unit>();
|
||||
IDisposable timerDisposable = null;
|
||||
private IDisposable timerDisposable = null;
|
||||
private IDisposable tapPhoneDisposable;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
|
|
@ -41,6 +42,8 @@ public class KitchenManager : MonoBehaviour
|
|||
var bulkOrderData = bulkOrderList.FirstOrDefault(data => data.id == gameData.OrderIdInProgress);
|
||||
var achieved = bulkOrderData is null || gameData.DeliveredOrder.Contains(bulkOrderData.id) || gameData.AchievedOrderLevel == bulkOrderData.shopLevel;
|
||||
var cancelled = gameData.OrderIdInProgress == gameData.CancelOrderId;
|
||||
|
||||
CheckOrderAndSetPhoneTap();
|
||||
|
||||
// 大量注文達成通知
|
||||
if (bulkOrderData == null)
|
||||
|
|
@ -58,7 +61,13 @@ public class KitchenManager : MonoBehaviour
|
|||
var completed = gameData.CompletedProductList.Count == orderList.Count(x => x != 0);
|
||||
orderIndicatorView.SetBadgeActive(completed && !achieved && !cancelled);
|
||||
}
|
||||
|
||||
|
||||
// 大量注文の調理から戻ってきたときにダイアログ開く
|
||||
if (LocalCacheManager.Load(Const.ProductViewTypeTag, ProductViewType.Default) == ProductViewType.BulkOrder)
|
||||
{
|
||||
BulkOrderShowDialogWithSetup();
|
||||
}
|
||||
|
||||
// tutorial
|
||||
if (!gameData.FinishedFlags.HasFlag(TutorialFlag.FirstPlay))
|
||||
{
|
||||
|
|
@ -116,7 +125,7 @@ public class KitchenManager : MonoBehaviour
|
|||
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
ShopLevelUp.ShowDialog(gameData.ViewedShopLevel + 1);
|
||||
ShopLevelUp.ShowDialog(gameData.ViewedShopLevel + 1, CheckOrderAndSetPhoneTap);
|
||||
}).AddTo(this);
|
||||
|
||||
GameDataObserver.Instance.HeartObserver
|
||||
|
|
@ -197,66 +206,70 @@ public class KitchenManager : MonoBehaviour
|
|||
adButton.gameObject.SetActive(false);
|
||||
kitchenView.SetNormalAnimation();
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
Debug.Log($"remaining: {remaining}");
|
||||
Market.StockFlavorLog();
|
||||
#endif
|
||||
var result = CheckBulkOrder();
|
||||
orderIndicatorView.SetIndicate(result.newOrder, achieved || cancelled);
|
||||
if (LocalCacheManager.Load(Const.ProductViewTypeTag, ProductViewType.Default) == ProductViewType.BulkOrder)
|
||||
{
|
||||
BulkOrderShowDialogWithSetup();
|
||||
}
|
||||
|
||||
if (!result.newOrder)
|
||||
// 大量注文タップ時の挙動設定
|
||||
void CheckOrderAndSetPhoneTap()
|
||||
{
|
||||
if (gameData.OrderIdInProgress != gameData.CancelOrderId)
|
||||
var result = CheckBulkOrder();
|
||||
orderIndicatorView.SetIndicate(result.newOrder, achieved || cancelled);
|
||||
|
||||
if (!result.newOrder)
|
||||
{
|
||||
orderIndicatorView.TappedPhone
|
||||
.ThrottleFirst(TimeSpan.FromSeconds(1f))
|
||||
.Subscribe(_ =>
|
||||
if (gameData.OrderIdInProgress != gameData.CancelOrderId)
|
||||
{
|
||||
SetPhoneTap();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 新着処理
|
||||
SoundManager.Instance.StopSE("se_Main_phone_sound");
|
||||
var messageList = SpreadsheetDataManager.Instance.GetBaseDataList<BulkOrderTextData>(Const.BulkOrderTextDataSheet);
|
||||
var nextMessageList = messageList.Where(data => data.shopLevel == result.nextOrderLevel).ToList();
|
||||
tapPhoneDisposable?.Dispose();
|
||||
tapPhoneDisposable = orderIndicatorView.TappedPhone.Take(1).Subscribe(_ =>
|
||||
{
|
||||
// タップで更新
|
||||
gameData.CompletedProductList.Clear();
|
||||
gameData.OrderIdInProgress = result.nextOrderId;
|
||||
if (nextMessageList.Exists(data => data.id == gameData.OrderTextId))
|
||||
{
|
||||
BulkOrderShowDialogWithSetup();
|
||||
}).AddTo(this);
|
||||
var nextMessageIndex = nextMessageList.FindIndex(data => data.id == gameData.OrderTextId) + 1;
|
||||
gameData.OrderTextId = nextMessageList[nextMessageIndex >= nextMessageList.Count ? 0 : nextMessageIndex].id;
|
||||
}
|
||||
else
|
||||
{
|
||||
gameData.OrderTextId = nextMessageList.First().id;
|
||||
}
|
||||
|
||||
GameDataManager.SaveGameData();
|
||||
|
||||
var orderData = bulkOrderList.First(data => data.id == result.nextOrderId);
|
||||
LocalCacheManager.Save(BulkOrder.DataTag, orderData);
|
||||
BulkOrderNotifyView.ShowDialog(BulkOrderShowDialogWithSetup);
|
||||
|
||||
// 通知をタップ後タップ動作を切り替える
|
||||
SetPhoneTap();
|
||||
orderIndicatorView.SetIndicate(false, false);
|
||||
}).AddTo(this);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SoundManager.Instance.StopSE("se_Main_phone_sound");
|
||||
|
||||
var messageList = SpreadsheetDataManager.Instance.GetBaseDataList<BulkOrderTextData>(Const.BulkOrderTextDataSheet);
|
||||
var nextMessageList = messageList.Where(data => data.shopLevel == result.nextOrderLevel).ToList();
|
||||
orderIndicatorView.TappedPhone.Take(1).Subscribe(_ =>
|
||||
}
|
||||
|
||||
private void SetPhoneTap()
|
||||
{
|
||||
tapPhoneDisposable?.Dispose();
|
||||
tapPhoneDisposable = orderIndicatorView.TappedPhone
|
||||
.ThrottleFirst(TimeSpan.FromSeconds(1f))
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
// タップで更新
|
||||
gameData.CompletedProductList.Clear();
|
||||
gameData.OrderIdInProgress = result.nextOrderId;
|
||||
if (nextMessageList.Exists(data => data.id == gameData.OrderTextId))
|
||||
{
|
||||
var nextMessageIndex = nextMessageList.FindIndex(data => data.id == gameData.OrderTextId) + 1;
|
||||
gameData.OrderTextId = nextMessageList[nextMessageIndex >= nextMessageList.Count ? 0 : nextMessageIndex].id;
|
||||
}
|
||||
else
|
||||
{
|
||||
gameData.OrderTextId = nextMessageList.First().id;
|
||||
}
|
||||
|
||||
GameDataManager.SaveGameData();
|
||||
|
||||
var orderData = bulkOrderList.First(data => data.id == result.nextOrderId);
|
||||
LocalCacheManager.Save(BulkOrder.DataTag, orderData);
|
||||
BulkOrderNotifyView.ShowDialog(BulkOrderShowDialogWithSetup);
|
||||
|
||||
// 通知をタップ後タップ動作を切り替える
|
||||
orderIndicatorView.SetIndicate(false, false);
|
||||
orderIndicatorView.TappedPhone
|
||||
.ThrottleFirst(TimeSpan.FromSeconds(1f))
|
||||
.Subscribe(__ =>
|
||||
{
|
||||
BulkOrderShowDialogWithSetup();
|
||||
}).AddTo(this);
|
||||
BulkOrderShowDialogWithSetup();
|
||||
}).AddTo(this);
|
||||
}
|
||||
}
|
||||
|
||||
private void BulkOrderShowDialogWithSetup()
|
||||
|
|
|
|||
Loading…
Reference in New Issue