addstockをProductStockDataに対応

This commit is contained in:
kimura 2022-02-03 10:28:42 +09:00
parent 69474cea6a
commit 973384ccfd
1 changed files with 16 additions and 7 deletions

View File

@ -212,15 +212,25 @@ public class CookingResult : MonoBehaviour
public static void AddStock(ProductData productData, ProductRarity rarity = ProductRarity.Normal) public static void AddStock(ProductData productData, ProductRarity rarity = ProductRarity.Normal)
{ {
AddStock(new ProductStockData{FlavorId = productData.id, Stock = productData.volume, Rarity = rarity});
GameDataManager.SaveGameData();
}
public static void AddStock(ProductStockData productStockData)
{
if (productStockData.Stock == 0)
{
return;
}
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
// 店頭の空きに追加 // 店頭の空きに追加
var remain = productData.volume; var remain = productStockData.Stock;
var shopSpace = Market.ShopStockCount - gameData.ShopStock.Count; var shopSpace = Market.ShopStockCount - gameData.ShopStock.Count;
var stockCount = Mathf.Min(shopSpace, remain); var stockCount = Mathf.Min(shopSpace, remain);
gameData.ShopStock.AddRange(Enumerable.Repeat(new ProductStockData gameData.ShopStock.AddRange(Enumerable.Repeat(new ProductStockData
{ {
FlavorId = productData.id, FlavorId = productStockData.FlavorId,
Rarity = rarity, Rarity = productStockData.Rarity,
}, stockCount)); }, stockCount));
remain -= stockCount; remain -= stockCount;
// ShopStockに補充された場合、DisplayFlavors更新 // ShopStockに補充された場合、DisplayFlavors更新
@ -235,7 +245,7 @@ public class CookingResult : MonoBehaviour
// 空きのタンクを確認 // 空きのタンクを確認
gameData.StorageTanks gameData.StorageTanks
.Select((tank, i) => (tank, i)) .Select((tank, i) => (tank, i))
.Where(x => x.tank.IsEmpty || x.tank.FlavorId == productData.id && !x.tank.IsFull) .Where(x => x.tank.IsEmpty || x.tank.FlavorId == productStockData.FlavorId && !x.tank.IsFull)
.Select(x => (x.i, space: x.tank.Capacity - x.tank.Stock)) .Select(x => (x.i, space: x.tank.Capacity - x.tank.Stock))
.OrderBy(x => x.space) .OrderBy(x => x.space)
.ToList() .ToList()
@ -248,14 +258,13 @@ public class CookingResult : MonoBehaviour
// タンクが空ならフレーバー設定 // タンクが空ならフレーバー設定
if (gameData.StorageTanks[x.i].IsEmpty) if (gameData.StorageTanks[x.i].IsEmpty)
{ {
gameData.StorageTanks[x.i].FlavorId = productData.id; gameData.StorageTanks[x.i].FlavorId = productStockData.FlavorId;
} }
// タンクに追加 // タンクに追加
stockCount = Mathf.Min(x.space, remain); stockCount = Mathf.Min(x.space, remain);
gameData.StorageTanks[x.i].AddStock(rarity, stockCount); gameData.StorageTanks[x.i].AddStock(productStockData.Rarity, stockCount);
remain -= stockCount; remain -= stockCount;
}); });
GameDataManager.SaveGameData();
} }
} }