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)
{
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();
}
}