tvl-depot/users/grfn/xanthous/test/Xanthous/Entities/CharacterSpec.hs
Griffin Smith f00dd30cad feat(xanthous): Fistfighting builds knuckle calluses
2000 ticks after the character damages their fists by hitting something,
the character now develops calluses on their fists (scaled by *how*
damaged they've become) that reduce the chance of them receiving
additional damage from hitting things - up to a max of 5, which
prevents *all* damage from fistfighting.

This is all tracked in a new "Knuckles" struct in a new "Body" struct on
the character datatype, which manages stepping itself forward as part of
the Brain impl on the character.

Change-Id: Ica269f16fb340fb25900d2c77fbad32f10c00be2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3222
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-06-18 21:17:53 +00:00

24 lines
900 B
Haskell

{-# OPTIONS_GHC -Wno-type-defaults #-}
--------------------------------------------------------------------------------
module Xanthous.Entities.CharacterSpec (main, test) where
--------------------------------------------------------------------------------
import Test.Prelude
--------------------------------------------------------------------------------
import Xanthous.Entities.Character
import Xanthous.Util (endoTimes)
--------------------------------------------------------------------------------
main :: IO ()
main = defaultMain test
test :: TestTree
test = testGroup "Xanthous.Entities.CharacterSpec"
[ testGroup "Knuckles"
[ testBatch $ monoid @Knuckles mempty
, testGroup "damageKnuckles"
[ testCase "caps at 5" $
let knuckles' = endoTimes 6 damageKnuckles mempty
in _knuckleDamage knuckles' @?= 5
]
]
]