💾 Archived View for dio9sys.fun › writeups › dialog › reminders › index.gmi captured on 2023-09-08 at 16:02:02. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-05-24)
-=-=-=-=-=-=-
It's way way easier to define something by first writing #thing and then adding the traits below it with (trait *)
If you want to set up a custom trait for something (like a cateogry or region), assign it with (trait *) and then
invoke it where needed with (action (trait $))
If you want to add everything with a certain trait to a category, use * before the trait. Example:
(room *(trait $))
When you want to have multiple rooms, you need to specify exits in both rooms to each other to not make one-way doors!
(from * go #direction to #room) needs to be in both rooms to connect to each other
You can use (look *) to add a room description but, by default, when you look in the direction of another room it will
just show the name of that room. You have to be IN the room to see the full description
By default, when you have not entered a room yet it will not have a room name for the player
(door *) is how you say that something is a door.
When you want to have a door between rooms, go into the exit lines for both rooms and add "through #door to #room" to the
end instead of just "to #room"
Doors are, by default, not able to be opened. Set the door to be openable by adding (openable *) to your door
Lockable doors are locked by default and openable by default. If you have a locked door you can specify it with
(lockable *) without needing any further lines to describe it as locked or physically capable of opening.
Lockable doors need a key that is then described with (* unlocks #door) in the item description
By default, Dialog aggregates multiple line breaks and paragraph breaks into one. This is meant to avoid formatting
mistakes by the author. However, sometimes it's desirable to have multiple newlines for things such as setting multiple
lines between game text and game over screen. You can't just do (line) (line) as that turns into one line break, and
you can't do (space) by itself between lines as (space) with no arguments waits for text to appear on the screen to add
a space to it. If you try to throw in some random spaces in between (line) and (line) then it simply will not work due
to the whitespace collector.
However, if you do something like (space 5) in between breaks, it will insert that number of spaces into the new line
before setting a new one.
So, for example, you can add the following to add a little extra padding between game and game over:
(par)
(space 5)
(par)
(space 5)
(game over {YOU WIN})