Allow for random composition of trees

This commit is contained in:
2022-06-09 11:24:13 +01:00
parent 1f05c74abc
commit 1789a3785d
17 changed files with 103 additions and 88 deletions
-1
View File
@@ -18,7 +18,6 @@ import Dodge.LevelGen.StaticWalls
import Geometry
import LensHelp
import Data.Tree
import Control.Monad.State
import System.Random
roomGlassOctogon
+2 -3
View File
@@ -14,15 +14,14 @@ import Dodge.Tree
import Control.Monad.State
import System.Random
import Data.Tree
branchRectWith :: RandomGen g => State g (SubCompTree Room) -> State g (SubCompTree Room)
branchRectWith t = do
x <- state $ randomR (100,200)
y <- state $ randomR (100,200)
b <- t
root <- shuffleLinks $ roomRectAutoLinks x y
return $ Node (PassDown root)
rt <- shuffleLinks $ roomRectAutoLinks x y
return $ Node (PassDown rt)
[ Node (UseAll door) []
, changeToPassDown <$> treeFromTrunk [PassDown door] b
]
-1
View File
@@ -20,7 +20,6 @@ import qualified Data.Set as S
import Control.Monad.State
--import Control.Monad.Loops
import System.Random
import Data.Tree
glassLesson :: RandomGen g => State g (SubCompTree Room)
glassLesson = do
i <- takeOne [1,2,3]
-1
View File
@@ -30,7 +30,6 @@ import Dodge.RandomHelp
import qualified Data.Set as S
import Data.Maybe
import Data.Tree
import Control.Monad.State
import System.Random
-1
View File
@@ -26,7 +26,6 @@ import LensHelp
--import Shape
import qualified Data.Set as S
import Data.Tree
import System.Random
import Control.Monad.State
import Data.Maybe
-2
View File
@@ -24,10 +24,8 @@ import LensHelp
import Data.Tile
import qualified Data.Set as S
import Data.Tree
import System.Random
import Control.Monad.State
--import Data.Tree
--import qualified Data.IntMap as IM
longRoom :: RandomGen g => State g Room
-1
View File
@@ -31,7 +31,6 @@ import LensHelp
import qualified Data.Set as S
--import Data.Maybe
import Data.Tree
import Control.Monad.State
import System.Random
+2 -3
View File
@@ -30,7 +30,6 @@ import qualified Data.Set as S
import Control.Monad.State
--import Control.Monad.Loops
import System.Random
import Data.Tree
import Data.Bifunctor
roomC :: RandomGen g => Float -> Float -> State g Room
@@ -278,7 +277,7 @@ weaponBetweenPillars = do
weaponLongCorridor :: RandomGen g => State g (SubCompTree Room)
weaponLongCorridor = do
root <- takeOne [tEast, tWest]
rt <- takeOne [tEast, tWest]
connectingRoom <- takeOne
[tEast & rmPmnts .~ [spanLightI (V2 (-30) 40) (V2 (-30) 80)]
]
@@ -286,7 +285,7 @@ weaponLongCorridor = do
i2 <- state $ randomR (2,5)
let branch1 = treeFromTrunk (replicate i1 $ PassDown corridorN) (singleUseAll $ putCrs connectingRoom)
let branch2 = treeFromTrunk (replicate i2 $ PassDown corridorN) (singleUseNone $ putWp corridor)
return $ Node (PassDown root) [branch1,branch2]
return $ Node (PassDown rt) [branch1,branch2]
where
putCrs = over rmPmnts (++ [sPS (V2 10 40) (-pi/2) randC1 ,sPS (V2 (-10) 40) (-pi/2) randC1 ])
putWp = set rmPmnts [sPS (V2 20 60) 0 $ RandPS randFirstWeapon ,spanLightI (V2 0 40) (V2 40 40)]
-1
View File
@@ -26,7 +26,6 @@ import Color
import LensHelp
import qualified Data.Set as S
import Data.Tree
import Control.Monad.State
import System.Random
--import qualified Data.IntMap.Strict as IM