Beispiel #1
0
 public void SetData(StaticShipCanvas s_shipInfo, bool showSelect, int ShipDesignID)
 {
     m_s_shipInfo   = s_shipInfo;
     m_showSelect   = showSelect;
     m_ShipDesignID = ShipDesignID;
     SetUI();
 }
Beispiel #2
0
    /// <summary>
    /// 目的区域是否是图形区域内.
    /// </summary>
    /// <returns><c>true</c>, if in shape was built, <c>false</c> otherwise.</returns>
    /// <param name="roomPosGrid">Room position grid.</param>
    public static bool BuildInShape(Int2 roomPosGrid)
    {
        StaticShipCanvas canvas = ShipPlanDC.GetCurShipDesignInfo();

        if (canvas != null)
        {
            string[] ShapeList = canvas.Shape.Split(',');
            //是否在设计图宽高内.
            if (roomPosGrid.Layer >= RoomMap.Mapv2Start.Layer && roomPosGrid.Layer < canvas.Height)
            {
                if (roomPosGrid.Unit >= RoomMap.Mapv2Start.Unit && roomPosGrid.Unit < canvas.Width)
                {
                    //设计图对应的位置是否能摆放
                    if (ShapeList.Length > 0 && ShapeList.Length <= canvas.Height && ShapeList[roomPosGrid.Layer].Length <= canvas.Width)
                    {
                        if (ShapeList[roomPosGrid.Layer][roomPosGrid.Unit] == '0')
                        {
                            return(false);
                        }
                    }

                    return(true);
                }
            }
        }
        return(false);
    }
Beispiel #3
0
    /// <summary>
    /// 设置方案画布
    /// </summary>
    public void SetPlanCanvans(canvasedit.ShipCanvasInfo Info)
    {
        if (Info == null)
        {
            return;
        }
        ID             = Info.id;
        Name           = Info.name;
        Type           = (PlanType)Info.type;
        BlackScienceID = Info.bs_id;
        //
        m_Canvans.width    = Info.width;
        m_Canvans.height   = Info.height;
        m_Canvans.map      = Info.map;
        m_Canvans.shape    = Info.shape;
        m_Canvans.shift_cx = Info.shift_cx;
        m_Canvans.shift_cy = Info.shift_cy;
        m_shipDesignId     = Info.designid;
        StaticShipCanvas shipInfo = ShipPlanDC.GetShipDesignInfo(m_shipDesignId);

        if (shipInfo != null)
        {
            m_Canvans.CorrectionShiftError(new Int2(shipInfo.Width, shipInfo.Height));
        }
    }
Beispiel #4
0
 static void InitShipCanvasData(List <s_shipcanvasInfo> l)
 {
     m_lShipCanvasInfo.Clear();
     foreach (s_shipcanvasInfo info in l)
     {
         StaticShipCanvas item = new StaticShipCanvas(info);
         m_lShipCanvasInfo.Add(item);
     }
 }
Beispiel #5
0
 /// <summary>
 ///  创建设计图(在金银岛掠夺结算掉落,且只会掉一张)
 /// </summary>
 void CreateDesignPic(StaticShipCanvas info)
 {
     NGUIUtil.SetActive(MyHead.SprDesignQuality.gameObject, true);
     NGUIUtil.SetActive(MyHead.DesignPic, true);
     NGUIUtil.SetSprite(MyHead.SprDesignQuality, info.Quality + "_ico");
     NGUIUtil.SetSprite(MyHead.SprDesignQuality1, info.Quality);
     NGUIUtil.SetLableText(MyHead.LblDesignCellCount, info.Cell);
     MyHead.mShipDesignUnitItem.SetData(info.Id);
     SetStarsLevel(info.StarLevel);
 }
Beispiel #6
0
    public static string [] GetDesignShape(int shipDesignID)
    {
        StaticShipCanvas canvas = ShipPlanDC.GetShipDesignInfo(shipDesignID);

        if (canvas != null)
        {
            return(canvas.Shape.Split(','));
        }
        return(null);
    }
