Add messages on the ground
Add support for a "GroundMessage" entity type, support for a Read command to read them, and randomly place an initial, tone-setting tutorial message on the ground near the character at the beginning of the game.
This commit is contained in:
parent
4431d453f6
commit
71b628c604
12 changed files with 210 additions and 40 deletions
|
|
@ -25,7 +25,7 @@ import Xanthous.Data
|
|||
import qualified Xanthous.Data.EntityMap as EntityMap
|
||||
import Xanthous.Data.EntityMap.Graphics (visiblePositions)
|
||||
import Xanthous.Entities.Character (Character, mkCharacter)
|
||||
import Xanthous.Entities.Environment (Door, open)
|
||||
import Xanthous.Entities.Environment (Door, open, GroundMessage)
|
||||
import Xanthous.Entities.Item (Item)
|
||||
import Xanthous.Entities.Creature (Creature)
|
||||
import Xanthous.Entities.Entities ()
|
||||
|
|
@ -105,8 +105,12 @@ entityCollision
|
|||
-> Maybe Collision
|
||||
entityCollision Empty = Nothing
|
||||
entityCollision ents
|
||||
-- TODO track entity collision in the Entity class
|
||||
| any (entityIs @Creature) ents = pure Combat
|
||||
| all (entityIs @Item) ents = Nothing
|
||||
| all (\e ->
|
||||
entityIs @Item e
|
||||
|| entityIs @GroundMessage e
|
||||
) ents = Nothing
|
||||
| doors@(_ : _) <- ents ^.. folded . _SomeEntity @Door
|
||||
, all (view open) doors = Nothing
|
||||
| otherwise = pure Stop
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue