Smell restrictions (Inform 6 example)
From IFWiki
Constant Story "Smell restrictions example";
Constant Headline "^By David Welbourn for IFWiki^";
Release 1;
Constant MAX_SCORE = 0;
Constant DIALECT_US = 1;
Constant DEATH_MENTION_UNDO;
Include "Parser";
Include "VerbLib";
Object Street "Street"
with description "You are in a street. The sewer is below you.",
d_to Sewer,
has light;
Object flower "flower" Street
with name 'flower',
description "It's just a nice flower. You don't know what type.",
before [;
Smell: "It smells wonderful.";
];
Object spacesuit "spacesuit" Street
with name 'spacesuit' 'suit',
description "Spacesuits are wonderful things, but they make EVERYONE look fat.",
react_before [;
Smell:
if (self hasnt worn) rfalse;
if (noun == player or spacesuit) rfalse;
"You can't smell anything while wearing the spacesuit.";
],
before [;
Smell: "You smell nothing unusual about the spacesuit.";
],
has clothing;
Object Sewer "Sewer"
with description "You are in a sewer. The street is above you.",
u_to Street,
has light;
Object sewage "sewage" Sewer
with name 'sewage',
article "some",
description "Horrible smelly sewage is everywhere in the sewer.",
react_before [;
Smell:
if (spacesuit has worn) rfalse;
if (noun == 0 or self) "It reeks.";
"The disgusting reek of the sewage overwhelms your nose. You can't smell anything else.";
],
has static;
[ Initialise;
location = Street;
score = 0;
];
Include "Grammar";