Color output isn't necessarily always going to be a terminal output
thing, and terminals don't always support the same escape codes (e.g. on
Windows). Thus, all colorization efforts are done in the Display rather
than in the Game.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
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>
* 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>
* 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>
* 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>
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>