diff options
author | Griffin Smith <root@gws.fyi> | 2019-10-13T16·37-0400 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-10-13T16·37-0400 |
commit | 8a4220df830adb6f1616ca02dd06902474fd25df (patch) | |
tree | b78e5eea207e77ca82759bf05a26a77ae3729c09 /src/Xanthous/Entities/Character.hs | |
parent | 8d36fb4af2f938d96c8d6c22ccc575d0a98d0d38 (diff) |
Implement speed and ticks
Gormlaks now move 1/8th the speed of the character, which means we can run away from them - yay! Unfortunately this also introduces a bug where they'll eventually get stuck and not do anything, so I'll be tackling that next.
Diffstat (limited to 'src/Xanthous/Entities/Character.hs')
-rw-r--r-- | src/Xanthous/Entities/Character.hs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Xanthous/Entities/Character.hs b/src/Xanthous/Entities/Character.hs index 84e653e6a09d..7d2d22c9983b 100644 --- a/src/Xanthous/Entities/Character.hs +++ b/src/Xanthous/Entities/Character.hs @@ -5,6 +5,9 @@ module Xanthous.Entities.Character , inventory , characterDamage , characterHitpoints + , speed + + -- * , mkCharacter , pickUpItem , isDead @@ -12,6 +15,7 @@ module Xanthous.Entities.Character ) where -------------------------------------------------------------------------------- import Xanthous.Prelude +-------------------------------------------------------------------------------- import Test.QuickCheck import Test.QuickCheck.Instances.Vector () import Test.QuickCheck.Arbitrary.Generic @@ -21,6 +25,7 @@ import Data.Aeson (ToJSON, FromJSON) -------------------------------------------------------------------------------- import Xanthous.Entities import Xanthous.Entities.Item +import Xanthous.Data (TicksPerTile) -------------------------------------------------------------------------------- data Character = Character @@ -28,6 +33,7 @@ data Character = Character , _characterName :: !(Maybe Text) , _characterDamage :: !Word , _characterHitpoints :: !Word + , _speed :: TicksPerTile } deriving stock (Show, Eq, Generic) deriving anyclass (CoArbitrary, Function) @@ -58,12 +64,16 @@ instance Arbitrary Character where initialHitpoints :: Word initialHitpoints = 10 +defaultSpeed :: TicksPerTile +defaultSpeed = 100 + mkCharacter :: Character mkCharacter = Character { _inventory = mempty , _characterName = Nothing , _characterDamage = 1 , _characterHitpoints = initialHitpoints + , _speed = defaultSpeed } isDead :: Character -> Bool |