Chapter - Commands
Section - Hello and Goodbye
A person can be idle, attentive, or bestial. A man is usually idle. A woman is usually idle. An animal is always bestial. Definition: a person is nonbestial if it is not an animal.
Definition: a person is other if it is nonbestial and it is not the player. Definition: a person is conversing if it is other and it is attentive.
Understand "hello/hi/greet/greetings/talk" or "shake hands" or "shake hands with" as "[greeting word]". Greeting is an action applying to one visible thing. Understand "[greeting word] [something]" or "[greeting word] to [something]" or "say [greeting word] to [something]" or "[greeting word]" or "say [greeting word]" as greeting.
Rule for supplying a missing noun when greeting (this is the pick a random person to greet rule):
let Phil be a random other nonbestial person enclosed by the location;
if location is Dream7Nexus:
say "Who, the [o]tall[x] figure or the [o]short[x] one?" instead;
else if Phil is not a person:
if location is Echo Chamber:
say "[echochmmsg]." instead;
else if location is regionally in Rebelworld and pedestrians are in location:
vague greet pedestrians;
stop the action;
else:
say "There's no one here to greet." instead;
change the noun to Phil.
Check greeting (this is the can't greet someone you're talking to rule): if noun is attentive, say "You're already talking to [the noun]." instead.
Check greeting (this is the can't greet animals or things rule):
if noun is an animal:
if noun is touchable, try touching noun instead;
otherwise say "[The noun] makes no response." instead;
if noun is pedestrians:
vague greet pedestrians;
stop the action;
if noun is not a person:
say "You give [it-them of noun] a whimsical hello, but receive no response." instead.
Carry out greeting:
if conversation is being debugged, say "// Conversation: Carry out greeting.";
pre-conversation processing.
To pre-conversation processing:
if conversation is being debugged, say "// Conversation: pre-conversation processing.";
let joe be a random other person enclosed by the location;
if joe is not a person begin; if conversation is being debugged, say "// Conversation: BUG: no random other person is enclosed by location.";
otherwise;
now the boredom counter of joe is 0;
if conversation is being debugged and the number of entries in list of convo stuff > 1, say "// Conversation: making legit entries in list of convo stuff ([list of convo stuff]) available.";
if location is regionally in Lacuna begin;
repeat with item running through list of convo stuff begin;
if item is a beat and item is legit, now tempfuse of item is fuse of item;
end repeat;
end if;
now joe is attentive;
end if.
Report greeting: say "You greet [the noun]."
Understand "goodbye/goodby/bye/farewell" or "good bye" as "[farewell word]".
Saying farewell to is an action applying to one visible thing. Understand "[farewell word] [someone]" or "say [farewell word] to [someone]" or "[farewell word]" or "say [farewell word]" as saying farewell to. Rule for supplying a missing noun when saying farewell to: let Phil be a random other person enclosed by the location; if Phil is not a person, say "There's no one here to say goodbye to." instead; change the noun to Phil.
[ Check saying farewell to (this is the can't farewell someone you're not talking to rule): if noun is idle, say "You aren't talking to [the noun] right now." instead. ]
Carry out saying farewell to:
if conversation is being debugged, say "// Conversation: Carry out saying farewell to.";
now the boredom counter of noun is 0;
post-conversation processing.
To post-conversation processing:
if conversation is being debugged, say "// Conversation: post-conversation processing. Making [list of available beats] unavailable.";
now all people are idle;
repeat with target running through available beats begin;
now tempfuse of target is 0;
end repeat;
[ now the next beat is silence; ]
now the last beat is silence.
Report saying farewell to: say "You say goodbye to [the noun]."