Beispiel #7
0
    public static bool CheckIsDeckGrid(Int2 GridPos)
    {
        StaticShipCanvas canvas = ShipPlanDC.GetCurShipDesignInfo();

        if (canvas != null)
        {
            string[] l = canvas.Shape.Split(',');
            return(CheckIsDeckGrid(l, GridPos.Layer, GridPos.Unit));
        }
        return(false);
    }
Beispiel #8
0
    /// <summary>
    /// 获取当前方案最大的格子数.
    /// </summary>
    /// <returns>The end position by shape.</returns>
    /// <param name="ShipCanvasTypeId">Ship canvas type identifier.</param>
    public static Int2 GetEndPosByShape(int shipDesignID)
    {
        StaticShipCanvas canvas = ShipPlanDC.GetShipDesignInfo(shipDesignID);

        if (canvas != null)
        {
            Int2 endPos = new Int2();
            endPos.Layer = canvas.Height;
            endPos.Unit  = canvas.Width;
            return(endPos);
        }
        return(RoomMap.RealMapSize);
    }
Beispiel #9
0
    public static Vector3 GetDiffenceDisignCameraPos()
    {
        float            OffsetX = 0f;
        Int2             grid    = new Int2();
        StaticShipCanvas canva   = ShipPlanDC.GetCurShipDesignInfo();

        if (canva != null)
        {
            grid.Layer = canva.Height;
            grid.Unit  = canva.Width;
            OffsetX    = (RoomMap.MaxUnit - canva.Width) / 2 * 3f;
        }
        Vector3 pos = GetMainCameraPos(grid);

        pos.x = -OffsetX;
        return(pos);
    }
Beispiel #10
0
    private void AddShipModel(StaticShipCanvas info)
    {
        GameObject go = NDLoad.LoadWndItem("ShipDesignMapItem", ShipModelParent.transform);

        if (go != null)
        {
            ShipDesignMapItem item = go.GetComponent <ShipDesignMapItem>();
            if (item != null)
            {
                KeyValue size = new KeyValue();
                size.key   = SprShipBg.height;
                size.value = SprShipBg.width;

                item.SetData(info.Shape, info.Width, size);
            }
        }
    }
Beispiel #11
0
    public void SetUI()
    {
//		s_shipcanvasInfo info = ShipPlanM.GetShipCanvasInfo(m_shipInfo.ShipCanvasTypeId);
        StaticShipCanvas info = m_s_shipInfo;

        if (info != null)
        {
            int bigLevel = ConfigM.GetBigQuality(info.Quality);
            NGUIUtil.SetStarLevelNum(Star, info.StarLevel);
            LblShipDesignName.text = info.Name;            //NGUIUtil.GetBigQualityName(m_shipInfo.Name,info.quality);
            LblRoomCount.text      = info.Cell.ToString();
            NGUIUtil.SetSprite(SprQualityBg, bigLevel.ToString());
            NGUIUtil.SetSprite(SprQualityWzBg, bigLevel.ToString());
            NGUIUtil.SetSprite(SprQualityIco, bigLevel.ToString());
            SetChosenEnable(false);
            AddShipModel(info);
        }
//
    }
Beispiel #12
0
    public void LoadShipDesign()
    {
        U3DUtil.DestroyAllChild(MyHead.ShipDesignParent, false);
        StaticShipCanvas canvas = ShipPlanDC.GetCurShipDesignInfo();

        if (canvas != null)
        {
            GameObject go = NDLoad.LoadWndItem("ShipDesignItem", MyHead.ShipDesignParent.transform);
            if (go != null)
            {
                go.transform.localScale = new Vector3(0.8f, 0.8f, 1f);
                ShipDesignItem item = go.GetComponent <ShipDesignItem>();
                if (item != null)
                {
                    item.SetData(canvas, false, ShipPlanDC.CurShipDesignID);
                    EventDelegate.Add(item.BtnSelect.onClick, BtnSelectChange);
                }
            }
        }
    }
