Allow for random composition of trees
This commit is contained in:
@@ -18,7 +18,6 @@ import Dodge.LevelGen.StaticWalls
|
||||
import Geometry
|
||||
import LensHelp
|
||||
|
||||
import Data.Tree
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
roomGlassOctogon
|
||||
|
||||
@@ -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
|
||||
]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)]
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user