報酬獲得後のミッションアイコンのバッジ切り替え対応

This commit is contained in:
kimura 2021-10-28 12:48:25 +09:00
parent 4aa89bb41e
commit e6ac4ca4ad
2 changed files with 16 additions and 1 deletions

View File

@ -8,6 +8,8 @@ using UnityEngine.UI;
public class MissionManager : MonoBehaviour public class MissionManager : MonoBehaviour
{ {
public static readonly string MissionDataTag = "MissionData"; public static readonly string MissionDataTag = "MissionData";
public static readonly string CallbackTag = "MissionManagerCallback";
public static readonly string AchievedCallbackTag = "MissionManagerAchievedCallback";
private static readonly string TimeFormat = "更新まで:{0}時間{1}分{2}秒"; private static readonly string TimeFormat = "更新まで:{0}時間{1}分{2}秒";
private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger");
private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger");
@ -27,6 +29,9 @@ public class MissionManager : MonoBehaviour
backgroundAnimator.SetTrigger(CloseTrigger); backgroundAnimator.SetTrigger(CloseTrigger);
this.CallWaitForSeconds(.25f, () => this.CallWaitForSeconds(.25f, () =>
{ {
LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
LocalCacheManager.Remove(CallbackTag);
LocalCacheManager.Remove(AchievedCallbackTag);
TransitionManager.Instance.UnloadScene(GameScenes.Mission); TransitionManager.Instance.UnloadScene(GameScenes.Mission);
}); });
}).AddTo(this); }).AddTo(this);
@ -98,6 +103,7 @@ public class MissionManager : MonoBehaviour
// 達成ID保存 // 達成ID保存
gameData.dailyMissionCompleted = true; gameData.dailyMissionCompleted = true;
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
LocalCacheManager.Load<Action>(AchievedCallbackTag, null)?.Invoke();
}))); })));
TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement); TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement);
}).AddTo(missionView); }).AddTo(missionView);
@ -131,6 +137,7 @@ public class MissionManager : MonoBehaviour
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
completeMissionView.ChangeProgress(gameData.dailyMissionIdArray.Length, gameData.dailyMissionAchievedIdArray.Length); completeMissionView.ChangeProgress(gameData.dailyMissionIdArray.Length, gameData.dailyMissionAchievedIdArray.Length);
completeMissionView.SetButtonActive(gameData.dailyMissionIdArray.Length <= gameData.dailyMissionAchievedIdArray.Length); completeMissionView.SetButtonActive(gameData.dailyMissionIdArray.Length <= gameData.dailyMissionAchievedIdArray.Length);
LocalCacheManager.Load<Action>(AchievedCallbackTag, null)?.Invoke();
}))); })));
TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement); TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement);
}).AddTo(missionView); }).AddTo(missionView);
@ -177,6 +184,7 @@ public class MissionManager : MonoBehaviour
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
listView.ResetItemList(MissionCategory.Normal); listView.ResetItemList(MissionCategory.Normal);
GenerateNormalMission(missionList); GenerateNormalMission(missionList);
LocalCacheManager.Load<Action>(AchievedCallbackTag, null)?.Invoke();
}))); })));
TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement); TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement);
}).AddTo(missionView); }).AddTo(missionView);
@ -184,6 +192,13 @@ public class MissionManager : MonoBehaviour
listView.SetIndicator(MissionCategory.Normal, normalIndicateFlag > 0); listView.SetIndicator(MissionCategory.Normal, normalIndicateFlag > 0);
} }
public static void ShowDialog(Action onClose = null, Action onAchieved = null)
{
LocalCacheManager.Save(CallbackTag, onClose);
LocalCacheManager.Save(AchievedCallbackTag, onAchieved);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Mission);
}
public static int GetProgressValue(MissionData missionData) public static int GetProgressValue(MissionData missionData)
{ {
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;

View File

@ -21,7 +21,7 @@ public class HeaderManager : MonoBehaviour
}); });
missionButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => missionButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
{ {
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Mission); MissionManager.ShowDialog(onAchieved:() => missionIndicator.SetActive(CheckMissionIndicate()));
}); });
informationButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => informationButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ =>
{ {