diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs index 1cd5a492..4a124990 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs @@ -212,15 +212,25 @@ public class CookingResult : MonoBehaviour 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 remain = productData.volume; + var remain = productStockData.Stock; var shopSpace = Market.ShopStockCount - gameData.ShopStock.Count; var stockCount = Mathf.Min(shopSpace, remain); gameData.ShopStock.AddRange(Enumerable.Repeat(new ProductStockData { - FlavorId = productData.id, - Rarity = rarity, + FlavorId = productStockData.FlavorId, + Rarity = productStockData.Rarity, }, stockCount)); remain -= stockCount; // ShopStockに補充された場合、DisplayFlavors更新 @@ -235,7 +245,7 @@ public class CookingResult : MonoBehaviour // 空きのタンクを確認 gameData.StorageTanks .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)) .OrderBy(x => x.space) .ToList() @@ -248,14 +258,13 @@ public class CookingResult : MonoBehaviour // タンクが空ならフレーバー設定 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); - gameData.StorageTanks[x.i].AddStock(rarity, stockCount); + gameData.StorageTanks[x.i].AddStock(productStockData.Rarity, stockCount); remain -= stockCount; }); - GameDataManager.SaveGameData(); } }