diff options
author | Griffin Smith <root@gws.fyi> | 2019-11-30T03·59-0500 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-11-30T03·59-0500 |
commit | 8a1235c3dcf7fe69b2e2ea3eea326858d26d38b9 (patch) | |
tree | 398c6dce549602c9890fbded64e3bdf2646b2a1f /test | |
parent | 7d8ce026a2acc5a4d208110750be188f0ce5591c (diff) |
Use menus for combat and picking up items
Refactor a bunch of stuff around to allow for polymorphically surfacing an EntityChar for all entities, and use this to write a generic `entityMenu` function, which generates a menu from the chars of a list of entities - and use that to fully implement (removing `undefined`) menus for both attacking and picking things up when there are multiple entities on the relevant tile.
Diffstat (limited to 'test')
-rw-r--r-- | test/Spec.hs | 8 | ||||
-rw-r--r-- | test/Xanthous/Data/EntityCharSpec.hs (renamed from test/Xanthous/EntitiesSpec.hs) | 12 | ||||
-rw-r--r-- | test/Xanthous/GameSpec.hs | 2 |
3 files changed, 10 insertions, 12 deletions
diff --git a/test/Spec.hs b/test/Spec.hs index bd31867294c8..cd2827e58b4e 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -1,23 +1,23 @@ import Test.Prelude +import qualified Xanthous.Data.EntityCharSpec import qualified Xanthous.Data.EntityMapSpec import qualified Xanthous.DataSpec -import qualified Xanthous.EntitiesSpec import qualified Xanthous.Entities.RawsSpec import qualified Xanthous.GameSpec import qualified Xanthous.Generators.UtilSpec import qualified Xanthous.MessageSpec import qualified Xanthous.OrphansSpec -import qualified Xanthous.UtilSpec import qualified Xanthous.Util.GraphicsSpec import qualified Xanthous.Util.InflectionSpec +import qualified Xanthous.UtilSpec main :: IO () main = defaultMain test test :: TestTree test = testGroup "Xanthous" - [ Xanthous.Data.EntityMapSpec.test - , Xanthous.EntitiesSpec.test + [ Xanthous.Data.EntityCharSpec.test + , Xanthous.Data.EntityMapSpec.test , Xanthous.Entities.RawsSpec.test , Xanthous.GameSpec.test , Xanthous.Generators.UtilSpec.test diff --git a/test/Xanthous/EntitiesSpec.hs b/test/Xanthous/Data/EntityCharSpec.hs index 14b03f729331..9e8024c9d223 100644 --- a/test/Xanthous/EntitiesSpec.hs +++ b/test/Xanthous/Data/EntityCharSpec.hs @@ -1,20 +1,18 @@ -------------------------------------------------------------------------------- -module Xanthous.EntitiesSpec where +module Xanthous.Data.EntityCharSpec where -------------------------------------------------------------------------------- import Test.Prelude -------------------------------------------------------------------------------- import qualified Data.Aeson as JSON -------------------------------------------------------------------------------- -import Xanthous.Entities +import Xanthous.Data.EntityChar -------------------------------------------------------------------------------- main :: IO () main = defaultMain test test :: TestTree -test = testGroup "Xanthous.Entities" - [ testGroup "EntityChar" - [ testProperty "JSON round-trip" $ \(ec :: EntityChar) -> - JSON.decode (JSON.encode ec) === Just ec - ] +test = testGroup "Xanthous.Data.EntityChar" + [ testProperty "JSON round-trip" $ \(ec :: EntityChar) -> + JSON.decode (JSON.encode ec) === Just ec ] diff --git a/test/Xanthous/GameSpec.hs b/test/Xanthous/GameSpec.hs index f9a9c543b90a..75e9f6215ade 100644 --- a/test/Xanthous/GameSpec.hs +++ b/test/Xanthous/GameSpec.hs @@ -2,10 +2,10 @@ module Xanthous.GameSpec where import Test.Prelude hiding (Down) import Xanthous.Game +import Xanthous.Game.State import Control.Lens.Properties import Xanthous.Data (move, Direction(Down)) import Xanthous.Data.EntityMap (atPosition) -import Xanthous.Entities (SomeEntity(SomeEntity)) main :: IO () main = defaultMain test |