自動調理ワールド対応

This commit is contained in:
kimura 2022-10-14 15:22:55 +09:00
parent 8b2f64ad3e
commit faa0f8c56e
2 changed files with 14 additions and 14 deletions

View File

@ -20,14 +20,14 @@ namespace MyGame.Scenes.Main.Scripts
[SerializeField] private AutoCookPopcornView[] popcorns; [SerializeField] private AutoCookPopcornView[] popcorns;
private void Start() private void Start()
{ {
var gameData = GameDataManager.GameData; var cityGameData = GameDataManager.GetCurrentCityGameData();
var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet); var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
var autoCookData = autoCookDataList.First(data => data.level == gameData.AutoCookLevel); var autoCookData = autoCookDataList.First(data => data.level == cityGameData.AutoCookLevel);
// アイテムのリスト生成 // アイテムのリスト生成
var productList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet); var productList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet);
var productCount = Mathf.CeilToInt((float)autoCookData.earnCount / Const.TankCapacity); var productCount = Mathf.CeilToInt((float)autoCookData.earnCount / Const.TankCapacity);
var earnIds = gameData.AutoCookProducts.Take(productCount).ToArray(); var earnIds = cityGameData.AutoCookProducts.Take(productCount).ToArray();
var earnProductArray = productList var earnProductArray = productList
.Where(data => earnIds.Contains(data.id)) .Where(data => earnIds.Contains(data.id))
.Select(data => new ProductData(data, 1){volume = Const.TankCapacity}) .Select(data => new ProductData(data, 1){volume = Const.TankCapacity})
@ -41,7 +41,7 @@ namespace MyGame.Scenes.Main.Scripts
earnProductArray.Last().volume = lastProductAmount; earnProductArray.Last().volume = lastProductAmount;
// タンクの空き確認 // タンクの空き確認
var emptyTankCount = gameData.StorageTanks.Count(tank => tank.IsEmpty); var emptyTankCount = cityGameData.StorageTanks.Count(tank => tank.IsEmpty);
var discardProductList = new List<ProductData>(); var discardProductList = new List<ProductData>();
// 価格が高い順に破棄対象にする // 価格が高い順に破棄対象にする
@ -59,7 +59,7 @@ namespace MyGame.Scenes.Main.Scripts
else else
{ {
// 空以外の補充可能な空きがあるタンクを優先して判定する // 空以外の補充可能な空きがあるタンクを優先して判定する
if (gameData.StorageTanks.Exists(data => !data.IsEmpty && data.FlavorId == productData.id && data.Capacity - data.Stock >= productData.volume)) if (cityGameData.StorageTanks.Exists(data => !data.IsEmpty && data.FlavorId == productData.id && data.Capacity - data.Stock >= productData.volume))
{ {
continue; continue;
} }
@ -107,15 +107,15 @@ namespace MyGame.Scenes.Main.Scripts
} }
// 自動調理セーブ // 自動調理セーブ
gameData.AutoCookProducts = Array.Empty<int>(); cityGameData.AutoCookProducts = Array.Empty<int>();
var maxLevel = autoCookDataList.Last().level; var maxLevel = autoCookDataList.Last().level;
if (gameData.AutoCookLevel < maxLevel) if (cityGameData.AutoCookLevel < maxLevel)
{ {
gameData.AutoCookUsesCount++; cityGameData.AutoCookUsesCount++;
if (gameData.AutoCookUsesCount >= autoCookData.clearCount) if (cityGameData.AutoCookUsesCount >= autoCookData.clearCount)
{ {
gameData.AutoCookUsesCount = 0; cityGameData.AutoCookUsesCount = 0;
gameData.AutoCookLevel++; cityGameData.AutoCookLevel++;
} }
} }
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();

View File

@ -26,10 +26,10 @@ namespace MyGame.Scenes.Main.Scripts
private void Start() private void Start()
{ {
var gameData = GameDataManager.GameData; var cityGameData = GameDataManager.GetCurrentCityGameData();
var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet); var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
var autoCookData = autoCookDataList.First(data => data.level == gameData.AutoCookLevel); var autoCookData = autoCookDataList.First(data => data.level == cityGameData.AutoCookLevel);
var remainingTime = DateTime.FromBinary(gameData.AutoCookFinishTime).Subtract(DateTime.UtcNow); var remainingTime = DateTime.FromBinary(cityGameData.AutoCookFinishTime).Subtract(DateTime.UtcNow);
closeButton.OnClickAsObservable().Take(1).Subscribe(_ => closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
{ {