protected void AddStairsUp(DungeonNode node) { var stairs = CreateStairsUp(node.NodeIndex); stairsUp = stairs; node.SetTile(stairs, node.GetEmptyTiles().First().point); OnStairsUpCreated(stairs); }
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); }
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); } }