Tweak pillar room
This commit is contained in:
+10
-11
@@ -199,7 +199,7 @@ defaultIt = Consumable
|
|||||||
, _itMaxStack = 3
|
, _itMaxStack = 3
|
||||||
, _itAmount = 2
|
, _itAmount = 2
|
||||||
, _cnEffect = const return
|
, _cnEffect = const return
|
||||||
, _itFloorPict = \_ -> (,) emptySH $ onLayer FlItLayer $ polygon $ map toV2 [(-3,-3),(-3,3),(3,3),(3,-3)]
|
, _itFloorPict = \_ -> (,) emptySH $ onLayer FlItLayer $ polygon $ square 3
|
||||||
, _itEquipPict = \_ _ -> (,) emptySH blank
|
, _itEquipPict = \_ _ -> (,) emptySH blank
|
||||||
, _itID = Nothing
|
, _itID = Nothing
|
||||||
, _itInvDisplay = _itName
|
, _itInvDisplay = _itName
|
||||||
@@ -209,15 +209,15 @@ defaultIt = Consumable
|
|||||||
, _itAimStance = LeaveHolstered
|
, _itAimStance = LeaveHolstered
|
||||||
}
|
}
|
||||||
defaultDrawButton :: Color -> Button -> SPic
|
defaultDrawButton :: Color -> Button -> SPic
|
||||||
defaultDrawButton col bt
|
defaultDrawButton col bt =
|
||||||
| _btState bt == BtOff =
|
( translateSHz 15 . colorSH col $ upperPrismPoly 5 buttonGeometry
|
||||||
( translateSHz 15 . colorSH col $ upperPrismPoly 5 $ rectNSEW 5 (-5) 10 (-10)
|
|
||||||
, mempty
|
|
||||||
)
|
|
||||||
| otherwise =
|
|
||||||
( translateSHz 15 . colorSH red $ upperPrismPoly 5 $ rectNSEW (-3) (-5) 10 (-10)
|
|
||||||
, mempty
|
, mempty
|
||||||
)
|
)
|
||||||
|
where
|
||||||
|
buttonGeometry
|
||||||
|
| _btState bt == BtOff = rectWH width 5
|
||||||
|
| otherwise = rectNSEW (-3) (-5) width (-width)
|
||||||
|
width = 8
|
||||||
defaultButton :: Button
|
defaultButton :: Button
|
||||||
defaultButton = Button
|
defaultButton = Button
|
||||||
{ _btPict = defaultDrawButton (dark red)
|
{ _btPict = defaultDrawButton (dark red)
|
||||||
@@ -240,7 +240,7 @@ defaultPT = Projectile
|
|||||||
}
|
}
|
||||||
defaultPP :: PressPlate
|
defaultPP :: PressPlate
|
||||||
defaultPP = PressPlate
|
defaultPP = PressPlate
|
||||||
{ _ppPict = onLayer PressPlateLayer $ color (dim $ dim $ bright blue) $ circleSolid 5
|
{ _ppPict = onLayer PressPlateLayer . color (dim . dim $ bright blue) $ circleSolid 5
|
||||||
, _ppPos = V2 0 0
|
, _ppPos = V2 0 0
|
||||||
, _ppRot = 0
|
, _ppRot = 0
|
||||||
, _ppEvent = const id
|
, _ppEvent = const id
|
||||||
@@ -257,6 +257,5 @@ defaultTLS = TLS
|
|||||||
}
|
}
|
||||||
where
|
where
|
||||||
f _ t
|
f _ t
|
||||||
| _tlsTime t <= 0
|
| _tlsTime t <= 0 = Nothing
|
||||||
= Nothing
|
|
||||||
| otherwise = Just $ t & tlsTime -~ 1
|
| otherwise = Just $ t & tlsTime -~ 1
|
||||||
|
|||||||
@@ -530,10 +530,10 @@ multGun = defaultGun
|
|||||||
}
|
}
|
||||||
multGunSPic :: Item -> SPic
|
multGunSPic :: Item -> SPic
|
||||||
multGunSPic it =
|
multGunSPic it =
|
||||||
( (colorSH red $
|
( colorSH red (
|
||||||
upperPrismPoly 2 (rectNESW 4 8 (-4) (-12)) ++
|
upperPrismPoly 2 (rectNESW 4 8 (-4) (-12)) <>
|
||||||
translateSHf 8 0 (concatMap barrel [12,7,2,-3,-8] <>
|
translateSHf 8 0 (concatMap barrel [12,7,2,-3,-8] <>
|
||||||
(upperPrismPoly 2 $ map toV2 [(-1.5,12),(-2,12),(-2,-12),(-1.5,-12)])
|
upperPrismPoly 2 (map toV2 [(-1.5,12),(-2,12),(-2,-12),(-1.5,-12)])
|
||||||
)
|
)
|
||||||
) <> bulletClip am
|
) <> bulletClip am
|
||||||
, mempty
|
, mempty
|
||||||
@@ -566,21 +566,21 @@ longGun = defaultGun
|
|||||||
, withMuzFlareI
|
, withMuzFlareI
|
||||||
]
|
]
|
||||||
, _wpRange = 200
|
, _wpRange = 200
|
||||||
, _itFloorPict = \_ -> longGunSPic
|
, _itFloorPict = longGunSPic
|
||||||
, _itAimingSpeed = 0.2
|
, _itAimingSpeed = 0.2
|
||||||
, _itAimingRange = 1
|
, _itAimingRange = 1
|
||||||
, _itZoom = defaultItZoom
|
, _itZoom = defaultItZoom
|
||||||
, _itAimZoom = defaultItZoom {_itZoomMax = 0.5, _itZoomMin = 0.5}
|
, _itAimZoom = defaultItZoom {_itZoomMax = 0.5, _itZoomMin = 0.5}
|
||||||
, _itEquipPict = pictureWeaponOnAim $ \_ -> longGunSPic
|
, _itEquipPict = pictureWeaponOnAim longGunSPic
|
||||||
, _itScroll = zoomLongGun
|
, _itScroll = zoomLongGun
|
||||||
, _itAttachment = ItScope (V2 0 0) 0 1 False
|
, _itAttachment = ItScope (V2 0 0) 0 1 False
|
||||||
, _itEffect = itemLaserScopeEffect
|
, _itEffect = itemLaserScopeEffect
|
||||||
, _wpAmmo = hvBullet
|
, _wpAmmo = hvBullet
|
||||||
, _itAimStance = TwoHandTwist
|
, _itAimStance = TwoHandTwist
|
||||||
}
|
}
|
||||||
longGunSPic :: SPic
|
longGunSPic :: Item -> SPic
|
||||||
longGunSPic =
|
longGunSPic _ =
|
||||||
( colorSH orange $ upperPrismPoly 5 $ rectNESW 2 12 (-2) (-12)
|
( colorSH orange $ upperPrismPoly 5 $ rectWH 12 2
|
||||||
, mempty
|
, mempty
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ bezierGun = defaultGun
|
|||||||
{ _itName = "B-GUN"
|
{ _itName = "B-GUN"
|
||||||
, _itUse = \_ -> useTargetPos $ \p -> shootBezier $ fromJust p -- <- the start point
|
, _itUse = \_ -> useTargetPos $ \p -> shootBezier $ fromJust p -- <- the start point
|
||||||
, _itUseModifiers =
|
, _itUseModifiers =
|
||||||
[ useTimeCheckI
|
[ ammoCheckI
|
||||||
|
, useTimeCheckI
|
||||||
, withSoundStart tap2S
|
, withSoundStart tap2S
|
||||||
, useAmmo 1
|
, useAmmo 1
|
||||||
, withMuzFlareI
|
, withMuzFlareI
|
||||||
|
|||||||
@@ -60,6 +60,9 @@ jsps0J pst plm = Just $ Placement (PS (V2 0 0) 0 pst) $ \_ -> Just plm
|
|||||||
ps0 :: PSType -> (Int -> Maybe Placement) -> Placement
|
ps0 :: PSType -> (Int -> Maybe Placement) -> Placement
|
||||||
ps0 pst = Placement (PS (V2 0 0) 0 pst)
|
ps0 pst = Placement (PS (V2 0 0) 0 pst)
|
||||||
|
|
||||||
|
jps0 :: PSType -> (Int -> Maybe Placement) -> Maybe Placement
|
||||||
|
jps0 pst = Just . Placement (PS (V2 0 0) 0 pst)
|
||||||
|
|
||||||
ps0j :: PSType -> Placement -> Placement
|
ps0j :: PSType -> Placement -> Placement
|
||||||
ps0j pst plmnt = Placement (PS (V2 0 0) 0 pst) (const $ Just plmnt)
|
ps0j pst plmnt = Placement (PS (V2 0 0) 0 pst) (const $ Just plmnt)
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ makeButton col eff = Button
|
|||||||
{ _btPict = defaultDrawButton col
|
{ _btPict = defaultDrawButton col
|
||||||
, _btPos = V2 0 0
|
, _btPos = V2 0 0
|
||||||
, _btRot = 0
|
, _btRot = 0
|
||||||
, _btEvent = \b w -> eff . over buttons (IM.adjust turnOn (_btID b))
|
, _btEvent = \b w -> eff
|
||||||
|
. over buttons (IM.adjust turnOn (_btID b))
|
||||||
. soundFromGeneral (LeverSound 0) (btpos b) click1S Nothing $ w
|
. soundFromGeneral (LeverSound 0) (btpos b) click1S Nothing $ w
|
||||||
, _btID = 0
|
, _btID = 0
|
||||||
, _btText = "Button"
|
, _btText = "Button"
|
||||||
|
|||||||
+7
-5
@@ -10,6 +10,7 @@ import Dodge.Item.Weapon
|
|||||||
import Dodge.Item.Weapon.AutoGun
|
import Dodge.Item.Weapon.AutoGun
|
||||||
import Dodge.Item.Weapon.Launcher
|
import Dodge.Item.Weapon.Launcher
|
||||||
import Dodge.Creature
|
import Dodge.Creature
|
||||||
|
import Dodge.Room.Foreground
|
||||||
--import Dodge.Creature.Inanimate
|
--import Dodge.Creature.Inanimate
|
||||||
--import Dodge.LevelGen
|
--import Dodge.LevelGen
|
||||||
import Dodge.LevelGen.Data
|
import Dodge.LevelGen.Data
|
||||||
@@ -21,6 +22,7 @@ import Dodge.Default.Wall
|
|||||||
--import Dodge.Layout
|
--import Dodge.Layout
|
||||||
import Dodge.Layout.Tree.Polymorphic
|
import Dodge.Layout.Tree.Polymorphic
|
||||||
import Dodge.Layout.Tree.Either
|
import Dodge.Layout.Tree.Either
|
||||||
|
import Dodge.LightSources.Fitting
|
||||||
--import Dodge.LightSources
|
--import Dodge.LightSources
|
||||||
--import Dodge.SoundLogic
|
--import Dodge.SoundLogic
|
||||||
import Dodge.Room.Data
|
import Dodge.Room.Data
|
||||||
@@ -78,9 +80,11 @@ roomPadCut ps p = defaultRoom
|
|||||||
roomPillars :: Room
|
roomPillars :: Room
|
||||||
roomPillars = over rmLinks init $ set rmPS plmnts $ roomRect 240 240 2 2
|
roomPillars = over rmLinks init $ set rmPS plmnts $ roomRect 240 240 2 2
|
||||||
where
|
where
|
||||||
plmnts = sPS (V2 120 120) 0 putLamp
|
plmnts = mountedLightI 70 (V2 120 24) (V2 120 216)
|
||||||
: sPS (V2 12 12) 0 putLamp
|
: mountedLightV (V2 12 12) (V3 25 25 70)
|
||||||
: sPS (V2 228 228) 0 putLamp
|
: mountedLightV (V2 228 228) (V3 215 215 70)
|
||||||
|
: sps0 (PutForeground $ thinHighBar 75 (V2 26 25) (V2 120 25))
|
||||||
|
: sps0 (PutForeground $ thinHighBar 75 (V2 214 215) (V2 120 215))
|
||||||
: g 180 150 90 60
|
: g 180 150 90 60
|
||||||
f a x b y = putBlockRect a x b y
|
f a x b y = putBlockRect a x b y
|
||||||
g a b c d = f a b a b ++ f a b c d ++ f c d a b ++ f c d c d
|
g a b c d = f a b a b ++ f a b c d ++ f c d a b ++ f c d c d
|
||||||
@@ -321,11 +325,9 @@ weaponBetweenPillars = do
|
|||||||
,sPS crPos2 (d crPos2) randC1
|
,sPS crPos2 (d crPos2) randC1
|
||||||
]
|
]
|
||||||
theRoom = roomPillars & rmPS %~ (++ plmnts)
|
theRoom = roomPillars & rmPS %~ (++ plmnts)
|
||||||
-- & rmPolys %~ (rectNSWE 300 0 0 300 :)
|
|
||||||
(fmap connectRoom . randomiseOutLinks) =<< filterLinks f theRoom
|
(fmap connectRoom . randomiseOutLinks) =<< filterLinks f theRoom
|
||||||
where
|
where
|
||||||
f (_,a) = a == 0
|
f (_,a) = a == 0
|
||||||
--f (_,_) = True -- this is probably preferable...
|
|
||||||
|
|
||||||
weaponLongCorridor :: RandomGen g => State g (Tree (Either Room Room))
|
weaponLongCorridor :: RandomGen g => State g (Tree (Either Room Room))
|
||||||
weaponLongCorridor = do
|
weaponLongCorridor = do
|
||||||
|
|||||||
@@ -39,10 +39,10 @@ twinSlowDoorRoom w h x = defaultRoom
|
|||||||
]
|
]
|
||||||
, _rmPath = []
|
, _rmPath = []
|
||||||
, _rmPS =
|
, _rmPS =
|
||||||
[ Placement (PS (V2 0 (h-5)) pi $ PutButton $ makeSwitch col red id id)
|
[ Placement (PS (V2 0 (h-5)) pi $ PutButton $ makeButton col id)
|
||||||
$ \btid -> jsps0J (PutSingleDoor col (cond' btid) (V2 x 1) (V2 x h) wlSpeed)
|
$ \btid -> jsps0J (PutSingleDoor col (cond' btid) (V2 x 1) (V2 x h) wlSpeed)
|
||||||
$ ps0 (PutSingleDoor col (cond' btid) (V2 (-x) 1) (V2 (-x) h) wlSpeed)
|
$ ps0 (PutSingleDoor col (cond' btid) (V2 (-x) 1) (V2 (-x) h) wlSpeed)
|
||||||
$ \did -> Just $ ps0 (PutLS (colorLightAt (V3 0.75 0 0) (V3 0 (h-1) lampHeight) 0))
|
$ \did -> jps0 (PutLS (colorLightAt (V3 0.75 0 0) (V3 0 (h-1) lampHeight) 0))
|
||||||
$ \lsid -> jsps0 $ PutProp $ addColorChange lsid did $ lampCoverWhen (drmoving did) (V2 0 (h-1)) lampHeight
|
$ \lsid -> jsps0 $ PutProp $ addColorChange lsid did $ lampCoverWhen (drmoving did) (V2 0 (h-1)) lampHeight
|
||||||
]
|
]
|
||||||
, _rmBound = ps
|
, _rmBound = ps
|
||||||
@@ -62,7 +62,7 @@ twinSlowDoorRoom w h x = defaultRoom
|
|||||||
[rectNSWE h 0 (-w) w
|
[rectNSWE h 0 (-w) w
|
||||||
,rectNSWE 20 (-h) (negate x) x
|
,rectNSWE 20 (-h) (negate x) x
|
||||||
]
|
]
|
||||||
cond' btid w' = _btState (_buttons w' IM.! btid) == BtOn
|
cond' btid w' = _btState (_buttons w' IM.! btid) /= BtOff
|
||||||
col = dim $ dim $ bright red
|
col = dim $ dim $ bright red
|
||||||
|
|
||||||
twinSlowDoorChasers
|
twinSlowDoorChasers
|
||||||
|
|||||||
+5
-2
@@ -63,8 +63,11 @@ rectNSEW !n !s !e !w = rectNESW n e s w
|
|||||||
rectNSWE :: Float -> Float -> Float -> Float -> [Point2]
|
rectNSWE :: Float -> Float -> Float -> Float -> [Point2]
|
||||||
rectNSWE !n !s !w !e = [V2 w n, V2 w s, V2 e s, V2 e n]
|
rectNSWE !n !s !w !e = [V2 w n, V2 w s, V2 e s, V2 e n]
|
||||||
-- | Draw a rectangle around the origin with given height and width
|
-- | Draw a rectangle around the origin with given height and width
|
||||||
rectWdthHght :: Float -> Float -> [Point2]
|
rectWH :: Float -> Float -> [Point2]
|
||||||
rectWdthHght w h = rectNSWE h (-h) (-w) w
|
rectWH w h = rectNSWE h (-h) (-w) w
|
||||||
|
|
||||||
|
square :: Float -> [Point2]
|
||||||
|
square n = rectWH n n
|
||||||
|
|
||||||
mirrorXAxis :: [Point2] -> [Point2]
|
mirrorXAxis :: [Point2] -> [Point2]
|
||||||
mirrorXAxis ps = orderPolygon $ ps ++ mapMaybe f ps
|
mirrorXAxis ps = orderPolygon $ ps ++ mapMaybe f ps
|
||||||
|
|||||||
Reference in New Issue
Block a user