Beispiel #13
0
    private void ShowUnit()
    {
        StaticShipCanvas info = ShipPlanM.GetShipCanvasInfo(m_id);

        if (info != null)
        {
            List <string> data  = ShipPlanM.ParseShapeData(info.Shape);
            int           index = 0;
            foreach (string item in data)
            {
                for (int i = 0; i < item.Length; i++)
                {
                    if (item[i] == 49)
                    {
                        NGUIUtil.SetActive(m_lGo[index], true);
                    }
                    index++;
                }
            }
        }
    }
Beispiel #14
0
    void CreateWhenSelectChange(ShipModemType type)
    {
        U3DUtil.DestroyAllChild(MyHead.Table.gameObject);
        List <StaticShipCanvas> l = ShipPlanDC.GetAllShipDesignList(type);

        SortCanvasList(ref l);
        for (int i = 0; i < l.Count; i++)
        {
            StaticShipCanvas Info = l[i];

            GameObject go = NDLoad.LoadWndItem("ShipDesignItem", MyHead.Table.transform);
            if (go != null)
            {
                ShipDesignItem item = go.GetComponent <ShipDesignItem>();
                if (item != null)
                {
                    item.SetData(Info, m_iWndType == WndType.ShipEdit, Info.ShipDesignID);
                    item.m_SelectCallBack = ShipDesignItemCallBack;
                }
            }
        }
        StartCoroutine(RepositionTable(1));
    }
Beispiel #15
0
    /// <summary>
    /// 显示船只设计图
    /// </summary>
    public void ShowDesignAction()
    {
        treasure.TreasureRobSettleResponse response = null;
        if (response != null)
        {
            int sShipCanvasID      = response.shipdrawingid;
            StaticShipCanvas sInfo = ShipPlanM.GetShipCanvasInfo(sShipCanvasID);
            if (sInfo != null)
            {
                sdata.s_itemtypeInfo itypeInfo = new sdata.s_itemtypeInfo();
                itypeInfo.gid   = sShipCanvasID;
                itypeInfo.name  = sInfo.Name;
                itypeInfo.gtype = 5;
                List <sdata.s_itemtypeInfo> lInfo = new List <sdata.s_itemtypeInfo>();
                lInfo.Add(itypeInfo);

                TrophiesActionWnd TropWnd = WndManager.GetDialog <TrophiesActionWnd>();
                if (TropWnd)
                {
                    TropWnd.ClearTropiesData();
                    TropWnd.AddTropiesData(lInfo);
                    TropWnd.SetWndType(5);
                    TropWnd.MyHead.LblDes.gameObject.SetActive(false);
                    TropWnd.BtnOKClickHandler += CheckShowCombatResult;
                }
            }
            else
            {
                CheckShowCombatResult();
            }
        }
        else
        {
            CheckShowCombatResult();
        }
    }
Beispiel #16
0
    /// <summary>
    /// 模拟数据
    /// </summary>
    public static void SimulationData()
    {
        List <StaticShipCanvas> l = ShipPlanM.GetAllShipCanvasInfo();

        foreach (StaticShipCanvas v in l)
        {
            m_lShipDesignInfo.Add(v.Id, v);
        }
        //
        ShipPlan p = new ShipPlan();

        p.ID             = 1;
        p.bExitCanvas    = false;
        p.Name           = "我的小船船";
        p.Type           = PlanType.Default;
        p.BlackScienceID = 1;

        p.Canvans      = StageM.GetCounterPartMap(101001);
        p.ShipDesignId = 100005; // 16格大船
        StaticShipCanvas shipInfo = ShipPlanDC.GetShipDesignInfo(p.ShipDesignId);

        if (shipInfo != null)
        {
            p.Canvans.CorrectionShiftError(new Int2(shipInfo.Width, shipInfo.Height));
        }
        // 船只摆设数据
        List <SoldierInfo> lSoldier = null;
        List <BuildInfo>   lBuild   = null;

        StageM.GetCounterPartShipPut(101001, ref lSoldier, ref lBuild);
        // 建筑跟楼梯
        foreach (BuildInfo v in lBuild)
        {
            if (v.BuildType == 1300)
            {
                BuildInfo   gold = BuildDC.GetVaultBuildInfo();
                ShipPutInfo Info = new ShipPutInfo();
                Info.id            = ShipPutInfo.GetNewShipPutId();
                Info.objid         = gold.ID;
                Info.type          = 1;
                Info.cxMapGrid     = v.m_cx;
                Info.cyMapGrid     = v.m_cy;
                Info.shipput_data0 = 0;
                Info.shipput_data1 = 0;
                p.AddShipBuildInfo(Info, ShipBuildType.BuildRoom);
            }
            if (v.BuildType == 1201)
            {
                ShipPutInfo Info = new ShipPutInfo();
                Info.id            = ShipPutInfo.GetNewShipPutId();
                Info.objid         = v.BuildType;
                Info.type          = 3;
                Info.cxMapGrid     = v.m_cx;
                Info.cyMapGrid     = v.m_cy;
                Info.shipput_data0 = 0;
                Info.shipput_data1 = 0;
                p.AddShipBuildInfo(Info, ShipBuildType.BuildStair);
            }
        }

        m_lShipPlan.Add(p.ID, p);
        m_SelPlan = p;
    }
