diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs index ad4387d2..ab5f2b00 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs @@ -88,7 +88,6 @@ public class Market : MonoBehaviour IsLatestCity = GameDataUtils.CheckLatestCity(cityId); cityGameData = GameDataManager.GetCityGameData(cityId); globalGameData = GameDataManager.GameData; - UpdateBonus(ShopCustomize.GetBonusList(globalGameData.ShopCustomizeLevel)); customerFlow.SetCityGameData(cityGameData); CheckAndFixStock(); diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/WorldMarketManager.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/WorldMarketManager.cs index d793afef..c61dc219 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/WorldMarketManager.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/WorldMarketManager.cs @@ -20,6 +20,7 @@ namespace MyGame.Scenes.marketing.Scripts public readonly ReactiveProperty IsPause = new(); //cityIdごとにMarket保存 private readonly Dictionary cityMarketDict = new(); + private Dictionary cacheBonusList = new(); private void Start() { /* @@ -77,16 +78,13 @@ namespace MyGame.Scenes.marketing.Scripts // GameDataManager.GameData.BrotherHeart = GameDataManager.GameData.Heart; // PartTimerManager.Instance.UpdateList(); #endif - + cacheBonusList = ShopCustomize.GetBonusList(GameDataManager.GameData.ShopCustomizeLevel); // 各都市マーケット生成 - var latestCityId = GameDataUtils.GetLatestCityId(); - CreateMarket(Const.DefaultCityId).CheckPartTimerMode(); + CreateMarket(Const.DefaultCityId); foreach (var (cityId, gameData) in GameDataManager.GameData.CityGameDataDict) { - if (!gameData.IsFundingCompleted) return; - var market = CreateMarket(cityId); - market.CheckPartTimerMode(); - market.SetLatestCity(cityId == latestCityId); + if (!gameData.IsFundingCompleted) return; + CreateMarket(cityId); } } @@ -94,18 +92,20 @@ namespace MyGame.Scenes.marketing.Scripts { var market = Instantiate(marketPrefab, transform); market.Initialize(cityId); + market.UpdateBonus(cacheBonusList); + market.CheckPartTimerMode(); cityMarketDict.Add(cityId, market); return market; } public Market GetMarket(int cityId) { - return cityMarketDict[cityId]; + return cityMarketDict.ContainsKey(cityId) ? cityMarketDict[cityId] : CreateMarket(cityId); } public Market GetCurrentCityMarket() { - return cityMarketDict[GameDataManager.GameData.CurrentCityId]; + return GetMarket(GameDataManager.GameData.CurrentCityId); } /// @@ -137,6 +137,7 @@ namespace MyGame.Scenes.marketing.Scripts /// public void UpdateBonus(Dictionary bonusList) { + cacheBonusList = bonusList; foreach (var (_, market) in cityMarketDict) { market.UpdateBonus(bonusList);