From af3bf40a65652c1d6e0a4e24bf1b16d829b459fc Mon Sep 17 00:00:00 2001 From: kimura Date: Tue, 10 Aug 2021 15:59:19 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=9D=E3=83=83=E3=83=97=E3=82=B3=E3=83=BC?= =?UTF-8?q?=E3=83=B3=E5=AE=8C=E6=88=90=E6=99=82=E3=81=AE=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=A0=B4=E6=89=80=E3=81=AE=E8=A8=88=E7=AE=97=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Cooking/Scripts/PopcornGameManager.cs | 44 +++++++++++++------ 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PopcornGameManager.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PopcornGameManager.cs index adea4aeb..eccfb93e 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PopcornGameManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PopcornGameManager.cs @@ -95,7 +95,10 @@ public class PopcornGameManager : MonoBehaviour this.CallWaitForSeconds(1.2f, () => { SetResult(x); - AddStock(); + if (x != CornResult.Failure) + { + AddStock(); + } // 画面タップで次へ this.UpdateAsObservable() .Select(_ => Input.GetMouseButton(0)) @@ -170,21 +173,19 @@ public class PopcornGameManager : MonoBehaviour var recipe = LocalCacheManager.Load(RecipeDetailView.DetailRecipeTag); var gameData = GameDataManager.GameData; // 店頭の空きに追加 - if (21 >= gameData.ShopStock.Count + recipe.Volume) + var remain = recipe.Volume; + var shopSpace = Market.ShopStockCount - gameData.ShopStock.Count; + if (shopSpace > 0) { - for (int i = 0; i < recipe.Volume; i++) + var stockCount = Mathf.Min(shopSpace, remain); + for (int i = 0; i < stockCount; i++) { gameData.ShopStock.Add(recipe.RecipeId); } - GameDataManager.SaveGameData(); - return; + remain -= stockCount; } - // 空のタンクに追加 - var emptyTankIndex = gameData.StorageTanks.FindIndex(x => x.Stock == 0); - if (emptyTankIndex != -1) + if (remain == 0) { - gameData.StorageTanks[emptyTankIndex].FlavorId = recipe.RecipeId; - gameData.StorageTanks[emptyTankIndex].Stock = recipe.Volume; GameDataManager.SaveGameData(); return; } @@ -194,13 +195,28 @@ public class PopcornGameManager : MonoBehaviour { // 同じフレーバーのタンクの空きに追加 var tank = gameData.StorageTanks[index]; - if (tank.Capacity >= tank.Stock + recipe.Volume) + var tankSpace = tank.Capacity - tank.Stock; + if (tankSpace > 0) { - tank.Stock += recipe.Volume; + var stockCount = Mathf.Min(tankSpace, remain); + tank.Stock += stockCount; gameData.StorageTanks[index] = tank; - GameDataManager.SaveGameData(); - return; + remain -= stockCount; } } + if (remain == 0) + { + GameDataManager.SaveGameData(); + return; + } + // 空のタンクに追加 + var emptyTankIndex = gameData.StorageTanks.FindIndex(x => x.Stock == 0); + if (emptyTankIndex != -1) + { + gameData.StorageTanks[emptyTankIndex].FlavorId = recipe.RecipeId; + gameData.StorageTanks[emptyTankIndex].Stock = remain; + GameDataManager.SaveGameData(); + return; + } } }