Exemple #1
0
    /// <summary>
    /// 确认能否移除
    /// </summary>
    /// <returns>true 能被删除,false 不能被删除</returns>
    public static bool CheckCanRemove(CanvasCore Core, ref PutERR err)
    {
        if (Core == null)
        {
            return(false);
        }
        ShipPlan P = ShipPlanDC.GetCurShipPlan();

        if (P == null)
        {
            return(false);
        }
        ShipPutInfo Info = P.GetShipBuildInfo(Core);

        if (Info == null)
        {
            return(false);
        }

        if (Core.m_type == ShipBuildType.BuildRoom && !Core.IsNewCreate)
        {
            if (Core.IsDeckRoom == false)
            {
                /*
                 * List<Int2> SubList =  Core.GetPutRoomGridXY();
                 * List<Int2> AddList = new List<Int2>();
                 * if(RoomMap.CheckMapLinkOk(SubList ,AddList ,Core.m_style, true) == false)
                 * {
                 *      err = PutERR.ERR_NOLink;
                 *      return false;
                 * }*/
                return(true);
            }
            else
            {
                return(true);
            }
        }
        return(true);
    }
Exemple #2
0
    /// <summary>
    /// 销毁整个对象。
    /// </summary>
    public void DestroyShipBuild()
    {
        PutERR Err = PutERR.ERR_NORMAL;

        if (PutCanvasM.CheckCanRemove(m_Core, ref Err) == false)
        {
            if (Err == PutERR.ERR_NOLink)
            {
                NGUIUtil.ShowTipWndByKey("88800009", 1.0f);
            }
            else if (Err == PutERR.ERR_HaveChild)
            {
                NGUIUtil.ShowTipWndByKey("88800010", 1.0f);
            }
            else
            {
                NGUIUtil.ShowTipWndByKey("88800011", 1.0f);
            }
            return;
        }
        if (m_Core.m_type == ShipBuildType.BuildStair)
        {
            //导致楼梯不删除的原因
            BuildProperty building = GetComponent <BuildProperty>();
            if (building != null)
            {
                GameObject skin = building.m_goAllBodySkin[0];
                if (skin != null)
                {
                    GameObjectActionExcute    gae  = skin.AddComponent <GameObjectActionExcute>();
                    GameObjectActionColorFade fade = new GameObjectActionColorFade(false, 1f);
                    fade.m_complete = DeleteStair;//删除楼梯表现回调
                    gae.AddAction(fade);
                }
            }
        }
        if (m_Building != null)
        {
            if (m_Core.Data.IsGoldBuild())
            {
                NGUIUtil.ShowTipWndByKey("88800012", 1.0f);
                return;
            }
        }
        MoveWithRoom(MyCore());
        TouchMoveManager.DeleteShipBuild(m_Core);
        CangKuWnd wnd = WndManager.GetDialog <CangKuWnd>();

        PutCanvasM.RemoveBuildRoom(m_Core);
        CreateStair(m_Core);
        GenerateDeck();
        TouchMoveManager.DoTransgatePoint();
        if (m_tTarget != null)
        {
            if (m_Core.m_type != ShipBuildType.BuildStair)
            {
                FlyToCangKuDelete(m_tTarget.gameObject, false);
                if (wnd)
                {
                    wnd.RefreshTrapUI();
                }
            }
        }
        //Destroy(GoClickBuildBtns);
    }