Example #1
0
        public IEnumerator Run(
            Client client,
            GameSession session,
            Dictionary <string, string> config
            )
        {
            _client  = client;
            _session = session;
            _config  = config;

            void OnGetStaminaModel(
                string staminaModelNameTemp,
                EzStaminaModel staminaModel
                )
            {
                Debug.Log("StaminaDirector::OnGetStaminaModel");

                _staminaSetting.onGetStaminaModel.RemoveListener(OnGetStaminaModel);

                _staminaModel = staminaModel;
            }

            _staminaSetting.onGetStaminaModel.AddListener(OnGetStaminaModel);

            yield return(StaminaController.GetStaminaModel(
                             client,
                             _staminaSetting.staminaNamespaceName,
                             _staminaSetting.staminaModelName,
                             _staminaSetting.onGetStaminaModel,
                             _staminaSetting.onError
                             ));

            _staminaWatcher.Initialize(
                _staminaSetting.staminaNamespaceName,
                _staminaModel,
                StartCoroutine,
                StopCoroutine,
                _staminaSetting.onGetStamina,
                _staminaSetting.onRecoverStamina,
                _staminaSetting.onConsumeStamina,
                _staminaSetting.onError
                );
            yield return(_staminaWatcher.Run(
                             client,
                             session
                             ));

            staminaWidget.Initialize(
                _staminaWatcher
                );
            staminaWidget.gameObject.SetActive(true);

            if (debugStaminaControlWidget != null)
            {
                debugStaminaControlWidget.gameObject.SetActive(true);
                debugStaminaControlWidget.Initialize();
                debugStaminaControlWidget.onClickConsumeButton.AddListener(OnClickDebugConsumeButton);
            }
        }
 public EzGetStaminaModelResult(
     GetStaminaModelResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzStaminaModel(result.item);
     }
 }
Example #3
0
 public EzConsumeResult(
     ConsumeStaminaResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzStamina(result.item);
     }
     if (result.staminaModel != null)
     {
         StaminaModel = new EzStaminaModel(result.staminaModel);
     }
 }
Example #4
0
 public EzGetStaminaResult(
     GetStaminaResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzStamina(result.item);
     }
     if (result.staminaModel != null)
     {
         StaminaModel = new EzStaminaModel(result.staminaModel);
     }
 }
Example #5
0
        private void ConsumeStaminaAction(
            EzStaminaModel staminaModelTemp,
            EzStamina stamina,
            int consumeValue
            )
        {
            if (staminaModelTemp.Name != _staminaModel.Name)
            {
                return;
            }

            _stamina = stamina;
        }
Example #6
0
 public void Initialize(
     string staminaNamespaceName,
     EzStaminaModel staminaModel,
     Func <IEnumerator, Coroutine> startCoroutine,
     Action <Coroutine> stopCoroutine,
     GetStaminaEvent onGetStamina,
     RecoverStaminaEvent onRecoverStamina,
     ConsumeStaminaEvent onConsumeStamina,
     ErrorEvent onError
     )
 {
     _staminaNamespaceName = staminaNamespaceName;
     _staminaModel         = staminaModel;
     _startCoroutine       = startCoroutine;
     _stopCoroutine        = stopCoroutine;
     _onGetStamina         = onGetStamina;
     _onRecoverStamina     = onRecoverStamina;
     _onConsumeStamina     = onConsumeStamina;
     _onError = onError;
 }
Example #7
0
        public static IEnumerator ConsumeStamina(
            Client client,
            GameSession session,
            string staminaNamespaceName,
            EzStaminaModel staminaModel,
            int consumeValue,
            ConsumeStaminaEvent onConsumeStamina,
            GetStaminaEvent onGetStamina,
            ErrorEvent onError
            )
        {
            AsyncResult <EzConsumeResult> result = null;

            yield return(client.Stamina.Consume(
                             r =>
            {
                result = r;
            },
                             session,
                             staminaNamespaceName,
                             staminaModel.Name,
                             consumeValue
                             ));

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

            var stamina = result.Result.Item;

            onConsumeStamina.Invoke(staminaModel, stamina, consumeValue);
            onGetStamina.Invoke(staminaModel, stamina);
        }