示例#1
0
    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);
    }
示例#2
0
    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);
        }
    }