about summary refs log tree commit diff
path: root/src/Xanthous/AI
diff options
context:
space:
mode:
authorGriffin Smith <root@gws.fyi>2020-01-03T23·28-0500
committerGriffin Smith <root@gws.fyi>2020-01-03T23·28-0500
commit84f32efad4ff6d358fdeb985b3b4ac408e753b78 (patch)
treed22d15bbbd88d9dd253f13dd9bf64205022686b4 /src/Xanthous/AI
parent1b88921bc36e5da1ade5c52827d057dc2be65bc5 (diff)
Track entity collision in the Entity class
Rather than having a single function in the Game.Lenses module for
determining what collision type if any an entity has, track it in the
Entity typeclass itself. This is both more extensible and a better
separation of concerns and gets rid of one of the two needs for a
circular import. Yay!

As part of this, I realized nothing was being done to prevent doors from
being placed on tiles that already had walls (since now that was
properly causing a collision!) so I've fixed that as well.
Diffstat (limited to 'src/Xanthous/AI')
-rw-r--r--src/Xanthous/AI/Gormlak.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/Xanthous/AI/Gormlak.hs b/src/Xanthous/AI/Gormlak.hs
index 031262533d21..8040fea35b8d 100644
--- a/src/Xanthous/AI/Gormlak.hs
+++ b/src/Xanthous/AI/Gormlak.hs
@@ -27,7 +27,7 @@ import qualified Xanthous.Entities.RawTypes as Raw
 import           Xanthous.Entities.RawTypes (CreatureType)
 import           Xanthous.Game.State
 import           Xanthous.Game.Lenses
-                 ( Collision(..), entityCollision, collisionAt
+                 ( Collision(..), entitiesCollision, collisionAt
                  , character, characterPosition
                  )
 import           Xanthous.Data.EntityMap.Graphics (linesOfSight, canSee)
@@ -90,7 +90,7 @@ stepGormlak ticks pe@(Positioned pos creature) = do
             then attackCharacter $> pos'
             else pure $ pos' `stepTowards` charPos
       else do
-        lines <- map (takeWhile (isNothing . entityCollision . map snd . snd)
+        lines <- map (takeWhile (isNothing . entitiesCollision . map snd . snd)
                     -- the first item on these lines is always the creature itself
                     . fromMaybe mempty . tailMay)
                 . linesOfSight pos' (visionRadius creature')