about summary refs log tree commit diff
path: root/users/glittershark/xanthous/src/Xanthous/Entities/Entities.hs
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2020-06-28T20·39-0400
committerglittershark <grfn@gws.fyi>2020-06-28T23·38+0000
commit20bc4aa10dffcbcc42139afafa10aa5f7a5090bb (patch)
tree43e34191757ee0d36cd09fc1f2a17fc91176cba5 /users/glittershark/xanthous/src/Xanthous/Entities/Entities.hs
parentcdfae7de48051b3230044f9bfb81b341608e85f4 (diff)
feat(xan): Add a Marker entity type r/1109
It's useful, when developing new level gen techniques, to be able to
specially mark certain areas of the map during devlopment. This adds a
Marker entity type, which renders as a red X on the map and provides a
programmable description when examined. In the future it'll probably be
nice to toggle markers on/off just like we do with revealAll, but for
now it'll be fine to just remove the code to render them like we do with
debug traces.

Change-Id: Ief5d090809a0a4cbcc28f90e4902a5e38d42eeb5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/724
Reviewed-by: glittershark <grfn@gws.fyi>
Diffstat (limited to 'users/glittershark/xanthous/src/Xanthous/Entities/Entities.hs')
-rw-r--r--users/glittershark/xanthous/src/Xanthous/Entities/Entities.hs3
1 files changed, 3 insertions, 0 deletions
diff --git a/users/glittershark/xanthous/src/Xanthous/Entities/Entities.hs b/users/glittershark/xanthous/src/Xanthous/Entities/Entities.hs
index 62e6e15c9853..a0c037a1b4ed 100644
--- a/users/glittershark/xanthous/src/Xanthous/Entities/Entities.hs
+++ b/users/glittershark/xanthous/src/Xanthous/Entities/Entities.hs
@@ -13,6 +13,7 @@ import           Xanthous.Entities.Character
 import           Xanthous.Entities.Item
 import           Xanthous.Entities.Creature
 import           Xanthous.Entities.Environment
+import           Xanthous.Entities.Marker
 import           Xanthous.Game.State
 import           Xanthous.Util.QuickCheck
 import           Data.Aeson.Generic.DerivingVia
@@ -27,6 +28,7 @@ instance Arbitrary SomeEntity where
     , SomeEntity <$> arbitrary @Door
     , SomeEntity <$> arbitrary @GroundMessage
     , SomeEntity <$> arbitrary @Staircase
+    , SomeEntity <$> arbitrary @Marker
     ]
 
 instance FromJSON SomeEntity where
@@ -40,6 +42,7 @@ instance FromJSON SomeEntity where
       "Door" -> SomeEntity @Door <$> obj .: "data"
       "GroundMessage" -> SomeEntity @GroundMessage <$> obj .: "data"
       "Staircase" -> SomeEntity @Staircase <$> obj .: "data"
+      "Marker" -> SomeEntity @Marker <$> obj .: "data"
       _ -> fail . unpack $ "Invalid entity type \"" <> entityType <> "\""
 
 deriving via WithOptions '[ FieldLabelModifier '[Drop 1] ] GameLevel