大量注文バグ修正

This commit is contained in:
kimura 2022-05-20 14:09:28 +09:00
parent 30f132a736
commit d3d5f01df9
1 changed files with 54 additions and 47 deletions

View File

@ -290,55 +290,62 @@ public class KitchenManager : MonoBehaviour
Market.StockFlavorLog();
#endif
// 大量注文タップ時の挙動設定
void CheckOrderAndSetPhoneTap()
{
var result = CheckBulkOrder();
orderIndicatorView.SetIndicate(result.newOrder, achieved || cancelled);
if (!result.newOrder)
{
if (!cancelled)
{
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))
{
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);
}
}
}
// 大量注文タップ時の挙動設定
private void CheckOrderAndSetPhoneTap()
{
var gameData = GameDataManager.GameData;
// 大量注文データ
var bulkOrderList = SpreadsheetDataManager.Instance.GetBaseDataList<BulkOrderData>(Const.BulkOrderDataSheet);
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;
var result = CheckBulkOrder();
orderIndicatorView.SetIndicate(result.newOrder, achieved || cancelled);
if (!result.newOrder)
{
if (!cancelled)
{
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))
{
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);
}
}
private void SetPhoneTap()
{
tapPhoneDisposable?.Dispose();