店頭補充方法の切り替え実装
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 int orderIndex;
|
||||
private int oneByOneIndex = 0;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
|
|
@ -411,15 +412,36 @@ public class Market : SingletonMonoBehaviour<Market>
|
|||
// へらした分を店頭リストに追加する
|
||||
var gameData = GameDataManager.GameData;
|
||||
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;
|
||||
}
|
||||
var stockList = tank.GetStock(shopSpace);
|
||||
gameData.ShopStock.AddRange(stockList);
|
||||
shopSpace -= stockList.Count;
|
||||
case ProductRefillMode.TankByTank:
|
||||
foreach (var tank in gameData.StorageTanks.Where(tank => !tank.IsEmpty))
|
||||
{
|
||||
if (shopSpace == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
var stockList = tank.GetStock(shopSpace);
|
||||
gameData.ShopStock.AddRange(stockList);
|
||||
shopSpace -= stockList.Count;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
GameDataManager.SaveGameData();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue