Start adding machines for storing/distributing items
This commit is contained in:
@@ -10,8 +10,12 @@ module Dodge.Room.Room (
|
||||
corDoor,
|
||||
weaponBehindPillar,
|
||||
critsRoom,
|
||||
distributerRoom,
|
||||
) where
|
||||
|
||||
import Shape
|
||||
import Dodge.Default
|
||||
import Dodge.Data.AmmoType
|
||||
import qualified Data.Set as S
|
||||
import Dodge.Cleat
|
||||
import Dodge.Creature
|
||||
@@ -404,5 +408,25 @@ critsRoom i =
|
||||
, return <$> glassSwitchBackCrits i
|
||||
]
|
||||
|
||||
distributerRoom :: AmmoType -> Int -> State LayoutVars Room
|
||||
distributerRoom atype aamount = do
|
||||
i <- nextLayoutInt
|
||||
w <- state $ randomR (100, 400)
|
||||
h <- state $ randomR (200, 400)
|
||||
r <- roomRectAutoLinks w h
|
||||
let mcstore = defaultMachine
|
||||
& mcMaterial .~ Metal
|
||||
& mcType .~ McStorage atype aamount
|
||||
mcdist mj = defaultMachine
|
||||
& mcMaterial .~ Metal
|
||||
& mcType .~ McDistributer mj
|
||||
store = sps (unusedOffPathAwayFromLink 50)
|
||||
(PutMachine (reverse $ polyCirc 4 20) mcstore Nothing) & plExternalID ?~ i
|
||||
dst gw = let mj = gw ^? genPmnt . ix i . plMID . _Just
|
||||
in sps (unusedOffPathAwayFromLink 50)
|
||||
(PutMachine (reverse $ square 10) (mcdist mj) Nothing)
|
||||
return $ r & rmPmnts .:~ store
|
||||
& rmInPmnt .:~ (0,dst)
|
||||
|
||||
-- cor <- shuffleLinks corridor
|
||||
-- return $ tToBTree "corDoor" $ treePost [door,cor,cleatOnward door]
|
||||
|
||||
@@ -12,8 +12,8 @@ import Dodge.PlacementSpot
|
||||
import Dodge.Room.Foreground
|
||||
import Dodge.Room.Modify.Girder
|
||||
import Dodge.Room.Procedural
|
||||
import Geometry
|
||||
import LensHelp
|
||||
import Linear
|
||||
import RandomHelp
|
||||
import Shape
|
||||
|
||||
@@ -38,7 +38,7 @@ randEdgeTank = do
|
||||
return $
|
||||
basetank
|
||||
& plType . putBlock . blDraw
|
||||
<>~ colorSH orange (verticalPipe 80 <> horPipe 80 0 (70 *.* cardVec edge))
|
||||
<>~ colorSH orange (verticalPipe 80 <> horPipe 80 0 (70 *^ cardVec edge))
|
||||
-- %~ fmap (<> noPic ( colorSH orange (verticalPipe 80
|
||||
-- <> horPipe 80 0 (70 *.* cardVec edge))))
|
||||
-- 70 is a guess, the true value depends on the distance to the wall
|
||||
@@ -57,7 +57,7 @@ randEdgeTanks i = do
|
||||
replicate i $
|
||||
basetank
|
||||
& plType . putBlock . blDraw
|
||||
<>~ colorSH orange (verticalPipe 80 <> horPipe 80 0 (70 *.* cardVec edge))
|
||||
<>~ colorSH orange (verticalPipe 80 <> horPipe 80 0 (70 *^ cardVec edge))
|
||||
-- 70 is a guess, the true value depends on the distance to the wall
|
||||
& plSpot
|
||||
.~ rprBool
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{-# OPTIONS_GHC -Wno-unused-imports #-}
|
||||
module Dodge.Room.Tutorial where
|
||||
|
||||
import Dodge.Data.AmmoType
|
||||
import Dodge.Room.Path
|
||||
import Dodge.Room.Pillar
|
||||
import Dodge.Room.Boss
|
||||
@@ -49,12 +50,20 @@ tutAnoTree = do
|
||||
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
|
||||
, corDoor
|
||||
, return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
, tToBTree "sdr" . return . cleatOnward <$>
|
||||
(shuffleLinks =<< distributerRoom BulletAmmo 10000000)
|
||||
, return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
--, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom
|
||||
, tToBTree "sdr" . return . cleatOnward <$> tanksPipesRoom
|
||||
-- , tToBTree "sr" . return . cleatOnward <$> tanksRoom [] []
|
||||
, return $ tToBTree "door" $ return $ cleatOnward door
|
||||
, return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
, tToBTree "sdr" . return . cleatOnward <$>
|
||||
(shuffleLinks =<< tanksPipesRoom)
|
||||
, return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
, return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
, return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
, return $ tToBTree "cor" $ return $ cleatOnward corridor
|
||||
, return $ tToBTree "door" $ return $ cleatOnward door
|
||||
, tutHub
|
||||
, tutLight
|
||||
, tutDrop
|
||||
|
||||
Reference in New Issue
Block a user