Fix bug in room position generation

This commit is contained in:
2022-06-19 13:19:15 +01:00
parent 541a04f1bc
commit f2d6504634
3 changed files with 8 additions and 2 deletions
-1
View File
@@ -477,7 +477,6 @@ data Equipment = Equipment
_itUseAimStance :: Item -> AimStance
_itUseAimStance = _aimStance . _useAim . _itUse
data ItemConsumption
= LoadableAmmo
{ _laType :: AmmoType
+7
View File
@@ -4,6 +4,7 @@ module Dodge.PlacementSpot
, rpIsOnPath
, rpIsOffPath
, rpOffPathEdge
, rpOnPathEdge
, useUnusedLnk
, psRandRanges
, useRoomPosCond
@@ -86,6 +87,12 @@ rpOffPathEdge pe = any f . _rpType
where
f rt = maybe False (any (== pe)) (rt ^? offPathEdges)
-- test whether a roomPos is on the path with a given from edge value
rpOnPathEdge :: PathEdge -> RoomPos -> Bool
rpOnPathEdge pe = any f . _rpType
where
f rt = maybe False (any (== pe)) (rt ^? onPathEdges)
resetPLUse :: PlacementSpot -> PlacementSpot
resetPLUse (PSPos f g fallback) = PSPos f' g fallback
where
+1 -1
View File
@@ -93,7 +93,7 @@ roomRect x y xn yn = defaultRoom
,PathFromEdge East (xn-a)
,PathFromEdge West a
]
posps' = map (over _1 (+.+ V2 20 20)) $ gridPoints'' xd (xn+1) yd (xn+1)
posps' = map (over _1 (+.+ V2 20 20)) $ gridPoints'' xd (xn+1) yd (yn+1)
interposps' = map (over _1 (+.+ V2 (20 + xd/2) (20 + yd/2))) $ gridPoints'' xd xn yd yn
makeoffpos (p,a) = RoomPos p 0 (S.singleton $ RoomPosOffPath $ makerpedges' a) NotLink 0
makerpedges' (a,b) = S.fromList