diff options
author | Griffin Smith <grfn@gws.fyi> | 2021-06-14T03·03-0400 |
---|---|---|
committer | grfn <grfn@gws.fyi> | 2021-06-14T13·04+0000 |
commit | bf79617bd844697258d0a87157b7ceb50597e37d (patch) | |
tree | ac3f3ac70f06502b1ea8eb6bd7b281fc2a5e6842 /users/grfn/xanthous/src/Xanthous/Entities | |
parent | 30d83d7c828f7bf5ed285f71e5b4a7bf095002b5 (diff) |
feat(xanthous): Gormlaks yell in gormlak when they see the character r/2661
Add a new "greetedCharacter" field to the creature hippocampus type, which tracks whether or not that creature has greeted the character yet. In the gormlak AI, when the gormlak sees the character and starts running towards them, if that field is set to False send a message that says that the gormlak yells a single randomly-generated gormlak word at the character, then set the field to true The gormlak yells "gukblom"! Change-Id: I17a388393693a322c2e09390884ed718911b2fc4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3207 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
Diffstat (limited to 'users/grfn/xanthous/src/Xanthous/Entities')
3 files changed, 14 insertions, 2 deletions
diff --git a/users/grfn/xanthous/src/Xanthous/Entities/Creature/Hippocampus.hs b/users/grfn/xanthous/src/Xanthous/Entities/Creature/Hippocampus.hs index 501a5b597221..9d5cc134517f 100644 --- a/users/grfn/xanthous/src/Xanthous/Entities/Creature/Hippocampus.hs +++ b/users/grfn/xanthous/src/Xanthous/Entities/Creature/Hippocampus.hs @@ -7,6 +7,7 @@ module Xanthous.Entities.Creature.Hippocampus , initialHippocampus -- ** Lenses , destination + , greetedCharacter -- ** Destination , Destination(..) , destinationFromPos @@ -50,7 +51,11 @@ destinationFromPos _destinationPosition = in Destination{..} data Hippocampus = Hippocampus - { _destination :: !(Maybe Destination) + { _destination :: !(Maybe Destination) + , -- | Has this creature greeted the character in any way yet? + -- + -- Some creature types ignore this field + _greetedCharacter :: !Bool } deriving stock (Eq, Show, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) @@ -61,4 +66,7 @@ data Hippocampus = Hippocampus makeLenses ''Hippocampus initialHippocampus :: Hippocampus -initialHippocampus = Hippocampus Nothing +initialHippocampus = Hippocampus + { _destination = Nothing + , _greetedCharacter = False + } diff --git a/users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs b/users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs index a650a4f78ea7..5d30d73db6c5 100644 --- a/users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs +++ b/users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs @@ -37,6 +37,7 @@ module Xanthous.Entities.RawTypes , HasLongDescription(..) , HasMaxHitpoints(..) , HasName(..) + , HasSayVerb(..) , HasSpeed(..) , HasWieldable(..) ) where @@ -80,6 +81,8 @@ data CreatureType = CreatureType , _friendly :: !Bool , _speed :: !TicksPerTile , _language :: !(Maybe LanguageName) + , _sayVerb :: Text -- ^ The verb, in present tense, for when the creature + -- says something } deriving stock (Show, Eq, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) diff --git a/users/grfn/xanthous/src/Xanthous/Entities/Raws/gormlak.yaml b/users/grfn/xanthous/src/Xanthous/Entities/Raws/gormlak.yaml index 41247532f9dc..8cddf85394a6 100644 --- a/users/grfn/xanthous/src/Xanthous/Entities/Raws/gormlak.yaml +++ b/users/grfn/xanthous/src/Xanthous/Entities/Raws/gormlak.yaml @@ -12,3 +12,4 @@ Creature: speed: 125 friendly: false language: Gormlak + sayVerb: yells |