マーケット初期化修正

This commit is contained in:
kimura 2022-11-04 16:42:10 +09:00
parent 76cdf06105
commit 9f0571bef9
2 changed files with 10 additions and 10 deletions

View File

@ -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();

View File

@ -20,6 +20,7 @@ namespace MyGame.Scenes.marketing.Scripts
public readonly ReactiveProperty<bool> IsPause = new();
//cityIdごとにMarket保存
private readonly Dictionary<int, Market> cityMarketDict = new();
private Dictionary<ShopCustomizeBonusCategory, (int bonusLevel, int value)> 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);
}
/// <summary>
@ -137,6 +137,7 @@ namespace MyGame.Scenes.marketing.Scripts
/// <param name="bonusList"></param>
public void UpdateBonus(Dictionary<ShopCustomizeBonusCategory, (int bonusLevel, int value)> bonusList)
{
cacheBonusList = bonusList;
foreach (var (_, market) in cityMarketDict)
{
market.UpdateBonus(bonusList);