public override void dispose() { base.dispose(); clearCurrentCommand(); _fightUnitConfig = null; }
/** 通过战斗单位配置初始化 */ public void initByFightUnitConfig(int id) { FightUnitConfig config = FightUnitConfig.get(id); //默认模型ID avatar.setDefaultModelID(config.modelID > 0 ? config.modelID : -1); }
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 virtual void makeUnitLoadList(IntSet loadList, UnitInfoData data) { if (BaseC.constlist.unit_canFight(data.identity.type)) { int fightUnitID; if ((fightUnitID = ((FightUnitIdentityData)data.identity).getFightUnitID()) > 0) { int modelID; if ((modelID = FightUnitConfig.get(fightUnitID).modelID) > 0) { loadList.add(ModelConfig.get(modelID).sourceT); } } } switch (data.identity.type) { case UnitType.Character: { } break; } }
public override void init() { base.init(); _aiLogic = _unit.ai; _fightUnitConfig = _unit.fight.getFightUnitConfig(); setDefaultCommand(_fightUnitConfig.defaultAICommand); }
/// <summary> /// 读完所有表后处理 /// </summary> public static void afterReadConfigAll() { FightUnitConfig fConfig; FightUnitLevelConfig[] values; FightUnitLevelConfig v; for (int i = (values = _dic.getValues()).Length - 1; i >= 0; --i) { if ((v = values[i]) != null) { if ((fConfig = FightUnitConfig.get(v.id)).levelMax < v.level) { fConfig.levelMax = v.level; } } } }
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; }
private void makeElementModel(SceneElementEditorData data) { switch (data.config.type) { case SceneElementType.Npc: { } break; case SceneElementType.Monster: { MonsterConfig monsterConfig = MonsterConfig.get(data.config.id); data.gameObject = createModel(FightUnitConfig.get(monsterConfig.fightUnitID).modelID, data); } break; case SceneElementType.Operation: { OperationConfig operationConfig = OperationConfig.get(data.config.id); data.gameObject = createModel(operationConfig.modelID, data); } break; case SceneElementType.FieldItem: { ItemConfig itemConfig = ItemConfig.get(data.config.id); data.gameObject = createModel(itemConfig.fieldItemModelID, data); } break; } setPosToGameObject(data); }
public override void init() { base.init(); _scenePosLogic = _scene.pos; _d = _data.move; _pos = _data.pos.pos; _dir = _data.pos.dir; //有战斗数据 if (_data.fight != null) { FightUnitConfig fightUnitConfig = _data.getFightIdentity().getFightUnitConfig(); _moveType = fightUnitConfig.mapMoveType; _walkSpeedRatio = fightUnitConfig.walkSpeedRatio; if (fightUnitConfig.needDrive) { if (_drive == null) { _drive = new DriveLogic(); } DriveLogic drive = _drive; drive.needDrive = true; drive.needDrive = fightUnitConfig.needDrive; drive.canDriveTurnAtPivot = fightUnitConfig.canDriveTurnAtPivot; drive.driveDirectionSpeed = fightUnitConfig.driveDirectionSpeedT; drive.driveTurnRadius = fightUnitConfig.driveTurnRadius; if (fightUnitConfig.driveAccelerateSpeed == 0) { drive.driveAccelerateSpeedM = 0f; drive.driveGroundFrictionM = 0f; } else { drive.driveAccelerateSpeedM = fightUnitConfig.driveAccelerateSpeed * Global.useMoveSpeedRatio / 1000000f; //先暂时取陆地的 drive.driveGroundFrictionM = MapBlockTypeConfig.get(MapBlockType.Land).groundFriction *Global.useMoveSpeedRatio / 1000000f; } } else { if (_drive != null) { _drive.needDrive = false; } } calculateUseMoveSpeed(); } else { if (_drive != null) { _drive.needDrive = false; } } }
/// <summary> /// 获取战斗单位配置(可能为空) /// </summary> public FightUnitConfig getFightUnitConfig() { return(FightUnitConfig.get(getFightUnitID())); }
//--主显示部分--// /** 初始化主显示 */ protected virtual void initMainShow() { bool hasModel = false; if (_data.avatar != null && _data.avatar.modelID > 0) { hasModel = true; setModel(_data.avatar.modelID); _data.avatar.parts.forEach((k, v) => { setPart(k, _unit.avatar.getShowPart(k)); }); } if (BaseC.constlist.unit_canFight(_data.identity.type)) { int fightUnitID = _data.getFightIdentity().getFightUnitID(); if (fightUnitID > 0) { FightUnitConfig fConfig = FightUnitConfig.get(fightUnitID); if (!hasModel && fConfig.modelID > 0) { setModel(fConfig.modelID); } if (fConfig.effectID > 0) { addEffect(fConfig.effectID); } } } //特殊的 switch (_unit.type) { case UnitType.SceneEffect: { SceneEffectIdentityData iData = _data.getSceneEffectIdentity(); if (iData.signedEffectID > 0) { addOrPlayEffect(iData.signedEffectID); } else { SceneEffectConfig config = SceneEffectConfig.get(((SceneEffectIdentityData)_data.identity).signedEffectID); if (config.modelID > 0) { setModel(config.modelID); } if (config.effectID > 0) { addOrPlayEffect(config.effectID); } } } break; case UnitType.FieldItem: { FieldItemIdentityData iData = (FieldItemIdentityData)_data.identity; ItemConfig itemConfig = ItemConfig.get(iData.item.id); if (itemConfig.fieldItemModelID > 0) { setModel(itemConfig.fieldItemModelID); } } break; } }