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.
This commit is contained in:
parent
8d36fb4af2
commit
8a4220df83
11 changed files with 277 additions and 84 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue