Ejemplo n.º 1
0
        IEnumerator ActiveSkillWithCount(OperatorController operatorController, StartSkill startSkill = null, EachSecondSkill eachSecondSkill = null, EndSkill endSkill = null, int _duration = 0, int eachSecondSkillParametr = 0)
        {
            isActive    = true;
            isCanActive = false;
            operatorController.SetStartSkillPoint(duration, duration);

            startSkill?.Invoke(operatorController);

            MainController.mainInterfaceFields.selectOperatorUI.updateSelectInfo(operatorController._operatorData);

            if (duration > 0)
            {
                curDurationTime = duration;
            }
            else
            {
                if (_duration > 0)
                {
                    curDurationTime = _duration;
                }
            }

            while (curDurationTime > 0)
            {
                if (MainController.mainInterfaceFields.selectOperatorUI.operatorController != null)
                {
                    eachSecondSkill?.Invoke(operatorController, eachSecondSkillParametr);
                    operatorController.SetSkillPoint(curDurationTime - 1);

                    MainController.mainInterfaceFields.selectOperatorUI.updateSelectInfoOnlySkill();
                }
                curDurationTime--;
                yield return(new WaitForSeconds(1f));
            }

            endSkill?.Invoke(operatorController);

            MainController.mainInterfaceFields.selectOperatorUI.updateSelectInfo(operatorController._operatorData);


            isActive    = false;
            isCanActive = true;
            operatorController.StartCoroutine(SkillPointGenerate(operatorController));

            yield return(null);
        }
Ejemplo n.º 2
0
        public IEnumerator SkillPointGenerate(OperatorController operatorController, int startGenerate = 0)
        {
            curSkillPoint = startGenerate;
            isCanActive   = false;
            isActive      = false;
            operatorController.SetStartSkillPoint(0, cost);

            MainController.mainInterfaceFields.selectOperatorUI.updateSelectInfoOnlySkill();

            while (curSkillPoint < cost)
            {
                operatorController.SetSkillPoint(curSkillPoint + 1);

                MainController.mainInterfaceFields.selectOperatorUI.updateSelectInfoOnlySkill();
                curSkillPoint++;
                yield return(new WaitForSeconds(1f));
            }
            isCanActive = true;
            isActive    = false;
            yield return(null);
        }