Ejemplo n.º 1
0
        protected void AddStairsUp(DungeonNode node)
        {
            var stairs = CreateStairsUp(node.NodeIndex);

            stairsUp = stairs;
            node.SetTile(stairs, node.GetEmptyTiles().First().point);
            OnStairsUpCreated(stairs);
        }
Ejemplo n.º 2
0
        internal Tile GenerateEntrance(List <Wall> points)
        {
            if (!Inited())
            {
                return(null);
            }
            int index = RandHelper.Random.Next(points.Count - 2);

            if (index == 0)
            {
                index++;//avoid corner
            }
            var pt    = points[index].point;
            var entry = new Tile();

            dungeonNode.SetTile(entry, pt);
            return(entry);
        }
Ejemplo n.º 3
0
        protected virtual void GenerateStairsDown(DungeonNode maze)
        {
            var stairs = new Stairs()
            {
                StairsKind = StairsKind.LevelDown, Symbol = '>'
            };
            //
            var tile = maze.GetRandomEmptyTile();

            if (tile != null)
            {
                maze.SetTile(stairs, tile.point);
                if (stairs.IsFromChildIsland())
                {
                    Logger.LogInfo("stairs.IsFromChildIsland! ");
                }
            }
            else
            {
                Logger.LogError("no room for stairs, maze: " + maze);
            }
        }