//设置爆炸地图 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); }
/// <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); } } }