parent
79adb82aa9
commit
7c692ba915
|
|
@ -159,6 +159,12 @@ public class CookingResult : MonoBehaviour
|
|||
Rarity = rarity,
|
||||
}, stockCount));
|
||||
remain -= stockCount;
|
||||
// ShopStockに補充された場合、DisplayFlavors更新
|
||||
if (stockCount > 0)
|
||||
{
|
||||
Market.Instance.RefillDisplayFlavors(gameData.ShopStock);
|
||||
Market.Instance.CheckStock(gameData.ShopStock);
|
||||
}
|
||||
|
||||
// 空タンク並び替え
|
||||
gameData.StorageTanks = gameData.StorageTanks.OrderBy(tank => tank.IsEmpty).ToList();
|
||||
|
|
|
|||
|
|
@ -182,7 +182,20 @@ public class Market : SingletonMonoBehaviour<Market>
|
|||
$"orders:{orders.Count} {string.Join(",", orders)}");
|
||||
#endif
|
||||
// 表示データ更新
|
||||
var isReorder = RefillDisplayFlavors(gameData.ShopStock, orders, shuffledOrder.Count);
|
||||
var isReorder = false;
|
||||
var refillList = new List<int>();
|
||||
if (gameData.ShopStock.Count > shuffledOrder.Count)
|
||||
{
|
||||
refillList = RefillDisplayFlavors(gameData.ShopStock);
|
||||
}
|
||||
else
|
||||
{
|
||||
isReorder = CheckRemaining(gameData.ShopStock.Count);
|
||||
if (isReorder)
|
||||
{
|
||||
ReShuffle(gameData.ShopStock);
|
||||
}
|
||||
}
|
||||
|
||||
this.CallWaitForSeconds(1.5f, () =>
|
||||
{
|
||||
|
|
@ -446,34 +459,47 @@ public class Market : SingletonMonoBehaviour<Market>
|
|||
GameDataManager.SaveGameData();
|
||||
}
|
||||
|
||||
private bool RefillDisplayFlavors(List<ProductStockData> shopStock, List<int> orders, int remain)
|
||||
public List<int> RefillDisplayFlavors(List<ProductStockData> shopStock)
|
||||
{
|
||||
// 補充された場合店頭のフレーバー入れ替え
|
||||
if (shopStock.Count == ShopStockCount)
|
||||
var refillCount = shopStock.Count - shuffledOrder.Count;
|
||||
if (refillCount <= 0)
|
||||
{
|
||||
shuffledOrder.AddRange(orders);
|
||||
var refillList = shopStock.GetRange(remain, orders.Count);
|
||||
for (int i = 0; i < orders.Count; i++)
|
||||
{
|
||||
displayFlavors[orders[i]] = refillList[i];
|
||||
return new List<int>();
|
||||
}
|
||||
}
|
||||
else if (shopStock.Count <= 13 && shuffledOrder.Exists(x => x > 13))
|
||||
{
|
||||
// 補充候補リスト
|
||||
var orders = Enumerable.Range(0, shopStock.Count).Except(shuffledOrder).ToList();
|
||||
var refillList = orders.OrderBy(_ => Random.value).ToList();
|
||||
shuffledOrder.AddRange(refillList);
|
||||
displayFlavors = shopStock.ToList();
|
||||
shuffledOrder = ShuffleOrder(displayFlavors.Count);
|
||||
return refillList;
|
||||
}
|
||||
|
||||
private bool CheckRemaining(int currentShopStockCount)
|
||||
{
|
||||
if (currentShopStockCount <= 13 && shuffledOrder.Exists(x => x > 13))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (shopStock.Count <= 7 && shuffledOrder.Exists(x => x > 7))
|
||||
if (currentShopStockCount <= 7 && shuffledOrder.Exists(x => x > 7))
|
||||
{
|
||||
displayFlavors = shopStock.ToList();
|
||||
shuffledOrder = ShuffleOrder(displayFlavors.Count);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void ReShuffle(List<ProductStockData> shopStock)
|
||||
{
|
||||
displayFlavors = shopStock.ToList();
|
||||
shuffledOrder = ShuffleOrder(displayFlavors.Count);
|
||||
}
|
||||
|
||||
public void CheckStock(List<ProductStockData> shopStock)
|
||||
{
|
||||
shopState.Value = shopStock.Count == 0 ? ShopState.Close : ShopState.Open;
|
||||
}
|
||||
|
||||
public void AdClickAction()
|
||||
{
|
||||
customerFlow.StartAdWalker();
|
||||
|
|
|
|||
Loading…
Reference in New Issue