diff --git a/popcorn/Assets/MyGame/Scripts/GameDataUtils.cs b/popcorn/Assets/MyGame/Scripts/GameDataUtils.cs new file mode 100644 index 00000000..7c8d4662 --- /dev/null +++ b/popcorn/Assets/MyGame/Scripts/GameDataUtils.cs @@ -0,0 +1,61 @@ +using System.Linq; + +namespace MyGame.Scripts +{ + public static class GameDataUtils + { + public static int GetPartTimerHeart(int cityId) + { + var cityDataList = GameDataManager.GameData.CityGameDataDict.Values; + var fundedList = cityDataList.Where(data => data.IsFundingCompleted).ToList(); + + // 初期店舗の場合リスト内で1店舗解放済みであればOK + if (cityId == Const.DefaultCityId && fundedList.Count == 1) + { + return fundedList[0].Heart; + } + + // バイト開放には店舗が2つ以上必要 + if (fundedList.Count < 2) + { + return 0; + } + + // 最新の店舗ハート数+1つ前の店舗のBrotherHeart + var cities = fundedList.TakeLast(2).ToArray(); + var prevCityBrotherHeart = cities[0].BrotherHeart; + var latestCityHeart = cities[1].Heart; + // 都市開放時のハート取得 + var baseBrotherHeart = GameDataManager.GetCityGameData(cityId).BrotherHeart; + return prevCityBrotherHeart + latestCityHeart - baseBrotherHeart; + } + + /// + /// 都市が最新店舗かどうか判定 + /// 資金調達済みの都市データ内で最後尾なら最新店舗 + /// + /// + /// + public static bool CheckLatestCity(int cityId) + { + if (cityId == Const.DefaultCityId) + { + return !GameDataManager.GameData.CityGameDataDict.Values.Any(data => data.IsFundingCompleted); + } + return GameDataManager.GameData.CityGameDataDict.LastOrDefault(pair => pair.Value.IsFundingCompleted).Key == cityId; + } + + public static GameData CreateCityData(int cityId) + { + var dict = GameDataManager.GameData.CityGameDataDict; + if (dict.ContainsKey(cityId)) + { + return dict[cityId]; + } + var newCityData = new GameData(); + newCityData.OnDeserialized(); + dict.Add(cityId, newCityData); + return dict[cityId]; + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scripts/GameDataUtils.cs.meta b/popcorn/Assets/MyGame/Scripts/GameDataUtils.cs.meta new file mode 100644 index 00000000..a54332e2 --- /dev/null +++ b/popcorn/Assets/MyGame/Scripts/GameDataUtils.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b5c1a064cc6f4254b2b637b24478c58e +timeCreated: 1663307584 \ No newline at end of file