From 8b2f64ad3eff064b8e2f268a2bbd64d442ee6790 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 14 Oct 2022 15:05:18 +0900 Subject: [PATCH] =?UTF-8?q?=E4=BB=95=E5=85=A5=E3=82=8C=E3=83=AF=E3=83=BC?= =?UTF-8?q?=E3=83=AB=E3=83=89=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/MiniGame/Scripts/ResultManager.cs | 20 +++---- .../Scenes/shopping/Scripts/Shopping.cs | 53 ++++++++++--------- 2 files changed, 37 insertions(+), 36 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ResultManager.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ResultManager.cs index 58a07b16..5aeff3ed 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ResultManager.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ResultManager.cs @@ -45,27 +45,27 @@ namespace MyGame.Scenes.MiniGame.Scripts public void ShowResult(int score, ScrollGamePlaceData[] placeList, ScrollGameStageData stageData) { SoundManager.Instance.ChangeVolumeUniqueBGM(.3f); - var gameData = GameDataManager.GameData; + var globalGameData = GameDataManager.GameData; var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ShopDataSheet); - if (!(gameData.ScrollGameStageScoreList.FirstOrDefault(data => data.Id == stageData.id) is ScrollGameScoreData stageScoreData)) + if (!(globalGameData.ScrollGameStageScoreList.FirstOrDefault(data => data.Id == stageData.id) is ScrollGameScoreData stageScoreData)) { stageScoreData = new ScrollGameScoreData { Id = stageData.id, Score = 0 }; - gameData.ScrollGameStageScoreList.Add(stageScoreData); + globalGameData.ScrollGameStageScoreList.Add(stageScoreData); } - if (!(gameData.ScrollGamePlaceScoreList.FirstOrDefault(data => data.Id == placeList[0].id) is ScrollGameScoreData placeScoreData)) + if (!(globalGameData.ScrollGamePlaceScoreList.FirstOrDefault(data => data.Id == placeList[0].id) is ScrollGameScoreData placeScoreData)) { placeScoreData = new ScrollGameScoreData { Id = placeList[0].id, Score = 0 }; - gameData.ScrollGamePlaceScoreList.Add(placeScoreData); + globalGameData.ScrollGamePlaceScoreList.Add(placeScoreData); } scoreText.text = score.ToString(); @@ -111,7 +111,7 @@ namespace MyGame.Scenes.MiniGame.Scripts } materialAmountText.text = $"×{amount}"; - Shopping.AddItem(shopData, amount); + Shopping.AddItem(shopData, amount, globalGameData.CurrentCityId); } var customizeDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ShopCustomizeDataSheet); @@ -127,12 +127,12 @@ namespace MyGame.Scenes.MiniGame.Scripts // 獲得処理 if (placeData.recipeId != 0) { - if (gameData.MyRecipes.Contains(placeData.recipeId)) + if (globalGameData.MyRecipes.Contains(placeData.recipeId)) { continue; } - gameData.MyRecipes = new List(gameData.MyRecipes){placeData.recipeId}.ToArray(); - gameData.DailyRecipeGetCount++; + globalGameData.MyRecipes = new List(globalGameData.MyRecipes){placeData.recipeId}.ToArray(); + globalGameData.DailyRecipeGetCount++; var shopData = shopDataList.First(data => data.itemId == placeData.recipeId && data.Category == ItemCategory.Recipe); // progressList.Add((shopData.Name, shopData.GetPrefab(), placeData.NeedScore, true)); progressList.Add((shopData.Name, recipeMalaImagePrefab, placeData.NeedScore, true)); @@ -148,7 +148,7 @@ namespace MyGame.Scenes.MiniGame.Scripts var nextAchievement = sortedPlaceList.FirstOrDefault(data => data.NeedScore > placeScoreData.Score); if (nextAchievement != null) { - if (nextAchievement.recipeId != 0 && !gameData.MyRecipes.Contains(nextAchievement.recipeId)) + if (nextAchievement.recipeId != 0 && !globalGameData.MyRecipes.Contains(nextAchievement.recipeId)) { var shopData = shopDataList.First(data => data.itemId == nextAchievement.recipeId && data.Category == ItemCategory.Recipe); // progressList.Add((shopData.Name, shopData.GetPrefab(), nextAchievement.NeedScore, true)); diff --git a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs index 50243cb4..03f159bf 100644 --- a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs +++ b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/Shopping.cs @@ -18,30 +18,31 @@ public class Shopping : MonoBehaviour changeCoinSubject.AddTo(this); SoundManager.Instance.PlayBGM("bgm_shopping"); - var gameData = GameDataManager.GameData; + var globalGameData = GameDataManager.GameData; + var cityGameData = GameDataManager.GetCurrentCityGameData(); // 一覧データ var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ShopDataSheet); // tutorial 所持金が指定アイテムの金額以上かどうかチェック var isTutorial = false; - if (!gameData.FinishedFlags.HasFlag(TutorialFlag.Shopping)) + if (!globalGameData.FinishedFlags.HasFlag(TutorialFlag.Shopping)) { - if (gameData.Coin >= (shopDataList.FirstOrDefault(data => data.itemId == 2)?.price ?? 10)) + if (cityGameData.Coin >= (shopDataList.FirstOrDefault(data => data.itemId == 2)?.price ?? 10)) { isTutorial = true; } } - CoinManager.Instance.ChangeCoin(gameData.Coin); - HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart); + CoinManager.Instance.ChangeCoin(cityGameData.Coin); + HeartMeter.Instance.Initialize(globalGameData.ViewedShopLevel, cityGameData.Heart); // ハートゲージがフルかつダイアログが開いていない場合レベルアップ HeartMeter.Instance.FulledHeart .DelaySubscription(TimeSpan.FromSeconds(.4f)) .Subscribe(_ => { - ShopLevelUp.ShowDialog(gameData.ViewedShopLevel + 1); + ShopLevelUp.ShowDialog(globalGameData.ViewedShopLevel + 1); }).AddTo(this); GameDataObserver.Instance.HeartObserver @@ -76,11 +77,11 @@ public class Shopping : MonoBehaviour ShopItemPurchaseView.ShowDialog((shopData, GetItemAmount(shopData)), amount => { // アイテムを増やす - AddItem(shopData, amount); + AddItem(shopData, amount, globalGameData.CurrentCityId); itemView.SetStockCount(GetItemAmount(shopData)); CoinManager.Instance.SubCoin(shopData.price * amount); - gameData.Coin = CoinManager.Instance.OwnCoin; - changeCoinSubject.OnNext(gameData.Coin); + cityGameData.Coin = CoinManager.Instance.OwnCoin; + changeCoinSubject.OnNext(cityGameData.Coin); GameDataManager.SaveGameData(); if (isTutorial) @@ -88,7 +89,7 @@ public class Shopping : MonoBehaviour TutorialManager.Instance.ShowTutorialConversation(8, () => { isTutorial = false; - gameData.FinishedFlags |= TutorialFlag.Shopping; + globalGameData.FinishedFlags |= TutorialFlag.Shopping; GameDataManager.SaveGameData(); }); } @@ -103,7 +104,7 @@ public class Shopping : MonoBehaviour ShopItemExchangeView.ShowDialog(shopData, () => { // アイテムを増やす - AddItem(shopData, 1); + AddItem(shopData, 1, globalGameData.CurrentCityId); itemView.SetStockCount(GetItemAmount(shopData)); GameDataManager.SaveGameData(); recipeNotifyIcon.SetActive(CheckEarnedRecipe()); @@ -141,49 +142,49 @@ public class Shopping : MonoBehaviour private static int GetItemAmount(ShopData shopData) { - var gameData = GameDataManager.GameData; switch (shopData.Category) { case ItemCategory.Material: - return gameData.Material.Find(data => data.Id == shopData.itemId)?.Amount ?? 0; + return GameDataManager.GetCurrentCityGameData().Material.Find(data => data.Id == shopData.itemId)?.Amount ?? 0; case ItemCategory.Recipe: - return gameData.MyRecipes.Contains(shopData.itemId) ? 1 : 0; + return GameDataManager.GameData.MyRecipes.Contains(shopData.itemId) ? 1 : 0; case ItemCategory.Pan: - return gameData.Pans.Contains(shopData.itemId) ? 1 : 0; + return GameDataManager.GameData.Pans.Contains(shopData.itemId) ? 1 : 0; default: throw new ArgumentOutOfRangeException(); } } - public static void AddItem(ShopData shopData, int amount) + public static void AddItem(ShopData shopData, int amount, int cityId) { - var gameData = GameDataManager.GameData; + var cityGameData = GameDataManager.GetCityGameData(cityId); + var globalGameData = GameDataManager.GameData; switch (shopData.Category) { case ItemCategory.Material: - var index = gameData.Material.FindIndex(x => x.Id == shopData.itemId); + var index = cityGameData.Material.FindIndex(x => x.Id == shopData.itemId); if (index == -1) { - index = gameData.Material.Count; - gameData.Material.Add(new MaterialData + index = cityGameData.Material.Count; + cityGameData.Material.Add(new MaterialData { Id = shopData.itemId, Amount = 0 }); } - gameData.Material[index].Amount += amount; + cityGameData.Material[index].Amount += amount; break; case ItemCategory.Recipe: - if (!gameData.MyRecipes.Contains(shopData.itemId)) + if (!globalGameData.MyRecipes.Contains(shopData.itemId)) { - gameData.MyRecipes = new List(gameData.MyRecipes){shopData.itemId}.ToArray(); - gameData.DailyRecipeGetCount++; + globalGameData.MyRecipes = new List(globalGameData.MyRecipes){shopData.itemId}.ToArray(); + globalGameData.DailyRecipeGetCount++; } break; case ItemCategory.Pan: - if (!gameData.Pans.Contains(shopData.itemId)) + if (!globalGameData.Pans.Contains(shopData.itemId)) { - gameData.Pans = new List(gameData.Pans){shopData.itemId}.ToArray(); + globalGameData.Pans = new List(globalGameData.Pans){shopData.itemId}.ToArray(); } break; default: