Ejemplo n.º 1
0
    /** 执行特殊移动 */
    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);
    }
Ejemplo n.º 2
0
    /// <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);
    }