Esempio n. 1
0
        public static IEnumerator GetExperienceModel(
            Client client,
            string experienceNamespaceName,
            string experienceModelName,
            GetExperienceModelEvent onGetExperienceModel,
            ErrorEvent onError
            )
        {
            AsyncResult <EzGetExperienceModelResult> result = null;

            yield return(client.Experience.GetExperienceModel(
                             r =>
            {
                result = r;
            },
                             experienceNamespaceName,
                             experienceModelName
                             ));

            if (result.Error != null)
            {
                onError.Invoke(
                    result.Error
                    );
                yield break;
            }

            var experienceModel = result.Result.Item;

            onGetExperienceModel.Invoke(experienceModelName, experienceModel);
        }
Esempio n. 2
0
        public IEnumerator Run(
            Client client,
            GameSession session,
            Func <IEnumerator, Coroutine> startCoroutine,
            string experienceNamespaceName,
            string experienceModelName,
            GetExperienceModelEvent onGetExperienceModel,
            GetStatusesEvent onGetStatuses,
            IncreaseExperienceEvent onIncreaseExperience,
            ErrorEvent onError
            )
        {
            if (_watching)
            {
                throw new InvalidOperationException("already started");
            }

            _watching = true;

            _client                  = client;
            _session                 = session;
            _startCoroutine          = startCoroutine;
            _experienceNamespaceName = experienceNamespaceName;
            _experienceModelName     = experienceModelName;
            _onGetExperienceModel    = onGetExperienceModel;
            _onGetStatuses           = onGetStatuses;
            _onIncreaseExperience    = onIncreaseExperience;
            _onError                 = onError;

            void GetExperienceModelAction(
                string experienceModelNameTemp,
                EzExperienceModel experienceModel
                )
            {
                if (_experienceModelName != experienceModelNameTemp)
                {
                    return;
                }

                _experienceModel = experienceModel;

                _onGetExperienceModel.RemoveListener(GetExperienceModelAction);
            }

            _onGetExperienceModel.AddListener(GetExperienceModelAction);

            yield return(ExperienceController.GetExperienceModel(
                             _client,
                             _experienceNamespaceName,
                             _experienceModelName,
                             _onGetExperienceModel,
                             _onError
                             ));

            _onIncreaseExperience.AddListener(OnIncreaseExperience);

            yield return(Refresh());
        }