diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs index 1da78300..c78df84c 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/MissionManager.cs @@ -40,33 +40,28 @@ public class MissionManager : MonoBehaviour }); }).AddTo(this); + var cityDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.CityDataSheet); + var cityData = cityDataList.First(data => data.id == GameDataManager.GameData.CurrentCityId); + listView.SetCityIcon(cityData.GetIconPrefab()); + + var timeLimitTextValue = string.Empty; listView.SelectedTab.Subscribe(category => { - timeLimitText.gameObject.SetActive(category == MissionCategory.Daily); + timeLimitText.text = category == MissionCategory.Daily ? timeLimitTextValue : cityData.Name; }).AddTo(this); onAchieved = LocalCacheManager.Load>(AchievedCallbackTag, null); var gameData = GameDataManager.GameData; - var cityDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.CityDataSheet); - var cityData = cityDataList.First(data => data.id == GameDataManager.GameData.CurrentCityId); - listView.SetCityIcon(cityData.GetIconPrefab()); // デイリーカウントダウン - var limitTime = gameData.GetDailyMissionLimitTime(); - if (limitTime.TotalSeconds > 0) - { - timeLimitText.text = String.Format(ScriptLocalization.UI.MissionDailyTimeLimit, limitTime.Hours, limitTime.Minutes, limitTime.Seconds); - } - else - { - timeLimitText.text = String.Format(ScriptLocalization.UI.MissionDailyTimeLimit, 0, 0, 0); - } Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f)) .Select(x => gameData.GetDailyMissionLimitTime()) .TakeWhile(x => x.TotalSeconds > 0) + .StartWith(gameData.GetDailyMissionLimitTime()) .Subscribe(x => { - timeLimitText.text = String.Format(ScriptLocalization.UI.MissionDailyTimeLimit, x.Hours, x.Minutes, x.Seconds); + timeLimitTextValue = GetTimeLimitText(x); + if (listView.SelectedTab.Value == MissionCategory.Daily) timeLimitText.text = timeLimitTextValue; }).AddTo(this); // ミッション読み込み @@ -211,6 +206,12 @@ public class MissionManager : MonoBehaviour listView.SetIndicator(MissionCategory.Normal, normalIndicateFlag > 0); } + private string GetTimeLimitText(TimeSpan limitTime) + { + if (limitTime.TotalSeconds < 0) limitTime = TimeSpan.Zero; + return String.Format(ScriptLocalization.UI.MissionDailyTimeLimit, limitTime.Hours, limitTime.Minutes, limitTime.Seconds); + } + public static void ShowDialog(Action onClose = null, Action onAchieved = null) { LocalCacheManager.Save(CallbackTag, onClose);