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

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 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 int OpenTrigger = Animator.StringToHash("OpenTrigger");
private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger");
@ -27,6 +29,9 @@ public class MissionManager : MonoBehaviour
backgroundAnimator.SetTrigger(CloseTrigger);
this.CallWaitForSeconds(.25f, () =>
{
LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
LocalCacheManager.Remove(CallbackTag);
LocalCacheManager.Remove(AchievedCallbackTag);
TransitionManager.Instance.UnloadScene(GameScenes.Mission);
});
}).AddTo(this);
@ -98,6 +103,7 @@ public class MissionManager : MonoBehaviour
// 達成ID保存
gameData.dailyMissionCompleted = true;
GameDataManager.SaveGameData();
LocalCacheManager.Load<Action>(AchievedCallbackTag, null)?.Invoke();
})));
TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement);
}).AddTo(missionView);
@ -131,6 +137,7 @@ public class MissionManager : MonoBehaviour
GameDataManager.SaveGameData();
completeMissionView.ChangeProgress(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);
}).AddTo(missionView);
@ -177,6 +184,7 @@ public class MissionManager : MonoBehaviour
GameDataManager.SaveGameData();
listView.ResetItemList(MissionCategory.Normal);
GenerateNormalMission(missionList);
LocalCacheManager.Load<Action>(AchievedCallbackTag, null)?.Invoke();
})));
TransitionManager.Instance.LoadSceneAdditive(GameScenes.MissionAchievement);
}).AddTo(missionView);
@ -184,6 +192,13 @@ public class MissionManager : MonoBehaviour
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)
{
var gameData = GameDataManager.GameData;

View File

@ -21,7 +21,7 @@ public class HeaderManager : MonoBehaviour
});
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(_ =>
{