parent
79adb82aa9
commit
7c692ba915
|
|
@ -159,6 +159,12 @@ public class CookingResult : MonoBehaviour
|
||||||
Rarity = rarity,
|
Rarity = rarity,
|
||||||
}, stockCount));
|
}, stockCount));
|
||||||
remain -= 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();
|
gameData.StorageTanks = gameData.StorageTanks.OrderBy(tank => tank.IsEmpty).ToList();
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,20 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
$"orders:{orders.Count} {string.Join(",", orders)}");
|
$"orders:{orders.Count} {string.Join(",", orders)}");
|
||||||
#endif
|
#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, () =>
|
this.CallWaitForSeconds(1.5f, () =>
|
||||||
{
|
{
|
||||||
|
|
@ -446,34 +459,47 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
GameDataManager.SaveGameData();
|
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);
|
return new List<int>();
|
||||||
var refillList = shopStock.GetRange(remain, orders.Count);
|
|
||||||
for (int i = 0; i < orders.Count; i++)
|
|
||||||
{
|
|
||||||
displayFlavors[orders[i]] = refillList[i];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
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();
|
||||||
|
return refillList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool CheckRemaining(int currentShopStockCount)
|
||||||
|
{
|
||||||
|
if (currentShopStockCount <= 13 && shuffledOrder.Exists(x => x > 13))
|
||||||
{
|
{
|
||||||
displayFlavors = shopStock.ToList();
|
|
||||||
shuffledOrder = ShuffleOrder(displayFlavors.Count);
|
|
||||||
return true;
|
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 true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
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()
|
public void AdClickAction()
|
||||||
{
|
{
|
||||||
customerFlow.StartAdWalker();
|
customerFlow.StartAdWalker();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue