Ejemplo n.º 1
0
    public override void init()
    {
        base.init();

        _fightLogic      = _unit.fight;
        _commandLogic    = _unit.aiCommand;
        _fightUnitConfig = _fightLogic.getFightUnitConfig();

        if (_unit.isSelfControl())
        {
            // setAIMode(_fightUnitConfig.defaultAIMode);
            setAIMode(UnitAIModeType.Base);
            setWanderOnIdle(_fightUnitConfig.isWanderOnIdle);
        }
        else
        {
            setAIMode(UnitAIModeType.None);
        }

        setWanderOnIdle(_fightUnitConfig.isWanderOnIdle);
        _maxPursueDistanceSq = _fightUnitConfig.maxPursueRadius * _fightUnitConfig.maxPursueRadius;

        _unitSkills = _unit.getUnitData().fight.skills;

        FightUnitLevelConfig levelConfig = FightUnitLevelConfig.get(_fightUnitConfig.id, _fightLogic.getLevel());

        if (levelConfig.skills.Length > 0)
        {
            _defaultSkill = _unitSkills.get(levelConfig.skills[0].key);
        }
        else
        {
            _defaultSkill = null;
        }
    }
Ejemplo n.º 2
0
    public override void dispose()
    {
        base.dispose();

        clearFightAI();

        _anchorPos.clear();
        _anchorUnit.clear();
        _isAnchorUseUnit = false;

        _wanderWaitTime = -1;
        _isWandering    = false;

        _fightUnitConfig = null;
        _fightLogic      = null;
        _unitSkills      = null;
        _defaultSkill    = null;
    }
Ejemplo n.º 3
0
        protected override UnitFightLogic createFightLogic()
        {
            if (!_g11)
            {
                _m11 = instance.Type.GetMethod("createFightLogic", 0);
                _g11 = true;
            }

            if (_m11 != null && !_b11)
            {
                _b11 = true;
                UnitFightLogic re = (UnitFightLogic)appdomain.Invoke(_m11, instance, null);
                _b11 = false;
                return(re);
            }
            else
            {
                return(base.createFightLogic());
            }
        }
Ejemplo n.º 4
0
    //logics

    /** 注册逻辑体 */
    protected override void registLogics()
    {
        if ((identity = createIdentityLogic()) != null)
        {
            addLogic(identity);
        }
        else
        {
            Ctrl.throwError("不能没有identity");
        }

        if ((pos = createPosLogic()) != null)
        {
            addLogic(pos);
        }

        //战斗单位再加
        if (BaseC.constlist.unit_canFight(_type))
        {
            if ((avatar = createAvatarLogic()) != null)
            {
                addLogic(avatar);
            }

            if ((move = createMoveLogic()) != null)
            {
                addLogic(move);
            }

            if ((fight = createFightLogic()) != null)
            {
                addLogic(fight);
            }

            if ((ai = createAILogic()) != null)
            {
                addLogic(ai);
            }

            if ((aiCommand = createAICommandLogic()) != null)
            {
                addLogic(aiCommand);
            }
        }

        //角色控制逻辑
        if (isHero)
        {
            if ((control = createCharacterControlLogic()) != null)
            {
                addLogic(control);
            }
        }

        //show放下面
        if ((show = createShowLogic()) != null)
        {
            addLogic(show);
        }
        else
        {
            Ctrl.throwError("不能没有show");
        }

        //head最后
        if (BaseC.constlist.unit_needHead(_type))
        {
            if ((head = createHeadLogic()) != null)
            {
                addLogic(head);
            }
        }
    }