Commit Graph

6 Commits

Author SHA1 Message Date
e868d0e14f Add display abstraction
In case we want to run this on something that isn't an ANSI terminal, we
have the option to implement it however we want.

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2021-11-20 19:38:06 -08:00
2f86df2930 Add room entry auto-triggers, player input, and more
* When you teleport to a room, the teleport auto-triggers fire.
* Rooms have auto-triggers. None by default. They are run every time you
  teleport to a room, and when the game starts. Gate behavior behind a
  variable.
* PlayerInputAction waits for player input (and potentially write it
  into a variable)

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2021-11-18 20:32:02 -08:00
b67034d2fa Add "help" trigger and help() static method to trigger objects
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2021-11-18 19:31:38 -08:00
ff5d4484fe Move variables and triggers to be defined in the database
* Variables are now defined in the database, rather than the game
  itself.
* Triggers are now defined in the database, rather than hidden away in a
  method in the game. Custom triggers can now be added as well, in case
  a game needs more complex behavior that isn't necessarily available in
  the base library.

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2021-11-18 17:32:45 -08:00
7f86aafc05 Update example game some, update engine some
* Add RevealAction/UnrevealAction for revealing/hiding items in a room
* Add a lot of checks for items being revealed when it's attempted to be
  triggered
* Implement TeleportAction (mostly)
* For all Check* family of actions, the `yes` and `no` values may be
  just be a single action instead of an array of actions
* Change up how room descriptions and stuff work, mostly so that you can
  specify multiple lines in an array so you can preserve paragraph
  breaks when displayed.
* Example game has some more content

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2021-11-18 16:26:16 -08:00
dd2128beb1 Initial commit with a mostly working engine.
Basic commands are being parsed. I think the only weird part is the
'use' command because it needs to possibly target two things. A tiny
test example is provided in __main__, this will probably be broken out
later.

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
2021-11-18 11:31:21 -08:00