From 4efb230f2bd867f2c96af484feff6739455d2390 Mon Sep 17 00:00:00 2001 From: lambda Date: Fri, 10 Nov 2023 13:51:32 +0300 Subject: [PATCH] Update readme --- README.org | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/README.org b/README.org index f93060f..92764ad 100644 --- a/README.org +++ b/README.org @@ -2,8 +2,13 @@ * About This package is a core api for GateRunner card game. +It is written as an exercise in functional programming with fp-ts library +and domain modelling. + +Package contains game logic only without any rendering engine. + ** Gameplay - During game player should go through *levels* thats consist of lines of *doors*. + During game *player* should go through *levels* thats consist of lines of *doors*. Every line have three *doors* and player free to open any of them to skip line. When player interacts with the *door* it turn into *event*. @@ -13,6 +18,8 @@ This package is a core api for GateRunner card game. Player pass the level if it skip all lines with *move points* and *health* greater than zero. + Player can skip line if he can pass at least one open door with *move points* > 0. + *Event* can be ether of: - empty - item @@ -23,8 +30,31 @@ This package is a core api for GateRunner card game. Player just pass whole line when interacts with event. More difficult level is, less empty events it have. *** Item *event* + Item can increase player's attributes once or permanent + Item that increase attribute once if *poition*, permanently is *artifact* + + *Poitions* works increase only on *health* and *move points* + *Artifacts* can increase *attack* *defence* *health max* *move max* + + Player can use *potion* only before open a door *** Trap *event* + *Trap* works like negative *item* thats decrease parameters once or + permanent. *** Enemy *event* + *Enemy* is negative *player*. To pass the enemy we need to compare *attack*, + *defence* and *health* until health of *player* or *enemy* will be + equal or less than zero. + + Skipping a line from start to finish is on *turn*. It consist of *phases*. + * Plan ** TODO Describe domain + *Turn* + ,-------------------. + |Turn | + |-------------------| + |phases: phase[] | + |isComplete: boolean| + `-------------------' + ** TODO Implement domain and operations over domain elements