addstockをProductStockDataに対応
This commit is contained in:
parent
69474cea6a
commit
973384ccfd
|
|
@ -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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue