示例#1
0
 public SpaceView this[RoomPoint loc]
 {
     get
     {
         return(new SpaceView(m_world.Room[loc]));
     }
 }
示例#2
0
 public SpaceView this[RoomPoint loc]
 {
     get
     {
         return(((IWorldView)m_worldView)[loc]);
     }
 }
示例#3
0
        private bool CompareRange(RoomPoint point, int lowerX, int higherX, int lowerZ, int higherZ)
        {
            Structure.GetXPointRange(point, out var compareX, out var compreHighX);
            if (lowerX != compareX || compreHighX != higherX) return true;

            Structure.GetZPointRange(point, out var compareZ, out var compreHighZ);
            return lowerZ != compareZ || compreHighZ != higherZ;
        }
示例#4
0
        public void AddRootLife(Unit unit, RoomPoint loc)
        {
            bool isExist = m_rootLives.ContainsKey(loc);

            if (!isExist)
            {
                m_rootLives[loc] = new LinkedList <Unit>();
            }
            m_rootLives[loc].Add(unit);
            ShowBaseLifeGameStatus();
        }
示例#5
0
        /// <summary>
        /// 获取鼠标处于网格的位置
        /// </summary>
        /// <returns></returns>
        private RoomPoint?GetMouseClickPoint(Point mouseLoc)
        {
            Point deviationPoint = new Point(mouseLoc.X - c_lifeGameShow.Location.X, mouseLoc.Y - c_lifeGameShow.Location.Y);

            if (deviationPoint.X < 0 || deviationPoint.Y < 0)
            {
                return(null);
            }
            else
            {
                int       x      = (int)((deviationPoint.X / m_lifeGameView.WidthUnit) + 0.5f);
                int       y      = (int)((deviationPoint.Y / m_lifeGameView.HeightUnit) + 0.5f);
                RoomPoint result = new RoomPoint(x, y);
                return(result);
            }
        }
