e76567b9e7
Add a dungeon level generator, which: 1. generates an infinite sequence of rectangular rooms within the dimensions of the level 2. removes any duplicates from that sequence 3. Generates a graph from the delaunay triangulation of the centerpoints of those rooms 4. Generates the minimum-spanning-tree of that delaunay triangulation, with weights given by line length in points 5. Adds back a subset (default 10-15%) of edges from the delaunay triangulation to the graph 6. Uses the resulting graph to draw corridors between the rooms, using a random point on the near edge of each room to pick the points of the corridors
34 lines
1.1 KiB
Haskell
34 lines
1.1 KiB
Haskell
import Test.Prelude
|
|
import qualified Xanthous.Data.EntityCharSpec
|
|
import qualified Xanthous.Data.EntityMapSpec
|
|
import qualified Xanthous.Data.EntityMap.GraphicsSpec
|
|
import qualified Xanthous.DataSpec
|
|
import qualified Xanthous.Entities.RawsSpec
|
|
import qualified Xanthous.GameSpec
|
|
import qualified Xanthous.Generators.UtilSpec
|
|
import qualified Xanthous.MessageSpec
|
|
import qualified Xanthous.OrphansSpec
|
|
import qualified Xanthous.Util.GraphicsSpec
|
|
import qualified Xanthous.Util.GraphSpec
|
|
import qualified Xanthous.Util.InflectionSpec
|
|
import qualified Xanthous.UtilSpec
|
|
|
|
main :: IO ()
|
|
main = defaultMain test
|
|
|
|
test :: TestTree
|
|
test = testGroup "Xanthous"
|
|
[ Xanthous.Data.EntityCharSpec.test
|
|
, Xanthous.Data.EntityMapSpec.test
|
|
, Xanthous.Data.EntityMap.GraphicsSpec.test
|
|
, Xanthous.Entities.RawsSpec.test
|
|
, Xanthous.GameSpec.test
|
|
, Xanthous.Generators.UtilSpec.test
|
|
, Xanthous.MessageSpec.test
|
|
, Xanthous.OrphansSpec.test
|
|
, Xanthous.DataSpec.test
|
|
, Xanthous.UtilSpec.test
|
|
, Xanthous.Util.GraphicsSpec.test
|
|
, Xanthous.Util.GraphSpec.test
|
|
, Xanthous.Util.InflectionSpec.test
|
|
]
|