Cleanup
This commit is contained in:
@@ -4,7 +4,7 @@ module Dodge.Annotation
|
||||
( module Dodge.Annotation.Data
|
||||
, module Dodge.Annotation
|
||||
) where
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Tree
|
||||
import Dodge.Room
|
||||
import Dodge.Data
|
||||
@@ -12,7 +12,6 @@ import Dodge.Annotation.Data
|
||||
--import LensHelp
|
||||
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
--import Control.Lens
|
||||
import Data.Maybe
|
||||
|
||||
|
||||
+1
-2
@@ -9,13 +9,12 @@ import Dodge.Item.Weapon.LaserPath
|
||||
import Geometry
|
||||
import LensHelp
|
||||
import Picture
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Zone
|
||||
import Dodge.Base.Collide
|
||||
import Shape
|
||||
|
||||
import Data.List (sortOn)
|
||||
import System.Random
|
||||
import MonadHelp
|
||||
import Control.Monad.State
|
||||
import Data.Maybe
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import Dodge.Zone
|
||||
import Dodge.WorldEvent.Sound
|
||||
import Dodge.Wall.Delete
|
||||
import Dodge.Wall.Dust
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Geometry
|
||||
--import Geometry.ConvexPoly
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ module Dodge.Creature.Perception
|
||||
import Dodge.Data
|
||||
import Dodge.Creature.Vocalization
|
||||
import Dodge.Base.Collide
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
--import Dodge.SoundLogic
|
||||
import Geometry.Vector
|
||||
--import Geometry.Data
|
||||
@@ -18,7 +18,6 @@ import Sound.Data
|
||||
import Control.Monad.State
|
||||
import Data.Maybe
|
||||
import Control.Lens
|
||||
import System.Random
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
import qualified Data.Map.Strict as M
|
||||
|
||||
|
||||
@@ -16,13 +16,12 @@ import Dodge.Item.Weapon.BulletGuns
|
||||
import Dodge.Item.Consumable
|
||||
import Geometry
|
||||
import Picture
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
|
||||
import Data.Maybe
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
import Control.Lens
|
||||
import Control.Monad.State
|
||||
--import System.Random
|
||||
|
||||
pistolCrit :: Creature
|
||||
pistolCrit = defaultCreature
|
||||
|
||||
@@ -13,7 +13,7 @@ import Dodge.Creature.Impulse.Movement
|
||||
--import Dodge.Creature.Test
|
||||
--import Dodge.Base
|
||||
import Dodge.SoundLogic
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.WorldEvent
|
||||
--import Dodge.WallCreatureCollisions
|
||||
import Dodge.Creature.Action
|
||||
@@ -36,7 +36,6 @@ import Control.Monad.State
|
||||
--import Control.Monad
|
||||
--import qualified SDL
|
||||
--import qualified SDL.Mixer as Mix
|
||||
import System.Random
|
||||
--import qualified Data.Set as S
|
||||
--import qualified Data.Map as M
|
||||
--import qualified Data.Vector as V
|
||||
|
||||
+1
-2
@@ -26,14 +26,13 @@ import Dodge.Data
|
||||
--import Dodge.Room.RunPast
|
||||
--import MonadHelp
|
||||
import LensHelp
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
--import Color
|
||||
--import Dodge.Wire
|
||||
|
||||
--import Control.Lens
|
||||
import Control.Monad.State
|
||||
--import Control.Monad.Loops
|
||||
import System.Random
|
||||
--import Data.Sequence hiding (zipWith)
|
||||
--import Data.Maybe
|
||||
--import qualified Data.IntMap.Strict as IM
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
module Dodge.Item.Random where
|
||||
import Dodge.Data
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Item.Weapon.BulletGuns
|
||||
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
|
||||
randBlockBreakWeapon :: RandomGen g => State g Item
|
||||
randBlockBreakWeapon = takeOne [bangStick 1,bangCane]
|
||||
|
||||
@@ -19,7 +19,7 @@ import Dodge.Zone
|
||||
import Dodge.SoundLogic
|
||||
import Dodge.WorldEvent.SpawnParticle
|
||||
import Dodge.WorldEvent.Cloud
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Geometry
|
||||
import Picture
|
||||
import qualified IntMapHelp as IM
|
||||
@@ -33,7 +33,6 @@ import Data.Maybe
|
||||
import Control.Lens
|
||||
import Control.Applicative
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
|
||||
launcher :: Item
|
||||
launcher = defaultGun
|
||||
|
||||
@@ -63,7 +63,7 @@ import Dodge.Base.Collide
|
||||
import Dodge.SoundLogic
|
||||
import Dodge.Reloading
|
||||
import Dodge.WorldEvent
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Inventory.Lock
|
||||
import Dodge.Creature.HandPos
|
||||
import Dodge.Creature.Test
|
||||
@@ -76,7 +76,6 @@ import Dodge.LightSource
|
||||
--import Data.Preload
|
||||
import LensHelp
|
||||
|
||||
import System.Random
|
||||
--import Control.Lens
|
||||
import Control.Monad.State
|
||||
import Data.Maybe
|
||||
|
||||
+1
-2
@@ -21,7 +21,7 @@ import Geometry
|
||||
--import Geometry.ConvexPoly
|
||||
import qualified IntMapHelp as IM
|
||||
import Tile
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Color
|
||||
import Shape
|
||||
--import Padding
|
||||
@@ -29,7 +29,6 @@ import Shape
|
||||
import Data.List (nubBy)
|
||||
import Data.Traversable
|
||||
import Control.Lens
|
||||
import System.Random
|
||||
import Data.Foldable
|
||||
import qualified Control.Foldl as L
|
||||
import Data.Maybe
|
||||
|
||||
@@ -7,7 +7,7 @@ module Dodge.LevelGen.LevelStructure
|
||||
import Dodge.LevelGen.Data
|
||||
--import Dodge.Tree.Compose.Data
|
||||
import Dodge.Data
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Color
|
||||
import LensHelp
|
||||
|
||||
@@ -16,7 +16,6 @@ import qualified Data.IntMap.Strict as IM
|
||||
import qualified Data.Map.Strict as M
|
||||
--import Control.Lens
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
|
||||
worldToGenWorld :: IM.IntMap Room -> World -> World
|
||||
worldToGenWorld rms w = w
|
||||
|
||||
@@ -4,7 +4,7 @@ import Dodge.Data
|
||||
import Dodge.Tree
|
||||
--import Dodge.LevelGen.Data
|
||||
import Dodge.Room
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Creature
|
||||
import Dodge.Item.Craftable
|
||||
import Dodge.Item.Weapon.BulletGun.Rod
|
||||
@@ -12,7 +12,6 @@ import Dodge.Item
|
||||
--import LensHelp
|
||||
--import Dodge.Item.Equipment
|
||||
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
|
||||
bossKeyItems :: RandomGen g => [ (State g (SubCompTree Room), State g ItemBaseType) ]
|
||||
|
||||
@@ -9,13 +9,12 @@ import Dodge.Damage
|
||||
--import Dodge.Base.Collide
|
||||
import Dodge.Particle.Spark
|
||||
--import Dodge.WorldEvent.ThingsHit
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Picture
|
||||
import Geometry
|
||||
--import qualified IntMapHelp as IM
|
||||
import LensHelp
|
||||
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
--import Data.Function (on)
|
||||
--import Data.List
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
module Dodge.Placement.Instance.Creature where
|
||||
--import Dodge.LevelGen.Data
|
||||
import Dodge.Data
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Creature.ArmourChase
|
||||
import Dodge.Creature.ChaseCrit
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import Geometry
|
||||
import Dodge.Creature.Inanimate
|
||||
import Shape.Data
|
||||
import Dodge.Default
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Color
|
||||
import Shape
|
||||
import ShapePicture
|
||||
|
||||
@@ -8,10 +8,9 @@ import Shape
|
||||
import Geometry
|
||||
import Color
|
||||
import LensHelp
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
--import Dodge.Base.NewID
|
||||
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
import qualified Quaternion as Q
|
||||
import Data.List (zip4)
|
||||
|
||||
@@ -1,113 +0,0 @@
|
||||
{- Helpers for random generation. -}
|
||||
module Dodge.RandomHelp where
|
||||
import Geometry
|
||||
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
import Data.List
|
||||
|
||||
randomRanges :: (Random a,RandomGen g) => [a] -> State g a
|
||||
randomRanges = join . takeOne . f
|
||||
where
|
||||
f (x:y:ys) = state (randomR (x,y)) : f ys
|
||||
f _ = []
|
||||
|
||||
takeOne :: RandomGen g => [a] -> State g a
|
||||
takeOne xs = state (randomR (0,length xs - 1)) >>= (\i -> return (xs !! i))
|
||||
|
||||
takeOneWeighted :: (RandomGen g, Random b, Ord b, Num b) => [b] -> [a] -> State g a
|
||||
takeOneWeighted ws xs = state (randomR (0, sum ws)) >>= (\w -> return (xs !! i w ws))
|
||||
where
|
||||
i y (z:zs)
|
||||
| y <= z = 0
|
||||
| otherwise = 1 + i (y-z) zs
|
||||
i _ _ = 0
|
||||
|
||||
takeOneMore :: RandomGen g => ([a],[a]) -> State g ([a],[a])
|
||||
takeOneMore ( _,[]) = error "trying to takeOneMore from empty list"
|
||||
takeOneMore (xs,ys) = do
|
||||
i <- state $ randomR (0,length ys - 1)
|
||||
let (zs, w:ws) = splitAt i ys
|
||||
return (w:xs, zs ++ ws)
|
||||
|
||||
takeNMore :: RandomGen g => Int -> ([a],[a]) -> State g ([a],[a])
|
||||
takeNMore n p = foldl' (flip $ const (>>= takeOneMore)) (return p) [1..n]
|
||||
|
||||
takeN :: RandomGen g => Int -> [a] -> State g [a]
|
||||
takeN 0 _ = return []
|
||||
takeN i xs = fst <$> takeNMore i ([],xs)
|
||||
|
||||
-- | Randomly shuffle a list.
|
||||
shuffle :: RandomGen g => [a] -> State g [a]
|
||||
shuffle xs = do
|
||||
rands <- forM [0..length xs-1] $ \i -> state $ randomR (0,i)
|
||||
let f ys rand = let (as,b:bs) = splitAt rand ys
|
||||
in (as ++ bs, b)
|
||||
let (_,zs) = mapAccumR f xs rands
|
||||
return zs
|
||||
|
||||
-- | Randomly shuffle the tail of a list, not safe.
|
||||
shuffleTail :: RandomGen g => [a] -> State g [a]
|
||||
shuffleTail (x:xs) = (x :) <$> shuffle xs
|
||||
shuffleTail _ = undefined
|
||||
|
||||
-- select elements from a list randomly
|
||||
-- each element has the same independent chance of being selected
|
||||
randomSelectionFromList :: RandomGen g => Float -> [a] -> State g [a]
|
||||
randomSelectionFromList = filterM . const . randProb
|
||||
|
||||
randProb :: RandomGen g => Float -> State g Bool
|
||||
randProb p = do
|
||||
p1 <- state $ randomR (0,1)
|
||||
return (p1 < p)
|
||||
|
||||
randInCirc :: RandomGen g => Float -> State g Point2
|
||||
randInCirc maxRad = do
|
||||
rad <- state $ randomR (0,maxRad)
|
||||
ang <- state $ randomR (0,2*pi)
|
||||
return $ rad *.* unitVectorAtAngle ang
|
||||
|
||||
randOnUnitSphere :: RandomGen g => State g Point3
|
||||
randOnUnitSphere = do
|
||||
z <- state $ randomR (negate 1,1)
|
||||
longitude <- state $ randomR (0, 2*pi)
|
||||
let (V2 x y) = sqrt (1 - z^(2::Int)) *.* unitVectorAtAngle longitude
|
||||
return (V3 x y z)
|
||||
|
||||
randOnHemisphere :: RandomGen g => State g Point3
|
||||
randOnHemisphere = do
|
||||
z <- state $ randomR (0,1)
|
||||
longitude <- state $ randomR (0, 2*pi)
|
||||
let (V2 x y) = sqrt (1 - z^(2::Int)) *.* unitVectorAtAngle longitude
|
||||
return (V3 x y z)
|
||||
|
||||
randInHemisphere :: RandomGen g => State g Point3
|
||||
randInHemisphere = do
|
||||
p <- randOnHemisphere
|
||||
r <- state $ randomR (0,1)
|
||||
return $ r *.*.* p
|
||||
|
||||
randInRect :: RandomGen g => Float -> Float -> State g Point2
|
||||
randInRect w h = do
|
||||
x <- state $ randomR (0,w)
|
||||
y <- state $ randomR (0,h)
|
||||
return (V2 x y)
|
||||
|
||||
maybeTakeOne :: RandomGen g => [a] -> State g (Maybe a)
|
||||
maybeTakeOne [] = return Nothing
|
||||
maybeTakeOne xs = state (randomR (0,length xs - 1)) >>= (\i -> return (Just (xs !! i)))
|
||||
|
||||
randsSpread :: RandomGen g => (Float,Float) -> Int -> State g [Float]
|
||||
randsSpread (a,b) i
|
||||
| i <= 0 = error "tried to take <= 0 randsSpread"
|
||||
| otherwise = zipWith (+) [a+x,a+2*x..] <$> replicateM i (state $ randomR (0,x))
|
||||
where
|
||||
x = (b-a)/fromIntegral i
|
||||
|
||||
randsOnCirc :: RandomGen g => Int -> State g [Float]
|
||||
randsOnCirc = randsSpread (0,2*pi)
|
||||
--randsOnCirc i
|
||||
-- | i <= 0 = error "tried to take <= 0 randsOnCirc"
|
||||
-- | otherwise = zipWith (+) [x,2*x..] <$> replicateM i (state $ randomR (0,x))
|
||||
-- where
|
||||
-- x = 2*pi/fromIntegral i
|
||||
@@ -9,12 +9,11 @@ import Dodge.Default.Wall
|
||||
import Dodge.Data
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.LevelGen.Switch
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Geometry
|
||||
import Picture
|
||||
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
{- | A passage with a switch that opens forward access while closing backwards access. -}
|
||||
airlock :: RandomGen g => State g Room
|
||||
|
||||
@@ -12,14 +12,13 @@ import Dodge.Room.Corridor
|
||||
import Dodge.Room.Path
|
||||
--import Dodge.LevelGen.Data
|
||||
import Dodge.Creature
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Tree
|
||||
import Dodge.LevelGen.StaticWalls
|
||||
import Geometry
|
||||
import LensHelp
|
||||
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
roomGlassOctogon
|
||||
:: Float -- ^ Size
|
||||
-> Room
|
||||
|
||||
@@ -3,7 +3,7 @@ module Dodge.Room.Containing where
|
||||
import Dodge.Data
|
||||
import Dodge.Tree
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Room.Procedural
|
||||
import Dodge.Room.Tanks
|
||||
import Dodge.Room.Link
|
||||
@@ -12,7 +12,6 @@ import LensHelp
|
||||
import Geometry
|
||||
--import Dodge.Item.Equipment
|
||||
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
import Data.List
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import Dodge.RoomLink
|
||||
import Dodge.Creature
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.Data
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Default.Wall
|
||||
import Dodge.Tree
|
||||
import Dodge.Placement.Instance
|
||||
@@ -19,7 +19,6 @@ import LensHelp
|
||||
import qualified Data.Set as S
|
||||
import Control.Monad.State
|
||||
--import Control.Monad.Loops
|
||||
import System.Random
|
||||
glassLesson :: RandomGen g => State g (SubCompTree Room)
|
||||
glassLesson = do
|
||||
i <- takeOne [1,2,3]
|
||||
|
||||
@@ -25,13 +25,12 @@ import Geometry
|
||||
import Color
|
||||
import Shape
|
||||
import LensHelp
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
--import Dodge.SoundLogic
|
||||
|
||||
import qualified Data.Set as S
|
||||
import Data.Maybe
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
|
||||
cenLasTur :: Room
|
||||
cenLasTur = roomNgon 8 200 & rmPmnts .~
|
||||
|
||||
@@ -21,17 +21,15 @@ import Dodge.ShiftPoint
|
||||
import Dodge.Placement.Shift
|
||||
--import Dodge.LevelGen.Data
|
||||
import Dodge.Data
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Geometry
|
||||
import Data.Tile
|
||||
import Dodge.RoomLink
|
||||
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
import Control.Lens
|
||||
import Data.List
|
||||
import qualified Data.Set as S
|
||||
--import System.Random
|
||||
|
||||
chooseOneInLink :: RandomGen g => Room -> State g Room
|
||||
chooseOneInLink r = restrictToFstInLink <$> shuffleLinks r
|
||||
|
||||
@@ -16,7 +16,7 @@ import Dodge.Room.Procedural
|
||||
--import Dodge.Layout.Tree.Either
|
||||
--import Dodge.LevelGen.Data
|
||||
import Dodge.LevelGen.Switch
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Creature.Inanimate
|
||||
import Dodge.Creature
|
||||
import Dodge.LightSource
|
||||
@@ -26,7 +26,6 @@ import LensHelp
|
||||
--import Shape
|
||||
|
||||
import qualified Data.Set as S
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
import Data.Maybe
|
||||
--import Data.Tree
|
||||
|
||||
@@ -14,7 +14,7 @@ import Dodge.Room.Procedural
|
||||
--import Dodge.Layout.Tree.Either
|
||||
--import Dodge.LevelGen.Data
|
||||
--import Dodge.LevelGen.Switch
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Creature.Inanimate
|
||||
import Dodge.Creature
|
||||
--import Dodge.LightSource
|
||||
@@ -24,7 +24,6 @@ import LensHelp
|
||||
import Data.Tile
|
||||
|
||||
import qualified Data.Set as S
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
--import qualified Data.IntMap as IM
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ module Dodge.Room.Modify.Girder
|
||||
--import Dodge.Data
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.Data
|
||||
import Dodge.RandomHelp
|
||||
--import Dodge.Room.Procedural
|
||||
import Dodge.Room.Foreground
|
||||
--import Dodge.Room.RoadBlock
|
||||
@@ -20,12 +19,11 @@ import Color
|
||||
import Shape
|
||||
import LensHelp
|
||||
import Geometry
|
||||
import RandomHelp
|
||||
|
||||
import Data.Maybe
|
||||
import Data.List (nub)
|
||||
--import Data.Tree
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
import qualified Data.Set as S
|
||||
|
||||
addGirderNS :: RandomGen g => (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
||||
|
||||
@@ -8,14 +8,13 @@ import Dodge.Creature
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.Room.Procedural
|
||||
--import Dodge.Room.Link
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
--import Dodge.LevelGen.Data
|
||||
import Geometry.Data
|
||||
|
||||
import Control.Lens
|
||||
--import Control.Monad
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
{- |
|
||||
A room designed to be /passable/ with no weapons.
|
||||
Highlights an issue: when trying to place next door rooms, if the level generation fails it will try a different link.
|
||||
|
||||
@@ -23,7 +23,7 @@ import Dodge.Default.Room
|
||||
--import Dodge.Item.Consumable
|
||||
--import Dodge.Item.Equipment
|
||||
--import Dodge.Item.Weapon
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.LevelGen.Switch
|
||||
import Dodge.Creature
|
||||
@@ -37,7 +37,6 @@ import qualified Data.IntMap.Strict as IM
|
||||
--import Control.Lens
|
||||
import Control.Monad
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
-- This will need a cleanup, but it might change a bit first
|
||||
{- A simple rectangular room with a light in the center.
|
||||
Creates links and pathfinding graph. -}
|
||||
|
||||
@@ -9,7 +9,7 @@ import Dodge.Data
|
||||
--import Dodge.Default
|
||||
--import Dodge.RoomLink
|
||||
import Dodge.Tree
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Room.Door
|
||||
import Dodge.Room.Corridor
|
||||
--import Dodge.Room.Room
|
||||
@@ -32,7 +32,6 @@ import LensHelp
|
||||
import qualified Data.Set as S
|
||||
--import Data.Maybe
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
|
||||
rezBox :: LightSource -> Room
|
||||
rezBox ls = roomRect 40 60 1 1
|
||||
|
||||
@@ -10,13 +10,12 @@ import Dodge.Placement.Instance
|
||||
import Dodge.Room.Corridor
|
||||
--import Dodge.LevelGen.Data
|
||||
--import Dodge.Default.Wall
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Creature
|
||||
import Dodge.Tree
|
||||
|
||||
import Control.Monad.State
|
||||
import Control.Lens
|
||||
import System.Random
|
||||
|
||||
armouredCorridor :: RandomGen g => State g Room
|
||||
armouredCorridor = fmap (replacePutID 0 [PutCrit $ addArmour autoCrit]) litCorridor90
|
||||
|
||||
@@ -10,7 +10,7 @@ import Dodge.Creature
|
||||
import Dodge.Room.Pillar
|
||||
import Dodge.Room.Modify.Girder
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Default.Wall
|
||||
import Dodge.Tree
|
||||
import Dodge.Placement.Instance
|
||||
@@ -29,7 +29,6 @@ import LensHelp
|
||||
import qualified Data.Set as S
|
||||
import Control.Monad.State
|
||||
--import Control.Monad.Loops
|
||||
import System.Random
|
||||
import Data.Bifunctor
|
||||
|
||||
roomC :: RandomGen g => Float -> Float -> State g Room
|
||||
|
||||
@@ -5,7 +5,7 @@ import Dodge.RoomLink
|
||||
import Dodge.Data
|
||||
--import Dodge.Default
|
||||
--import Dodge.Layout.Tree.Either
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Room.Door
|
||||
--import Dodge.Room.Room
|
||||
import Dodge.Room.Link
|
||||
@@ -27,7 +27,6 @@ import LensHelp
|
||||
|
||||
import qualified Data.Set as S
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
--import qualified Data.IntMap.Strict as IM
|
||||
|
||||
horEdgeTest :: (Float -> Bool) -> ((Point2,Float) -> Bool)
|
||||
|
||||
@@ -27,13 +27,12 @@ import Color
|
||||
import Shape
|
||||
--import Lorem
|
||||
import LensHelp
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
|
||||
import qualified Data.Set as S
|
||||
import Data.Maybe
|
||||
--import Data.Tree
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
|
||||
-- TODO fix case where the sensor created by sensInsideDoor blocks another door
|
||||
-- for roomRectAutoLinks-- make the locked door a center door?
|
||||
|
||||
@@ -11,7 +11,7 @@ import Dodge.Room.LongDoor
|
||||
--import Dodge.Default
|
||||
--import Dodge.RoomLink
|
||||
import Dodge.Tree
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Room.Door
|
||||
import Dodge.Room.RezBox
|
||||
import Dodge.Room.Corridor
|
||||
@@ -28,7 +28,6 @@ import LensHelp
|
||||
--import Data.Maybe
|
||||
--import Data.Tree
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
--import qualified Data.IntMap.Strict as IM
|
||||
|
||||
powerFakeout :: RandomGen g => State g (SubCompTree Room)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
module Dodge.Room.Tanks where
|
||||
import Dodge.Data
|
||||
import Dodge.LevelGen.Data
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.Room.Procedural
|
||||
import Dodge.Room.Foreground
|
||||
import Dodge.Room.Modify.Girder
|
||||
@@ -18,7 +18,6 @@ import LensHelp
|
||||
--import Data.Maybe
|
||||
--import Data.Tree
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
--import qualified Data.Set as S
|
||||
|
||||
randomTank :: RandomGen g => State g Placement
|
||||
|
||||
@@ -26,7 +26,7 @@ import Geometry
|
||||
--import Shape
|
||||
--import Lorem
|
||||
import LensHelp
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
|
||||
--import qualified Data.Set as S
|
||||
import Data.Maybe
|
||||
@@ -34,7 +34,6 @@ import qualified Data.Map.Strict as M
|
||||
--import Data.Char
|
||||
--import Data.Tree
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
--import qualified Data.Text as T
|
||||
|
||||
|
||||
|
||||
@@ -72,13 +72,13 @@ composeTreeRand :: RandomGen g => Tree (a -> Maybe a, Tree a) -> State g (Tree a
|
||||
composeTreeRand (Node (_,t) ts) = attachListR t ts
|
||||
|
||||
attachListR :: RandomGen g => Tree a -> [Tree (a -> Maybe a, Tree a)] -> State g (Tree a)
|
||||
attachListR t xs = fmap shiftChildren $ foldrM newfRand (fmap ([],) t) xs
|
||||
attachListR t xs = shiftChildren <$> foldrM newfRand (fmap ([],) t) xs
|
||||
|
||||
newfRand :: RandomGen g => Tree (a -> Maybe a,Tree a) -> Tree ([Tree a],a)
|
||||
-> State g (Tree ([Tree a],a))
|
||||
newfRand t = updateRandNode (isJust . upf . snd) ( (root . _2 %~ g) . (root . _1 .:~ composeTree t ) )
|
||||
where
|
||||
upf = (t ^?! root . _1)
|
||||
upf = t ^?! root . _1
|
||||
g x = fromMaybe x (upf x)
|
||||
|
||||
composeTree :: Tree (a -> Maybe a, Tree a) -> Tree a
|
||||
@@ -90,7 +90,7 @@ attachList t xs = shiftChildren $ foldr newf (fmap ([],) t) xs
|
||||
newf :: Tree (a -> Maybe a,Tree a) -> Tree ([Tree a],a) -> Tree ([Tree a],a)
|
||||
newf t = safeUpdateSingleNode (isJust . upf . snd) ( (root . _2 %~ g) . (root . _1 .:~ composeTree t ) )
|
||||
where
|
||||
upf = (t ^?! root . _1)
|
||||
upf = t ^?! root . _1
|
||||
g x = fromMaybe x (upf x)
|
||||
|
||||
shiftChildren :: Tree ([Tree a],a) -> Tree a
|
||||
|
||||
@@ -5,11 +5,10 @@ A /trunk/ refers to the successive first nodes in lists of children.
|
||||
-}
|
||||
module Dodge.Tree.GenerateStructure
|
||||
where
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
|
||||
import Data.Tree
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
{- Single branched tree (a trunk). -}
|
||||
treePath :: Int -> Tree ()
|
||||
treePath 0 = Node () []
|
||||
|
||||
@@ -14,7 +14,7 @@ import Dodge.Zone
|
||||
import Dodge.Base.Collide
|
||||
import Dodge.WorldEvent.SpawnParticle
|
||||
--import Dodge.WorldEvent.Flash
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Dodge.SoundLogic
|
||||
import Dodge.WorldEvent.Shockwave
|
||||
import Geometry
|
||||
@@ -25,7 +25,6 @@ import LensHelp
|
||||
import Control.Monad.State
|
||||
import Data.List
|
||||
--import Data.Maybe
|
||||
import System.Random
|
||||
|
||||
makePoisonExplosionAt
|
||||
:: Point2 -- ^ Position
|
||||
|
||||
@@ -8,7 +8,7 @@ import Dodge.Data
|
||||
import Dodge.SoundLogic
|
||||
import Sound.Data
|
||||
import Geometry.Data
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
|
||||
import Control.Lens
|
||||
import Control.Monad.State.Lazy
|
||||
|
||||
@@ -18,13 +18,12 @@ import Dodge.WorldEvent.Cloud
|
||||
import Dodge.WorldEvent.Flash
|
||||
import Dodge.WorldEvent.Shockwave
|
||||
import Dodge.SoundLogic
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
import Picture
|
||||
import Geometry
|
||||
import qualified IntMapHelp as IM
|
||||
import LensHelp
|
||||
|
||||
import System.Random
|
||||
import Control.Monad.State
|
||||
import Data.Tuple
|
||||
aFlameParticle
|
||||
|
||||
+1
-2
@@ -22,13 +22,12 @@ module TreeHelp
|
||||
, updateRandNode
|
||||
, safeUpdateSingleNode
|
||||
) where
|
||||
import Dodge.RandomHelp
|
||||
import RandomHelp
|
||||
|
||||
import Data.Maybe
|
||||
import Data.Tree.Lens
|
||||
import Data.Tree
|
||||
import Control.Monad.State
|
||||
import System.Random
|
||||
import Control.Lens
|
||||
|
||||
{- | Creates a linear tree.
|
||||
|
||||
Reference in New Issue
Block a user