This commit is contained in:
2022-06-09 11:29:42 +01:00
parent 1789a3785d
commit e4e7122070
43 changed files with 44 additions and 196 deletions
+1 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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
View File
@@ -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 -2
View File
@@ -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]
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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
View File
@@ -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
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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) ]
+1 -2
View File
@@ -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 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -2
View File
@@ -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)
-113
View File
@@ -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
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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]
+1 -2
View File
@@ -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 .~
+1 -3
View File
@@ -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
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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
+1 -3
View File
@@ -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
+1 -2
View File
@@ -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.
+1 -2
View File
@@ -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. -}
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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
+1 -2
View File
@@ -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)
+1 -2
View File
@@ -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?
+1 -2
View File
@@ -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 -2
View File
@@ -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
+1 -2
View File
@@ -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
+3 -3
View File
@@ -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
+1 -2
View File
@@ -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 () []
+1 -2
View File
@@ -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
+1 -1
View File
@@ -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
+1 -2
View File
@@ -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
View File
@@ -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.