I’d like my character to start in a dark room and for them to have to open curtains. I got the curtains if working but now they can’t see it in the dark. I tried to create a new kind but I don’t know what to put in so that it can be seen in the dark. Please help me finish the kind definition.
key thing is a kind of thing.
The “Down Below” example is a good example of how to handle this with a light switch:
The “After deciding the scope of the player” section is important for making sure the switch (in your case, the curtain) is “visible” to the player in the dark.
Terrifying Basement is a room. The light switch is a switched on device in the Terrifying Basement. It is fixed in place.
Carry out switching off the light switch: now the Terrifying Basement is dark.
Carry out switching on the light switch: now the Terrifying Basement is lighted.
Understand "flip [something switched off]" as switching on. Understand "flip [something switched on]" as switching off. Understand "flip [something]" as switching on.
After deciding the scope of the player when the location is the Terrifying Basement:
place the light switch in scope.
Upstairs is above the Terrifying Basement.
Test me with "turn off light / look / flip light switch".
You could write a rule “for printing the description of a dark room when the location is (your room)”, see Section 18.22 of Writing with Inform. This will replace the “It is pitch dark, and you can’t see a thing” text with something of your own, in which you can mention the curtains.
You’ll also need to make sure they are in scope so the player can refer to them.
After deciding the scope of the player when the location is (your room): place the curtains in scope.
Alternatively, you could start with the description of the room as thought it were dark, and only place in it the objects you want the player to be able to interact with in the dark. Then after the player draws the curtains, you can change the room description and place
any other objects you want in the room at that point. (In other words, bypass Inform’s light/dark mechanics completely.) There are various ways this could be done; the simplest would be to effect the whole transformation in an “After opening the curtains” rule.
The Bedroom is a room. "(dark description)". The printed name of the Bedroom is "Darkened bedroom"
The curtains are in the bedroom. The curtains are plural-named.
The curtains can be open. The curtains can be openable. The curtains are openable.
The bed is a supporter. The hamster is an animal. It is in the hamster cage.
After opening the curtains:
now the description of the Bedroom is "(light description)";
now the printed name of the Bedroom is "Bedroom";
move the bed to the Bedroom; move the hamster cage to the Bedroom;
say "Bright morning light floods into the room.";
Last check closing the curtains: say "But then you wouldn't be able to see." instead.
Going along with JRB’s suggestion, if you’re not extensively using light/darkness throughout, you could even make the “dark room” a separate location with just the items you want the player to interact with and then move the player when they open the curtains.
You’d just need to either prevent the player from dropping something in the dark, or perhaps move any dropped item to a “floor” backdrop supporter that is in both rooms.