Initial commit
This commit is contained in:
parent
2a498ff4b5
commit
9987d12f80
9 changed files with 274 additions and 0 deletions
11
.gitignore
vendored
Normal file
11
.gitignore
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
.stack-work/
|
||||
dist/
|
||||
dist-newstyle/
|
||||
out/
|
||||
|
||||
.idea/
|
||||
.vscode/
|
||||
|
||||
.DS_Store
|
||||
*.exe
|
||||
*.dll
|
18
levels/level1.txt
Normal file
18
levels/level1.txt
Normal file
|
@ -0,0 +1,18 @@
|
|||
player: {
|
||||
hp: 50,
|
||||
inventory: []
|
||||
}
|
||||
|
||||
levels: [
|
||||
{
|
||||
layout: {
|
||||
| * * * * * *
|
||||
| * s . . e *
|
||||
| * * * * * *
|
||||
},
|
||||
|
||||
items: [],
|
||||
|
||||
entities: []
|
||||
}
|
||||
]
|
51
levels/level2.txt
Normal file
51
levels/level2.txt
Normal file
|
@ -0,0 +1,51 @@
|
|||
player: {
|
||||
hp: 50,
|
||||
inventory: []
|
||||
}
|
||||
|
||||
levels: [
|
||||
{
|
||||
layout: {
|
||||
| * * *
|
||||
| * e *
|
||||
| * . *
|
||||
| * . *
|
||||
| * . *
|
||||
| * . *
|
||||
| * s *
|
||||
| * * *
|
||||
},
|
||||
|
||||
items: [
|
||||
{
|
||||
id: "key",
|
||||
x: 1,
|
||||
y: 2,
|
||||
name: "Sleutel",
|
||||
description: "Deze sleutel kan een deur openen",
|
||||
useTimes: 1,
|
||||
value: 0,
|
||||
actions: {
|
||||
[not(inventoryFull())] retrieveItem(key),
|
||||
[] leave()
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
entities: [
|
||||
{
|
||||
id: "door",
|
||||
x: 1,
|
||||
y: 4,
|
||||
name: "Deur",
|
||||
description: "Deze deur kan geopend worden met een sleutel",
|
||||
direction: up,
|
||||
|
||||
actions: {
|
||||
[inventoryContains(key)] useItem(key),
|
||||
[] leave()
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
79
levels/level3.txt
Normal file
79
levels/level3.txt
Normal file
|
@ -0,0 +1,79 @@
|
|||
player: {
|
||||
hp: 50,
|
||||
inventory: [
|
||||
{
|
||||
id: "dagger",
|
||||
x: 0,
|
||||
y: 0,
|
||||
name: "Dolk",
|
||||
description: "Basis schade tegen monsters",
|
||||
useTimes: infinite,
|
||||
value: 10,
|
||||
|
||||
actions: {}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
levels: [
|
||||
{
|
||||
layout: {
|
||||
| * * * * * * * *
|
||||
| * . . . . . . *
|
||||
| * s . . . . . *
|
||||
| * . . . . . e *
|
||||
| * . . . . . . *
|
||||
| * * * * * * * *
|
||||
},
|
||||
|
||||
items: [
|
||||
{
|
||||
id: "sword",
|
||||
x: 2,
|
||||
y: 3,
|
||||
name: "Zwaard",
|
||||
description: "Meer schade tegen monsters",
|
||||
useTimes: infinite,
|
||||
value: 25,
|
||||
|
||||
actions: {
|
||||
[not(inventoryFull())] retrieveItem(sword),
|
||||
[] leave()
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "potion",
|
||||
x: 3,
|
||||
y: 1,
|
||||
name: "Levensbrouwsel",
|
||||
description: "Geeft een aantal levenspunten terug",
|
||||
useTimes: 1,
|
||||
value: 50,
|
||||
|
||||
actions: {
|
||||
[not(inventoryFull())] retrieveItem(potion),
|
||||
[] leave()
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
entities: [
|
||||
{
|
||||
id: "devil",
|
||||
x: 4,
|
||||
y: 3,
|
||||
name: "Duivel",
|
||||
description: "Een monster uit de hel",
|
||||
hp: 50,
|
||||
damage: 5,
|
||||
|
||||
actions: {
|
||||
[inventoryContains(potion)] increasePlayerHp(potion),
|
||||
[inventoryContains(sword)] decreaseHp(m1, sword),
|
||||
[] decreaseHp(m1, dagger),
|
||||
[] leave()
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
10
lib/VoorbeeldModule.hs
Normal file
10
lib/VoorbeeldModule.hs
Normal file
|
@ -0,0 +1,10 @@
|
|||
module VoorbeeldModule
|
||||
( hoi -- oplijsting van de publieke functies - als je deze lijst en de haakjes weglaat, wordt alles publiek
|
||||
, hallo
|
||||
) where
|
||||
|
||||
hoi :: String
|
||||
hoi = "Hoi"
|
||||
|
||||
hallo :: String
|
||||
hallo = "Hallo"
|
23
rpg-engine.cabal
Normal file
23
rpg-engine.cabal
Normal file
|
@ -0,0 +1,23 @@
|
|||
name: rpg-engine
|
||||
version: 1.0.0
|
||||
author: Author name here
|
||||
cabal-version: 1.12
|
||||
build-type: Simple
|
||||
|
||||
library
|
||||
hs-source-dirs: lib
|
||||
build-depends: base >= 4.7 && <5
|
||||
exposed-modules: VoorbeeldModule
|
||||
|
||||
executable rpg-engine
|
||||
main-is: Main.hs
|
||||
hs-source-dirs: src
|
||||
default-language: Haskell2010
|
||||
build-depends: base >= 4.7 && <5, rpg-engine
|
||||
|
||||
test-suite rpg-engine-test
|
||||
type: exitcode-stdio-1.0
|
||||
main-is: VoorbeeldTest.hs
|
||||
hs-source-dirs: test
|
||||
default-language: Haskell2010
|
||||
build-depends: base >=4.7 && <5, hspec <= 2.10.6, rpg-engine
|
4
src/Main.hs
Normal file
4
src/Main.hs
Normal file
|
@ -0,0 +1,4 @@
|
|||
import VoorbeeldModule (hoi)
|
||||
|
||||
main :: IO ()
|
||||
main = putStrLn hoi
|
67
stack.yaml
Normal file
67
stack.yaml
Normal file
|
@ -0,0 +1,67 @@
|
|||
# This file was automatically generated by 'stack init'
|
||||
#
|
||||
# Some commonly used options have been documented as comments in this file.
|
||||
# For advanced use and comprehensive documentation of the format, please see:
|
||||
# https://docs.haskellstack.org/en/stable/yaml_configuration/
|
||||
|
||||
# Resolver to choose a 'specific' stackage snapshot or a compiler version.
|
||||
# A snapshot resolver dictates the compiler version and the set of packages
|
||||
# to be used for project dependencies. For example:
|
||||
#
|
||||
# resolver: lts-3.5
|
||||
# resolver: nightly-2015-09-21
|
||||
# resolver: ghc-7.10.2
|
||||
#
|
||||
# The location of a snapshot can be provided as a file or url. Stack assumes
|
||||
# a snapshot provided as a file might change, whereas a url resource does not.
|
||||
#
|
||||
# resolver: ./custom-snapshot.yaml
|
||||
# resolver: https://example.com/snapshots/2018-01-01.yaml
|
||||
resolver:
|
||||
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/19/30.yaml
|
||||
|
||||
# User packages to be built.
|
||||
# Various formats can be used as shown in the example below.
|
||||
#
|
||||
# packages:
|
||||
# - some-directory
|
||||
# - https://example.com/foo/bar/baz-0.0.2.tar.gz
|
||||
# subdirs:
|
||||
# - auto-update
|
||||
# - wai
|
||||
packages:
|
||||
- .
|
||||
# Dependency packages to be pulled from upstream that are not in the resolver.
|
||||
# These entries can reference officially published versions as well as
|
||||
# forks / in-progress versions pinned to a git hash. For example:
|
||||
#
|
||||
# extra-deps:
|
||||
# - acme-missiles-0.3
|
||||
# - git: https://github.com/commercialhaskell/stack.git
|
||||
# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
|
||||
#
|
||||
# extra-deps: []
|
||||
|
||||
# Override default flag values for local packages and extra-deps
|
||||
# flags: {}
|
||||
|
||||
# Extra package databases containing global packages
|
||||
# extra-package-dbs: []
|
||||
|
||||
# Control whether we use the GHC we find on the path
|
||||
# system-ghc: true
|
||||
#
|
||||
# Require a specific version of stack, using version ranges
|
||||
# require-stack-version: -any # Default
|
||||
# require-stack-version: ">=2.7"
|
||||
#
|
||||
# Override the architecture used by stack, especially useful on Windows
|
||||
# arch: i386
|
||||
# arch: x86_64
|
||||
#
|
||||
# Extra directories used by stack for building
|
||||
# extra-include-dirs: [/path/to/dir]
|
||||
# extra-lib-dirs: [/path/to/dir]
|
||||
#
|
||||
# Allow a newer minor version of GHC than the snapshot specifies
|
||||
# compiler-check: newer-minor
|
11
test/VoorbeeldTest.hs
Normal file
11
test/VoorbeeldTest.hs
Normal file
|
@ -0,0 +1,11 @@
|
|||
import Test.Hspec
|
||||
|
||||
import VoorbeeldModule (hoi, hallo)
|
||||
|
||||
main :: IO ()
|
||||
main = hspec $ do
|
||||
it "Returns correct string for hoi" $ do
|
||||
hoi `shouldBe` "Hoi"
|
||||
|
||||
it "Returns correct string for hallo" $ do
|
||||
hallo `shouldBe` "Hallo"
|
Reference in a new issue