示例#6
0
        /// <summary>
        ///     GetRoofSupport: Adds the supporting columns at the edge of the roof down to the ceiling of the highest room.  This
        ///     prevents open air.
        /// </summary>
        private IEnumerable<RoomPoint> GetRoofSupport(RoomPoint p, int y)
        {
            var points = new List<RoomPoint>();

            bool addSupport = Structure.GetPoint(p.X, 0, p.Z).BlockName == WallBlock;
            if (!addSupport)
            {
                Structure.GetZPointRange(p, out var lowerZ, out var higherZ);
                Structure.GetXPointRange(p, out var lowerX, out var higherX);

                var left = Structure.GetPoint(p.X - 1, 0, p.Z);
                var right = Structure.GetPoint(p.X + 1, 0, p.Z);
                var front = Structure.GetPoint(p.X, 0, p.Z + 1);
                var back = Structure.GetPoint(p.X, 0, p.Z - 1);

                addSupport = left == null || right == null || front == null || back == null;

                if (!addSupport)
                {
                    var h = Structure.GetPointHeight(p);
                    addSupport = h != Structure.GetPointHeight(left) ||
                                 h != Structure.GetPointHeight(right) ||
                                 h != Structure.GetPointHeight(front) ||
                                 h != Structure.GetPointHeight(back);
                }

                if (!addSupport)
                {
                    addSupport = CompareRange(left, lowerX, higherX, lowerZ, higherZ) ||
                                 CompareRange(right, lowerX, higherX, lowerZ, higherZ) ||
                                 CompareRange(front, lowerX, higherX, lowerZ, higherZ) ||
                                 CompareRange(back, lowerX, higherX, lowerZ, higherZ);
                }
            }

            if (addSupport)
            {
                for (var wallY = y - 1; wallY >= Structure.GetPointHeight(p); wallY--)
                {
                    points.Add(new RoomPoint {X = p.X, Y = wallY, Z = p.Z, Order = 0, BlockName = Structure.WallBlock});
                }
            }

            return points;
        }
    public void BuildLevel()
    {
        startingRoomPoints = new RoomPoint[levelSize];
        Transform pointHolder  = GameObject.Find("Room Points").transform;
        Transform borderHolder = GameObject.Find("Borders").transform;

        for (int i = 0; i < levelSize; i++)
        {
            for (int j = 0; j < levelSize; j++)
            {
                RoomPoint newRoomPoint = Instantiate(roomPoint, new Vector2(roomStep * i, -roomStep * j), Quaternion.identity);
                newRoomPoint.transform.parent = pointHolder;

                Transform newBorderWall;

                if (newRoomPoint.transform.position.x % roomStep == 0 && newRoomPoint.transform.position.y == 0)
                {
                    startingRoomPoints[i] = newRoomPoint;

                    newBorderWall        = Instantiate(borderWall, new Vector3(newRoomPoint.transform.position.x, 5.5f), Quaternion.identity);
                    newBorderWall.parent = borderHolder;
                }

                if (newRoomPoint.transform.position.x % roomStep == 0 && newRoomPoint.transform.position.y == (1 - levelSize) * roomStep)
                {
                    newBorderWall        = Instantiate(borderWall, new Vector3(newRoomPoint.transform.position.x, -levelSize * roomStep + 4.5f), Quaternion.identity);
                    newBorderWall.parent = borderHolder;
                }

                if (newRoomPoint.transform.position.x == 0 && newRoomPoint.transform.position.y % roomStep == 0)
                {
                    newBorderWall        = Instantiate(borderWall, new Vector3(-5.5f, newRoomPoint.transform.position.y), Quaternion.AngleAxis(90, Vector3.forward));
                    newBorderWall.parent = borderHolder;
                }

                if (newRoomPoint.transform.position.x == limit && newRoomPoint.transform.position.y % roomStep == 0)
                {
                    newBorderWall        = Instantiate(borderWall, new Vector3(levelSize * roomStep - 4.5f, newRoomPoint.transform.position.y), Quaternion.AngleAxis(90, Vector3.forward));
                    newBorderWall.parent = borderHolder;
                }
            }
        }
    }
        /// <summary>
        ///
        /// </summary>
        public static List <RoomPoint> GetRoomPoints(int roomNumber)
        {
            var points = new List <RoomPoint>();

            if (roomNumber >= 1)
            {
                var room = new RoomPoint {
                    PointX = 35, PointY = 14, RoomNumber = 1
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 34, PointY = 83, RoomNumber = 1
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 15, PointY = 84, RoomNumber = 1
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 13, PointY = 135, RoomNumber = 1
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 34, PointY = 136, RoomNumber = 1
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 34, PointY = 245, RoomNumber = 1
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 336, PointY = 242, RoomNumber = 1
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 336, PointY = 137, RoomNumber = 1
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 376, PointY = 136, RoomNumber = 1
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 142, PointY = 14, RoomNumber = 1
                };
                points.Add(room);
            }

            if (roomNumber >= 2)
            {
                var room = new RoomPoint {
                    PointX = 445, PointY = 126, RoomNumber = 2
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 389, PointY = 241, RoomNumber = 2
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 763, PointY = 241, RoomNumber = 2
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 571, PointY = 139, RoomNumber = 2
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 559, PointY = 147, RoomNumber = 2
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 516, PointY = 128, RoomNumber = 2
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 487, PointY = 148, RoomNumber = 2
                };
                points.Add(room);
            }

            if (roomNumber >= 3)
            {
                var room = new RoomPoint {
                    PointX = 460, PointY = 299, RoomNumber = 3
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 458, PointY = 455, RoomNumber = 3
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 675, PointY = 455, RoomNumber = 3
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 673, PointY = 351, RoomNumber = 3
                };
                points.Add(room);

                room = new RoomPoint {
                    PointX = 551, PointY = 342, RoomNumber = 3
                };
                points.Add(room);
            }

            return(points);
        }
        private static void InitializeRoomPoint(MyEventsContext context, EventDefinition eventDefinition)
        {
            RoomPoint room;
            if (eventDefinition.RoomNumber >= 1)
            {
                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 35;
                room.PointY = 14;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 34;
                room.PointY = 83;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 15;
                room.PointY = 84;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 13;
                room.PointY = 135;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 34;
                room.PointY = 136;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 34;
                room.PointY = 245;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 336;
                room.PointY = 242;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 336;
                room.PointY = 137;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 376;
                room.PointY = 136;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 142;
                room.PointY = 14;
                room.RoomNumber = 1;
                context.RoomPoints.Add(room);
            }

            if (eventDefinition.RoomNumber >= 2)
            {
                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 445;
                room.PointY = 126;
                room.RoomNumber = 2;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 389;
                room.PointY = 241;
                room.RoomNumber = 2;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 763;
                room.PointY = 241;
                room.RoomNumber = 2;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 571;
                room.PointY = 139;
                room.RoomNumber = 2;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 559;
                room.PointY = 147;
                room.RoomNumber = 2;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 516;
                room.PointY = 128;
                room.RoomNumber = 2;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 487;
                room.PointY = 148;
                room.RoomNumber = 2;
                context.RoomPoints.Add(room);
            }

            if (eventDefinition.RoomNumber >= 3)
            {
                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 460;
                room.PointY = 299;
                room.RoomNumber = 3;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 458;
                room.PointY = 455;
                room.RoomNumber = 3;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 675;
                room.PointY = 455;
                room.RoomNumber = 3;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 673;
                room.PointY = 351;
                room.RoomNumber = 3;
                context.RoomPoints.Add(room);

                room = new RoomPoint();
                room.EventDefinitionId = eventDefinition.EventDefinitionId;
                room.PointX = 551;
                room.PointY = 342;
                room.RoomNumber = 3;
                context.RoomPoints.Add(room);
            }

            context.SaveChanges();



        }
示例#10
0
 public void RemoveLife(RoomPoint loc)
 {
     m_rootLives.Remove(loc);
     ShowBaseLifeGameStatus();
 }
示例#11
0
 public void AddRootLife(RoomPoint loc)
 {
     AddRootLife(new Unit(), loc);
 }