about summary refs log tree commit diff
path: root/users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2021-11-25T14·53-0500
committergrfn <grfn@gws.fyi>2021-11-25T17·31+0000
commita3d220b631d264f4950f17057e60d8908f0783a2 (patch)
treee67ff0194bea39b495b50c0b483349664fb9205f /users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs
parent4b11859d046b470a87d73edc8447ed73a3f7a6da (diff)
feat(gs/xanthous): Creatures use their weapons to attack r/3098
If a creature has a weapon wielded, then they now use that weapon to
attack the player *instead of* their natural attacks. This uses a new
`creatureAttackMessage` field on the Item raw for the message to use.

Change-Id: I73614f33dbf88dd4c68081f15710fa27b7b21ba2
Diffstat (limited to 'users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs')
-rw-r--r--users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs12
1 files changed, 12 insertions, 0 deletions
diff --git a/users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs b/users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs
index 8453a05336..9f5cabecdc 100644
--- a/users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs
+++ b/users/grfn/xanthous/src/Xanthous/Entities/RawTypes.hs
@@ -34,6 +34,7 @@ module Xanthous.Entities.RawTypes
   , HasAttacks(..)
   , HasChance(..)
   , HasChar(..)
+  , HasCreatureAttackMessage(..)
   , HasDamage(..)
   , HasDensity(..)
   , HasDescription(..)
@@ -200,6 +201,17 @@ makeFieldsNoPrefix ''EdibleItem
 data WieldableItem = WieldableItem
   { _damage :: !Hitpoints
   , _attackMessage :: !(Maybe Message)
+    -- | Message to use when a creature is using this item to attack the
+    -- character.
+    --
+    -- Grammatically, should be of the form "The creature slashes you with its
+    -- dagger".
+    --
+    -- = Parameters
+    --
+    -- [@creature@ (type: 'Creature')] The creature doing the attacking
+    -- [@item@ (type: 'Item')] The item itself
+  , _creatureAttackMessage :: !(Maybe Message)
   }
   deriving stock (Show, Eq, Ord, Generic)
   deriving anyclass (NFData, CoArbitrary, Function)