!============START OF SOURCE==================================================

constant story "TRAPPED! ON THE BUS^";

constant headline "An Urban Interactive Fiction ^by Jim Munroe^";

constant debug;

global newtimeleft=5;

constant max_score=100;

include "parser";

include "verblib";

include "grammar";

Object atyourstop "At Your Stop"

has light,

with name "at" "your" "stop" "busgoers",

description "There's far too many busgoers here, probably twice as many as the vehicle comfortably fits. An ad, which is directly in your line of sight, has been taunting you with the picture of a car with the word ~freedom~ superimposed on it. The back door, mere feet away, stands tantalizingly open -- but not for long.",

before [;

go:"You don't have a compass -- you only know where the exit is.";

exit:

if (yuppie in bus)

"The yuppie is in the way, and no amount of nudging or punching is going to get his dejected ass to move.";

else

score=100;print "^^^^^^^^Aaaah! Sweet, sweet (if humid) air fills your lungs. You have escaped a fate worse than death. You have the cunning and bravery to be a real public transit user!^"; deadflag=2;],

after

[;newtimeleft=newtimeleft-1; if (newtimeleft==0 && deadflag~=2)

{print "^^^^^^^^You watch in horror as the doors hiss closed. You expire of shock. Too bad you couldn't figure out how to exit the bus..."; deadflag=1;};];

Object -> bus "Bus"

has light openable static,

with name "bus",

description "There's all sorts of people on the bus.";

Object yuppie "A Young Urban Professional" bus

has animate

with name "A" "Young" "Urban" "Professional" "yuppie",

description "This guy is obviously not a regular bus rider. Not only is he completely blocking your way, but he's staring out the window at the cars as they go by -- obviously wishing he had one, if he only knew where to go.",

initial

"Between you and the door is a Young Urban Professional, looking forlorn and out of place.",

life

[;Show,Give:

if (noun == flyer)

{remove self; "The yuppie's eyes light up and he scrambles for the exit. You see him running off into the distance.";

}

"The yuppie ignores you, staring at the cars.";];

[initialise;

location=bus;

print "^^^^It feels like you've been riding for hours on the hottest bus this side of hell. Your legs are cramping from the weird way you're standing, your nose is at armpit level for several of those clutching the bars, but it's finally your stop. A gust of fresh air makes you nearly dizzy with joy...^^";];

object flyer "Money flyer"

has concealed

with name "money" "flyer",

description "It's a flyer for the car dealership that is made to look like a hundred dollar bill -- but it's quick to point out that it's not a coupon, just an indication of ~How Much Ca$h You'll $ave!!!~",

;

object ad "car ad" bus

has scenery

with name "car" "ad" "advertisement",

before [;

Examine: if (self hasnt general) {

give self general;

move flyer to bus;

"A sleek roadster entices people to spend more money on their car than their children's education. Apparently there's been some interest, because there's only one flyer left from the stack that used to be there.";

}

];

!=============END OF SOURCE=================================================