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; } }
protected override UnitAICommandLogic createAICommandLogic() { if (!_g13) { _m13 = instance.Type.GetMethod("createAICommandLogic", 0); _g13 = true; } if (_m13 != null && !_b13) { _b13 = true; UnitAICommandLogic re = (UnitAICommandLogic)appdomain.Invoke(_m13, instance, null); _b13 = false; return(re); } else { return(base.createAICommandLogic()); } }
//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); } } }