cabal-version: 2.2 name: intricacy version: 0.9.0.0 license: GPL-3.0-or-later license-file: COPYING maintainer: mbays@sdf.org author: Martin Bays homepage: http://mbays.freeshell.org/intricacy synopsis: A game of competitive puzzle-design description: A lockpicking-themed turn-based puzzle game on a hex grid. A series of preset puzzles serves as an extended single-player introduction, after which players enter a multi-player game with a client-server architecture, in which players design puzzles (locks) and solve those designed by others. A metagame encourages the design of maximally difficult puzzles, within tight size constraints. The client supports Curses and SDL, with all graphics in SDL mode drawn by code using SDL-gfx. The network protocol is based on the 'binary' package, and is intended to be reasonably efficient. TVars are used to give transparent local caching and background network operations. Also incorporates an implementation of a graph 5-colouring algorithm (see GraphColouring.hs). category: Game build-type: Simple data-files: VeraMoBd.ttf tutorial/*.lock tutorial/*.text initiation/initiation.map initiation/*.lock initiation/*.text sounds/*.ogg extra-source-files: Main_stub.h extra-doc-files: README BUILD NEWS tutorial-extra/*.lock tutorial-extra/README source-repository head type: git location: http://mbays.freeshell.org/intricacy/.git flag game description: Build game manual: True flag sdl2 description: Enable SDL2 UI flag embed description: Embed font into executable (with Template Haskell) when using sdl2 flag sound description: Enable sound flag sdl1 description: Enable SDL1 UI (deprecated) manual: True default: False flag curses description: Enable Curses UI (disables sdl2) manual: True default: False flag server description: Build server default: False manual: True flag sendmail description: Include support for sending mail executable intricacy main-is: Intricacy.hs autogen-modules: Paths_intricacy other-modules: AsciiLock BinaryInstances BoardColouring Cache Command CVec Database EditGameState Frame GameState GameStateTypes GraphColouring Hex Init InputMode Interact InteractUtil KeyBindings Lock MainState Maxlocksize Metagame Mundanities Paths_intricacy Physics Protocol ServerAddr SimpleCache Util Version default-language: Haskell2010 if !flag(game) || (!flag(sdl1) && !flag(sdl2) && !flag(curses)) buildable: False else default-extensions: DoAndIfThenElse build-depends: base >=4.3 && <5, mtl >=2.1.3.1 && <2.4, transformers >=0.3.0.0 && <0.8, stm >=2.1 && <2.6, directory >=1.0 && <1.4, exceptions >=0.8.3 && <0.11, filepath >=1.0 && <1.6, time >=1.2 && <1.15, bytestring >=0.10 && <0.13, array >=0.3 && <0.6, containers >=0.4 && <0.9, vector >=0.9 && <0.14, binary >=0.5 && <0.11, network-simple >=0.3 && <0.5, safe >=0.3.18 && <0.4, memory >=0.11 && <0.19, crypton <1.1, text >=0.1 && <3 if !impl(ghc >=8.0) build-depends: semigroups ==0.18.* if flag(sdl1) build-depends: SDL >=0.6.5 && <0.7, SDL-ttf ==0.6.*, SDL-gfx >=0.6 && <0.8, random >=1.0 && <1.4 cpp-options: -DMAIN_SDL1 other-modules: SDLGlyph SDLRender SDLUI SDLUIMInstance if flag(sound) cpp-options: -DSOUND build-depends: SDL-mixer ==0.6.* if os(windows) extra-libraries: SDL_ttf SDL SDL_gfx freetype ghc-options: -optl-mwindows if flag(sound) extra-libraries: SDL_mixer if os(osx) cpp-options: -DAPPLE_SDL1 c-sources: c_main.c include-dirs: /usr/include/SDL /usr/local/include/SDL ghc-options: -no-hs-main if flag(sdl2) && !flag(sdl1) && !flag(curses) -- compiling with curses causes sdl2 mode to crash; I'm not sure why. build-depends: sdl2 >=2.3 && <2.6, sdl2-ttf >=2.0 && <2.3, sdl2-gfx >=0.2 && <0.4, random >=1.0 && <1.4 cpp-options: -DMAIN_SDL2 other-modules: SDL2Glyph SDL2Keys SDL2Render SDL2RenderCache SDL2UI SDL2UIMInstance if flag(sound) cpp-options: -DSOUND build-depends: sdl2-mixer <1.3 if flag(embed) cpp-options: -DEMBED other-modules: Font build-depends: file-embed <0.1 if os(windows) extra-libraries: SDL2_ttf SDL2 SDL2_gfx freetype ghc-options: -optl-mwindows cpp-options: -DWINDOWS if flag(sound) extra-libraries: SDL2_mixer if os(osx) cpp-options: -DAPPLE c-sources: c_main.c include-dirs: /usr/include/SDL2 /usr/local/include/SDL2 ghc-options: -no-hs-main if flag(curses) cpp-options: -DMAIN_CURSES -DCURSES pkgconfig-depends: ncursesw -any other-modules: CursesRender CursesUI CursesUIMInstance build-depends: hscurses <1.6 executable intricacy-server main-is: Server.hs autogen-modules: Paths_intricacy other-modules: AsciiLock BinaryInstances BoardColouring CVec Database Frame GameState GameStateTypes GraphColouring Hex Lock Maxlocksize Metagame Mundanities Paths_intricacy Physics Protocol Util Version default-language: Haskell2010 if flag(server) default-extensions: DoAndIfThenElse build-depends: base >=4.3 && <5, mtl >=2.2 && <2.4, transformers >=0.4 && <0.8, stm >=2.1 && <2.6, directory >=1.0 && <1.4, exceptions >=0.8.3 && <0.11, filepath >=1.0 && <1.6, time >=1.5 && <1.15, bytestring >=0.10 && <0.13, array >=0.3 && <0.6, containers >=0.4 && <0.9, vector >=0.9 && <0.14, binary >=0.5 && <0.11, network-fancy >=0.1.5 && <0.3, safe >=0.3.18 && <0.4, random >=1.0 && <1.4, pipes >=4 && <4.4, feed >=1.1 && <1.4, xml-conduit >=1.0 && <1.11, email-validate >=1.0 && <2.4, text >=0.1 && <3, text-short ==0.1.*, mime-mail >=0.4.4 && <0.6, memory >=0.11 && <0.19, crypton <1.1, argon2 ==1.3.* if !impl(ghc >=8.0) build-depends: semigroups ==0.18.* if flag(sendmail) cpp-options: -DSENDMAIL build-depends: smtp-mail >=0.1.4.1 && <0.6 else buildable: False