Child's Play

An interactive fiction by Stephen Granade (2007) - the Inform 7 source text

VOLUME 1 - On New and Changed Kinds

Chapter 1 - New Kinds, Which Extend the Taxonomy of the World

[The active/passive dichotomy indicates whether or not their state machines are currently running.]
A person can be a baby or a parent. A person is usually a parent. A person can be calm or upset. A person is usually calm.

A playmate is a kind of person. A playmate is always a baby. The plural of playmate is playmates. The specification of a playmate is "Represents a child with whom the player can play, for varying values of 'play'." A playmate can be active or passive. A playmate is usually passive.

The player is a baby. The player is male. The player has a number called cry count. The cry count of the player is 0. The player is in Beneath the Covers.

Instead of examining the player, say "You are as [if the player is wearing the squid costume]powder blue and squiddy[otherwise]baby-like[end if] as ever[if the player is not wearing the squid costume][note baby-desc][end if]." Instead of taking the player, say "You do not need to pick yourself up, you already are all self-possessed." Instead of tasting the player, say "You give yourself a lick and I guess you taste okay." Check smelling the player: instead say "You are baby powder fresh."

[A one-time deal. Concept borrowed from zarf. NB that you cannot examine a one-time deal without affecting it all Schrodinger-like. The first time you query it, it is changed from not over to over.]
A one-time deal is a kind. A one-time deal can be over. The specification of a one-time deal is "Represents an event that should occur once and only once. You can see whether a one-time deal has occurred or not, but note that the first time you do so, the one-time deal is then considered to have occurred."
To decide if (d - a one-time deal) has occurred:
    if d is over, decide yes;
    now d is over;
    decide no.

To decide if (d - a one-time deal) has not occurred:
    if d has occurred, decide no;
    decide yes.

[Furniture is a kind of supporter with some wacky rules. Normally I would specify that furniture is suitable for pulling up on here, but I can't because I7 cares about definition order.]
Furniture is a kind of supporter.

Rule for deciding the concealed possessions of furniture:
    if the player is quarter-height-or-higher, no;
    if the particular possession is a person, no;
    [A teeny hack to allow the cup of cheerios to be seen and interacted with even from the ground]
    if the particular possession is the cup of Cheerios, no;
    otherwise yes.

[If the concealed possessions thing worked as I'd like, these next two rules would not be necessary.]
Rule for printing the name of furniture when the player is not standing:
    omit contents in listing;
    continue the action.

Rule for writing a paragraph about furniture (called the item) when the player is not standing:
    say "[the initial appearance of the item][line break]".

[This next rule should make it so things on scenery furniture aren't listed in the room description when the player isn't standing. Sadly, it doesn't.]
Rule for writing a paragraph about scenery furniture (called the item) when the player is not standing:
    now everything on the item is mentioned;
    now the item is mentioned.

The source code to Child's Play is licensed under a Creative Commons NonCommercial Sampling Plus 1.0 License.