public RemovableObjectLogicObject BuyRemovableObject(RemovableObjectType type, TilePosition position, int propsNo, ref bool isRewardProps)
    {
        RemovableObjectData data = new RemovableObjectData();

        data.Position            = position;
        data.RemovableObjectNo   = ++this.m_RemovableObjectStartNo;
        data.RemovableObjectType = type;
        data.ConfigData          = ConfigInterface.Instance.RemovableConfigHelper.GetRemovableObjectData(type);

        RemovableObjectLogicObject result = new RemovableObjectLogicObject(data);

        isRewardProps = result.GenerateRewardData(propsNo);
        this.m_ObjectDict.Add(data.RemovableObjectNo, result);
        result.RemoveTimeUp += ObjectRemoveTimeUp;

        BuyRemovableObjectRequestParameter request = new BuyRemovableObjectRequestParameter();

        request.PositionColumn      = data.Position.Column;
        request.PositionRow         = data.Position.Row;
        request.RemovableObjectType = type;
        request.RewardExp           = data.RewardExp;
        request.RewardGem           = data.RewardGem;
        request.RewardPropsType     = data.RewardPropsType;
        CommunicationUtility.Instance.BuyRemovableObject(request);
        return(result);
    }
 public void BuyRemovableObject(BuyRemovableObjectRequestParameter parameter)
 {
     this.CommunicateWithServer(parameter.GetHashtableFromParameter(), ClientCommandConsts.BUY_REMOVABLE_OBJECT_COMMAND);
 }