Beispiel #1
0
    /// <summary>
    /// 放开建筑处理
    /// </summary>
    public bool MoveBuildUp()
    {
        if (m_ExchangeTouch && m_ExchangeTouch != this)
        {
            m_ExchangeTouch.m_posMapGrid    = m_orgPosMapGrid;
            m_ExchangeTouch.m_orgPosMapGrid = m_ExchangeTouch.m_posMapGrid;
            m_ExchangeTouch.UpdateChildmGridWhenUp();

            m_orgPosMapGrid = m_posMapGrid;
            UpdateChildmGridWhenUp();
            SetPosByGrid(true);
            if (!m_ExchangeTouch.MyCore().IsDeckRoom)
            {
                CreateStair(m_Core);
            }
            m_ExchangeTouch = null;
            GenerateDeck();
            return(true);
        }


        bool bCanPut = PutCanvasM.CheckCanTempPut(m_Core, m_posMapGrid);

        if (bCanPut)
        {
            m_orgPosMapGrid = m_posMapGrid;
            UpdateChildmGridWhenUp();
            SetPosByGrid(true);
        }
        else
        {
            m_posMapGrid = m_orgPosMapGrid;
            UpdateChildmGridWhenUp();
            MoveShipBuilding(m_posMapGrid);
            SetPosByGrid(true);
        }
        if (!MyCore().IsDeckRoom)
        {
            CreateStair(m_Core);
        }
        GenerateDeck();
        return(true);
    }