Section 2 - Spinning Functionality
Every turn when the location is Roget Close and something is on the spinner:
if not looking:
follow the spinner-turning rule;
say paragraph break.
This is the spinner-turning rule:
let the chosen article be a random thing on the spinner;
let X be the chosen article;
let the goal text be indexed text;
let goal text be "[printed name of the X]";
change goal text to "[goal text in lower case]";
let max characters be the number of characters in the goal text;
let substitute text be indexed text;
repeat with Z running from 1 to max characters:
change substitute text to "[character number Z in goal text][substitute text]";
change goal text to substitute text;
[ say "[substitute text]";]
[since the spinner's likely to be undoing its own work, allow it to get the original back.]
if the chosen article is proffered by something (called the source) which is not the chosen article:
if the hash code of the source is the hash code of X:
let item text be indexed text;
now item text is "[source]";
now item text is "[item text in lower case]";
if the goal text is item text:
now the chosen article is the source;
if the chosen article is X:
repeat with item running through things in the repository:
if the hash code of the item is the hash code of X:
let item text be indexed text;
now item text is "[item]";
now item text is "[item text in lower case]";
if the goal text is item text:
now the chosen article is the item;
if the chosen article is not X:
abide by the dangerous destruction rules for X;
now the chosen article is not proffered by anything;
now everything which proffers X proffers the chosen article;
if an essential thing (called source) proffers the chosen article:
now the chosen article is essential;
[ if something (called source) which proffers the chosen article encloses an essential thing:
now the chosen article is essential; ]
now everything which is on the spinner is in the repository;
move the chosen article to the spinner;
say "[if looking]After the mirror does its work,[otherwise]The mirror rotates in leisurely fashion, and when it is done[end if] there [is-are a list of things on the spinner].";
try examining the chosen article;
record "using the spinner" as achieved;
if the spinner-gate is closed:
now the spinner-gate is open;
now the spinner-gate is unlocked;
say "The gate clicks open. ";
abide by the dangerous construction rules for the chosen article;
have the parser notice the chosen article;
otherwise:
if looking:
if exactly one thing is on the spinner, say "It does";
otherwise say "[The list of things on the spinner] do[es]";
say " not change, however. ";
otherwise:
say "The mirror revolves for a moment, [one of]without effect[or]without changing [the list of things on the spinner][at random], though the word '[substitute text]' appears in startling green on the mirror's surface. ".
Test yambug with "tutorial off / wear monocle / buy yam / n / w / put yam on pedestal / z / x yam" holding the roll of bills and the monocle in Hesychius Street.
Rule for disclosing exterior of something (called special-target) which is on the spinner:
say "[The special-target] [is-are] slowly revolving on [a spinner][if a mentionable thing is on the spinner], together with [a list of mentionable things which are on the spinner][end if]. [run paragraph on]";
follow the spinner-turning rule.
Rule for disclosing contents of the spinner (this is the spinner-content rule):
say "On [the spinner], [a list of things on the spinner] revolve[s] idly. [run paragraph on]";
follow the spinner-turning rule.
Test spin-plans with "tutorial off / wave l-remover at plans / put pans on spinner / get snap / i / wave s-remover at snap / i / put nap on spinner / get pan / i / n" holding the secret-plans in Roget Close.
Test spinner with "tutorial off / look / z / get all / put remover on spinner / z / get remover / put god on spinner / get dog / put leer on spinner / look / z / get reel / g / n / test projecting" holding the leer in Roget Close.
Test projecting with "put reel in projector / turn projector on" in the Projection Booth.