店頭補充方法の切り替え実装
This commit is contained in:
parent
613995dd84
commit
79adb82aa9
|
|
@ -45,6 +45,7 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
private readonly Subject<(bool isReorder, List<int> orders)> sellOrderSubject = new Subject<(bool, List<int>)>();
|
private readonly Subject<(bool isReorder, List<int> orders)> sellOrderSubject = new Subject<(bool, List<int>)>();
|
||||||
|
|
||||||
private int orderIndex;
|
private int orderIndex;
|
||||||
|
private int oneByOneIndex = 0;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
|
|
@ -411,15 +412,36 @@ public class Market : SingletonMonoBehaviour<Market>
|
||||||
// へらした分を店頭リストに追加する
|
// へらした分を店頭リストに追加する
|
||||||
var gameData = GameDataManager.GameData;
|
var gameData = GameDataManager.GameData;
|
||||||
var shopSpace = ShopStockCount - gameData.ShopStock.Count;
|
var shopSpace = ShopStockCount - gameData.ShopStock.Count;
|
||||||
foreach (var tank in gameData.StorageTanks.Where(tank => !tank.IsEmpty))
|
switch (gameData.RefillMode)
|
||||||
{
|
{
|
||||||
if (shopSpace == 0)
|
case ProductRefillMode.OneByOne:
|
||||||
{
|
while (shopSpace > 0 && gameData.StorageTanks.Sum(data => data.Stock) > 0)
|
||||||
|
{
|
||||||
|
var tanks = gameData.StorageTanks.Where(tank => !tank.IsEmpty).ToList();
|
||||||
|
if (oneByOneIndex >= tanks.Count)
|
||||||
|
{
|
||||||
|
oneByOneIndex = 0;
|
||||||
|
}
|
||||||
|
var stockList = tanks[oneByOneIndex].GetStock(1);
|
||||||
|
gameData.ShopStock.AddRange(stockList);
|
||||||
|
shopSpace -= stockList.Count;
|
||||||
|
oneByOneIndex++;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
case ProductRefillMode.TankByTank:
|
||||||
var stockList = tank.GetStock(shopSpace);
|
foreach (var tank in gameData.StorageTanks.Where(tank => !tank.IsEmpty))
|
||||||
gameData.ShopStock.AddRange(stockList);
|
{
|
||||||
shopSpace -= stockList.Count;
|
if (shopSpace == 0)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
var stockList = tank.GetStock(shopSpace);
|
||||||
|
gameData.ShopStock.AddRange(stockList);
|
||||||
|
shopSpace -= stockList.Count;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException();
|
||||||
}
|
}
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue