public static IEnumerator GetQuestModel( Client client, GameSession session, string questNamespaceName, string questGroupName, GetQuestModelEvent onGetQuestModel, ErrorEvent onError ) { EzQuestGroupModel questGroupModel; { AsyncResult <EzGetQuestGroupResult> result = null; yield return(client.Quest.GetQuestGroup( r => { result = r; }, questNamespaceName, questGroupName )); if (result.Error != null) { onError.Invoke( result.Error ); yield break; } questGroupModel = result.Result.Item; } EzCompletedQuestList completedQuestList; { AsyncResult <EzGetCompletedQuestListResult> result = null; yield return(client.Quest.GetCompletedQuestList( r => { result = r; }, session, questNamespaceName, questGroupName )); if (result.Error != null) { onError.Invoke( result.Error ); yield break; } completedQuestList = result.Result.Item; } onGetQuestModel.Invoke(questGroupModel, completedQuestList); }
public IEnumerator Run( Client client, GameSession session, string questNamespaceName, string questGroupName, GetQuestModelEvent onGetQuestModel, FindProgressEvent onFindProgress, ErrorEvent onError ) { if (_watching) { throw new InvalidOperationException("already started"); } _watching = true; _client = client; _session = session; _questNamespaceName = questNamespaceName; _questGroupName = questGroupName; _onGetQuestModel = onGetQuestModel; _onFindProgress = onFindProgress; _onError = onError; yield return(Refresh()); yield return(QuestController.GetProgress( _client, _session, _questNamespaceName, _onFindProgress, _onError )); }