add 販売処理エラー制御&ログ出力
This commit is contained in:
parent
6bc95c32d8
commit
79aa7e94d1
|
|
@ -173,16 +173,41 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
// コーンの味吹き出しを設定
|
// コーンの味吹き出しを設定
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
// 不正なオーダーの場合お客さん制御
|
||||||
|
foreach (var t in tmpOrders)
|
||||||
|
{
|
||||||
|
if (gameData.ShopStock.Contains(displayFlavors[t]))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (controller.OrderCount >= 1)
|
||||||
|
{
|
||||||
|
controller.OrderCount--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 購入しないお客さん扱いで退場
|
||||||
|
if (controller.OrderCount == 0)
|
||||||
|
{
|
||||||
|
controller.CallWaitForSeconds(1.5f, () =>
|
||||||
|
{
|
||||||
|
controller.ChangeCustomerState(CustomerState.Leave);
|
||||||
|
});
|
||||||
|
dontBuyCustomerList.Add(controller);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
controller.SetWantFlavor(displayFlavors[tmpOrders.RandomChoose()]);
|
controller.SetWantFlavor(displayFlavors[tmpOrders.RandomChoose()]);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Debug.LogError($"d:{displayFlavors.Count}, {string.Join("", tmpOrders)}" +
|
|
||||||
$"\nshuffled:{shuffledOrder.Count}, maxNum:{shuffledOrder.Max()}");
|
|
||||||
/*
|
/*
|
||||||
* 例外握りつぶし
|
* 例外握りつぶし
|
||||||
* 存在しないorderを引いたのでそのまま処理せず逃がす
|
* 存在しないorderを引いたのでそのまま処理せず逃がす
|
||||||
*/
|
*/
|
||||||
|
Debug.LogError($"d:{displayFlavors.Count}, {string.Join("", tmpOrders)}" +
|
||||||
|
$"\nshuffled:{shuffledOrder.Count}, maxNum:{shuffledOrder.Max()}");
|
||||||
controller.CallWaitForSeconds(1.5f, () =>
|
controller.CallWaitForSeconds(1.5f, () =>
|
||||||
{
|
{
|
||||||
controller.ChangeCustomerState(CustomerState.Leave);
|
controller.ChangeCustomerState(CustomerState.Leave);
|
||||||
|
|
@ -442,6 +467,15 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
var productData = recipeList.First(data => data.id == stockData.FlavorId);
|
var productData = recipeList.First(data => data.id == stockData.FlavorId);
|
||||||
var rarityData = rarityList.First(data => data.Rarity == stockData.Rarity);
|
var rarityData = rarityList.First(data => data.Rarity == stockData.Rarity);
|
||||||
var targetIndex = gameData.ShopStock.FindIndex(data => data.FlavorId == stockData.FlavorId && data.Rarity == stockData.Rarity);
|
var targetIndex = gameData.ShopStock.FindIndex(data => data.FlavorId == stockData.FlavorId && data.Rarity == stockData.Rarity);
|
||||||
|
if (targetIndex == -1)
|
||||||
|
{
|
||||||
|
Debug.LogError($@"data
|
||||||
|
-----stockData: {stockData.FlavorId}, {stockData.Rarity}
|
||||||
|
-----shopStock: {gameData.ShopStock.Aggregate("", (s, data) => $"{s},{data.FlavorId}")}
|
||||||
|
displayFlavors: {displayFlavors.Aggregate("", (s, data) => $"{s},{data.FlavorId}")}");
|
||||||
|
Observable.NextFrame().Subscribe(_ => throw new Exception("DisplayFlavors Invalid")).AddTo(this);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
gameData.ShopStock.RemoveAt(targetIndex);
|
gameData.ShopStock.RemoveAt(targetIndex);
|
||||||
gameData.AddSalesCount(stockData.FlavorId, 1, stockData.Rarity);
|
gameData.AddSalesCount(stockData.FlavorId, 1, stockData.Rarity);
|
||||||
coin += productData.GetRarityPrice(rarityData.Rarity);
|
coin += productData.GetRarityPrice(rarityData.Rarity);
|
||||||
|
|
|
||||||
|
|
@ -248,18 +248,26 @@ public class MarketManager : MonoBehaviour
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
var isError = false;
|
||||||
// 補充したフレーバーのスキンを設定
|
// 補充したフレーバーのスキンを設定
|
||||||
foreach (var order in x.refillList)
|
foreach (var order in x.refillList)
|
||||||
{
|
{
|
||||||
try
|
if (order >= market.DisplayFlavors.Count)
|
||||||
{
|
{
|
||||||
cartView.Refill(order, market.DisplayFlavors[order]);
|
isError = true;
|
||||||
}
|
Debug.LogError($@"mismatch order:{order}, displayFlavors:{market.DisplayFlavors.Count}");
|
||||||
catch (Exception e)
|
continue;
|
||||||
{
|
|
||||||
Debug.LogError($"order:{order}, displayFlavors:{market.DisplayFlavors.Count}");
|
|
||||||
throw;
|
|
||||||
}
|
}
|
||||||
|
cartView.Refill(order, market.DisplayFlavors[order]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isError)
|
||||||
|
{
|
||||||
|
Debug.LogError($@"list
|
||||||
|
shopStock: {gameData.ShopStock.Aggregate("", (s, data) => $"{s},{data.FlavorId}")}
|
||||||
|
displayFlavors: {market.DisplayFlavors.Aggregate("", (s, data) => $"{s},{data.FlavorId}")}
|
||||||
|
refillList: {x.refillList.Aggregate("", (s, order) => $"{s},{order}")}");
|
||||||
|
throw new Exception("RefillList Invalid");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue