Пример #1
0
        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);
        }
Пример #2
0
        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
                             ));
        }