From c829d6340bcde730cc0f28aee71dfc65099bfedc Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 4 Nov 2022 15:52:04 +0900 Subject: [PATCH] =?UTF-8?q?=E5=BA=97=E8=88=97=E9=96=8B=E6=94=BE=E5=87=A6?= =?UTF-8?q?=E7=90=86=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/WorldMap/Scripts/WorldMap.cs | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/WorldMap/Scripts/WorldMap.cs b/popcorn/Assets/MyGame/Scenes/WorldMap/Scripts/WorldMap.cs index 2e620edd..7750c7bb 100644 --- a/popcorn/Assets/MyGame/Scenes/WorldMap/Scripts/WorldMap.cs +++ b/popcorn/Assets/MyGame/Scenes/WorldMap/Scripts/WorldMap.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using MyGame.Scenes.marketing.Scripts; using MyGame.Scripts; using UniRx; using UniRx.Triggers; @@ -29,7 +30,7 @@ namespace MyGame.Scenes.WorldMap.Scripts .Where(_ => Input.GetKeyDown(KeyCode.R)) .Subscribe(_ => TransitionManager.Instance.LoadScene(GameScenes.WorldMap)); #endif - var gameData = GameDataManager.GameData; + var globalGameData = GameDataManager.GameData; var cityDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.CityDataSheet); var fundingDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.FundingDataSheet); var partTimerDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.PartTimerDataSheet); @@ -69,17 +70,11 @@ namespace MyGame.Scenes.WorldMap.Scripts { TransitionManager.Instance.LoadScene(GameScenes.Main); }).AddTo(this); - - /* - * 初期実装都市のデータ設定 - */ - gameData.IsFundingCompleted = true; - GameDataUtils.CreateCityData(2); foreach (var cityIcon in cityIcons) { // 選択中の店舗を中央に持ってくる - if (cityIcon.CityId == gameData.CurrentCityId) + if (cityIcon.CityId == globalGameData.CurrentCityId) { content.localPosition = contentOffset.AddX(-cityIcon.transform.localPosition.x); } @@ -131,9 +126,13 @@ namespace MyGame.Scenes.WorldMap.Scripts { var (heartProgress, coinProgress) = CalcPartTimerProgress(partTimerData, cityGameData.PartTimerElapsed); earningView.SetData(cityData, partTimerData, Mathf.Max(heartProgress, coinProgress)); + // 指定の都市に遷移 earningView.OnClick.Subscribe(_ => { - gameData.CurrentCityId = cityIcon.CityId; + globalGameData.CurrentCityId = cityIcon.CityId; + WorldMarketManager.Instance.UpdateCurrentCity(cityIcon.CityId); + GameDataObserver.Instance.ChangeCity(cityIcon.CityId); + GameDataObserver.Instance.CheckMissionProgress(); TransitionManager.Instance.LoadScene(GameScenes.Main); LocalCacheManager.Save(Const.ChangeCityFlagTag, true); }).AddTo(citySelectDisposable); @@ -158,16 +157,24 @@ namespace MyGame.Scenes.WorldMap.Scripts // 資金投入 cityGameData.FundingDict[fundingData.fundingCityId] += amount; GameDataManager.GetCityGameData(fundingData.fundingCityId).Coin -= amount; - cityGameData.IsFundingCompleted = filteredFundingList.All(data => cityGameData.FundingDict[data.fundingCityId] >= data.needAmount); - GameDataManager.SaveGameData(); - // view更新 - view.SetData(fundingData, cityGameData.FundingDict[fundingData.fundingCityId]); - if (!cityGameData.IsFundingCompleted) + // 調達未達成で処理終了 + if (filteredFundingList.Any(data => cityGameData.FundingDict[data.fundingCityId] < data.needAmount)) { + // view更新 + view.SetData(fundingData, cityGameData.FundingDict[fundingData.fundingCityId]); + GameDataManager.SaveGameData(); return; } + + // 調達完了後処理 + var latestCityGameData = GameDataManager.GetCityGameData(GameDataUtils.GetLatestCityId()); + latestCityGameData.BrotherHeart = GameDataUtils.GetTotalHeart(); + cityGameData.IsFundingCompleted = true; + GameDataManager.SaveGameData(); + // 新店舗初期化 PartTimerManager.Instance.UpdateList(); + // 都市開放演出 shareGate = false; earningView.gameObject.SetActive(false);