chinatown: room sdesc = "Chinatown" ldesc = "
Even the dirt is covered with grime. You can go back down into the subway station,
you can go west into a dangerous looking alley
or follow the main street south
" down = green_line west = alley south = china_shops ; alley: room // dynamic this is sometimes dangerous sdesc = { "Alley"; } secret_deployed = nil ldesc = { "You are in a dark and dangerous area. While Boston\'s Combat Zone has been on the decline in recent years, seedy bars, porn shops, and random street violence still exist. Random graffitti adorns the walls."; } firstseen = { notify(alley, &warning, 0);} warning = { if (time_night()) { "
Perhaps it was not so wise to come here at night!
A man wearing a white chef\'s hat is running at you with a large meat cleaver!
Quickly, you run through your list of options
You may go back east"; } } stay = { unnotify(alley,&warning); unnotify(alley,&stay); alley.isseen := nil; if (Me.location = alley) { "
You stand your ground. No matter what the cost you're not backing down. Nope, no matter what, no one is going to call this pooch a coward. No Sireee.
You watch in horror as the crazed cook whacks you again and again and again with his meat cleaver. Blood is splattering everywhere. This is the type of scene that would get cut when broadcast over network television.
Soon, everything starts to go blank. Could this be the end? Will Rover survive? Press a key to find the gripping answers..."; morePrompt; Me.moveInto(infirmary); incturn(8); infirmary.lookAround(true); alley.isseen := nil; } } east = exit_alley() out = exit_alley() ; weapon: item noun = 'Aegis' 'weapon' 'system' 'box' adjective = 'secret' 'my' 'ship-to-air' 'anti' 'missle' 'defence' 'glass' location = Me sdesc = "secret weapon" ldesc = { if (time_group1()) { "Your trusty Aegis ship-to-air anti missile defense system, "; if (deployed <> 1) "It has never been deployed."; else "It has already been used, and needs maintenance."; } else { if (deployed <> 2) "a small glass box, with a hammer attached to it via chain. There is block writing printed on the box, reading IN CASE OF EMERGENCY, USE HAMMER TO BREAK GLASS.
\n"; else "an empty biscut wrapper"; } } deployed = 0 verDoUse (actor)= { if (actor.location <> alley) if (time_group1()) "You shouldn't use that here. Think of the havoc it would cause!
\n "; else "You don't think this is the emergency that your secret weapon was meant for.
\n "; } doUse (actor) = { if(time_group1()) "Good thing you brought your trusty Aegis ship-to-air anti missile defense system along. You flip on the multimillion dollar device (always a good idea) and lock the radar guided high caliber rapid fire Gatling guns directly on the unsuspecting chef. Within milliseconds, the computer has locked on target, and awaits only the final instructions for firing.
To be safe, you also deploy a squadron of F-16 fighters, two of which are carrying classified but very lethal nuclear payloads, while the others carry more innocuous cluster bombs.
Unfortunately, the F-16's still produce more of a radar signature than a meat cleaver, and your air defense systems automated friend or foe recognition system is out of calibration. The aircraft are shot down one by one, causing widespread damage, but that does not deter the chef. He keeps on coming.
"; else /* group 2 */ "You pull out a small glass box, with a hammer attached to it via chain. There is block writing printed on the box, reading IN CASE OF EMERGENCY, USE HAMMER TO BREAK GLASS. This seems like as good a time as any.
Smash. Tinkle. Tinkle. You a brush away the fragments of glass to reveal a package of doggy biscuits. This is fantastic! You gobble down the biscuits one at a time, savoring their flavor and aroma for a few short seconds. Food is so good - and these were the crunchy type too. You can hardly sit still, you like doggy biscuits so much. Yum, yum!
\n It's been quite a while since you've had biscuits as good as these. Yes, last time was when master gave... the thought of master brings a flood of sadness. You have let him down. Oh, where, where is the stick? You glance up, and through teary eyes, see that a man in a white hat is still coming at you with a meat cleaver. \n\n"; self.deployed := time_group1()?1:2; incscore(10); actor.location.lookAround(true); } ; exit_alley: function { unnotify(alley,&warning); unnotify(alley,&stay); if (time_night()) { "
As you run for your life, the crazed cook takes swipe after swipe at you. You manage to make it to the subway, but not entirely unscathed. It looks as though the encounter cost you a wee bit of you tail, more of a wound to your pride than anything else.
"; return green_line; } else return chinatown; } graffitti: fixeditem location = alley noun = 'graffitti' sdesc = "graffitti" ldesc = " The paint is smeared and dirty, but you think that you can make out a few words. You see some initials like T.C. + N.L. circled with a crude heart. There are also some specialized signatures, of which only a letter or two at best are intelligible." ; china_shops: room sdesc = "Shops" ldesc = " There are a few commercial establishments here.
\n Looks like there's
You notice a garbage dumpster tucked away in an inconspicuous, but nearby, location to the southwest.
\n The road leads north" south = {shop_open(restraunt);} west = { if (global.linear and global.game_level < 3) { "Unfortunately the door is locked. You notice a banner in the window, saying \"Grand Opening Real Soon\". The merchandise looks quite interesting. Hopefully it won't be too long before they open for business.
\n You return to the street."; return nil; } else return shop_open(kung_fu); } east = { shop_open(general_store);} sw = dumpster north = chinatown ; restraunt: room sdesc = "Restraunt" ldesc = "This fine establishment serves good food, hence the name, \"Good Food\"
\n A menu is lying about.
You may leave." out = china_shops north = china_shops ; menu: readable noun = 'menu' location = restraunt sdesc = "Restraunt menu" ldesc = " Menu for success\n
A few helpful tips and pointers are listed.
\n
You may leave"
out = china_shops
west = china_shops
;
class ninja_body: fixeditem
noun = 'ninja' 'man'
adjective = 'unconscious'
count = 'zeroth'
sdesc = "< ";
switch (sequence)
{
local ninja;
case 0: "Fortunately, the lid is bent open and you will
have no trouble getting out.
You may go up";
break;
case 1:"
Before you can move a paw, there is a horrific
crash, and then a thunk.
One of the ninjas from your prior engagement
lands right on top of you.
";
ninja := new ninja_body;
addword(ninja, &adjective, 'first');
ninja.count := 'first';
ninja_body.phrase := 'The Ninja looks back at
you. With grim and heroic determination, he fights off the
enveloping darkness and inches even closer. His last few
breaths are spent repeating the words "For
what end?" into your ear.';
sequence ++;
break;
case 2:" You don't even get a chance to
budge. There is a horrific crash, and then a squish. A second the
ninjas flies into the dumpster. ";
ninja := new ninja_body;
addword(ninja, &adjective, 'second');
ninja.count := 'second';
ninja.phrase := 'You lick the Ninja
until he wakes up. The sorry looking fellow is only able to
speak one phrase, "They ATE it!" before
dropping back into unconsciousness.';
sequence ++;
break;
case 3:"Not again! There is a horrific crash, and then
a thunk. Yet another another ninja has been tossed into the
dumpster. It is getting quite crowded in here.
";
ninja := new ninja_body;
addword(ninja, &adjective, 'third');
ninja.count := 'third';
ninja.phrase := 'The Ninja, relatively
unhurt, shouts out, "TOO bad!" as he jumps
up. Unfortunately that is not the wisest thing to do in a dumpster.';
sequence ++;
break;
case 4: "Surprise! In comes another beat up
ninja. It's really amazing how many people can fit inside one
dumpster. ";
ninja := new ninja_body;
addword(ninja, &adjective, 'fourth');
ninja.count := 'fourth';
ninja.phrase := ' The Ninja seems to be
insane. He just sits there and giggles, "We WON,
We WON" over and over again. ';
sequence ++;
break;
}
if (sequence > 0 and sequence < 5)
{
" \n
Got some cool choices here
\n It takes a few seconds to get oriented\n\n";
max := length(contents);
for (i := 1; i <= max; i++)
{
if (isclass (contents[i],ninja_body))
{
local obj;
obj := contents[i];
delete obj;
max --;
i --;
}
}
self.sequence := 6;
return china_shops;
}
if (sequence > 0 and sequence < 6 )
{
self.lookAround(true);
return nil;
}
else
return china_shops;
}
up = self.ninja_rain
out = self.ninja_rain
northeast = "Try getting out of the dumpster first"
;
kung_fu: room
sdesc = "Martial Arts Shop"
ldesc =
"
The newly opened store sports quite a variety of merchandise - deadly
weapons and tourist toys glint alike in the reflected sunlight.
Everything is for sale, prices negotiable. No one is at the counter.
It is very quiet in here, almost too quiet.\n
\nFeel free to pick up some merchandise, if you desire.
\n You may exit the store."
out = china_shops
east = china_shops
;
class merchandise: item
location = kung_fu
ldesc = gymnastics()
doTake(actor) = gymnastics()
;
thowing_stars: merchandise
noun = 'stars' 'star'
adjective = 'throwing' 'ninja'
sdesc = "Ninja Stars"
;
brass_rat: merchandise
noun = 'rat'
adjective = 'brass'
sdesc = "Brass Rat"
;
incense: merchandise
noun = 'insense'
sdesc = "Insense"
;
cinder_blocks: merchandise
noun = 'blocks' 'block'
adjective = 'cinder'
sdesc = "Cinder blocks"
;
tombstones: merchandise
noun = 'tombstones' 'tombstone' 'headstones' 'headstone' 'stone'
adjective = 'head' 'tomb'
sdesc = "Tombstones"
;
soy_sauce: merchandise
noun = 'sauce'
adjective = 'soy'
sdesc = "soy sauce"
;
gymnastics: function
{
if (medallion.location <> Me)
{
"With a blink of an eye, a several blurry shapes wearing white uniforms
and black belts come flying out of a secret entrance. You hardly have
any time to appreciate the olympic caliber gymnastic tumbling that is
presented to you before the world turns upside down. The open door
seems to be spinning around, and growing larger and larger - it's
going right at you. You close your eyes in fear, and everything goes
black! Thunk. Crash. Clunk. Squish. You hurtle through something.
\n
When everything grinds to a halt (plus a few seconds), you get up the
courage to open your eyes again. \n\n";
morePrompt;
if ((global.linear and global.game_level = 3)
or (not global.linear and dumpster.sequence = -1)
)
{
dumpster.sequence := 0;
setlevel(4);
incscore(100);
" \n\n \n
So you thought that the medallion would protect you, huh? If this
was the movies, all those ninjas would stop at the last possible
second. Then some old dude would come out and there would be
all this mystical stuff.
\n
Well it's not going to happen! The painfully familiar routine
occurs yet again. You almost have it down by heart. First,
the world turns upside down. Then the door spins around, and
grows larger and larger - and you fly through it, yet another
perfect three pointer right into the
dumpster. Thunk. Crash. Clunk. Squish.
\n
When everything grinds to a halt (plus a few seconds), you
get up the courage to open your eyes again. \n\n";
if ((global.linear and global.game_level = 5)
or (not global.linear and dumpster.sequence <= 0)
)
{
incscore(100);
setlevel(6);
dumpster.sequence := 1;
" \n\n\n
\t
";
}
}
ninja_rain =
{
if (sequence = 5)
{
local i, max;
"You decide to leap out of the self with
all your might. As you leave, yet another Ninja is flying in. The
resulting explosion (the dumpster had reached critical mass)
throws you clear.