Ejemplo n.º 1
0
    //设置爆炸地图
    public static void SetBombMap(ShipCanvasInfo Info)
    {
        ClearBombData();
        if (Info == null)
        {
            return;
        }
        Int2        StartPos = Int2.zero;
        List <Int2> lLinkPos = new List <Int2>();

        //LeftUp
        Info.GetMapAreaRoom(MapArea.LeftUp, ref StartPos, ref lLinkPos);
        BombArea bombarea = new BombArea();

        bombarea.ProcessType = BombProcessType.Middle;
        bombarea.SetArea(StartPos, lLinkPos);
        m_BombRoad.Add(BombRoad.LeftUp, bombarea);
        //RightDown
        Info.GetMapAreaRoom(MapArea.RightDown, ref StartPos, ref lLinkPos);
        bombarea             = new BombArea();
        bombarea.ProcessType = BombProcessType.Middle;
        bombarea.SetArea(StartPos, lLinkPos);
        m_BombRoad.Add(BombRoad.RightDown, bombarea);
        //LeftDown
        Info.GetMapAreaRoom(MapArea.LeftDown, ref StartPos, ref lLinkPos);
        bombarea             = new BombArea();
        bombarea.ProcessType = BombProcessType.Middle;
        bombarea.SetArea(StartPos, lLinkPos);
        m_BombRoad.Add(BombRoad.LeftDown, bombarea);
        //RightUp
        Info.GetMapAreaRoom(MapArea.RightUp, ref StartPos, ref lLinkPos);
        bombarea             = new BombArea();
        bombarea.ProcessType = BombProcessType.Middle;
        bombarea.SetArea(StartPos, lLinkPos);
        m_BombRoad.Add(BombRoad.RightUp, bombarea);
        //LeftMiddle
        Info.GetMapAreaRoom(MapArea.LeftMiddle, ref StartPos, ref lLinkPos);
        bombarea             = new BombArea();
        bombarea.ProcessType = BombProcessType.Middle;
        bombarea.SetArea(StartPos, lLinkPos);
        m_BombRoad.Add(BombRoad.LeftMiddle, bombarea);
        //RightMiddle
        Info.GetMapAreaRoom(MapArea.RightMiddle, ref StartPos, ref lLinkPos);
        bombarea             = new BombArea();
        bombarea.ProcessType = BombProcessType.Middle;
        bombarea.SetArea(StartPos, lLinkPos);
        m_BombRoad.Add(BombRoad.RightMiddle, bombarea);
        //Middle
        Info.GetMapAreaRoom(MapArea.Middle, ref StartPos, ref lLinkPos);
        List <List <Int2> > lCenterPos = new List <List <Int2> >();

        Info.GetMapCenterAreaRoom(ref lCenterPos);
        bombarea             = new BombArea();
        bombarea.ProcessType = BombProcessType.End;
        bombarea.SetArea(StartPos, lLinkPos);
        bombarea.SetCenterArea(lCenterPos);
        m_BombRoad.Add(BombRoad.Middle, bombarea);
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 添加金库建筑
    /// </summary>
    /// <param name="lRoomPos">建筑所在房间区域</param>
    /// <param name="room">建筑对象</param>
    /// <returns></returns>
    public static void JoinGoldBuildRoom(List <Int2> lRoomPos, Building room)
    {
        if (lRoomPos == null || lRoomPos.Count == 0 || room == null)
        {
            return;
        }
        BombArea bombarea = new BombArea();

        bombarea.ProcessType = BombProcessType.Start;
        bombarea.SetArea(lRoomPos, new List <Int2> ());
        m_BombRoad.Add(BombRoad.GoldStart, bombarea);
        //
        foreach (Int2 Pos in lRoomPos)
        {
            List <BombPoint> l = FindAreaRoom(Pos);
            foreach (BombPoint P in l)
            {
                P.SetBuild(room);
            }
        }
    }