!---------------------------------------------------------------------------
! ExpertGrammar.h, by Emily Short (
[email protected])
!
! Being grammar statements and a couple of verbs to extend the standard
! library with some of the most-requested improvements. The most useful
! of these are equivalences that the standard library doesn't understand --
! GET DOWN for EXIT, DIG IN for DIG. The rest are just spare verb stubs,
! provided (in many cases) because some other standard authoring language
! has these verbs and yours truly has had a fit of jealousy. Others
! result from an inspection of the command logs on phpZork. Bizarre though
! some of these may seem to a seasoned adventurer ('but that's not an
! IF word!!'), they are attested in actual play scripts. Someone out
! there has tried to use them...
!
!
! Version 0.6 -- still in progress. Let me know if you have
! more suggestions.
!
! 5/21/03
!
! Thanks to Daniel Lackey for his corrections.
!
! RIGHTS:
!
! This library file may be treated as public domain. It may be
! included with or without credit to the original author. It may be
! modified at the user's discretion. It may be freely redistributed.
! Parts may be extracted.
!
! CONTENTS:
!
! I would summarize, but they're pretty self-explanatory. Page through
! and have a look. It's quite likely that you'll want to replace some
! stubs and/or fiddle with the grammar lines.
!
! INSTALLATION:
!
! Include "ExpertGrammar" after Grammar in your gamefile.
!---------------------------------------------------------------------------
Verb 'hand' 'deliver' = 'give';
Verb 'depart' = 'leave';
Verb 'excavate' = 'dig';
Verb 'carve' = 'cut';
Verb 'steal' 'grab' 'acquire' 'snatch'
= 'take';
Verb 'place' 'stick' 'shove' 'stuff'
= 'put';
Verb 'yell' = 'shout';
Verb 'strike' = 'hit';
Verb 'board' = 'enter';
Verb 'toss' 'fling' 'hurl'
= 'drop';
Verb 'melt' 'ignite' 'incinerate' 'kindle' 'parch' 'bake' 'toast'
= 'burn';
Verb 'see' 'view' 'observe'
= 'examine';
Verb 'proceed' = 'walk';
Verb 'whistle' 'hum' = 'sing';
Verb 'injure' = 'attack';
Verb 'wander' = 'walk';
Verb 'use' 'utilise' 'utilize' 'employ' 'try'
* clothing -> Wear
* edible -> Eat
* enterable -> Enter
* door -> Enter
* switchable -> SwitchOn
* openable -> Open
* noun -> Use
* noun 'on'/'in'/'with' lockable -> TryKey
* noun 'to'/'for' topic -> RephraseUse;
Verb 'bite' * edible -> Eat
* noun -> Attack;
Verb 'descend' * -> GoDown
* noun -> Enter;
Verb 'ascend' * -> GoUp
* noun -> Enter;
Verb 'knock' 'bang' 'pound'
* 'on' noun -> KnockOn;
Verb 'kick' * noun -> Attack
* 'in'/'down'/'through' noun -> Attack;
Verb 'shake' 'rattle'
* noun -> Shake;
Verb 'dance' 'foxtrot' 'tango' 'waltz'
* -> Dance;
Verb 'xyzzy' 'plugh' 'plover'
* -> Xyzzy;
Verb 'extinguish'
* noun -> Extinguish;
Verb 'untie' 'loosen' 'free' 'loose'
* noun -> Untie;
Verb 'activate' 'start'
* 'over'/'again' -> Restart
* noun -> SwitchOn;
Verb 'stop' 'deactivate'
* noun -> SwitchOff;
Verb 'suicide' * -> Quit;
Verb 'commit' * 'suicide' -> Quit;
Verb 'reach' * 'for'/'towards'/'to' noun -> Take;
Extend 'kill' first * 'me'/'myself' -> Quit;
Extend 'throw' * 'away' -> Drop;
Extend 'yell' first * -> Shout;
Extend 'jump' * 'on'/'onto' noun -> Enter;
Extend 'get' first * 'down' -> Exit;
Extend 'get' last
* 'out' multi -> Take
* multiinside 'out' 'of'/'from' noun
-> Remove;
Extend 'look' * noun=ADirection -> LookDir
* 'around'/'about' -> Look;
Extend 'dig' first
* -> DigGround
* 'with' noun -> DigGround
* 'in' noun -> Dig
* 'in' noun 'with' noun -> Dig;
Extend 'put' * 'out' noun -> Extinguish;
Extend 'go' * 'down'/'up' noun -> Enter
* 'upstairs' -> GoUp
* 'downstairs' -> GoDown;
Extend 'break' * 'in'/'down'/'through' noun -> Attack
* noun 'in'/'down' -> Attack
* 'in'/'down'/'through' noun 'with' noun -> Attack
* noun 'in'/'down' 'with' noun -> Attack;
Extend 'blow' * 'on'/'in'/'through' noun -> BlowThrough
* 'out' noun -> Extinguish;
Extend 'pray' * 'for'/'to' topic -> Pray;
Extend 'rub' * noun 'on'/'onto'/'over' noun
-> RubOn;
Extend 'show' * 'inventory'/'invent'/'inv'/'possessions'
-> Inv;
Extend 'set' * multiheld 'down' -> Drop
* multiheld 'on' noun -> PutOn;
[ DigGroundSub;
if (noun) <<Dig d_obj noun>>;
else <<Dig d_obj>>;
];
[ RubOnSub;
"There's not much point in that.";
];
[ RephraseUseSub;
"Try <VERB> with ", (the) noun, " or <VERB> <THING> with ",
(the) noun, ".";
];
[ GoDownSub;
<<Go d_obj>>;
];
[ GoUpSub;
<<Go u_obj>>;
];
[ UseSub;
"It's not entirely clear what you intend.";
];
[ UntieSub;
"It's not entirely clear what you intend.";
];
[ ExtinguishSub;
if (noun has on && noun has switchable)
<<switchoff noun>>;
"This has no effect.";
];
[ BlowThroughSub;
"This has no effect.";
];
[ TryKeySub;
if (second has locked) <<Unlock second noun>>;
<<Lock second noun>>;
];
[ LookDirSub;
"You see nothing unexpected in that direction.";
];
[ DanceSub;
"You've never been much of a dancer.";
];
[ ShakeSub;
"Nothing happens.";
];
[ XyzzySub;
"There's a listening sort of silence.";
];
[ ShoutSub;
"~Yeeagh!~";
];
[ KnockOnSub;
if (noun has door) "No one answers.";
"Nothing happens.";
];