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); }
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); }