/** 执行特殊移动 */ private void toSpecialMove(int id, int[] args, bool isInitiative, bool isNewOne) { clearBaseMove(); _d.baseMoveState = UnitBaseMoveState.SpecialMove; _currentMoveIsInitiative = isInitiative; _specialMoveConfig = SpecialMoveConfig.get(_d.specialMoveID = id); _specialMoveType = _specialMoveConfig.type; _d.specialMoveArgs = args; //TODO:补充特殊移动 if (!_unit.isDriveAll() && isInitiative) { CUnitSpecialMoveRequest.create(_unit.instanceID, id, _unit.pos.getPosDir(), args).send(); } //全自己驱动 if (_unit.isDriveAll() && UnitSpecialMoveTypeConfig.get(_specialMoveType).withVertigo) { _unit.fight.getStatusLogic().addStatus(StatusType.Vertigo); } _unit.show.playMotion(_specialMoveConfig.motionID, false); toExecuteSpecialMove(isNewOne); }
/// <summary> /// 创建实例 /// </summary> public static CUnitSpecialMoveRequest create(int instanceID, int id, PosDirData posDir, int[] args) { CUnitSpecialMoveRequest re = (CUnitSpecialMoveRequest)BytesControl.createRequest(dataID); re.instanceID = instanceID; re.id = id; re.posDir = posDir; re.args = args; return(re); }