Beispiel #17
0
    private void LoadTrophies(int gtype, int gid, bool isSoul = false, bool isNewVersion = false, int num = 0, bool isBook = false)
    {
        NGUIUtil.SetActive(MyHead.SkillInfo, false);
        NGUIUtil.SetActive(MyHead.Building, false);

        if (isNewVersion)
        {
            if (MyHead.LblDes != null)
            {
                MyHead.LblDes.gameObject.SetActive(false);
            }
        }
        if (gtype == 1)   //炮弹兵
        {
            SoldierInfo Info = SoldierM.GetStartSoldierInfo(gid);
            CreateSoldier(Info);

            if (isNewVersion)
            {
                if (isSoul && num > 0)
                {
                    int startLevel = SoldierM.GetSoldierStarLevel(Info.SoldierTypeID);
                    MyHead.LblDes.text = string.Format(NGUIUtil.GetStringByKey(10000119), startLevel, num);
                    MyHead.LblDes.gameObject.SetActive(true);
                }
            }
            else if (m_isSoulPis && m_SoulPisNum > 0)
            {
                int startLevel = SoldierM.GetSoldierStarLevel(Info.SoldierTypeID);
                MyHead.LblDes.text = string.Format(NGUIUtil.GetStringByKey(10000119), startLevel, m_SoulPisNum);
            }
            m_bNotTween = false;
        }
        else if (gtype == 3)     // 陷阱/建筑物
        {
            BuildInfo Info = buildingM.GetStartBuildInfo(gid);
            if (Info != null)
            {
                CreateBuilding(Info);
            }

            m_bNotTween = true;
        }
        else if (gtype == 4)     //黑科技
        {
            NGUIUtil.SetActive(MyHead.BlackScience, true);
            CaptionInfo info = new CaptionInfo();
            GodSkillM.GetCaption(gid, ref info);
            CreateBlackScience(info);
            if (isNewVersion)
            {
                if (isBook && num > 0)
                {
                    int star = GodSkillM.GetCaptionMinStarLevel(info.m_godskilltype1);
                    MyHead.LblDes.text = string.Format(NGUIUtil.GetStringByKey(30000060), star, num);
                    MyHead.LblDes.gameObject.SetActive(true);
                }
            }
            else if (m_isSoulPis && m_SoulPisNum > 0)
            {
                int star = GodSkillM.GetCaptionMinStarLevel(info.m_godskilltype1);
                MyHead.LblDes.text = string.Format(NGUIUtil.GetStringByKey(30000060), star, m_SoulPisNum);
            }
            m_bNotTween = true;
        }
        else if (gtype == 5)     //设计图
        {
            StaticShipCanvas cInfo = ShipPlanM.GetShipCanvasInfo(gid);
            CreateDesignPic(cInfo);
            m_bNotTween = true;
        }
        else if (gtype == 2)     //碎片
        {
            CreateTrophyItem(gtype, gid);
        }
        SoundPlay.Play("get_item", false, false);
    }