/*****************************************************************/
/*** New Implementation (with adverbs) by Mumbles, August 1993 ***/
/*** ***/
/*** Previous Updates: ***/
/*** Far-call Implementation by Zilanthius, Dec. 1992 ***/
/*** Modified for genders: padrone, Oct 22 1990 ***/
/*** ***/
/*****************************************************************/
string cap_name, *adverb_list;
object the_owner;
reset(arg) {
if (!arg) {
adverb_list = ({
#include "adverbs.h"
});
}
}
soul_command(verb, str, player_name) {
object ob;
string adv, who;
cap_name = player_name;
the_owner = this_player();
if (str) {
if (sscanf(str,"%s %s", who, adv) != 2)
who = str;
ob = present(lower_case(who), environment(this_player()));
if (ob == this_player()) {
write("You must be awfully bored.\n");
return 1;
}
if (!ob || !living(ob)) {
adv = who;
ob = 0;
}
adv = adv ? valid_adverb(adv): 0;
}
return call_other(this_object(), verb, ob, adv);
}
valid_adverb(s) {
int i;
for (i=0; i < sizeof(adverb_list); i++)
if (abbr(s, adverb_list[i])) {
return adverb_list[i];
}
return 0;
}
abbr(s1, s2) {
if (strlen(s1) < 4)
return 0;
return extract(s2, 0, strlen(s1) - 1) == s1;
}
/*** Notice That The Functions Are in Alphbetical Order!! ***/
/*** KEEP IT THAT WAY ***/
ack(ob, adv) {
string ob_name;
if (ob) {
write("How do you ack someone else?\n");
return 1;
}
write("You ack " + (adv ? adv: "noisily") + ".\n");
say(cap_name + " acks " + (adv ? adv: "noisily") + ".\n");
return 1;
}
agree(ob, adv) {
string ob_name;
if (!ob && !adv) {
write("You agree wholeheartedly.\n");
say(cap_name + " agrees wholeheartedly.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" agrees with you"+
(adv ? " "+adv: "") +".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You agree"+ (ob ? " with "+ob_name: "") +
(adv ? " "+adv: "") +".\n");
say(cap_name+" agrees"+ (ob ? " with "+ob_name: "") +
( adv ? " "+adv: "") +".\n", ob ? ob: this_object());
return 1;
}
ah(ob, adv) {
write("You finally get the idea and give an 'ah' of comprehension.\n");
say(cap_name + " finally gets the idea and gives an 'ah' of comprehension.\n");
return 1;
}
applaud(ob, adv) {
string ob_name;
if (!ob && !adv) {
write("You applaud wholeheartedly.\n");
say(cap_name + " gives a round of applause.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" gives you a round of applause"+
(adv ? " "+adv: "") +".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You applaud"+ (ob ? " "+ob_name: "")+(adv ? " "+adv: "") +".\n");
say(cap_name+" applauds"+ (ob ? " "+ob_name: "") +
(adv ? " "+adv: "") +".\n", ob ? ob: this_object());
return 1;
}
arch(ob, adv) {
string ob_name;
if(!ob && !adv) {
write("You arch an eyebrow quizzically.\n");
say(cap_name + " archs an eyebrow quizzically.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" archs an eyebrow"+
(adv ? " "+adv: "") +" at you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You arch an eyebrow"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n");
say(cap_name+" archs an eyebrow"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
blush(ob, adv) {
if (adv) {
write("You blush "+ adv +".\n");
say(cap_name+" blushes "+ adv +".\n");
return 1;
}
write("Your cheeks are burning.\n");
say(cap_name + " blushes.\n");
return 1;
}
boggle(ob, adv) {
string ob_name;
if (ob) {
write("You can't boggle someone else's mind!\n");
return 1;
}
write("Your mind boggles"+(adv ? " "+adv: "")+" at the concept.\n");
say(cap_name + "'s mind boggles"+(adv ? " "+adv: "")+" at the concept.\n");
return 1;
}
bounce(ob, adv) {
if (adv) {
write("You bounce around "+ adv +".\n");
say(cap_name+" bounces around "+ adv +".\n");
return 1;
}
write("B O I N G !!\n");
say(cap_name + " bounces around.\n");
return 1;
}
bop(ob, adv) {
string ob_name;
if (!ob) {
write("You bop to the beat" + (adv ? " "+adv: "") + ".\n");
say(cap_name + " bops to the beat" + (adv ? " "+adv: "") + ".\n");
return 1;
}
tell_object(ob, cap_name+" bops you on the head " +
(adv ? adv: "playfully") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You bop " + ob_name + " on the head " +
(adv ? adv: "playfully") + ".\n");
say(cap_name + " bops " + ob_name + " on the head " +
(adv ? adv: "playfully") + ".\n", ob);
return 1;
}
bow(ob, adv) {
string ob_name;
if (!ob && !adv) {
write("You bow to your audience.\n");
say(cap_name + " bows gracefully.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" bows"+ (adv ? " "+adv: "")+
" before you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You bow"+ (adv ? " "+adv: "") +
(ob ? " to "+ob_name: "") +".\n");
say(cap_name+" bows"+ ( adv ? " "+adv: "") +
(ob ? " to "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
brb(ob, adv) {
write("You hold up one finger and say \"I'll be right back!\"\n");
say(cap_name + " hold up one finger and says \"I'll be right back!\"\n");
return 1;
}
burp(ob, adv) {
if (adv) {
write("You burp "+ adv +".\n");
say(cap_name+" burps "+ adv +".\n");
return 1;
}
write("Excuse yourself!\n");
say(cap_name + " burps rudely.\n");
return 1;
}
cackle(ob, adv) {
if (adv) {
write("You cackle "+ adv +".\n");
say(cap_name+" cackles "+ adv +".\n");
return 1;
}
write("You cackle gleefully.\n");
say(cap_name + " throws " + the_owner->query_possessive() +
" head back and cackles with glee!\n");
return 1;
}
cheer(ob, adv) {
string ob_name;
if (!ob) {
write("You cheer " + (adv ? adv: "wholeheartedly") + ".\n");
say(cap_name + " cheers " + (adv ? adv: "wholeheartedly") + ".\n");
return 1;
}
tell_object(ob, cap_name+" cheers for you " +
(adv ? adv: "wholeheartedly") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You cheer for "+ob_name+(adv ? " "+adv: " wholeheartedly")+".\n");
say(cap_name + " cheers for " + ob_name +
(adv ? " "+adv: " wholeheartedly") + ".\n", ob);
return 1;
}
chuckle(ob, adv) {
if (adv) {
write("You chuckle "+ adv +".\n");
say(cap_name+" chuckles "+ adv +".\n");
return 1;
}
write("You chuckle politely.\n");
say(cap_name + " chuckles politely.\n");
return 1;
}
clap(ob, adv) {
if (adv) {
write("You clap "+ adv +".\n");
say(cap_name+" claps "+ adv +".\n");
return 1;
}
write("You clap briefly.\n");
say(cap_name + " claps.\n");
return 1;
}
comfort(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" comforts you" +
(adv ? " "+adv: "") +".\n");
write("You comfort "+ob_name+ (adv ? " "+adv: "") +".\n");
say(cap_name + " comforts "+ ob_name +
(adv ? " "+adv: "") +".\n", ob);
return 1;
}
cough(ob, adv) {
if (adv) {
write("You cough "+ adv +".\n");
say(cap_name+" coughs "+ adv +".\n");
return 1;
}
write("Cover your mouth when you do that!\n");
say(cap_name+ " coughs noisily.\n");
return 1;
}
cower(ob, adv) {
string ob_name;
if (!ob) {
write("You cower " + (adv ? adv: "sheepishly") + ".\n");
say(cap_name + " cowers" + (adv ? adv: "sheepishly") + ".\n");
return 1;
}
tell_object(ob, cap_name+" cowers " + (adv ? adv: "sheepishly") +
" in your presence.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You cower "+ (adv ? adv: "sheepishly") + " in " +
ob_name +"'s presence.\n");
say(cap_name + " cowers " + (adv ? adv: "sheepishly") + " in " +
ob_name + "'s presence.\n", ob);
return 1;
}
cringe(ob, adv) {
string ob_name;
if (!ob) {
write("You cringe " + (adv ? adv: "in terror") + ".\n");
say(cap_name + " cringes " + (adv ? adv: "in terror") + ".\n");
return 1;
}
tell_object(ob, cap_name+" cringes before you " +
(adv ? adv: "in terror") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You cringe before "+ob_name+(adv ? " "+adv: " in terror")+".\n");
say(cap_name + " cringes before "+ob_name+(adv ? " "+adv: " in terror") +
".\n", ob);
return 1;
}
cry(ob, adv) {
if (adv) {
write("You sob "+ adv +".\n");
say(cap_name+" sobs "+ adv +".\n");
return 1;
}
write("Waaaaah!\n");
say(cap_name + " bursts into tears.\n");
return 1;
}
cuddle(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" cuddles you" +
(adv ? " "+adv: "") +".\n");
write("You cuddle "+ob_name+ (adv ? " "+adv: "") +".\n");
say(cap_name + " cuddles "+ ob_name +
(adv ? " "+adv: "") +".\n", ob);
return 1;
}
curtsey(ob, adv) {
if (adv) {
write("You curtsey "+ adv +".\n");
say(cap_name+" curtseys "+ adv +".\n");
return 1;
}
write("You curtsey gracefully.\n");
say(cap_name + " curtseys gracefully.\n");
return 1;
}
dance(ob, adv) {
string ob_name;
if (!ob) {
write("Feels silly, doesn't it?\n");
say(cap_name + " does the disco duck.\n");
return 1;
}
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name + " sweeps you across the dance floor.\n");
write("You sweep "+ ob_name +" across the dance floor.\n");
say(cap_name+" sweeps "+ ob_name +" across the dance floor.\n", ob);
return 1;
}
duh(ob, adv) {
if (adv) {
write("You whap yourself in the head "+ adv +
" while saying, \"Duuuuhh!\".\n");
say(cap_name+" "+adv+" whaps "+ this_player()->query_objective()+
"self in the head while saying, \"Duuuuhh!\".\n");
return 1;
}
write("You whap yourself in the head while saying, \"Duuuuhh!\"\n");
say(cap_name + " whaps " + this_player()->query_objective() +
"self in the head while saying, \"Duuuuhh!\"\n");
return 1;
}
fart(ob, adv) {
if (adv) {
write("You fart "+ adv +".\n");
say(cap_name+" farts "+ adv +".\n");
return 1;
}
write("How rude!\n");
say(cap_name + " lets off a real rip-roarer.\n");
return 1;
}
flex(ob, adv) {
string ob_name;
if(!ob) {
write("You flex your buldging muscles " +
(adv ? adv: "egotistically") + ".\n");
say(cap_name + " flexes "+ the_owner->query_possessive() +
" muscles " + (adv ? adv: "egotistically") + ".\n");
return 1;
}
tell_object(ob, cap_name + " flexes "+ the_owner->query_possessive() +
" muscles at you " + (adv ? adv: "egotistically") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You flex your muscles "+ (adv ? adv: "egotistically") +
" at " + ob_name + ".\n");
say(cap_name+" flexes "+ the_owner->query_possessive() +
" muscles "+ (adv ? adv: "egotistically") + " at " +
ob_name + ".\n", ob);
return 1;
}
flip(ob, adv) {
if (adv) {
write("You flip "+ adv +".\n");
say(cap_name+" flips "+ adv +".\n");
return 1;
}
write("You flip head over heels.\n");
say(cap_name + " flips head over heels.\n");
return 1;
}
flutter(ob, adv) {
string ob_name;
if (!ob && !adv) {
write("You flutter your eyelids suggestively.\n");
say(cap_name + " flutters "+the_owner->query_possessive()+ " eyelids suggestively.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" flutters "+ the_owner->query_possessive()+" eyelids"+
(adv ? " "+adv: "") + " at you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You flutter your eyelids"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n");
say(cap_name+" flutters "+ the_owner->query_possessive()+ " eyelids"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
fondle(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" fondles you" +
(adv ? " "+adv: "") +".\n");
write("You fondle "+ob_name+ (adv ? " "+adv: "") +".\n");
say(cap_name + " fondles "+ ob_name +
(adv ? " "+adv: "") +".\n", ob);
return 1;
}
french(ob, adv) {
string ob_name;
if (!ob)
return 0;
tell_object(ob, cap_name +
" gives you a deep and passionate kiss..it seems to take forever...\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You give "+ ob_name +" a REAL kiss..it lasts a long time...\n");
say(cap_name+" gives "+ ob_name +" a deep and passionate kiss.."+
"it seems to take forever...\n", ob);
if (ob->query_frog()) {
the_owner->frog_curse(1);
ob->frog_curse(0);
}
return 1;
}
froth(ob, adv) {
string ob_name;
if(!ob) {
write("You froth"+ (adv ? " "+ adv : "") +" at the mouth.\n");
say(cap_name+" froths"+ (adv ? " "+ adv : "") +" at the mouth.\n");
return 1;
}
ob_name = interactive(ob) ? ob->query_name() : ob->short();
write("You froth"+ (adv ? " "+ adv : "") +" at "+ ob_name +".\n");
tell_object(ob, cap_name+" froths"+ (adv ? " "+ adv : "") +" at you.\n");
say(cap_name +" froths"+ (adv ? " "+adv : "") +" at "+ob_name+".\n", ob);
return 1;
}
frown(ob, adv) {
if (adv) {
write("You frown "+ adv +".\n");
say(cap_name+" frowns "+ adv +".\n");
return 1;
}
write("Is something wrong?\n");
say(cap_name + " frowns.\n");
return 1;
}
gasp(ob, adv) {
if (adv) {
write("You gasp "+ adv +".\n");
say(cap_name+" gasps "+ adv +".\n");
return 1;
}
write("You gasp in astonishment.\n");
say(cap_name + " gasps in astonishment!\n");
return 1;
}
giggle(ob, adv) {
if (adv) {
write("You giggle "+ adv +".\n");
say(cap_name+" giggles "+ adv +".\n");
return 1;
}
write("You giggle delightedly.\n");
say(cap_name + " giggles delightedly.\n");
return 1;
}
glare(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" glares"+ (adv ? " "+adv: "") +
"at you.\n");
write("You glare"+ (adv ? " "+adv: "") +" at "+ ob_name +".\n");
say(cap_name+" glares"+ (adv ? " "+adv: "") +" at "+
ob_name +".\n", ob);
return 1;
}
grin(ob, adv) {
string ob_name;
if (!ob && !adv) {
write("You grin widely.\n");
say(cap_name + " grins widely.\n");
return 1;
}
if (adv) {
write("You grin "+ adv +".\n");
say(cap_name+" grins "+ adv +".\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" grins"+ (adv ? " "+adv: "") +
" at you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You grin"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n");
say(cap_name+" grins"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
groan(ob, adv) {
if (adv) {
write("You groan "+ adv +".\n");
say(cap_name+" groans "+ adv +".\n");
return 1;
}
write("You groan.\n");
say(cap_name + " groans loudly.\n");
return 1;
}
grope(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" gropes you" +
(adv ? " "+adv: "") +".\n");
write("You grope "+ob_name+ (adv ? " "+adv: "") +".\n");
say(cap_name + " gropes "+ ob_name +
(adv ? " "+adv: "") +".\n", ob);
return 1;
}
growl(ob, adv) {
string ob_name;
if (!ob && !adv) {
write("You growl.\n");
say(cap_name + " growls.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" growls"+ (adv ? " "+adv: "") +
" at you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You growl"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n");
say(cap_name+" growls"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
grumble(ob, adv) {
string ob_name;
if (!ob) {
write("You grumble " + (adv ? adv: "unhappily") + ".\n");
say(cap_name + " grumbles " + (adv ? adv: "unhappily") + ".\n");
return 1;
}
tell_object(ob, cap_name+" grumbles " + (adv ? adv: "unhappily") +
" to you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You grumble "+ (adv ? adv: "unhappily") + " to " +
ob_name +".\n");
say(cap_name + " grumbles " + (adv ? adv: "unhappily") + " to " +
ob_name + ".\n", ob);
return 1;
}
hiccup(ob, adv) {
if (adv) {
write("You hiccup "+ adv +".\n");
say(cap_name+" hiccups "+ adv +".\n");
return 1;
}
write("Hic!\n");
say(cap_name + " hiccups.\n");
return 1;
}
hkiss(ob, adv) {
string ob_name;
if (!ob) {
write("You kiss your hand" + (adv ? " "+adv: "") + ".\n");
say(cap_name + " kisses " + the_owner->query_possessive() +
" hand" + (adv ? " "+adv: "") + ".\n");
return 1;
}
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name + " kisses your hand" +
(adv ? " "+adv: "") +".\n");
write("You kiss " + ob_name + "'s hand" + (adv ? " "+adv: "") +".\n");
say(cap_name + " kisses " + ob_name + "'s hand" +
(adv ? " "+adv: "") +".\n", ob);
if (ob->query_frog()) {
the_owner->frog_curse(1);
ob->frog_curse(0);
}
return 1;
}
hmm(ob, adv) {
string ob_name;
if (ob) {
write("How do you hmm someone else?\n");
return 1;
}
write("You hmm " + (adv ? adv: "thoughtfully") + ".\n");
say(cap_name + " hmms " + (adv ? adv: "thoughtfully") + ".\n");
return 1;
}
hug(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" hugs you" +
(adv ? " "+adv: "") +".\n");
write("You hug "+ob_name+ (adv ? " "+adv: "") +".\n");
say(cap_name+" hugs "+ob_name+(adv ? " "+adv: "") +".\n", ob);
return 1;
}
kick(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" kicks you" +
(adv ? " "+adv: "") +".\n");
write("You kick "+ob_name+ (adv ? " "+adv: "") +".\n");
say(cap_name+" kicks "+ob_name+(adv ? " "+adv: "") +".\n", ob);
return 1;
}
kiss(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" kisses you" +
(adv ? " "+adv: "") +".\n");
write("You kiss "+ob_name+ (adv ? " "+adv: "") +".\n");
say(cap_name+" kisses "+ob_name+(adv ? " "+adv: "") +".\n", ob);
if (ob->query_frog()) {
this_player()->frog_curse(1);
ob->frog_curse(0);
}
return 1;
}
knee(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
if (ob->query_male()) {
tell_object(ob, cap_name+" hits you"+ (adv ? " "+adv: "")+
"with "+the_owner->query_possessive()+" knee below your belt!\n"+
"You double over and fall to the ground, writhing in " +
"excruciating pain,\nfeeling like you may throw up " +
"everything you have eaten!\n");
say(cap_name + " suddenly raises " + the_owner->query_possessive() +
" knee, sending "+ ob_name +" to the floor, writhing in pain!\n",
ob);
write("You hit "+ ob_name +(adv ? " "+adv: "")+
" with your knee.\n");
}
else {
tell_object(ob, cap_name+" tries to knee you"+
(adv ? " "+adv: "")+", without much effect.\n");
say(cap_name+" tries to knee "+ ob_name +
", without much effect.\n", ob);
write("You try to knee "+ ob_name +". Not very effective though.\n");
}
return 1;
}
laugh(ob, adv) {
if (adv) {
write("You laugh "+ adv +".\n");
say(cap_name+" laughs "+ adv +".\n");
return 1;
}
write("You fall down laughing.\n");
say(cap_name + " falls down laughing.\n");
return 1;
}
lick(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" licks you" +
(adv ? " "+adv: "") +".\n");
write("You lick "+ ob_name + (adv ? " "+adv: "") +".\n");
say(cap_name+" licks "+ ob_name +(adv ? " "+adv: "")+".\n", ob);
return 1;
}
listen(ob, adv) {
string ob_name;
if (!ob && !adv) {
write("You listen.\n");
say(cap_name + " listens.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" listens to you"+
(adv ? " "+adv: "") +".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You listen"+ (ob ? " to "+ob_name: "")+(adv ? " "+adv: "") +".\n");
say(cap_name+" listens"+ (ob ? " to "+ob_name: "") +
(adv ? " "+adv: "") +".\n", ob ? ob: this_object());
return 1;
}
love(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" whispers to you sweet words of love.\n");
write("You tell your true feelings to " + ob_name + ".\n");
say(cap_name + " whispers softly to " + ob_name + ".\n", ob);
return 1;
}
moan(ob, adv) {
if (adv) {
write("You moan "+ adv +".\n");
say(cap_name+" moans "+ adv +".\n");
return 1;
}
write("You start to moan.\n");
say(cap_name + " starts moaning.\n");
return 1;
}
nibble(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" nibbles on your ear" +
(adv ? " "+adv: "") +".\n");
write("You nibble"+(adv ? " "+adv: "")+" on "+ob_name +"'s ear.\n");
say(cap_name+" nibbles on "+ ob_name +"'s ear"+
(adv ? " "+adv: "")+".\n", ob);
return 1;
}
nod(ob, adv) {
if (adv) {
write("You nod "+ adv +".\n");
say(cap_name+" nods "+ adv +".\n");
return 1;
}
write("You nod your head.\n");
say(cap_name + " nods "+the_owner->query_possessive()+ " head.\n");
return 1;
}
oh(ob, adv) {
write("You look blank and say 'oh'.\n");
say(cap_name + " looks blank and says 'oh'.\n");
return 1;
}
pat(ob, adv) {
string ob_name;
if (!ob && !adv) {
write("You pat your stomach.\n");
say(cap_name + " pats "+ this_player()->query_possessive() +
" stomach.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" pats you"+
(adv ? " "+adv: "") +" on the head.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You pat"+ (ob ? " "+ob_name: "") + (adv ? " "+adv: "") +
" on the head.\n");
say(cap_name+" pats"+ (ob ? " "+ob_name: "") +
(adv ? " "+adv: "") +" on the head.\n", ob ? ob: this_object());
return 1;
}
pinch(ob, adv) {
string ob_name;
if (!ob) {
write("You pinch yourself " + (adv ? adv: "sharply") + ".\n");
say(cap_name + " pinches " + this_player()->query_objective() +
"self " + (adv ? adv: "sharply") + ".\n");
return 1;
}
tell_object(ob, cap_name+" pinches you " +
(adv ? adv: "playfully") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You pinch "+ob_name+(adv ? " "+adv: " playfully") + ".\n");
say(cap_name + " pinches " + ob_name + (adv ? " "+adv: " playfully") +
".\n", ob);
return 1;
}
point(ob, adv) {
string ob_name;
if (!ob) {
write("You try " + (adv ? adv: "foolishly") +
" to point in all directions at once.\n");
say(cap_name + " tries" + (adv ? adv: "foolishly") +
" to point in all directions at once.\n");
return 1;
}
tell_object(ob, cap_name+" points at you" + (adv ? " "+adv: "") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You point at " + ob_name + (adv ? " "+adv: "") + ".\n");
say(cap_name + " points at " + ob_name + (adv ? " "+adv: "") + ".\n", ob);
return 1;
}
poke(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" pokes you" +
(adv ? " "+adv: "") +" in the ribs.\n");
write("You poke "+ ob_name +(adv ? " "+adv: "")+
" in the ribs.\n");
say(cap_name+" pokes "+ ob_name + (adv ? " "+adv: "") +
" in the ribs.\n", ob);
return 1;
}
ponder(ob, adv) {
if (adv) {
write("You ponder "+ adv +".\n");
say(cap_name+" ponders "+ adv +".\n");
return 1;
}
write("You ponder the situation.\n");
say(cap_name + " ponders the situation.\n");
return 1;
}
pout(ob, adv) {
if (adv) {
write("You pout "+ adv +".\n");
say(cap_name+" pouts "+ adv +".\n");
return 1;
}
write("Ah, don't take it so hard.\n");
say(cap_name + " pouts.\n");
return 1;
}
praise(ob, adv) {
string ob_name;
if (!ob) {
write("You would praise yourself? What a narcissist!\n");
return 1;
}
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" praises you" + (adv ? " "+adv: "") +".\n");
write("You praise "+ ob_name + (adv ? " "+adv: "") +".\n");
say(cap_name+" praises " + ob_name + (adv ? " "+adv: "") +".\n", ob);
return 1;
}
pounce(ob, adv) {
string ob_name;
if(!ob) return 0;
ob_name = interactive(ob) ? ob->query_name() : ob->short();
tell_object(ob, cap_name+" pounces on you"+ (adv ? " "+adv : "") +".\n");
write("You pounce on "+ ob_name + (adv ? " "+ adv : "") +".\n");
say(cap_name +" pounces on "+ ob_name + (adv ? " "+ adv : "") +".\n", ob);
return 1;
}
puke(ob, adv) {
string ob_name;
if(!ob && !adv) {
write("You puke on your shoes.\n");
say(cap_name + " doubles over and pukes.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" pukes"+
(adv ? " "+adv+" on you": "all over you") +".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You puke"+ (adv ? " "+adv: "") +
(ob ? " on "+ob_name: "") +".\n");
say(cap_name+" pukes"+ (adv ? " "+adv: "") +
(ob ? " on "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
purr(ob, adv) {
if (adv) {
write("You purr "+ adv +".\n");
say(cap_name+" purrs "+ adv +".\n");
return 1;
}
write("MMMMEEEEEEEEOOOOOOOWWWWWWW!\n");
say(cap_name + " purrs contentedly.\n");
return 1;
}
roll(ob, adv) {
string ob_name;
if (!ob) {
write("You roll your eyes" + (adv ? " "+adv: "") + ".\n");
say(cap_name + " rolls " + this_player()->query_possessive() +
" eyes" + (adv ? " "+adv: "") + ".\n");
return 1;
}
tell_object(ob, cap_name+" rolls "+ this_player()->query_possessive() +
" eyes at you" + (adv ? " "+adv: "") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You roll your eyes at " + ob_name + (adv ? " "+adv: "") + ".\n");
say(cap_name + " rolls " + this_player()->query_possessive() +
" eyes at " + ob_name + (adv ? " "+adv: "") + ".\n", ob);
return 1;
}
ruffle(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" ruffles your hair"+
(adv ? " "+adv: "") +".\n");
write("You ruffle "+ob_name+"'s hair"+ (adv ? " "+adv: "") +".\n");
say(cap_name+" ruffles "+ ob_name +"'s hair"+
(adv ? " "+adv: "") +".\n", ob ? ob: this_object());
return 1;
}
scratch(ob, adv) {
write ("You scratch your head and say 'umm'.\n");
say (cap_name+" scratches " + this_player()->query_possessive()+ " head and says 'umm'.\n");
return 1;
}
scream(ob, adv) {
if (adv) {
write("You scream "+ adv +".\n");
say(cap_name+" screams "+ adv +".\n");
return 1;
}
write("ARRGGGGGGHHHHHH!!!!\n");
say(cap_name + " screams loudly!\n");
return 1;
}
shake(ob, adv) {
string ob_name;
if(!ob) {
write("You shake your head"+ (adv ? " "+adv: "") +".\n");
say(cap_name + " shakes "+the_owner->query_possessive()+" head" +
(adv ? " "+adv: "") +".\n");
return 1;
}
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" shakes your hand"+
(adv ? " "+adv: "") +".\n");
write("You shake "+ ob_name +"'s hand"+(adv ? " "+adv: "")+".\n");
say(cap_name+" shakes "+ ob_name +"'s hand"+
(adv ? " "+adv: "") +".\n", ob);
return 1;
}
shiver(ob, adv) {
if (adv) {
write("You shiver "+ adv +".\n");
say(cap_name+" shivers "+ adv +".\n");
return 1;
}
write("Brrrrrr!!!\n");
say(cap_name + " shivers from the cold.\n");
return 1;
}
shrug(ob, adv) {
if (adv) {
write("You shrug "+ adv +".\n");
say(cap_name+" shrugs "+ adv +".\n");
return 1;
}
write("You shrug.\n");
say(cap_name + " shrugs helplessly.\n");
return 1;
}
sigh(ob, adv) {
if (adv) {
write("You sigh "+ adv +".\n");
say(cap_name+" sighs "+ adv +".\n");
return 1;
}
write("You sigh.\n");
say(cap_name + " sighs deeply.\n");
return 1;
}
sing(ob, adv) {
if (adv) {
write("You sing "+ adv +".\n");
say(cap_name+" sings "+ adv +".\n");
return 1;
}
write("Oh sole mio!\n");
say(cap_name + " sings in Italian.\n");
return 1;
}
slap(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" slaps you"+
(adv ? " "+adv: "") +".\n");
write("You slap "+ob_name + (adv ? " "+adv: "") +".\n");
say(cap_name+" slaps "+ob_name+(adv ? " "+adv: "")+".\n", ob);
return 1;
}
smirk(ob, adv) {
if (adv) {
write("You smirk "+ adv +".\n");
say(cap_name+" smirks "+ adv +".\n");
return 1;
}
write("You smirk.\n");
say(cap_name + " smirks.\n");
return 1;
}
smile(ob, adv) {
string ob_name;
if(!ob && !adv) {
write("You smile happily.\n");
say(cap_name + " smiles happily.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" smiles"+
(adv ? " "+adv: "") +" at you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You smile"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n");
say(cap_name+" smiles"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
snap(ob, adv) {
if (adv) {
write("You snap your fingers "+ adv +".\n");
say(cap_name+" snaps " + the_owner->query_possessive() +
" " + adv + ".\n");
return 1;
}
write("You snap your fingers.\n");
say(cap_name + " snaps " + the_owner->query_possessive() +
" fingers.\n");
return 1;
}
sneer(ob, adv) {
string ob_name;
if (!ob) {
write("You sneer " + (adv ? adv: "scornfully") + ".\n");
say(cap_name + " sneers " + (adv ? adv: "scornfully") + ".\n");
return 1;
}
tell_object(ob, cap_name+" sneers at you" + (adv ? " "+adv: "") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You sneer at " + ob_name + (adv ? " "+adv: "") + ".\n");
say(cap_name + " sneers at " + ob_name + (adv ? " "+adv: "") + ".\n", ob);
return 1;
}
sneeze(ob, adv) {
if (adv) {
write("You sneeze "+ adv +".\n");
say(cap_name+" sneezes " + adv + ".\n");
return 1;
}
write("Gazundheit!\n");
say(cap_name + " sneezes.\n");
return 1;
}
snicker(ob, adv) {
if (adv) {
write("You snicker "+ adv +".\n");
say(cap_name+" snickers " + adv + ".\n");
return 1;
}
write("You snicker.\n");
say(cap_name + " snickers.\n");
return 1;
}
sniff(ob, adv) {
if (adv) {
write("You sniff "+ adv +".\n");
say(cap_name+" sniffs " + adv + ".\n");
return 1;
}
write("You sniff.\n");
say(cap_name + " sniffs.\n");
return 1;
}
snore(ob, adv) {
if (adv) {
write("You snore "+ adv +".\n");
say(cap_name+" snores " + adv + ".\n");
return 1;
}
write("Zzzzzzzzzz...\n");
say(cap_name + " snores peacefully.\n");
return 1;
}
snort(ob, adv) {
string ob_name;
if (!ob) {
write("You snort " + (adv ? adv: "angrily") + ".\n");
say(cap_name + " snorts " + (adv ? adv: "angrily") + ".\n");
return 1;
}
tell_object(ob, cap_name+" snorts at you" + (adv ? " "+adv: "") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You snort at " + ob_name + (adv ? " "+adv: "") + ".\n");
say(cap_name + " snorts at " + ob_name + (adv ? " "+adv: "") + ".\n", ob);
return 1;
}
snuggle(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" snuggles up to you"+
(adv ? " "+adv: "") +".\n");
write("You snuggle up to "+ ob_name +(adv ? " "+adv: "")+ ".\n");
say(cap_name+" snuggles up to "+ ob_name +
(adv ? " "+adv: "")+".\n", ob);
return 1;
}
spit(ob, adv) {
string ob_name;
if(!ob && !adv) {
write("You spit.\n");
say(cap_name + " spits on the ground.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" spits"+
(adv ? " "+adv: "") +"on you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You spit"+ (adv ? " "+adv: "") +
(ob ? " on "+ob_name: "") +".\n");
say(cap_name+" spits"+ (adv ? " "+adv: "") +
(ob ? " on "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
squeeze(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" squeezes you"+
(adv ? " "+adv: " fondly") +".\n");
write("You squeeze "+ ob_name + (adv ? " "+adv: " fondly")+ ".\n");
say(cap_name+" squeezes "+ ob_name +
(adv ? " "+adv: " fondly") +".\n", ob);
return 1;
}
stare(ob, adv) {
string ob_name;
if(!ob && !adv) {
write("You stare into space.\n");
say(cap_name + " stares into space.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" stares"+
(adv ? " "+adv: "") +"at you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You stare"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: " into space") +".\n");
say(cap_name+" stares"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: " into space") +
".\n", ob ? ob: this_object());
return 1;
}
strut(ob, adv) {
if (adv) {
write("You strut "+ adv +".\n");
say(cap_name+" struts " + adv + ".\n");
return 1;
}
write("Strut your stuff!\n");
say(cap_name + " struts proudly.\n");
return 1;
}
sulk(ob, adv) {
if (adv) {
write("You sulk "+ adv +".\n");
say(cap_name+" sulks " + adv + ".\n");
return 1;
}
write("You sulk.\n");
say(cap_name + " sulks in the corner.\n");
return 1;
}
tap(ob, adv) {
string ob_name;
if (!ob && !adv) {
write("You tap your foot impatiently.\n");
say(cap_name + " taps "+the_owner->query_possessive()+ " his foot impatiently.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" taps "+ the_owner->query_possessive()+" foot"+
(adv ? " "+adv: "") + " at you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You tap your foot"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n");
say(cap_name+" taps "+ the_owner->query_possessive()+ " foot"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
tackle(ob, adv) {
string ob_name;
if (!ob) {
write("You wrestle with yourself on the ground" +
(adv ? " "+adv: "") + ".\n");
say(cap_name + " wrestles with "+ the_owner->query_objective() +
"self on the ground" + (adv ? " "+adv: "") + ".\n");
return 1;
}
tell_object(ob, cap_name+" tackles you" + (adv ? " "+adv: "") +".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You tackle " + ob_name + (adv ? " "+adv: "") + ".\n");
say(cap_name+" tackles " + ob_name + (adv ? " "+adv: "") +".\n", ob);
return 1;
}
thank(ob, adv) {
string ob_name;
if (!ob)
return 0;
ob_name = interactive(ob) ? ob->query_name(): ob->short();
tell_object(ob, cap_name+" thanks you" +
(adv ? " "+adv: "") +".\n");
write("You thank "+ ob_name + (adv ? " "+adv: "") +".\n");
say(cap_name+" thanks "+ ob_name +
(adv ? " "+adv: "") +".\n", ob);
return 1;
}
think(ob, adv) {
if (adv) {
write("You try to think "+ adv +", but fail.\n");
say(cap_name+" tries to think "+ adv +", but fails.\n");
return 1;
}
write("You think deeply about a problem.\n");
say(cap_name + " thinks deeply about a problem.\n"+
capitalize(the_owner->query_possessive()) + " brow furrows up and "+
"smoke billows from "+ the_owner->query_possessive() +" ears.\n");
return 1;
}
tickle(ob, adv) {
string ob_name;
if (!ob) {
write("You tickle yourself " + (adv ? adv: "mercilessly") + ".\n");
say(cap_name + " tickles " + this_player()->query_possessive() +
" toes " + (adv ? adv: "mercilessly") + ".\n");
return 1;
}
tell_object(ob, cap_name+" tickles you " +
(adv ? adv: "mercilessly") + ".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You tickle "+ob_name+(adv ? " "+adv: " mercilessly") + ".\n");
say(cap_name + " tickles " + ob_name + (adv ? " "+adv: " mercilessly") +
".\n", ob);
return 1;
}
twiddle(ob, adv) {
if (adv) {
write("You twiddle your thumbs "+ adv +".\n");
say(cap_name+" twiddles "+ the_owner->query_possessive() +
" thumbs "+ adv +".\n");
return 1;
}
write("You twiddle your thumbs.\n");
say(cap_name + " twiddles " + the_owner->query_possessive() +
" thumbs.\n");
return 1;
}
wait(ob, adv) {
string ob_name;
if (!ob) {
write("You wait"+ (adv ? " "+adv: "") +".\n");
say(cap_name + " waits"+ (adv ? " "+adv: "") +".\n");
return 1;
}
tell_object(ob, cap_name+" gives you a round of applause"+
(adv ? " "+adv: "") +".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You wait"+ (adv ? " "+adv: "") +" for "+ ob_name +".\n");
say(cap_name+" waits"+ (adv ? " "+adv: "") +
" for "+ ob_name +".\n", ob);
return 1;
}
wave(ob, adv) {
string ob_name;
if(!ob && !adv) {
write("You wave farewell.\n");
say(cap_name + " waves farewell.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" waves farewell to you"+
(adv ? " "+adv: "") +".\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You wave farewell"+ (adv ? " "+adv: "") +
(ob ? " to "+ob_name: "") +".\n");
say(cap_name+" waves farewell"+ (adv ? " "+adv: "") +
(ob ? " to "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
whistle(ob, adv) {
string ob_name;
if(!ob && !adv) {
write("You whistle appreciatively.\n");
say(cap_name + " whistles appreciatively.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" whistles"+
(adv ? " "+adv: "") +" at you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You whistle"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n");
say(cap_name+" whistles"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
wiggle(ob, adv) {
if (adv) {
write("You wiggle your bottom "+ adv +".\n");
say(cap_name+" wiggles "+ the_owner->query_possessive() +
" bottom "+ adv +".\n");
return 1;
}
write("You wiggle your bottom.\n");
say(cap_name + " wiggles " + the_owner->query_possessive() +
" bottom.\n");
return 1;
}
wince(ob, adv) {
string ob_name;
if (!ob) {
write("You wince " + (adv ? adv: "painfully") + ".\n");
say(cap_name + " winces" + (adv ? adv: "painfully") + ".\n");
return 1;
}
tell_object(ob, cap_name+" winces " + (adv ? adv: "painfully") +
" before you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
write("You wince "+ (adv ? adv: "painfully") + " before " +
ob_name +".\n");
say(cap_name + " winces " + (adv ? adv: "painfully") + " before " +
ob_name + ".\n", ob);
return 1;
}
wink(ob, adv) {
string ob_name;
if(!ob && !adv) {
write("You wink.\n");
say(cap_name + " winks suggestively.\n");
return 1;
}
if (ob) {
tell_object(ob, cap_name+" winks"+
(adv ? " "+adv: "") +" at you.\n");
ob_name = interactive(ob) ? ob->query_name(): ob->short();
}
write("You wink"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n");
say(cap_name+" winks"+ (adv ? " "+adv: "") +
(ob ? " at "+ob_name: "") +".\n", ob ? ob: this_object());
return 1;
}
yawn(ob, adv) {
if (adv) {
write("You yawn "+ adv +".\n");
say(cap_name+" yawns "+ adv +".\n");
return 1;
}
write("My, what big teeth you have!\n");
say(cap_name + " yawns.\n");
return 1;
}