private float GetHesitateTime() { float intervalTime = 0; if (_hasLvlChanged) { switch (_currentAttackMode) { case ENUM_ATTACK_MODE.ATTACK_NORMAL_THIRD: _currentAttackMode = ENUM_ATTACK_MODE.ATTACK_NORMAL_SKILL; intervalTime = 1.0f; break; case ENUM_ATTACK_MODE.ATTACK_NORMAL_SKILL: _currentAttackMode = ENUM_ATTACK_MODE.ATTACK_NORMAL_THIRD; intervalTime = 1.0f; break; } } else { switch (_currentAttackMode) { case ENUM_ATTACK_MODE.ATTACK_NORMAL_ONE_FRIST: _currentAttackMode = ENUM_ATTACK_MODE.ATTACK_NORMAL_ONE_SECOND; intervalTime = 1.0f; break; case ENUM_ATTACK_MODE.ATTACK_NORMAL_ONE_SECOND: _currentAttackMode = ENUM_ATTACK_MODE.ATTACK_NORMAL_TWO; intervalTime = 1.5f; break; case ENUM_ATTACK_MODE.ATTACK_NORMAL_TWO: _currentAttackMode = ENUM_ATTACK_MODE.ATTACK_NORMAL_ONE_FRIST; intervalTime = 1.0F; break; } } return(intervalTime); }
protected override void UpdateLevelUpConditions() { base.UpdateLevelUpConditions(); // int aiLevel = _aiLevel; if (_aiLevel >= _owner.ACGetAttackAgent()._skillMaps.Length - 1 || !_owner.IsAlived) { return; } if (!_hasLvlChanged && (float)_damageAbsorbCurrent / _owner.Data.TotalHp >= _changeGravity) { _hasLvlChanged = true; _currentAttackMode = ENUM_ATTACK_MODE.ATTACK_NORMAL_THIRD; ChangeAILevel(1); _attackCountAgent.AttackLevel = _aiLevel; SetNextState(AIAgent.STATE.IDLE, true); } }