Cleanup
This commit is contained in:
@@ -4,7 +4,7 @@ module Dodge.Annotation
|
|||||||
( module Dodge.Annotation.Data
|
( module Dodge.Annotation.Data
|
||||||
, module Dodge.Annotation
|
, module Dodge.Annotation
|
||||||
) where
|
) where
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Tree
|
import Dodge.Tree
|
||||||
import Dodge.Room
|
import Dodge.Room
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
@@ -12,7 +12,6 @@ import Dodge.Annotation.Data
|
|||||||
--import LensHelp
|
--import LensHelp
|
||||||
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -9,13 +9,12 @@ import Dodge.Item.Weapon.LaserPath
|
|||||||
import Geometry
|
import Geometry
|
||||||
import LensHelp
|
import LensHelp
|
||||||
import Picture
|
import Picture
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Zone
|
import Dodge.Zone
|
||||||
import Dodge.Base.Collide
|
import Dodge.Base.Collide
|
||||||
import Shape
|
import Shape
|
||||||
|
|
||||||
import Data.List (sortOn)
|
import Data.List (sortOn)
|
||||||
import System.Random
|
|
||||||
import MonadHelp
|
import MonadHelp
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ import Dodge.Zone
|
|||||||
import Dodge.WorldEvent.Sound
|
import Dodge.WorldEvent.Sound
|
||||||
import Dodge.Wall.Delete
|
import Dodge.Wall.Delete
|
||||||
import Dodge.Wall.Dust
|
import Dodge.Wall.Dust
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Geometry
|
import Geometry
|
||||||
--import Geometry.ConvexPoly
|
--import Geometry.ConvexPoly
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ module Dodge.Creature.Perception
|
|||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.Creature.Vocalization
|
import Dodge.Creature.Vocalization
|
||||||
import Dodge.Base.Collide
|
import Dodge.Base.Collide
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
--import Dodge.SoundLogic
|
--import Dodge.SoundLogic
|
||||||
import Geometry.Vector
|
import Geometry.Vector
|
||||||
--import Geometry.Data
|
--import Geometry.Data
|
||||||
@@ -18,7 +18,6 @@ import Sound.Data
|
|||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import System.Random
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified Data.IntMap.Strict as IM
|
||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,12 @@ import Dodge.Item.Weapon.BulletGuns
|
|||||||
import Dodge.Item.Consumable
|
import Dodge.Item.Consumable
|
||||||
import Geometry
|
import Geometry
|
||||||
import Picture
|
import Picture
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified Data.IntMap.Strict as IM
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
--import System.Random
|
|
||||||
|
|
||||||
pistolCrit :: Creature
|
pistolCrit :: Creature
|
||||||
pistolCrit = defaultCreature
|
pistolCrit = defaultCreature
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import Dodge.Creature.Impulse.Movement
|
|||||||
--import Dodge.Creature.Test
|
--import Dodge.Creature.Test
|
||||||
--import Dodge.Base
|
--import Dodge.Base
|
||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.WorldEvent
|
import Dodge.WorldEvent
|
||||||
--import Dodge.WallCreatureCollisions
|
--import Dodge.WallCreatureCollisions
|
||||||
import Dodge.Creature.Action
|
import Dodge.Creature.Action
|
||||||
@@ -36,7 +36,6 @@ import Control.Monad.State
|
|||||||
--import Control.Monad
|
--import Control.Monad
|
||||||
--import qualified SDL
|
--import qualified SDL
|
||||||
--import qualified SDL.Mixer as Mix
|
--import qualified SDL.Mixer as Mix
|
||||||
import System.Random
|
|
||||||
--import qualified Data.Set as S
|
--import qualified Data.Set as S
|
||||||
--import qualified Data.Map as M
|
--import qualified Data.Map as M
|
||||||
--import qualified Data.Vector as V
|
--import qualified Data.Vector as V
|
||||||
|
|||||||
+1
-2
@@ -26,14 +26,13 @@ import Dodge.Data
|
|||||||
--import Dodge.Room.RunPast
|
--import Dodge.Room.RunPast
|
||||||
--import MonadHelp
|
--import MonadHelp
|
||||||
import LensHelp
|
import LensHelp
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
--import Color
|
--import Color
|
||||||
--import Dodge.Wire
|
--import Dodge.Wire
|
||||||
|
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
--import Control.Monad.Loops
|
--import Control.Monad.Loops
|
||||||
import System.Random
|
|
||||||
--import Data.Sequence hiding (zipWith)
|
--import Data.Sequence hiding (zipWith)
|
||||||
--import Data.Maybe
|
--import Data.Maybe
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified Data.IntMap.Strict as IM
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
module Dodge.Item.Random where
|
module Dodge.Item.Random where
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Item.Weapon.BulletGuns
|
import Dodge.Item.Weapon.BulletGuns
|
||||||
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
|
|
||||||
randBlockBreakWeapon :: RandomGen g => State g Item
|
randBlockBreakWeapon :: RandomGen g => State g Item
|
||||||
randBlockBreakWeapon = takeOne [bangStick 1,bangCane]
|
randBlockBreakWeapon = takeOne [bangStick 1,bangCane]
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import Dodge.Zone
|
|||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
import Dodge.WorldEvent.SpawnParticle
|
import Dodge.WorldEvent.SpawnParticle
|
||||||
import Dodge.WorldEvent.Cloud
|
import Dodge.WorldEvent.Cloud
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Geometry
|
import Geometry
|
||||||
import Picture
|
import Picture
|
||||||
import qualified IntMapHelp as IM
|
import qualified IntMapHelp as IM
|
||||||
@@ -33,7 +33,6 @@ import Data.Maybe
|
|||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
|
|
||||||
launcher :: Item
|
launcher :: Item
|
||||||
launcher = defaultGun
|
launcher = defaultGun
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ import Dodge.Base.Collide
|
|||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
import Dodge.Reloading
|
import Dodge.Reloading
|
||||||
import Dodge.WorldEvent
|
import Dodge.WorldEvent
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Inventory.Lock
|
import Dodge.Inventory.Lock
|
||||||
import Dodge.Creature.HandPos
|
import Dodge.Creature.HandPos
|
||||||
import Dodge.Creature.Test
|
import Dodge.Creature.Test
|
||||||
@@ -76,7 +76,6 @@ import Dodge.LightSource
|
|||||||
--import Data.Preload
|
--import Data.Preload
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
import System.Random
|
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
|||||||
+1
-2
@@ -21,7 +21,7 @@ import Geometry
|
|||||||
--import Geometry.ConvexPoly
|
--import Geometry.ConvexPoly
|
||||||
import qualified IntMapHelp as IM
|
import qualified IntMapHelp as IM
|
||||||
import Tile
|
import Tile
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Color
|
import Color
|
||||||
import Shape
|
import Shape
|
||||||
--import Padding
|
--import Padding
|
||||||
@@ -29,7 +29,6 @@ import Shape
|
|||||||
import Data.List (nubBy)
|
import Data.List (nubBy)
|
||||||
import Data.Traversable
|
import Data.Traversable
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import System.Random
|
|
||||||
import Data.Foldable
|
import Data.Foldable
|
||||||
import qualified Control.Foldl as L
|
import qualified Control.Foldl as L
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ module Dodge.LevelGen.LevelStructure
|
|||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
--import Dodge.Tree.Compose.Data
|
--import Dodge.Tree.Compose.Data
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Color
|
import Color
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
@@ -16,7 +16,6 @@ import qualified Data.IntMap.Strict as IM
|
|||||||
import qualified Data.Map.Strict as M
|
import qualified Data.Map.Strict as M
|
||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
|
|
||||||
worldToGenWorld :: IM.IntMap Room -> World -> World
|
worldToGenWorld :: IM.IntMap Room -> World -> World
|
||||||
worldToGenWorld rms w = w
|
worldToGenWorld rms w = w
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import Dodge.Data
|
|||||||
import Dodge.Tree
|
import Dodge.Tree
|
||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
import Dodge.Room
|
import Dodge.Room
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Creature
|
import Dodge.Creature
|
||||||
import Dodge.Item.Craftable
|
import Dodge.Item.Craftable
|
||||||
import Dodge.Item.Weapon.BulletGun.Rod
|
import Dodge.Item.Weapon.BulletGun.Rod
|
||||||
@@ -12,7 +12,6 @@ import Dodge.Item
|
|||||||
--import LensHelp
|
--import LensHelp
|
||||||
--import Dodge.Item.Equipment
|
--import Dodge.Item.Equipment
|
||||||
|
|
||||||
import System.Random
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
|
|
||||||
bossKeyItems :: RandomGen g => [ (State g (SubCompTree Room), State g ItemBaseType) ]
|
bossKeyItems :: RandomGen g => [ (State g (SubCompTree Room), State g ItemBaseType) ]
|
||||||
|
|||||||
@@ -9,13 +9,12 @@ import Dodge.Damage
|
|||||||
--import Dodge.Base.Collide
|
--import Dodge.Base.Collide
|
||||||
import Dodge.Particle.Spark
|
import Dodge.Particle.Spark
|
||||||
--import Dodge.WorldEvent.ThingsHit
|
--import Dodge.WorldEvent.ThingsHit
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Picture
|
import Picture
|
||||||
import Geometry
|
import Geometry
|
||||||
--import qualified IntMapHelp as IM
|
--import qualified IntMapHelp as IM
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
import System.Random
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
--import Data.Function (on)
|
--import Data.Function (on)
|
||||||
--import Data.List
|
--import Data.List
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
module Dodge.Placement.Instance.Creature where
|
module Dodge.Placement.Instance.Creature where
|
||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Creature.ArmourChase
|
import Dodge.Creature.ArmourChase
|
||||||
import Dodge.Creature.ChaseCrit
|
import Dodge.Creature.ChaseCrit
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import Geometry
|
|||||||
import Dodge.Creature.Inanimate
|
import Dodge.Creature.Inanimate
|
||||||
import Shape.Data
|
import Shape.Data
|
||||||
import Dodge.Default
|
import Dodge.Default
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Color
|
import Color
|
||||||
import Shape
|
import Shape
|
||||||
import ShapePicture
|
import ShapePicture
|
||||||
|
|||||||
@@ -8,10 +8,9 @@ import Shape
|
|||||||
import Geometry
|
import Geometry
|
||||||
import Color
|
import Color
|
||||||
import LensHelp
|
import LensHelp
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
--import Dodge.Base.NewID
|
--import Dodge.Base.NewID
|
||||||
|
|
||||||
import System.Random
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import qualified Quaternion as Q
|
import qualified Quaternion as Q
|
||||||
import Data.List (zip4)
|
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.Data
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
import Dodge.LevelGen.Switch
|
import Dodge.LevelGen.Switch
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Geometry
|
import Geometry
|
||||||
import Picture
|
import Picture
|
||||||
|
|
||||||
import qualified Data.IntMap.Strict as IM
|
import qualified Data.IntMap.Strict as IM
|
||||||
import System.Random
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
{- | A passage with a switch that opens forward access while closing backwards access. -}
|
{- | A passage with a switch that opens forward access while closing backwards access. -}
|
||||||
airlock :: RandomGen g => State g Room
|
airlock :: RandomGen g => State g Room
|
||||||
|
|||||||
@@ -12,14 +12,13 @@ import Dodge.Room.Corridor
|
|||||||
import Dodge.Room.Path
|
import Dodge.Room.Path
|
||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
import Dodge.Creature
|
import Dodge.Creature
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Tree
|
import Dodge.Tree
|
||||||
import Dodge.LevelGen.StaticWalls
|
import Dodge.LevelGen.StaticWalls
|
||||||
import Geometry
|
import Geometry
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
roomGlassOctogon
|
roomGlassOctogon
|
||||||
:: Float -- ^ Size
|
:: Float -- ^ Size
|
||||||
-> Room
|
-> Room
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module Dodge.Room.Containing where
|
|||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.Tree
|
import Dodge.Tree
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Room.Procedural
|
import Dodge.Room.Procedural
|
||||||
import Dodge.Room.Tanks
|
import Dodge.Room.Tanks
|
||||||
import Dodge.Room.Link
|
import Dodge.Room.Link
|
||||||
@@ -12,7 +12,6 @@ import LensHelp
|
|||||||
import Geometry
|
import Geometry
|
||||||
--import Dodge.Item.Equipment
|
--import Dodge.Item.Equipment
|
||||||
|
|
||||||
import System.Random
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.List
|
import Data.List
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import Dodge.RoomLink
|
|||||||
import Dodge.Creature
|
import Dodge.Creature
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Default.Wall
|
import Dodge.Default.Wall
|
||||||
import Dodge.Tree
|
import Dodge.Tree
|
||||||
import Dodge.Placement.Instance
|
import Dodge.Placement.Instance
|
||||||
@@ -19,7 +19,6 @@ import LensHelp
|
|||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
--import Control.Monad.Loops
|
--import Control.Monad.Loops
|
||||||
import System.Random
|
|
||||||
glassLesson :: RandomGen g => State g (SubCompTree Room)
|
glassLesson :: RandomGen g => State g (SubCompTree Room)
|
||||||
glassLesson = do
|
glassLesson = do
|
||||||
i <- takeOne [1,2,3]
|
i <- takeOne [1,2,3]
|
||||||
|
|||||||
@@ -25,13 +25,12 @@ import Geometry
|
|||||||
import Color
|
import Color
|
||||||
import Shape
|
import Shape
|
||||||
import LensHelp
|
import LensHelp
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
--import Dodge.SoundLogic
|
--import Dodge.SoundLogic
|
||||||
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
|
|
||||||
cenLasTur :: Room
|
cenLasTur :: Room
|
||||||
cenLasTur = roomNgon 8 200 & rmPmnts .~
|
cenLasTur = roomNgon 8 200 & rmPmnts .~
|
||||||
|
|||||||
@@ -21,17 +21,15 @@ import Dodge.ShiftPoint
|
|||||||
import Dodge.Placement.Shift
|
import Dodge.Placement.Shift
|
||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Geometry
|
import Geometry
|
||||||
import Data.Tile
|
import Data.Tile
|
||||||
import Dodge.RoomLink
|
import Dodge.RoomLink
|
||||||
|
|
||||||
import System.Random
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Data.List
|
import Data.List
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
--import System.Random
|
|
||||||
|
|
||||||
chooseOneInLink :: RandomGen g => Room -> State g Room
|
chooseOneInLink :: RandomGen g => Room -> State g Room
|
||||||
chooseOneInLink r = restrictToFstInLink <$> shuffleLinks r
|
chooseOneInLink r = restrictToFstInLink <$> shuffleLinks r
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import Dodge.Room.Procedural
|
|||||||
--import Dodge.Layout.Tree.Either
|
--import Dodge.Layout.Tree.Either
|
||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
import Dodge.LevelGen.Switch
|
import Dodge.LevelGen.Switch
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Creature.Inanimate
|
import Dodge.Creature.Inanimate
|
||||||
import Dodge.Creature
|
import Dodge.Creature
|
||||||
import Dodge.LightSource
|
import Dodge.LightSource
|
||||||
@@ -26,7 +26,6 @@ import LensHelp
|
|||||||
--import Shape
|
--import Shape
|
||||||
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import System.Random
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
--import Data.Tree
|
--import Data.Tree
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import Dodge.Room.Procedural
|
|||||||
--import Dodge.Layout.Tree.Either
|
--import Dodge.Layout.Tree.Either
|
||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
--import Dodge.LevelGen.Switch
|
--import Dodge.LevelGen.Switch
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Creature.Inanimate
|
import Dodge.Creature.Inanimate
|
||||||
import Dodge.Creature
|
import Dodge.Creature
|
||||||
--import Dodge.LightSource
|
--import Dodge.LightSource
|
||||||
@@ -24,7 +24,6 @@ import LensHelp
|
|||||||
import Data.Tile
|
import Data.Tile
|
||||||
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import System.Random
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
--import qualified Data.IntMap as IM
|
--import qualified Data.IntMap as IM
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ module Dodge.Room.Modify.Girder
|
|||||||
--import Dodge.Data
|
--import Dodge.Data
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.RandomHelp
|
|
||||||
--import Dodge.Room.Procedural
|
--import Dodge.Room.Procedural
|
||||||
import Dodge.Room.Foreground
|
import Dodge.Room.Foreground
|
||||||
--import Dodge.Room.RoadBlock
|
--import Dodge.Room.RoadBlock
|
||||||
@@ -20,12 +19,11 @@ import Color
|
|||||||
import Shape
|
import Shape
|
||||||
import LensHelp
|
import LensHelp
|
||||||
import Geometry
|
import Geometry
|
||||||
|
import RandomHelp
|
||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.List (nub)
|
import Data.List (nub)
|
||||||
--import Data.Tree
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
|
|
||||||
addGirderNS :: RandomGen g => (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
addGirderNS :: RandomGen g => (Point2 -> Point2 -> Shape) -> Color -> Room -> State g Room
|
||||||
|
|||||||
@@ -8,14 +8,13 @@ import Dodge.Creature
|
|||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
import Dodge.Room.Procedural
|
import Dodge.Room.Procedural
|
||||||
--import Dodge.Room.Link
|
--import Dodge.Room.Link
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
import Geometry.Data
|
import Geometry.Data
|
||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
--import Control.Monad
|
--import Control.Monad
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
{- |
|
{- |
|
||||||
A room designed to be /passable/ with no weapons.
|
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.
|
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.Consumable
|
||||||
--import Dodge.Item.Equipment
|
--import Dodge.Item.Equipment
|
||||||
--import Dodge.Item.Weapon
|
--import Dodge.Item.Weapon
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
import Dodge.LevelGen.Switch
|
import Dodge.LevelGen.Switch
|
||||||
import Dodge.Creature
|
import Dodge.Creature
|
||||||
@@ -37,7 +37,6 @@ import qualified Data.IntMap.Strict as IM
|
|||||||
--import Control.Lens
|
--import Control.Lens
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
-- This will need a cleanup, but it might change a bit first
|
-- This will need a cleanup, but it might change a bit first
|
||||||
{- A simple rectangular room with a light in the center.
|
{- A simple rectangular room with a light in the center.
|
||||||
Creates links and pathfinding graph. -}
|
Creates links and pathfinding graph. -}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import Dodge.Data
|
|||||||
--import Dodge.Default
|
--import Dodge.Default
|
||||||
--import Dodge.RoomLink
|
--import Dodge.RoomLink
|
||||||
import Dodge.Tree
|
import Dodge.Tree
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Room.Door
|
import Dodge.Room.Door
|
||||||
import Dodge.Room.Corridor
|
import Dodge.Room.Corridor
|
||||||
--import Dodge.Room.Room
|
--import Dodge.Room.Room
|
||||||
@@ -32,7 +32,6 @@ import LensHelp
|
|||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
--import Data.Maybe
|
--import Data.Maybe
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
|
|
||||||
rezBox :: LightSource -> Room
|
rezBox :: LightSource -> Room
|
||||||
rezBox ls = roomRect 40 60 1 1
|
rezBox ls = roomRect 40 60 1 1
|
||||||
|
|||||||
@@ -10,13 +10,12 @@ import Dodge.Placement.Instance
|
|||||||
import Dodge.Room.Corridor
|
import Dodge.Room.Corridor
|
||||||
--import Dodge.LevelGen.Data
|
--import Dodge.LevelGen.Data
|
||||||
--import Dodge.Default.Wall
|
--import Dodge.Default.Wall
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Creature
|
import Dodge.Creature
|
||||||
import Dodge.Tree
|
import Dodge.Tree
|
||||||
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import System.Random
|
|
||||||
|
|
||||||
armouredCorridor :: RandomGen g => State g Room
|
armouredCorridor :: RandomGen g => State g Room
|
||||||
armouredCorridor = fmap (replacePutID 0 [PutCrit $ addArmour autoCrit]) litCorridor90
|
armouredCorridor = fmap (replacePutID 0 [PutCrit $ addArmour autoCrit]) litCorridor90
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import Dodge.Creature
|
|||||||
import Dodge.Room.Pillar
|
import Dodge.Room.Pillar
|
||||||
import Dodge.Room.Modify.Girder
|
import Dodge.Room.Modify.Girder
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Default.Wall
|
import Dodge.Default.Wall
|
||||||
import Dodge.Tree
|
import Dodge.Tree
|
||||||
import Dodge.Placement.Instance
|
import Dodge.Placement.Instance
|
||||||
@@ -29,7 +29,6 @@ import LensHelp
|
|||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
--import Control.Monad.Loops
|
--import Control.Monad.Loops
|
||||||
import System.Random
|
|
||||||
import Data.Bifunctor
|
import Data.Bifunctor
|
||||||
|
|
||||||
roomC :: RandomGen g => Float -> Float -> State g Room
|
roomC :: RandomGen g => Float -> Float -> State g Room
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import Dodge.RoomLink
|
|||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
--import Dodge.Default
|
--import Dodge.Default
|
||||||
--import Dodge.Layout.Tree.Either
|
--import Dodge.Layout.Tree.Either
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Room.Door
|
import Dodge.Room.Door
|
||||||
--import Dodge.Room.Room
|
--import Dodge.Room.Room
|
||||||
import Dodge.Room.Link
|
import Dodge.Room.Link
|
||||||
@@ -27,7 +27,6 @@ import LensHelp
|
|||||||
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified Data.IntMap.Strict as IM
|
||||||
|
|
||||||
horEdgeTest :: (Float -> Bool) -> ((Point2,Float) -> Bool)
|
horEdgeTest :: (Float -> Bool) -> ((Point2,Float) -> Bool)
|
||||||
|
|||||||
@@ -27,13 +27,12 @@ import Color
|
|||||||
import Shape
|
import Shape
|
||||||
--import Lorem
|
--import Lorem
|
||||||
import LensHelp
|
import LensHelp
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
|
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
--import Data.Tree
|
--import Data.Tree
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
|
|
||||||
-- TODO fix case where the sensor created by sensInsideDoor blocks another door
|
-- TODO fix case where the sensor created by sensInsideDoor blocks another door
|
||||||
-- for roomRectAutoLinks-- make the locked door a center door?
|
-- for roomRectAutoLinks-- make the locked door a center door?
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import Dodge.Room.LongDoor
|
|||||||
--import Dodge.Default
|
--import Dodge.Default
|
||||||
--import Dodge.RoomLink
|
--import Dodge.RoomLink
|
||||||
import Dodge.Tree
|
import Dodge.Tree
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Room.Door
|
import Dodge.Room.Door
|
||||||
import Dodge.Room.RezBox
|
import Dodge.Room.RezBox
|
||||||
import Dodge.Room.Corridor
|
import Dodge.Room.Corridor
|
||||||
@@ -28,7 +28,6 @@ import LensHelp
|
|||||||
--import Data.Maybe
|
--import Data.Maybe
|
||||||
--import Data.Tree
|
--import Data.Tree
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
--import qualified Data.IntMap.Strict as IM
|
--import qualified Data.IntMap.Strict as IM
|
||||||
|
|
||||||
powerFakeout :: RandomGen g => State g (SubCompTree Room)
|
powerFakeout :: RandomGen g => State g (SubCompTree Room)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
module Dodge.Room.Tanks where
|
module Dodge.Room.Tanks where
|
||||||
import Dodge.Data
|
import Dodge.Data
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.Room.Procedural
|
import Dodge.Room.Procedural
|
||||||
import Dodge.Room.Foreground
|
import Dodge.Room.Foreground
|
||||||
import Dodge.Room.Modify.Girder
|
import Dodge.Room.Modify.Girder
|
||||||
@@ -18,7 +18,6 @@ import LensHelp
|
|||||||
--import Data.Maybe
|
--import Data.Maybe
|
||||||
--import Data.Tree
|
--import Data.Tree
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
--import qualified Data.Set as S
|
--import qualified Data.Set as S
|
||||||
|
|
||||||
randomTank :: RandomGen g => State g Placement
|
randomTank :: RandomGen g => State g Placement
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import Geometry
|
|||||||
--import Shape
|
--import Shape
|
||||||
--import Lorem
|
--import Lorem
|
||||||
import LensHelp
|
import LensHelp
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
|
|
||||||
--import qualified Data.Set as S
|
--import qualified Data.Set as S
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
@@ -34,7 +34,6 @@ import qualified Data.Map.Strict as M
|
|||||||
--import Data.Char
|
--import Data.Char
|
||||||
--import Data.Tree
|
--import Data.Tree
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
--import qualified Data.Text as T
|
--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
|
composeTreeRand (Node (_,t) ts) = attachListR t ts
|
||||||
|
|
||||||
attachListR :: RandomGen g => Tree a -> [Tree (a -> Maybe a, Tree a)] -> State g (Tree a)
|
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)
|
newfRand :: RandomGen g => Tree (a -> Maybe a,Tree a) -> Tree ([Tree a],a)
|
||||||
-> State g (Tree ([Tree a],a))
|
-> State g (Tree ([Tree a],a))
|
||||||
newfRand t = updateRandNode (isJust . upf . snd) ( (root . _2 %~ g) . (root . _1 .:~ composeTree t ) )
|
newfRand t = updateRandNode (isJust . upf . snd) ( (root . _2 %~ g) . (root . _1 .:~ composeTree t ) )
|
||||||
where
|
where
|
||||||
upf = (t ^?! root . _1)
|
upf = t ^?! root . _1
|
||||||
g x = fromMaybe x (upf x)
|
g x = fromMaybe x (upf x)
|
||||||
|
|
||||||
composeTree :: Tree (a -> Maybe a, Tree a) -> Tree a
|
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 :: 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 ) )
|
newf t = safeUpdateSingleNode (isJust . upf . snd) ( (root . _2 %~ g) . (root . _1 .:~ composeTree t ) )
|
||||||
where
|
where
|
||||||
upf = (t ^?! root . _1)
|
upf = t ^?! root . _1
|
||||||
g x = fromMaybe x (upf x)
|
g x = fromMaybe x (upf x)
|
||||||
|
|
||||||
shiftChildren :: Tree ([Tree a],a) -> Tree a
|
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
|
module Dodge.Tree.GenerateStructure
|
||||||
where
|
where
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
|
|
||||||
import Data.Tree
|
import Data.Tree
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
{- Single branched tree (a trunk). -}
|
{- Single branched tree (a trunk). -}
|
||||||
treePath :: Int -> Tree ()
|
treePath :: Int -> Tree ()
|
||||||
treePath 0 = Node () []
|
treePath 0 = Node () []
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import Dodge.Zone
|
|||||||
import Dodge.Base.Collide
|
import Dodge.Base.Collide
|
||||||
import Dodge.WorldEvent.SpawnParticle
|
import Dodge.WorldEvent.SpawnParticle
|
||||||
--import Dodge.WorldEvent.Flash
|
--import Dodge.WorldEvent.Flash
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
import Dodge.WorldEvent.Shockwave
|
import Dodge.WorldEvent.Shockwave
|
||||||
import Geometry
|
import Geometry
|
||||||
@@ -25,7 +25,6 @@ import LensHelp
|
|||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.List
|
import Data.List
|
||||||
--import Data.Maybe
|
--import Data.Maybe
|
||||||
import System.Random
|
|
||||||
|
|
||||||
makePoisonExplosionAt
|
makePoisonExplosionAt
|
||||||
:: Point2 -- ^ Position
|
:: Point2 -- ^ Position
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import Dodge.Data
|
|||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
import Sound.Data
|
import Sound.Data
|
||||||
import Geometry.Data
|
import Geometry.Data
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Control.Monad.State.Lazy
|
import Control.Monad.State.Lazy
|
||||||
|
|||||||
@@ -18,13 +18,12 @@ import Dodge.WorldEvent.Cloud
|
|||||||
import Dodge.WorldEvent.Flash
|
import Dodge.WorldEvent.Flash
|
||||||
import Dodge.WorldEvent.Shockwave
|
import Dodge.WorldEvent.Shockwave
|
||||||
import Dodge.SoundLogic
|
import Dodge.SoundLogic
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
import Picture
|
import Picture
|
||||||
import Geometry
|
import Geometry
|
||||||
import qualified IntMapHelp as IM
|
import qualified IntMapHelp as IM
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
import System.Random
|
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import Data.Tuple
|
import Data.Tuple
|
||||||
aFlameParticle
|
aFlameParticle
|
||||||
|
|||||||
+1
-2
@@ -22,13 +22,12 @@ module TreeHelp
|
|||||||
, updateRandNode
|
, updateRandNode
|
||||||
, safeUpdateSingleNode
|
, safeUpdateSingleNode
|
||||||
) where
|
) where
|
||||||
import Dodge.RandomHelp
|
import RandomHelp
|
||||||
|
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Data.Tree.Lens
|
import Data.Tree.Lens
|
||||||
import Data.Tree
|
import Data.Tree
|
||||||
import Control.Monad.State
|
import Control.Monad.State
|
||||||
import System.Random
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
|
|
||||||
{- | Creates a linear tree.
|
{- | Creates a linear tree.
|
||||||
|
|||||||
Reference in New Issue
Block a user