From 5949ad2b3da43904aeffac7434269c7dc2af69f5 Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 17 Nov 2021 12:35:05 +0000 Subject: [PATCH] Reorganise wall placements --- src/Dodge/Creature/Inanimate.hs | 2 +- .../{LightSources/Lamp.hs => LightSource.hs} | 2 +- src/Dodge/LightSources.hs | 2 -- src/Dodge/Placement/Instance.hs | 2 ++ src/Dodge/Placement/Instance/LightSource.hs | 2 +- .../Furniture.hs => Placement/Instance/Tank.hs} | 12 +----------- src/Dodge/Placement/Instance/Wall.hs | 16 ++++++++++++++-- src/Dodge/Room/LongDoor.hs | 2 +- src/Dodge/Room/RoadBlock.hs | 1 - src/Dodge/Room/RunPast.hs | 1 + src/Dodge/Room/Start.hs | 17 ++++++++--------- src/Dodge/WorldEvent.hs | 2 +- src/Dodge/WorldEvent/Flash.hs | 2 +- 13 files changed, 32 insertions(+), 31 deletions(-) rename src/Dodge/{LightSources/Lamp.hs => LightSource.hs} (97%) delete mode 100644 src/Dodge/LightSources.hs rename src/Dodge/{Room/Furniture.hs => Placement/Instance/Tank.hs} (92%) create mode 100644 src/Dodge/Room/RunPast.hs diff --git a/src/Dodge/Creature/Inanimate.hs b/src/Dodge/Creature/Inanimate.hs index 0bdec8f90..885ad75a3 100644 --- a/src/Dodge/Creature/Inanimate.hs +++ b/src/Dodge/Creature/Inanimate.hs @@ -16,7 +16,7 @@ import Dodge.Creature.State.Data import Dodge.Picture.Layer import Dodge.Default import Dodge.Creature.State -import Dodge.LightSources.Lamp +import Dodge.LightSource import Dodge.WorldEvent.Flash import Dodge.WorldEvent.Sound import Dodge.Creature.Update diff --git a/src/Dodge/LightSources/Lamp.hs b/src/Dodge/LightSource.hs similarity index 97% rename from src/Dodge/LightSources/Lamp.hs rename to src/Dodge/LightSource.hs index 0cbf12d64..2d4bbed11 100644 --- a/src/Dodge/LightSources/Lamp.hs +++ b/src/Dodge/LightSource.hs @@ -1,4 +1,4 @@ -module Dodge.LightSources.Lamp +module Dodge.LightSource ( tLightTimedIntensity , tLight , lightAt diff --git a/src/Dodge/LightSources.hs b/src/Dodge/LightSources.hs deleted file mode 100644 index 8aca232f6..000000000 --- a/src/Dodge/LightSources.hs +++ /dev/null @@ -1,2 +0,0 @@ -module Dodge.LightSources - where diff --git a/src/Dodge/Placement/Instance.hs b/src/Dodge/Placement/Instance.hs index 079a3cd1e..3ad20cf48 100644 --- a/src/Dodge/Placement/Instance.hs +++ b/src/Dodge/Placement/Instance.hs @@ -3,6 +3,7 @@ module Dodge.Placement.Instance , module Dodge.Placement.Instance.LightSource , module Dodge.Placement.Instance.LightSource.Cover , module Dodge.Placement.Instance.Wall + , module Dodge.Placement.Instance.Tank , module Dodge.Placement.Instance.Button , module Dodge.Placement.Instance.Turret , module Dodge.Placement.Instance.Sensor @@ -11,6 +12,7 @@ module Dodge.Placement.Instance ) where import Dodge.Placement.Instance.Door +import Dodge.Placement.Instance.Tank import Dodge.Placement.Instance.LightSource.Cover import Dodge.Placement.Instance.LightSource import Dodge.Placement.Instance.LightSource.Flicker diff --git a/src/Dodge/Placement/Instance/LightSource.hs b/src/Dodge/Placement/Instance/LightSource.hs index 315d7e9c6..63a4f1572 100644 --- a/src/Dodge/Placement/Instance/LightSource.hs +++ b/src/Dodge/Placement/Instance/LightSource.hs @@ -1,6 +1,6 @@ module Dodge.Placement.Instance.LightSource where import Dodge.Data -import Dodge.LightSources.Lamp +import Dodge.LightSource import Dodge.LevelGen.Data import Dodge.Room.Foreground import Geometry diff --git a/src/Dodge/Room/Furniture.hs b/src/Dodge/Placement/Instance/Tank.hs similarity index 92% rename from src/Dodge/Room/Furniture.hs rename to src/Dodge/Placement/Instance/Tank.hs index 996ffb069..78477f4f8 100644 --- a/src/Dodge/Room/Furniture.hs +++ b/src/Dodge/Placement/Instance/Tank.hs @@ -1,5 +1,4 @@ -module Dodge.Room.Furniture - where +module Dodge.Placement.Instance.Tank where import Dodge.Data import Dodge.Placement.PlaceSpot import Dodge.LevelGen.Data @@ -46,15 +45,6 @@ tankRectCross w h col x y = shiftPlacement (V2 x y,0) $ ps0j tankSquareCross :: Color -> Float -> Float -> Placement tankSquareCross = tankRectCross 20 20 -lowWall :: [Point2] -> Placement -lowWall ps = ps0j (PutForeground . colorSH col $ upperPrismPoly 30 ps) - $ sps0 $ PutWall ps theWall - where - col = _wlColor defaultWall - theWall = defaultWall - { _wlOpacity = SeeAbove - , _wlDraw = False - } tankRect :: Float -> Float -> Color -> Float -> Float -> Placement tankRect w h col x y = shiftPlacement (V2 x y,0) $ ps0j diff --git a/src/Dodge/Placement/Instance/Wall.hs b/src/Dodge/Placement/Instance/Wall.hs index b556e188a..746b2cc99 100644 --- a/src/Dodge/Placement/Instance/Wall.hs +++ b/src/Dodge/Placement/Instance/Wall.hs @@ -1,13 +1,25 @@ module Dodge.Placement.Instance.Wall where import Dodge.Data -import Color -import Geometry import Dodge.LevelGen.Data import Dodge.Default.Wall +import Geometry +import Shape +import Color import Data.List import Control.Lens +lowWall :: [Point2] -> Placement +lowWall ps = ps0j (PutForeground . colorSH col $ upperPrismPoly 30 ps) + $ sps0 $ PutWall ps theWall + where + col = _wlColor defaultWall + theWall = defaultWall + { _wlOpacity = SeeAbove + , _wlDraw = False + } + + singleBlock :: Point2 -> [Placement] singleBlock a = [sPS a 0 diff --git a/src/Dodge/Room/LongDoor.hs b/src/Dodge/Room/LongDoor.hs index 11a0fac01..22b1fffbf 100644 --- a/src/Dodge/Room/LongDoor.hs +++ b/src/Dodge/Room/LongDoor.hs @@ -15,7 +15,7 @@ import Dodge.LevelGen.Switch import Dodge.RandomHelp import Dodge.Creature.Inanimate import Dodge.Creature -import Dodge.LightSources.Lamp +import Dodge.LightSource import Picture import Geometry diff --git a/src/Dodge/Room/RoadBlock.hs b/src/Dodge/Room/RoadBlock.hs index 40c88a0d8..75f87c26e 100644 --- a/src/Dodge/Room/RoadBlock.hs +++ b/src/Dodge/Room/RoadBlock.hs @@ -7,7 +7,6 @@ import Dodge.LevelGen.Data import Dodge.Room.Link import Dodge.Placement.Instance import Dodge.Room.Corridor -import Dodge.Room.Furniture --import Dodge.LevelGen.Data --import Dodge.Default.Wall import Dodge.RandomHelp diff --git a/src/Dodge/Room/RunPast.hs b/src/Dodge/Room/RunPast.hs new file mode 100644 index 000000000..3ce2660a3 --- /dev/null +++ b/src/Dodge/Room/RunPast.hs @@ -0,0 +1 @@ +module Dodge.Room.RunPast where diff --git a/src/Dodge/Room/Start.hs b/src/Dodge/Room/Start.hs index 7a1bf754e..53f53d861 100644 --- a/src/Dodge/Room/Start.hs +++ b/src/Dodge/Room/Start.hs @@ -9,7 +9,6 @@ import Dodge.Room.Room import Dodge.Room.Link import Dodge.Room.Procedural import Dodge.Room.Foreground -import Dodge.Room.Furniture import Dodge.Room.RoadBlock import Dodge.Placement.Instance import Dodge.Layout.Tree.Polymorphic @@ -26,6 +25,14 @@ import Control.Lens import System.Random --import qualified Data.IntMap.Strict as IM +startRoom :: RandomGen g => State g (Tree (Either Room Room)) +startRoom = join $ takeOne + [ rezBoxesWp + , rezBoxesThenWeaponRoom + , rezBoxThenWeaponRoom + , rezBoxesWpCrit + ] + rezBox :: LightSource -> Room rezBox ls = roomRect 40 60 1 1 & rmPmnts .~ [ sPS (V2 20 1) 0 $ PutLS ls] @@ -65,14 +72,6 @@ rezBoxThenWeaponRoom = do rcol <- rezColor treeFromTrunk [Left $ rezBox rcol,Left door] <$> weaponRoom -startRoom :: RandomGen g => State g (Tree (Either Room Room)) -startRoom = join $ takeOne - [ rezBoxesWp - , rezBoxesThenWeaponRoom - , rezBoxThenWeaponRoom - , rezBoxesWpCrit - ] - rezBoxesWpCrit :: RandomGen g => State g (Tree (Either Room Room)) rezBoxesWpCrit = do w <- state $ randomR (200,400) diff --git a/src/Dodge/WorldEvent.hs b/src/Dodge/WorldEvent.hs index a5e77131e..b17bccdd8 100644 --- a/src/Dodge/WorldEvent.hs +++ b/src/Dodge/WorldEvent.hs @@ -16,7 +16,7 @@ import Dodge.WorldEvent.Cloud import Dodge.WorldEvent.HitEffect import Dodge.WorldEvent.Explosion import Dodge.WorldEvent.SpawnParticle -import Dodge.LightSources.Lamp +import Dodge.LightSource import Dodge.Creature.State.Data import Dodge.Data import Geometry diff --git a/src/Dodge/WorldEvent/Flash.hs b/src/Dodge/WorldEvent/Flash.hs index 302d5d02a..9c374c8fc 100644 --- a/src/Dodge/WorldEvent/Flash.hs +++ b/src/Dodge/WorldEvent/Flash.hs @@ -18,7 +18,7 @@ module Dodge.WorldEvent.Flash ) where import Dodge.Data -import Dodge.LightSources.Lamp +import Dodge.LightSource import Dodge.WorldEvent.HelperParticle import Dodge.Default import Picture