/// <summary> /// Changes to a state where you can receive quests. /// </summary> /// <param name="avatarAddress"></param> /// <param name="id"></param> public static void AddReceivableQuest(Address avatarAddress, int id) { var modifier = new AvatarQuestIsReceivableSetter(id); LocalLayer.Instance.Add(avatarAddress, modifier); if (!TryGetLoadedAvatarState( avatarAddress, out var outAvatarState, out _, out var isCurrentAvatarState) ) { return; } outAvatarState = modifier.Modify(outAvatarState); if (!isCurrentAvatarState) { return; } ReactiveAvatarState.QuestList.SetValueAndForceNotify(outAvatarState.questList); }
/// <summary> /// Regress the logic of the `AddReceivableQuest()` method. /// </summary> /// <param name="avatarAddress"></param> /// <param name="id"></param> /// <param name="resetState"></param> public static void RemoveReceivableQuest( Address avatarAddress, int id, bool resetState = true) { var modifier = new AvatarQuestIsReceivableSetter(id); LocalLayer.Instance.Remove(avatarAddress, modifier); if (!resetState) { return; } TryResetLoadedAvatarState(avatarAddress, out _, out _); }