!% -SD Constant Story "The Daylighters"; Constant Headline "^^Where have they gone?^Looking around, you see little that is familiar to you. What happened just hours before is a blur of blood, hair, and raw, blinding light. All you know now is the pain from the the wounds on your head and a deep but familiar hunger. You must eat soon.^"; Constant MAX_CARRIED 4; Constant MAX_SCORE 100; !Constant SUNRISE 360; ! i.e., 6 am !Constant SUNSET 1140; ! i.e., 7 pm Serial "000001"; Release 1; Include "Parser"; Include "VerbLib"; !========================================================================== ! GAME OBJECTS Object sensitivity "sensitivity" with description "one", has concealed transparent; Object roof_ne "A rooftop" with description "^Six floors above the concrete below, you can see tall mountains of glass silhuetted against the dark haze miles away, the maze of domes popping up around it like mushrooms. You call this direction North. So, this would be the Northeast corner of the rooftop. A puddle of blood, which you assume to be your own, sits at your feet.^", s_to roof_se, w_to roof_nw, n_to "The lights look enticing, but simply walkig off the roof would surely kill you. You might try jumping. It would also kill you but would make a more attractive splat.", e_to [; print "Walking off a building. Now, that was downright stupid.^^^Splat.^"; deadflag=1; return true; ], before[; Jump: print "Whee! That was fun."; deadflag=1; return true; ], each_turn[;checkLight();], has light; Object roofdomes "domes in distance" roof_ne with description "^The domes in the distance are the homes of the Others, the mutants who travel by day and hide by night. Their fear of you and your kind has forced them into enclaves in the remains of what they say was once a great city. Even from this distance you can see the progress they've made, the advancements in technology. ^^Others in your pod call this time 'Third stage' whatever that means. No one seems to recall the first two.", name 'city' 'domes' 'mountain', has scenery; Object roofblood "pool of blood" roof_ne with description "^The blood is redish black and there appears to be more than a pint of it lying on the ground. I'm guessing that you shouldn't lose much more of this stuff.", name "pool" "puddle" "blood", has scenery; Object roof_se "More rooftop" with description "^On the south edge of the roof you see what used to be a fire escape of sorts. The iron bracket that remains is still securely bolted in place.^", n_to roof_ne, w_to roof_sw, d_to roof_ledge, s_to "Suicide is a permanent solution to a temporary problem.", e_to "I've got an idea! Why don't you take a long walk off a short roof!", before[; go: if (noun==d_obj){ if (antenna_down in roof_se){ print "^Careful not to look down, you slowly descend the pole."; return false; } else { print "If your goal is getting to the ground, I suggest jumping. Then again, jumping from this height would surely kill you. Don't listen to me."; return true; } } Jump: print "Whee! That was fun."; deadflag=1; return true; climb: if (antenna_down in roof_se){ MovePlayer(d_obj); return true; } else { print "There does not appear to be anything to climb up or down."; return true; } ], has light; Object roof_nw "Even more rooftop" with description "^In front of you now is the small, hut-shaped outbuilding that encloses the stairs. However, the people who attacked you apparently locked it from the inside and from the look of the foam on the hinges, they destroyed the door in the process. You will have to find another, less obvious, way down. On the wall facing you is a strange drawing.^", e_to roof_ne, s_to roof_sw, w_to "There are about a hundred feet between you and the ground. Going West is unadvisable.", n_to "Stop goofing around and find a way down, Mr. Sillypants.", before[; Jump: print "Whee! That was fun."; deadflag=1; return true; ], has light; Object cup "32 ounce MegaBlast cup" roof_nw with description "Although the colorful printing on the side of the cup is quite faded, it still appears to be a useful thing to have around if you have enough hands to carry it.", name 'cup' 'megablast', has container; Object outbuilding "outbuilding" roof_nw with description "^In the crude drawing on the side of the outbuilding you see a stick figure atop a low curve, lines surrounding its head. another, much larger figure is bent over the first one, its mouth open and ready to bite. ^^Daylighters. Just a few years ago, it seemed your people would soon wipe out these mutants from Centercity, but they rebounded and littered the landscape with their young. Now the Daylighter raids into human territory have become bolder, sometimes even venturing out of their fortified domes in the middle of the night. ^^You may have drawn this yourself long ago, though you cannot be sure.^", name 'outbuilding' 'stairs' 'hut' 'drawing', has scenery; object plank "short wooden plank" roof_se with description "^It's a sturdy wooden plank about 2 feet long.", name 'plank' has ; Object tv_antenna "antenna" roof_nw with description "^This long metal pole juts out of the roofline here, connected by a flimsy wooden anchor. Other, smaller metal bits spring out of the top of it like a tree. It's broken at the top, which is a shame because it looks as though it could have been useful.", name 'antenna' 'tree' 'pole', before[; take: if (plank in player) { print "^With the plank you manage to pry the antenna loose from its footing. Congratulations. It's yours.^"; remove tv_antenna; move antenna to player; move footing to roof_nw; return true; } else { print "^You need a tool of some sort for leverage. Even then, you may be too weak to do it.^"; return true; } ], has ; object antenna "antenna" with description "^The top of this long pole assembly appears to be broken. Still, it might be useful.", name 'antenna' 'pole', before[; insert: if (second==bracket) { print "^You jam the short end of the assembly into the bracket roughly. It's now in there for good."; remove antenna; move antenna_down to roof_se; score=score+1; return true; } else { print second & "That won't work at all."; return true; } ], has; object antenna_down "antenna leading down the wall" with description "^With the top of the antenna stuck in the bracket and the long pole hanging down the wall, it is now possible to climb down the wall. Unfortunately, it only reaches half way.", name 'antenna' 'pole', before [; take: print "The pole is now unmovable."; return true; ], has; object bracket "bracket" roof_se with description "^The rusted chunk of metal is securely fastened to the building.", name 'bracket', has scenery container open; object footing "footing" with description "^A curious block of wood where an antenna once stood. I wonder where it's gone?", name 'footing', has scenery; Object roof_sw "Yet more rooftop" with description "^From the Southwest corner of the rooftop you can see the neighborhood surrounding you: the bombed-out buildings, the broken sidewalks and streets, the high wall of foam which surrounds the entire area. In the far corner, you can see what appears to be a bird coop. This guess is based on the screened-in enclosure and the copious amount of droppings.^", n_to roof_ne, e_to roof_se, sw_to coop, s_to "That would be rather dim, don't you think?", w_to "I like you too much to allow you to just walk off a building like that. You can thank me later.", before[; Jump: print "Whee! That was fun."; deadflag=1; return true; ], has light; Object coop "Coop" with description "^The screened walls of the coop provide little protection from either the wind or light. Perhaps this is why there are no longer any birds here. The floor is covered in white, stinking rivulets of bird feces. The exit is to the Northeast.^", name 'coop' 'cage', ne_to roof_sw, has light; Object thread "spool of thread" coop with description "^This spool of black thread looks to be strong enough to secure even the trickiest button.", name 'spool' 'thread' 'spool of thread', has ; Object map1 "map" coop with description "^This strangely-folded sheet of paper contains all sorts of shapes and characters that mean nothing to you. Maybe someone who can read Mutant writing can figure it out.", name 'map', before[; Read: print "^The map makes no sense to you."; return true; ], has ; Object roof_ledge "Stone ledge" with description "^You now stand precariously on a thin stone outcropping running the length of the building. You can climb back up the pole to the roof if you like. You can also follow this ledge to the Wast or West.^", u_to roof_se, has light; Object street_corner "Streetcorner" with description "A row of storefronts line the street. All the doors are barred or locked, but the broken window to the South provides an entry to what appears to be passable shelter. ^Advice: You should not stay out in the open for extended periods.", s_to grocery, has light; Object grocery "Bad smelling place with many broken things" with description "Clearly, the Others have been here and destroyed the place. Rows and rows of what must have been nearly-arranged shelves are now toppled on the broken checker-board tile floor. You can see a small room hidden just behind the counter to the West. The smell is enough to turn your gurgling stomach. A row of broken shelves blocks a passage to the North.", w_to grocery_office, n_to "I already said that there are all these broken shelves blocking your way. Why must I repeat myself?", has light; Object cereal_box "box of something odd" grocery with description "The box features a photo of tiny circles swimming in some sort of white liquid, possibly Daylighter blood or something just as horrid. The box appears to be fresh and unopened, but the smell is enough to make you want to put it down.", name 'box', has container openable; Object cereal "tiny circles" cereal_box with description "The mishapen ringlets sit in your hand, helpless.", name 'cereal' 'circles' 'o^s', before [; Eat: print "The cereal is crunchy in your mouth, but the sweetness of it makes you spit it out immediately. Before long, you can feel the bile rise in your stomach. Before you can stop yourself, you vomit all over the floor. In the center of the puddle of stomach juices is what appears to be a prize."; move ring to grocery; return true; ], has ; Object ring "ring" with description "The small bit of red plastic is covered with tiny characters of an undetermined origin. On the back is a small loop about the circumference of a child's finger.", name 'prize' 'ring', has clothing; Object grocery_office "Small room with many papers" with description "Papers litter the floor of this tiny antiroom. A set of stairs lead down into the darkness.", d_to basement_main, e_to grocery has light; Object basement_main "Basement" with description "A disused sink sits in the corner, dripping and rusted through. Stairs lead up to the main floor. Equally squalid rooms appear to the East and South.", u_to grocery_office, s_to basement_bathroom, e_to basement_alcove, has light; Object basement_bathroom "White Chair Room" with description "This is a room with a single white chair in it. Some reading material lies scattered on the floor. You hear a dripping sound through the open door to the North.", n_to basement_main, has light; Object basement_alcove "Basement Alcove" with description "This building sustained serious structural damage recently. The bare concrete floor is cracked in several places, opening to reveal something like a crawlspace below. The sound of dripping water is coming from the West", d_to nest, w_to basement_main, has light; Object nest "The nest" with description "This room is oddly familiar to you, though you are unsure why. In the semi-darkness, your eyes adjust quickly.^Faces stare up at you from the floor, still wearing the agonized expressions of the damned. You should know these faces, but you cannot seem to place them. Your head begins to hurt again. The smell of flesh, rotting and decaying, radiates from every surface. What a waste.", u_to basement_alcove, has light; !========================================================================== [ Initialise; location = roof_ne; lookmode=2; move sensitivity to player; setTime(300,10); ]; !========================================================================== Include "Grammar"; [ checkLight; if (the_time>Sunrise) && (the_time