!**************************************************************************** !****(ROOM DESCRIPTIONS)***************************************************** !**************************************************************************** class desert_room { inherits room n_to { if (creature in location) and (not creature.misc #4) PrintMessage(4,4) else PrintMessage(3,4) !Don't wander too far } s_to { if (creature in location) and (not creature.misc #4) PrintMessage(4,4) else PrintMessage(3,4) !Don't wander too far } e_to { if (creature in location) and (not creature.misc #4) PrintMessage(4,4) else PrintMessage(3,4) !Don't wander too far } w_to { if (creature in location) and (not creature.misc #4) PrintMessage(4,4) else PrintMessage(3,4) !Don't wander too far } ne_to { if (creature in location) and (not creature.misc #4) PrintMessage(4,4) else PrintMessage(3,3) !Stick to straight directions } se_to { if (creature in location) and (not creature.misc #4) PrintMessage(4,4) else PrintMessage(3,3) !Stick to straight directions } sw_to { if (creature in location) and (not creature.misc #4) PrintMessage(4,4) else PrintMessage(3,3) !Stick to straight directions } nw_to { if (creature in location) and (not creature.misc #4) PrintMessage(4,4) else PrintMessage(3,3) !Stick to straight directions } } !---------------------------------------------------------------------------- !We inherit this to override "north" in the rooms north of the crash site, !because we're pretty much doing the same checking the whole way through. ! class chase_chain { inherits desert_room is not light n_to { if (creature in location) and (not creature.misc #4) { PrintMessage(4,4) } else { if FindLight(player) { ! !The creature chases us the entire way, so we can refer to !it in all our movement text. Make it more... exciting! :) !And the only way we can move is if the creature is stunned, !so we can say that too. This should work pretty well. !But first, make sure the player didn't just come from that !way, because if we did, then the monster has to be that way. if (running_north) { !Yes, we can go north, because we came from the south. if (location = chase_room6) { PrintMessage(4,7) !We bound into the crash area. Creature_Starts_Again(nothing) !It lurks out there. creature.misc #2 = 3 !Override the 3-turn wait. fake_creature.found_in = SiriusDream !Interaction. } else { PrintMessage(4,6,n_obj) !Give a message as we run. } select location case chase_room1 { return chase_room2 } case chase_room2 { return chase_room3 } case chase_room3 { return chase_room4 } case chase_room4 { return chase_room5 } case chase_room5 { return chase_room6 } case chase_room6 { return SiriusDream } } else { !Nope, that would be back toward the creature! PrintMessage(4,9,n_obj) !So we're not allowed to do it. } } else { PrintMessage(4,8) !Can't run in the dark. } } } s_to { if (creature in location) and (not creature.misc #4) { PrintMessage(4,4) } else { if FindLight(player) { ! !The creature chases us the entire way, so we can refer to !it in all our movement text. Make it more... exciting! :) !And the only way we can move is if the creature is stunned, !so we can say that too. This should work pretty well. !But first, make sure the player didn't just come from that !way, because if we did, then the monster has to be that way. ! if (not running_north) { !Yes, we can go south, because we came from the north. if (location = chase_room1) { !It shouldn't be possible to get that far and still have !a light source, but do something here, just in case. !CHANGE THIS LATER - FIX THIS LATER - OR EVEN NEEDED? Creature_Starts_Again(nothing) !It lurks out there. } else { PrintMessage(4,6,s_obj) !Give a message as we run. } select location case chase_room6 { return chase_room5 } case chase_room5 { return chase_room4 } case chase_room4 { return chase_room3 } case chase_room3 { return chase_room2 } case chase_room2 { return chase_room1 } case chase_room1 { return NorthRoom } } else { !Nope, that would be back toward the creature! PrintMessage(4,9,s_obj) !So we're not allowed to do it. } } else { PrintMessage(4,8) !Can't run in the dark. } } } } !---------------------------------------------------------------------------- desert_room CrashSite "Crash Site" { n_to { if (creature in location) and (not creature.misc #4) { PrintMessage(4,4) } else { !* Changing this condition, to not require the player to turn !* on the terminal before being allowed to go north. The problem !* is that players conditioned from repeated playing to know it !* can't work yet might not even try turning it on! So, just !* check to see if we have it, instead. !* --- !* if (vellum.misc #1) and (terminal.misc #1 > 0) { if (vellum.misc #1) and \ ((terminal in player) or (terminal.misc #1 > 0)) { !We're going to cheat... if the monster hasn't gotten to !Covegn yet, then here it goes. There is a phantom that !predicted it, so this assures that it does happen. But if !the creature is already there, then the act of moving to !a new room will already be handled in creature_rampage. if (covegn.found_in = CrashSite) and (creature not in CrashSite) { Creature_Starts_Again(nothing) !Nobody is removed. SetCreatureToAppear(1) !So we drop to zero the next time. } "You head north into the dark desert, toward the glowing point far on the horizon. You glance back toward the pod wreckage several times, wondering with apprehension just how long it will take to reach the\I Sirius Dream \iand how soon you might be able to get back here to the beacon. Large jagged marks at random intervals show where the pod was spun and twisted, banged and beaten by the planet." "\nYou stop for a moment at a point that is distanced from the pod wreckage, but still a very long ways from the glow at the northern horizon." return NorthRoom } else { "It would be a very long walk to the\I Sirius Dream \iwreckage. You have no good reason to make the trip right now." } } } s_to { if (creature in location) and (not creature.misc #4) { PrintMessage(4,4) } else { "You walk south, away from the crash site. Each step carries the area of dim light farther away, as measured by frequent glances backward. Wind whips through your hair, cold and biting, chilling you through your thin undersuit. "; if (shard is not moved) { "After a time, you come to the rock nearest the crash site." } else { print "" !end the line. } return RockSite } } e_to { if (creature in location) { if (creature.misc #4) { PrintMessage(4,5) } else { PrintMessage(4,4) } } else { !We won't be able to get back here after the creature chases us !north, so there presently is no need to check to see if maybe !it's still back north toward the main wreckage. Because if we !are still here, then by definition, it's not. "Something is out there, to the east. The urge to go meet it loses to your dire need for self-preservation." } } w_to { if (creature in location) and (not creature.misc #4) { PrintMessage(4,4) } else { if (vellum in nothing) { "You have no need to venture west at this time." } else { westroom.misc #1 = true !We've gone there now. "You head west across downward slopes and over "; if (vellum is moved) { "inclines." } else { "inclines, hoping to come upon the drifting vellum. "; if FindLight(player) { !Player is carrying light. "After a time, you find it at rest against rough ground." } else { "The search is hindered by the lack of light. Even the glow from the crash site is nearly lost beyond the swells of desert land.\n" } } Deactivate(vellum_reminder) !Just in case return WestRoom } } } u_to { perform(&DoClimb, pod_wreckage) } long_desc { roomdesc_seen = true "Pod Four is a twisted slag of black and gray at the end of a long, shallow trench marking its forced landing. Emergency netting is strewn about the area, having served its purpose in the rough and sudden impact. Darkness threatens to invade the crash site, kept back only by the dim light of the only surviving beacon post. To the distant north, you can just see the faint glow of the larger wreckage, where the\I Sirius Dream \imust still be blazing. Desert land stretches away in all directions, interrupted by curving rocks and leaning spires." indent if (covegn.found_in = location) { "Covegn lies dead nearby, her legs crushed under the weight of the pod's door. "; if (huchess.found_in = location) { "The Lieutenant isn't far from her, lying "; } } else { if (huchess.found_in = location) { "The Lieutenant is sprawled near the wreckage, lying "; } } if (huchess.found_in = location ) { if (huchess is alive) { "still "; } else { "dead "; } if (spike is moved) { if (huchess.misc #1) { if (huchess is alive) { "with a makeshift bandage around his shoulder. "; } else { "with a makeshift bandage that came too late to save him. "; } } else { "with a wound through one shoulder. "; } } else { "with a large, angular rod impaling his shoulder. "; } if (huchess is alive) { "His breathing seems slow and forced, but stable. "; } if (covegn.found_in = location) { "Both are bandaged in the remains of your uniform." } else { !Don't need to say anything extra when just Huchess is here. print "" !End the line, though. } } else { "Only stained ground remain where the bodies of "; print The(huchess); " and "; The(covegn); " used to be." } } each_turn { if (huchess is not alive) and (not huchess.misc #2) { !Huchess died, but the player wasn't here to see it. huchess.misc #2 = true !Flag that we've seen it. if (huchess.found_in = location) { !In case we went elsewhere and just Z'd the whole time, the !creature will have taken Huchess. So no need to say this. print "\nLieutenant Huchess is now still and silent." } else { print "\nLieutenant Huchess is gone now, taken by the creature." } } if (covegn.found_in ~= location) and (not covegn.misc #1) { covegn.misc #1 = true !And now we know that she was taken. print "\nThe body of Ensign Covegn is gone now, taken by the creature." } if (counter > 15) { !After 15 turns, we have a chance to find the vellum. There are !actually two ways for this to happen. If the player never found !it, we make it blow away automatically. But because they're !probably going to search the netting the second time around to !find it (the cheaters, heh), we can let them find it but still !have the wind catch it and blow it away (that's done elsewhere). if (vellum in nothing) { print "\nThe wind carries away a sheet of vellum that had gone previously unnoticed among the scraps of netting. It drifts away from the crash site, to the west and into the darkness. "; !Adding this sentence mainly because players were thinking !the vellum was part of the netting. Make it more known. PrintMessage(9,11) !The type used for command orders. move vellum to WestRoom : vellum is known Activate(vellum_reminder, 9) !In case the player forgets. } } } } !---------------------------------------------------------------------------- desert_room RockSite "South of the Crash Site" { n_to { if (creature in location) and (not creature.misc #4) { PrintMessage(4,4) } else { "You hurry back to the crash site, walking briskly north across the bleak, dark landscape. The cold wind chills you." return CrashSite } } u_to { perform(&DoClimb, arch_rock) } long_desc { roomdesc_seen = true "The rock nearest the crash site is an angular arch that stands a little taller than you. It casts the faintest of glows -- a light blue aura that extends only slightly around it. The desert stretches away in every direction. To the north, the crash site itself is visible as a dim light shining on a capsule-shaped wreck." } } !---------------------------------------------------------------------------- desert_room WestRoom "West of the Crash Site" { !MISC #1 = we have visited the room at least once. Note that we could !ordinarily use "is visited" but that's not set when the room is dark, !and it's important to know we've been here for correct clue-giving. misc false e_to { if (creature in location) and (not creature.misc #4) { PrintMessage(4,4) } else { "You hurry east toward the light of the emergency beacon, over the rising and falling desert land. "; !Special condition -- if we have the vellum now, and we haven't !yet seen the Huchess/vellum phantom, we should show it now! if Contains(player,vellum) and (not player.misc #1) { PrintMessage(5,90) !This is an important one! player.misc #1 = true !Flag that we've seen it now. } else { "In a few minutes, you arrive at the pod wreckage." } return CrashSite } } is not light long_desc { roomdesc_seen = true "Desert ground crunches beneath your feet. It extends to every dark horizon -- a black tapestry under a ceiling of dim stars. To the distant east, almost hidden behind swells of desert land, the crash site appears as a dim sphere of light." } } !---------------------------------------------------------------------------- desert_room NorthRoom "North of the Crash Site" { misc 1 !Identifies this as the FIRST room to the north. is not light n_to { if (creature in location) and (not creature.misc #4) { PrintMessage(4,4) } else { if FindLight(player) { !We can only go north from here once. There is no going back, !so it's safe to deactivate other daemons and turn on the !creature_chase daemon. Deactivate(creature_nearing) : Deactivate(creature_rampage) Activate(creature_chase, 5) !So we drop to 4 on the next round. if (creature in location) { "You run from the creature, "; } else { "You continue on, "; } "further distancing yourself from the wreckage of Pod Four." return chase_room1 } else { "It would be unsafe to venture farther in the darkness." } } } s_to { if (creature in location) and (not creature.misc #4) { PrintMessage(4,4) } else { return CrashSite } } long_desc { roomdesc_seen = true "This is where the shallow trench begins, and it leads south to the crash site. Pod Four dropped fast, but it came in at a slant that plowed into the hard ground and left a long rut before being brought to rest by friction and gravity. Far to the north is a faint glow, about where the\I Sirius Dream \imight have crashed." } each_turn { if (not beacon_post.misc #1) and (distress_signal is not switchedon) { beacon_post.misc #1 = true !Now we've seen the reminder. "\nAs you consider the long hike ahead, something akin to traveler's trepidation concerns you. It's like the time you didn't save that Johnny Goldwaite card, which was later worth a fortune. No, it's more like last Halloween, when you sat in your cabin aboard the\I Mother Medina \iwith a bowl full of candy, waiting for all the give-me-treaters who knew not to buzz any room where the door-light was off." "\nIn a moment, the feeling fades. Maybe it's nothing." } } } !---------------------------------------------------------------------------- chase_chain chase_room1 "Open Desert" { inherits chase_chain !for "N_TO" handling here. misc 2 !Identifies this as the SECOND room to the north. long_desc { "The wreckage of the\I Sirius Dream \idraws closer, but the way north is still long. The desert fades to black in all direction." } } !---------------------------------------------------------------------------- chase_chain chase_room2 "Open Desert" { inherits chase_chain !for "N_TO" handling here. misc 3 !Identifies this as the THIRD room to the north. long_desc { "The northern glow is closer now, but by a quick estimation you aren't quite half-way there." } } !---------------------------------------------------------------------------- chase_chain chase_room3 "Open Desert" { inherits chase_chain !for "N_TO" handling here. misc 4 !Identifies this as the FOURTH room to the north. long_desc { "From this distance, you are able to identify the glowing bulk to the north as the wreckage of the\I Sirius Dream \i-- just as you had expected. As much distance is behind you now as remains ahead, but it's still going to take some time before you arrive at the wreckage." } } !---------------------------------------------------------------------------- chase_chain chase_room4 "Open Desert" { inherits chase_chain !for "N_TO" handling here. misc 5 !Identifies this as the FIFTH room to the north. long_desc { "The massive wreckage is closer, glowing bright against the black sky to the north. Details are unclear from this distance, but if you can outrun the creature that pursues you, you might make it there." } } !---------------------------------------------------------------------------- chase_chain chase_room5 "Open Desert" { inherits chase_chain !for "N_TO" handling here. misc 6 !Identifies this as the SIXTH room to the north. long_desc { "The\I Sirius Dream \idraws ever closer. The twisted hulk of it is just visible through partial flames. It's clear that its fuel reserves are burning, and exposed areas are venting flame." } } !---------------------------------------------------------------------------- chase_chain chase_room6 "Open Desert" { inherits chase_chain !for "N_TO" handling here. misc 7 !Identifies this as the SEVENTH room to the north. long_desc { "Flames engulf parts of the bent and crumpled starship. You aren't far from the reach of its fiery glow now. You can still get closer, but it's clear that you'll have to keep a safe distance." } } !---------------------------------------------------------------------------- desert_room SiriusDream "Sirius Dream Wreckage" { misc 8 !Identifies this as the EIGHTH room to the north. s_to { if (creature in location) { if (creature.misc #4) { if FindLight(player) { !They'll never make it back, though. Not enough light. !so it's safe to deactivate other daemons and turn on the !creature_chase daemon once again. Deactivate(creature_nearing) : Deactivate(creature_rampage) Activate(creature_chase, 5) !So we drop to 4 next round. fake_creature.found_in = nothing !Interaction. return chase_room6 !The player can *try* going south. } else { PrintMessage(4,8) !Unsafe to go through the dark. } } else { PrintMessage(4,4) !Can't go (sudden movements) } } else { if (player.misc #2 < 12) and (creature is alive) { "The creature still lurks at the edges of the fire's light, to the south. To go that way would be to walk right into its grasp." } else { if (player.misc #3) { "Even bandaged, your injuries remain a hindrance. "; } else { "You are bleeding from the wounds left by the creature's sharp claws. "; } "You don't have the energy or inclination now to hike back through the darkness to the lesser crash site. Of course, you can still monitor the other site through live video, using "; : print The(terminal); "." } } } long_desc { "Seventy-five meters of crumpled wreckage burn nearby. The\I Sirius Dream \ilooks like silver and black clay, caught in the grip of a massive, many-fingered hand, squeezed and flattened and torn to shreds. What the gravitic anomaly didn't crush seems to have been damaged in an obviously violent landing. The length of it must have struck, turned, and rolled far from the north before coming to rest." indent "The heat from many fires makes it impossible to approach the main wreckage, but scraps of metal and other debris were flung forward when the\I Sirius Dream \iwas jarred to a stop. Some of it litters the desert floor nearby. "; if (fuel_puddle.found_in = location) { "A large puddle of fuel has collected in a depression far enough from the wreckage -- and fortunately cut off from it now -- to remain inactive. "; } if (dead_creature.found_in = location) { "A charred, dead creature lies face-down where the puddle of fuel used to be. "; } print "" !End the current line, because we're done. } }