!**************************************************************************** !****(GLOBALS)*************************************************************** !**************************************************************************** global SkipStones = 0 !When this reaches 6, Kerthal is dead. !**************************************************************************** !****(ROOM DESCRIPTIONS)***************************************************** !**************************************************************************** !---------------------------------------------------------------------------- room westbridge "West End of a Wooden Bridge" { nouns "landscape", "expanse", "area", "estate" extra_scenery "post","posts","grass","moss","mossgrass" long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Morning paints the eastern sky in gentle teal and purple pastels. Birdsong carries on the same cool breeze that sends ripples through the waters of winding and forking streams. From the west end of a small wooden bridge, your view of Uncle Jerrus's summer estate is nothing short of inspiring. His cabin, visible but obscured through the eastern haze, rests beyond the stream-carved, mossgrass landscape. Colorful peacrows relinquish their places in the few nearby elmpine trees, flying then across the open expanse, beyond the cabin, over the hills and away to regions unknown. Others arrive from the west, stopping for a moment to rest in the same few elmpines before continuing on a similar migratory route across the estate." } each_turn { local showskip = false if (prev_location ~= location) or (roomdesc_seen = true) { override_indent = true ShortDescribe(jerrus2) override_indent = false } !New for version 1.7 - give the player a "hint" when coming back. if (SkipStones <= 1) { if (prev_location ~= location) { if (random(2) = 1) { showskip = true } } elseif (verbroutine = &DoWait) { if (random(8) = 1) { showskip = true } } if (showskip) { PrintMsgIntro(17,1) : if (SkipStones = 0) { SkipStones = 1 } } } } n_to { PrintMsgIntro(4,0,1) : return true } s_to { PrintMsgIntro(4,0,2) : return true } e_to eastbridge w_to { PrintMsgIntro(5,0) : return true } before { location DoGo { if (object = e_obj) { PrintMsgIntro(0,object) } return false } } } !---------------------------------------------------------------------------- room eastbridge "East End of a Wooden Bridge" { nouns "landscape", "expanse", "area", "estate" extra_scenery "post","posts","grass","moss","mossgrass" misc 0 !Controls the playful conversation flag long_desc { local f_loop roomdesc_seen = true !Room description was "seen" on this turn. "The eastern view is equally impressive from here: green and brown elmpines, birds like feathered spectrums, soft mossgrass stretching to the hills, a myriad of narrow streams, and a cabin in the distance." } each_turn { if (prev_location ~= location) or (roomdesc_seen = true) { override_indent = true ShortDescribe(thyras2) override_indent = false } if (prev_location ~= location ) { if (SkipStones > 6) { PrintMsgIntro(10,4) } else { PrintMsgIntro(10,eastbridge.misc) if (eastbridge.misc < 3) { eastbridge.misc++ } } } } n_to { PrintMsgIntro(4,0,1) : return true } s_to { PrintMsgIntro(4,0,2) : return true } e_to eastofbridge w_to westbridge before { location DoGo { if (object = e_obj) { PrintMsgIntro(8,0) } if (object = w_obj) { PrintMsgIntro(0,w_obj) } return false } } } !---------------------------------------------------------------------------- room eastofbridge "East of the Wooden Bridge" { nouns "landscape", "expanse", "area", "estate" extra_scenery "grass","moss","mossgrass" long_desc { roomdesc_seen = true !Room description was "seen" on this turn. !is "cluster" the right word regarding the elmpines? "The nearest stream dips and widens to the south. Down the short, sloping bank, the mossgrass thins and fades into a narrow, rocky outline. Pellucid water flows slowly over a shallow stretch, washing over large stones and depositing smaller ones along the sides. Three elmpines grow in a cluster just north of where you stand. A wooden bridge spans a curve in the stream, to the west." } each_turn { if (prev_location ~= location) or (roomdesc_seen = true) { override_indent = true ShortDescribe(jerrus2) override_indent = false } } n_to { PrintMsgIntro(5,3) : return true } s_to { PrintMsgIntro(5,2) : return true } e_to { PrintMsgIntro(5,1) : return true } w_to eastbridge before { location DoGo { if (object = w_obj) { PrintMsgIntro(8,1) } return false } } } !**************************************************************************** !****(AREA ITEMS)************************************************************ !**************************************************************************** !---------------------------------------------------------------------------- object wristwatch "father's wristwatch" { nouns "watch","timepiece", "time piece", "wristwatch" adjectives "father's", "fathers", "white" size 10 !Nothing should have a default size of less than 10... is hidden, static, clothing, not worn, not known exclude_from_all { return true } misc 0,false !Sets the "mode" it's in, and whether MODE is allowed. long_desc { if (parent(self)=kerthal) { if (SkipStones > 6) { "The watch is missing from your father's wrist." } else { "The band around your father's left wrist shines like polished tuskstone; amazing, for an artifact more ancient than history. Such things were once abundant, or so the teachers told you. They were lost over the ages, destroyed or discarded. These things carry little value, except perhaps to the overly sentimental or the truly eccentric. As a timepiece, Father's watch works well enough, but in a way that remains a mystery. Father has often suggested that his may be one of the only working relics still in existence." } } else { if (location is underwater) { if (Contains(player,divesuit) and divesuit is worn) { "Although you are wearing your father's watch, your diving suit wasn't fashioned with transparent wrists." } else { !What should we say if we're underwater without it??? } } else { indent "The wristwatch is glossy white, with a large rectangular face thinly outlined in blue. "; if (Chapter = 0) { "The band is now cracked in several places, and a small part of it has been completely shattered. "; } else { "Portions of the band are a rougher, dimmer white, evidence of previous repair. "; } if (Chapter > 0) { if (self is worn) { "The display glows in light blue. "; RunWatchMode(player) ! Show what appears on the watch. } else { "You aren't wearing the watch. The display is currently dim."; } } print "" ! To line-return at the end. } } } inv_desc { "You are "; if (self is worn) { "wearing "; } else { "carrying "; } print Art(self); "."; } before { object DoGet { if (parent(self)=kerthal) { if (SkipStones > 6) { "It's no longer on his wrist." } else { "Your father may fall into the category of \"eccentric\" when it comes to parting with the ancient artifact. Besides, it looks fine right where it is." } return true } return false } object DoDrop { "No, you've promised yourself never to lose this watch." return true } object DoPutIn { "The only thing you feel compelled to place it on is your own wrist, and that can be accomplished by simply \Iwearing\i it." return true } object DoPoint { if (xobject) { RunWatchMode(xobject) : print "" !Finish the line. return true } else { return false ! To give default lib message } } object DoTakeOff { if (location is underwater) { if (Contains(player,divesuit) and divesuit is worn) { "That isn't possible, since it's worn\I under \iyour suit." : return true !no default "removal" message. } } return false !Normal message. } } after { object DoGet { if (location = eastofbridge) { PrintMsgIntro(99) return true } return false } } } !---------------------------------------------------------------------------- object small_stones "small stones" { is plural is skippable article "some" misc 10 size 10 !Nothing should have a default size of less than 10... parse_rank 2 nouns "stone", "stones", "rock", "rocks", "pebble", "pebbles" adjectives "few", "rounded", "small", "several", "one", "two", "three", "four", "five" short_desc { if (self.misc = 1) "One small stone rests here "; elseif (self.misc = 2) "Two small stones rest here "; elseif (self.misc = 3) "Three small stones rest here "; elseif (self.misc = 4) "Four small stones rest here "; elseif (self.misc = 5) "Five small stones rest here "; else "Several small stones rest here "; "on the "; if parent(self) = westbridge "bridge." else "ground." } long_desc { "About the size of three fingers, "; if (self.misc = 1) "it appears "; else "they appear "; "smoother on one edge, with a slightly squashed and rounded shape that makes a perfect fit in the arc between your thumb and forefinger." } inv_desc { "You are carrying "; if (self.misc = 1) "one small stone."; elseif (self.misc = 2) "two small stones."; elseif (self.misc = 3) "three small stones."; elseif (self.misc = 4) "four small stones."; elseif (self.misc = 5) "five small stones."; else "several small stones."; } before { object DoDrop { if (Chapter > 0) { PrintMsgIntro(15,0) : return true } } object DoGet { !Make sure we can obtain another pile...? if (object.misc < 1) { object.misc = 10 } return false } object DoThrowAt { if (Chapter > 0) { PrintMsgIntro(15,0) : return true } if (SkipStones>6) { PrintMsgIntro(13,SkipStones) : return true } if (xobject = 0) { PrintMsgIntro(15,1) SubtractObj(object,false) if (location = westbridge) { PrintMsgIntro(15,7) } else { print "" !End the line } return true; } if (xobject = peacrows) or (xobject = elmpines) { PrintMsgIntro(15,2) SubtractObj(object,true) return true } if (xobject = stream) { PrintMsgIntro(15,3) SubtractObj(object,false) if parent(thyras) = location { PrintMsgIntro(15,4) if (SkipStones = 0) { SkipStones = 1 } } else { if (SkipStones > 0) { !We've already seen thyras skip stones. PrintMsgIntro(15,5) } else { !We've not yet seen Thyras skip a stone. PrintMsgIntro(15,6) } } return true } return false } object DoSkip { if (Chapter > 0) { PrintMsgIntro(15,0) : return true } if InList(stream,found_in,location)>0 { !This dual compare works, but let's make it more readable... !if (xobject = 0,stream) { if (xobject = 0) or (xobject = stream) { local r r = random(4) if (SkipStones>6) { PrintMsgIntro(13,SkipStones) : return true } if (xobject = 0) "(assuming you mean to skip a stone across the stream)" indent select r case 1: { "With an underhanded flip of the wrist, you let the stone fly. "; } case 2: { "In one swift motion, you flick the stone toward the water. "; } case 3: { "You clench the stone, bring your arm back, and fling it sideways at the stream. "; } case 4: { "You curl your thumb and index finger around the girth of the stone, wrist bending, hand moving, grip releasing, stone spinning through the air. "; } "It touches the surface, skipping again and again before losing enough momentum to sink away. "; SubtractObj(object,false) if (location = westbridge) { if (SkipStones > 0) { !We've already seen Thyras skip stones. PrintMsgIntro(13,SkipStones) SkipStones++ } else { !Not yet seen Thyras skipping stones. "Your brother produces a supply of similar pebbles from his pants pocket. When he sends one skipping across the water, the action seems more controlled, better practiced, a perfect throw." SkipStones = 1 } } else { if (SkipStones > 0) { !We've already seen Thyras skip stones... so.... "Your brother, standing west of here at the end of the bridge, doesn't even notice." } else { !We've not yet seen Thyras skip a stone. "Although there is merit in the effort, it doesn't seem to accomplish anything." } } return true } } return false } object DoPutIn { if (Chapter > 0) { PrintMsgIntro(15,0) : return true } } } after { object DoGet { if (self.misc = 1) "You take the small stone." elseif (self.misc = 2) "You decide to take them both." else "You decide to take them all." return true } object DoDrop { if (self.misc = 1) "You drop the small stone." elseif (self.misc = 2) "You decide to drop them both." else "You decide to drop them all." return true } } } !---------------------------------------------------------------------------- object bros_stones "Thyras's stones" { is plural is skippable is hidden nouns "stone", "stones", "rock", "rocks", "pebble", "pebbles" adjectives "brothers", "brother's", "thyras", "thyras'", "thyras's", "small", "several", "one", "two", "three", "four", "five" size 10 !Nothing should have a default size of less than 10... parse_rank 0 in thyras long_desc { "You are unable to get a look at the stones in your brother's pocket, but the one in his hand is smooth, flat, and rounded." } before { object DoGet { "Thyras refuses. \"These are mine. Go get your own.\"" return true } } } !**************************************************************************** !****(AREA SCENERY)********************************************************** !**************************************************************************** scenery bloodpool "pool of red liquid" { found_in 0 !We'll move this at a certain story point article "the" nouns "liquid", "blood", "pool" adjectives "dark", "red", "pool" long_desc { "Thick, dark red, and draining slowing from your father." } before { object DoGet { !Handle "Get Blood" and "Search Father" after he dies. PrintMsgIntro(18,1) : return true } } } !---------------------------------------------------------------------------- scenery misc_stones "assorted stones" { found_in eastofbridge is plural article "the" nouns "stone", "stones", "rock", "rocks", "pebble", "pebbles" adjectives "small", "several", "one", "two", "three", "four", "five" parse_rank 0 long_desc { FindPebbles() } before { object DoGet { if Contains(player,small_stones) { PrintMsgIntro(9) } else { PrintMsgIntro(11) } return true } } } !---------------------------------------------------------------------------- scenery stream "stream" { found_in westbridge, eastbridge, eastofbridge is swimmable article "the" nouns "stream", "streams", "river", "rivers", "creek", "water", "waters" adjectives "narrow", "winding", "forking" long_desc { if (SkipStones > 6) { "A light pink mist clouds the water in an area of the stream closest to where your father has fallen." } else { "The waters are shallow and clear in places, deeper and murky in others. "; if (location = westbridge) or (location = eastbridge) { "From here, you are unable to get a closer look without leaning far over the railing, and that would needlessly risk the possibility of an embarrassing slip and plunge." } if (location = eastofbridge) { FindPebbles() } } } door_to { PrintMsgIntro(3) : return true } before { object DoSearch { Perform(&DoLook,self) : return true } object DoSwim { if (location = westbridge) or (location = eastbridge) { PrintMsgIntro(4,0) : return true } if (location = eastofbridge) { PrintMsgIntro(3) : return true } } object DoJumpInto { if (location = westbridge) or (location = eastbridge) { PrintMsgIntro(4,1) : return true } } } } !---------------------------------------------------------------------------- scenery peacrows "peacrows" { found_in westbridge, eastbridge, eastofbridge article "the" is plural nouns "peacrow", "peacrows", "bird", "birds", "crow", "crows" adjectives "colorful", "colored", "rainbow" long_desc { "The peacrows are small, colorful birds. Graceful in flight or motionless at rest in the trees, they bring a sense of life and peace to the countryside." } before { object DoGet { PrintMsgIntro(7,2) : return true } } } !---------------------------------------------------------------------------- scenery elmpines "elmpines" { found_in westbridge, eastbridge, eastofbridge article "the" is plural nouns "elmpine", "elmpines", "tree", "trees", "elm", "elms", "pine", "pines" adjectives "elm", "elmpine" long_desc { if (location = westbridge) OR (location = eastbridge) PrintMsgIntro(6,0) elseif (location = eastofbridge) PrintMsgIntro(6,1) } before { object DoGet { if (location = westbridge) or (location = eastbridge) PrintMsgIntro(7,0) elseif (location = eastofbridge) PrintMsgIntro(7,1) return true } } } !---------------------------------------------------------------------------- scenery bridge "bridge" { found_in westbridge, eastbridge, eastofbridge article "the" nouns "bridge", "rail", "rails", "railing", "railings" !the bridge, etc adjectives "bridge", "wooden" !bridge rail, wooden railing, etc long_desc { "The wooden bridge forms a short and sturdy arc across a section of the stream "; if (location = eastbridge) or (location = westbridge) { "below. "; } if (location = eastofbridge) { "to the west. "; } "Thick round rails follow the form, end to end on the north and south sides, supported at either end and in the middle by beveled posts." } before { object DoJumpOver { PrintMsgIntro(4,1) : return true } object DoClimb { PrintMsgIntro(4,0) : return true } } } !---------------------------------------------------------------------------- scenery cabin "Jerrus's cabin" { found_in westbridge, eastbridge, eastofbridge nouns "cabin", "house", "home" adjectives "summer", "estate", "vacation" long_desc { "Your uncle's summer home is a relatively small, square structure, but if memory serves, the guest room is stocked with books and games." } before { object DoEnter { PrintMsgIntro(5,4,location) : return true } } } !---------------------------------------------------------------------------- scenery easternhaze "eastern haze" { found_in westbridge, eastbridge, eastofbridge nouns "haze", "fog" adjectives "eastern" article "the" long_desc { "In the distance, a morning haze obscures the estate." } before { object DoPush, DoPull, DoGet { PrintMsgIntro(18,2) : return true } } } !**************************************************************************** !****(CHARACTER PLACEHOLDERS)************************************************ !**************************************************************************** character kerthal2 "Kerthal" { found_in westbridge, eastofbridge nouns "father", "dad", "kerthal", "daroan", "man" adjective "father", "kerthal" exclude_from_all { return true } parse_rank 0 before { object { PrintMsgIntro(2,1) : return true } xobject { PrintMsgIntro(2,1) : return true } } } character jerrus2 "Jerrus" { found_in westbridge, eastofbridge nouns "uncle", "jerrus", "daroan", "man" adjective "uncle", "jerrus" exclude_from_all { return true } parse_rank 0 before { object { PrintMsgIntro(2,0) : return true } xobject { PrintMsgIntro(2,0) : return true } } short_desc { if (parent(kerthal) = eastbridge) { indent "Your father, Kerthal Daroan, and your uncle, Jerrus Daroan, "; if (location = westbridge) "stand talking at the far end of the bridge." if (location = eastofbridge) "stand talking on the bridge to the west." } } } character thyras2 "Thyras" { found_in eastbridge, 0 nouns "brother", "thyras", "daroan" adjective "my", "brother", "thyras" exclude_from_all { return true } parse_rank 0 before { object { PrintMsgIntro(1) : return true } xobject { PrintMsgIntro(1) : return true } } short_desc { if (parent(thyras) = westbridge) { indent "Your brother, Thyras Daroan, stands alone at the opposite end of the bridge." } } } !**************************************************************************** !****(MISC PROLOGUE-ONLY ROUTINES)******************************************* !**************************************************************************** !---------------------------------------------------------------------------- routine FindPebbles() { "Smaller, smoother pebbles line a portion of the nearest bank, in a muddy area where darker mossgrass tapers down to the water's edge. "; if (parent(small_stones) = 0) { "With closer inspection, you notice a few rounded stones among the others." move small_stones to eastofbridge } elseif Contains(player,small_stones) { "You skip further inspection, having already identified several pebbles of appropriate size and shape. It does seem as if this is the perfect place to find more, when and if those are all gone." } else { "Before you consider taking more pebbles from the water's edge, you should go retrieve those you already found and dropped." } } !---------------------------------------------------------------------------- routine PrintMsgIntro(num,val1,val2) { !************* Walk across the bridge message. if(num=0) { "The stiff soles of your shoes tap a rapid rhythm on the wooden planks as you hurry across to the "; if (val1 = w_obj) { "west." } if (val1 = e_obj) { "east." } } !************* Your Brother Isn't Here message. if(num=1) { "Your brother isn't here. "; if (SkipStones > 6) { "He stands near your uncle, east of the bridge, striking him repeatedly with small fists." } else { if (location = eastbridge) { "He stands at the other end of the bridge, skipping rocks across the shallow stream." if (SkipStones = 0) { SkipStones = 1 } } } } !************* Your Uncle/Father Isn't Here message. if(num=2) { if (val1 = 0) { "Your uncle isn't here. "; } if (val1 = 1) { "Your father isn't here. "; } if (SkipStones > 6) { if (val1 = 0) { "He is kneeling over the downed form of your father, east of the bridge." } elseif (val1 = 1) { "He is lying awkwardly on the mossgrass, east of the bridge." } } else { if (location = westbridge) { "He stands at the other end of the bridge, "; } elseif (location = eastofbridge) { "He stands at the near end of the wooden bridge, to the west, "; } if (val1 = 0) { "talking to your father." } if (val1 = 1) { "talking to Uncle Jerrus." } } } !************* Attempting to swim in the stream. if(num=3) { if (SkipStones>6) { PrintMsgIntro(13,SkipStones) : return } "That's a really bad idea. Imagine large, scaley, underwater bugs nipping at your legs. Imagine thick black snakeworms twined around your ankles and arms. Imagine little needlefish poking you in some rather sensitive areas. It's likely that the streams are home to no such dangerous pests, but then again, it would be reckless to find out." } !************* Can't Climb Bridge Rail message. if(num=4) { if (SkipStones>6) { PrintMsgIntro(13,SkipStones) : return } if(val2>0) { "The bridge rail blocks your way "; if (val2=1) { "north. "; } else { "south. "; } } "You consider, for a moment, what might happen if you were to "; if (val1=0) { "climb the wooden railing and hop "; } if (val1=1) { "jump over the wooden railing, "; } "into the stream below. Father would disapprove, certainly. He wouldn't yell (he never does), and he might not even scold you, but it would be irresponsible if nothing else. These are, after all, some of your nicest clothes." } !************* Can't leave the area right now message. if(num=5) { if (SkipStones>6) { PrintMsgIntro(13,SkipStones) : return } "No, Father specifically said to stay close. Besides, "; if (val1=0) { "that's the way back to the docking platform. Even if you were old enough to drive a whaleworm, the gate guard isn't likely to let you leave your uncle's estate unescorted." } if (val1=1) { "it's a long walk around the deeper streams, to the second bridge, across to your uncle's summer cabin. A better idea might be to heed Father's advice." } if (val1=2) { "a stream blocks your way to the south." } if (val1=3) { "the ground beyond the elmpines becomes increasingly wet, the mossgrass sparse and brown, the pools of mud forming an impossible maze of detours." } if (val1=4) { if (val2 = eastofbridge) { "you'll have half the summer to be indoors." } else { "it's much too far away." } } } !************* Trees too far away to look at message. if(num=6) { if (SkipStones>6) { PrintMsgIntro(13,SkipStones) : return } if (val1 = 0) { "The elmpine trees are too far away to inspect. From here, the coarse branches seem fringed in greens and browns. Small birds with rainbow feathers roost among the branches." } if (val1 = 1) { "Aside from the superficial, one elmpine is just like another. These elmpines seem to serve as avian waystations; the birds come to rest among the branches, then fly away inland. Brown, fallen elmpine needles form a sparse mesh under the trees." } } !************* Can't pick up something... messages. if(num=7) { if (SkipStones>6) { PrintMsgIntro(13,SkipStones) : return } if (val1 = 0) { "The elmine trees are east of the bridge. You can't reach them from here. Even if you could, the effort to pick one up would scuff your clothes and accomplish nothing." } if (val1 = 1) { "These things tend to be deeply rooted. The strain involved in plucking a tree from the ground is more than a little boy can handle. Maybe an elephaworm harnessed with chain cables could topple a mature elmpine, but no such beast is currently at your disposal." } if (val1 = 2) { "The birds are too far away to reach, and you've learned from past attempts that they're much too quick to catch. The effort itself can be rewarding, but you have a feeling now is not the time for running, whistling, arm-waving antics." } } !************* Basic room-to-room movement. if(num=8) { if (val1 = 0) { "You step off the bridge and onto the pliant mossgrass." } if (val1 = 1) { "You step onto the bridge." } } !************* If trying to get more stones when you already have them. if(num=9) { if (SkipStones>6) { PrintMsgIntro(13,SkipStones) : return } print "You already have "; if (small_stones.misc = 1) "a small stone. "; elseif (small_stones.misc = 2) "two small stones. "; else "some small stones. "; "Look again when you have no more." } !************* Upon arrival at eastbridge (after room description) if(num=10) { if (val1 <= 3) { print "" } !For a blank line. if (val1 = 0) { indent "The two men nod to you, smiling as you approach, temporarily ending their conversation in what may have been mid-sentence. Your father reaches down to tap your shoulder in a familiar if perhaps unnecessary reminder of affection. \"Are you staying out of trouble, Little Sprout?\" he jokes. Uncle Jerrus grins at that. \"I don't think you have to worry about Gavenn,\" he says, adding a firm but momentary grip to your other shoulder. He leans down and toward you then, and in a mock whisper says \"Tell him you'll keep an eye on Boy Restless over there, if it's trouble that worries him.\"" } if (val1 = 1) { indent "Again, the discussion between your father and your uncle comes to a rapid halt. \"Hey, Little Sprout,\" your father says with a smile. \"I need to talk with Uncle J. for a little while longer. I bet T. would appreciate a little company.\" He nods to the west, where your brother looks increasingly irresolute." } if (val1 = 2) { indent "Uncle Jerrus picks you up, spins around several times, then staggers backwards. Father shakes his head, smiling, and you smile too. With seemingly little effort, your uncle flips you over, then upright, before lowering you to the bridge. \"How do you like THAT?\" he asks with a grin, tickling you all the while. \"I need to talk to your father now.\" He ruffles your hair, apparently pleased at how quickly it turns your grin to a scowl. \"Hey now, that's why God invented brushcombs. Run along, Gav. We'll be done here in a bit.\"" } if (val1 = 3) { "Father seems weary of the interruptions, but even a forced smile is a good smile. \"Just a little while longer, Son.\"" } if (val1 = 4) { indent "Something strange -- something unthinkable -- has happened to your father. He is just ahead to the east, but he isn't standing." } } !************* Trying to take the "scenery" stones instead of real ones. if(num=11) { if (SkipStones>6) { PrintMsgIntro(13,SkipStones) : return } "With such an assortment from which to choose, perhaps a cursory inspection of those available is in order." } !************* Asking one of the characters about something unknown. if(num=12) { if (val1=0) { !"Ask" during endgame. "He doesn't answer." : return } if (val1=1) { !Thyras "Your brother shrugs at the question. After a moment, he turns away again, unable or unwilling to answer that, or perhaps just lacking the motivation to take a break from sulking. "; } if (val1=2) { !Kerthal "Your father just smiles at the question. \"That's my boy,\" he says, more to Uncle Jerrus than to you. \"The inquisitive type.\" It's not an answer, but it's the only reply he gives. "; } if (val1=3) { !Jerrus "Your uncle hears you. He looks right at you, in fact, but his reply is simply a few playful pokes at your belly. \"Sorry, Gav. we'll play later, after I talk to your father.\" "; } if (val1=4) { !Trying to "talk to" one of them after Kerthal dies. "This is no time for talking." : return } if (val1=5) { !Trying to talk to Kerthal after he is dead. "Your father, motionless on the ground, makes no "; if (val2=1) { "reply." } else { "sound." } return } "Maybe that wasn't a question he's able to answer right now." } !************* Skipping Stones at the right place and time. if(num=13) { if (val1=1) { "Thyras skips another of his own pebbles in response." print "" : indent !Blank line, since this is a section. "For a moment, the conversation between your father and your uncle is less constrained. Their voices carry on the breeze. \"The boys seem occupied in yet another minor rivalry,\" Uncle Jerrus says to your father. A long pause follows, or else the conversation reverts to subtlety. Then, from your uncle again, \"I'd like to take them hiking up Gorzhen Peak, if you don't object. I think Thyras would love it, and a nature outing would be good for Gavenn.\"" } if (val1=2) { "Thyras casts a sideways glance in your direction, then sends another stone hopping across the stream." print "" : indent !Blank line, since this is a section. "\"I've explained it to both of them.\" The voice belongs to your father. \"Three weeks - maybe four. It really depends on the Incs.\" A brief pause follows. \"I'm sorry to impose so close to the election.\"" indent "Uncle Jerrus interrupts him then, with a dismissive laugh. \"Nonsense. Imposition is a tool of diplomacy. You had it mastered well before you made a career of it. Levity aside, it's no burden. You know that. They're good boys. It's a great opportunity to spend time with my nephews, and I know just how precarious and important the Inc situation has become.\"" } if (val1=3) { "Your brother doesn't turn, but he sighs. \"Not bad, little brother,\" he says, before throwing another pebble side-handed across the stream. That one may have taken an extra hop or two, and now he chooses to glance in your direction, faintly smirking." print "" : indent !Blank line, since this is a section. "The voices from the other end of the bridge are just loud enough to hear. Your father is talking in more detail about the Incs, in response to something Uncle Jerrus asked. \"They call themselves\I Sheeears. \iI know, it's a waste of breath to get that long 'eee' in there, but I don't want to insult them with an offensive abbreviation. They use subtle inflections to show attitude, mood, opinion,and varying degrees of priority in their words. We do the same thing to a lesser degree, of course, to convey emotion when we talk.\"" } if (val1=4) { "The throw is at least a match for your brother's prior one, and that was nearly flawless. Now he turns to grin, finally seeming to take notice, the smirk no longer showing. \"Good one, Gav.\" He takes his time then, drawing back for his next throw, letting the stone fly and watching it skip. The ripples remain when the stone stops; a great throw, but not a better one." print "" : indent !Blank line, since this is a section. "Your father's voice drifts your way again. Uncle Jerrus seems very interested in what he has to say about the Incs. \"I don't understand it,\" Father continues, \"but these differences in articulation are integral to their own interactions. None of my staff can figure it out either, and the\I Sheeear \ilinguists can't or won't explain it to us. I think much of it deals with concepts and experiences completely foreign to us.\"" } if (val1=5) { "Thyras takes to the challenge, throwing another stone from his dwindling supply. It obliges, taking an improbable number of hops before sinking away." print "" : indent !Blank line, since this is a section. "Father continues, seeing that the two of you are still engaged in competition. \"You can say 'Sheeear' dozens of ways, softly or loudly, rising or falling through the long e's, melodically or flat, and you could be praising their manners or insulting the hue and intensity of their flame as a secondary effect. At least they're willing to speak our language. It will be hard enough for us just to get their names right, but they do seem tolerant in that regard.\"" print "" : indent !Blank line, since this is a section. "A faint, familiar droning drifts your way. You wonder, for a moment, if the whaleworm is in some kind of trouble. No. The dock is too far back. It's something else." } if (val1=6) { "This one skips better than the last, but Thyras takes no notice." print "" : indent !Blank line, since this is a section. "You follow his gaze into the sky, where a single dactylworm has made an appearance to the south, coming fast. Then, everything slows, as it does in memories such as this. Uncle is yelling something, but the words are muffled by the throbbing in your head. Father looks your way, meeting your stare for a moment, before turning away. It's all so slow, every moment reduced to retrospection, every sound losing cohesion, save one. The world begins and ends in that sound." indent "It happens while Uncle Jerrus is waving to you; not waving, but motioning; away, away, go. It happens while your father is turned to the east, and he is moving away from you, running, trying to run, stopping down by the stream where the bridge ends. His arms go wide, and the sound is the clap of thunder, the whine of heated air, a stifled thud, like a rod against a hanging sack. The moment is eternity. Vision blurs. Thyras gasps. Uncle rushes to the spot where Father has collapsed with arms strangely akimbo, one leg dangling over the short drop." indent "The water is tinted pink there. It wasn't that way before. The dactylworm is almost out of sight now, to the south. Vision is back, and sound rushes to you again. Uncle Jerrus is crying out, bent over your father's still form, down by the stream to the east." move thyras to eastofbridge !So that brother appears first move jerrus to eastofbridge !Uncle appears second move kerthal to eastofbridge !Father appears last bloodpool.found_in #1 = eastofbridge !So we can "look" at it. :( thyras2.found_in #1 = westbridge : thyras2.found_in #2 = eastbridge jerrus2.found_in #1 = westbridge : jerrus2.found_in #2 = eastbridge kerthal2.found_in #1 = westbridge : kerthal2.found_in #2 = eastbridge !Finally, play the music for the next section of the game.... PlaySong(player.misc #9) !PlaySong will check allow_music } if (val1>6) { "No, not now. You can think of nothing else right now except checking on your father." } } !************* People Descriptions for the Introduction. if (num=14) { if (val1=Thyras) { if (val2=1) { indent "Your brother is an eleven-cycle-old wonder -- smart, talented, funny, and tall. He stands leaning forward against the south railing, kicking one post with the side of a now-scuffed shoe, passing a few small stones from hand to hand. He looks your way with a grin each time he flings a pebble outward. The motions seem flawless, and the stones defy gravity in a series of perfect hops along the surface of the stream. Although it seems unlikely now, maybe in two more cycles you'll be that good at everything, too." if (SkipStones <= 1) { indent "Then again, why wait? It can't be too difficult to skip stones across a stream." } } if (val2=2) { "Your brother stands with his back to you, yelling at Uncle Jerrus, hitting him in the back with the side of his fist as if pounding on a door. Your uncle seems to take no notice." } if (val2=3) { "Your brother, Thyras Daroan, stands behind Uncle Jerrus. The sides of his fists come down again and again on your uncle's back. His voice is pitiful, as if through endless sobs. \"Was it meant for you?\" he demands to know. \"They were trying for you, weren't they?\"" } } if (val1=Kerthal) { if (val2=1) { indent "Your father is tall and muscular. His black hair is cropped short, with thin sideburns stretching down his jaw into a rounded, trimmed goatee. He wears a casual suit of gray and viridian today; travel clothes, for the journey ahead. His white wristwatch gleams in the morning sunlight each time he lifts his arm to glance down at it. A blue glow appears there briefly, each time he looks." if (wristwatch is not known) { move wristwatch to kerthal wristwatch is known, worn } } if (val2=2) OR (val2=3) { "Your father, Kerthal Daroan, is spread face-down on the mossgrass, his body uncomfortably twisted over a dark red "; if (val2=2) { "liquid." } else { "liquid. "; "A dizziness claims you, and you stumble forward. \"Father? Father?\" ...Nothing. Father remains in that unnatural pose, statue-still. Dizziness again. You bend down and reach for his arm, pulling, tugging, slipping, the awful red staining your shoes, your pant legs, your shirt, your hands. You stumble again, this time backward as your small hands slip. Father won't move. He\I can't \imove. He will never move. There, on the ground, near his shoulder, rests his white wristwatch, curled on its side with a broken band, just beyond the red." if (wristwatch is static) { move wristwatch to parent(kerthal) wristwatch is known, not static, not worn, not hidden } } } } if (val1=Jerrus) { if (val2=1) { indent "Uncle Jerrus is a little shorter than your father, but several cycles older. His dark brown hair is peppered with gray, and thinning across the top. His full beard and wide mustache are a blend of both colors. For a man likely to be the next Chaniman, your uncle is personable, good-natured, and even a little blithe." } if (val2=2) { "Your uncle, Jerrus Daroan, kneels here, shaking his head, mumbling, ignoring his nephew's attack." } } } !************* Throwing or discarding the stone. if (num=15) { if (val1 = 0) { "No, you aren't willing to risk losing it. This one stone has too much sentimental value. You brought it away from the stream near the spot where your father died, those forty cycles ago." } if (val1 = 1) { "You send one small stone flying in a random direction, throwing it as far away as you can. "; } if (val1 = 2) { "You throw a small stone into the branches of a nearby elmpine. A rustling of feathers and a momentary retort of discontented squawking reward the effort. "; } if (val1 = 3) { print "You "; word[1]; " one stone into the stream. "; "It strikes the surface with a small splash and an audible kerplunk. "; } if (val1 = 4) { "Thyras smirks. \"You can do better than that,\" he teases. \"Try\I skipping \iit, like this.\" His hand becomes a blur of motion. A single small stone skips across the water, leaving multiple ripples in its wake. \"Ah, don't pout little brother. Some have the knack, some don't.\" His satisfied grin seems more like a mocking sneer." } if (val1 = 5) { "You won't impress Thyras with such a lousy throw. At least he wasn't nearby to see it." } if (val1 = 6) { "The act of pitching pebbles into the water leaves you without a sense of accomplishment. Maybe this is something Thyras would be impressed to see." } if (val1 = 7) { "Your brother suppresses a laugh, but he says nothing. Instead, he points to the stream below. To demonstrate, he skips one of his own across the surface. Your face reddens for a moment, with the understanding that you didn't really "; print word[1]; " yours\I at \ianything in particular." } } !************* Trying to listen to one of the characters. if (num=16) { if (val1 = thyras) { if (SkipStones < 6) { "Thyras makes a few mundane sounds -- the shuffling of feet, hand-taps on the wooden rail -- but he says nothing." } else { "Thyras is yelling at Uncle Jerrus." } } if (val1 = kerthal) { "Your father exchanges a glance with Uncle Jerrus, then pats you on the head. \"Sorry, son -- just some grown-up stuff.\"" } if (val1 = jerrus) { if (SkipStones < 6) { "\"Well, well!\" your uncle says in mock-surprise, smiling. \"Kerthal! I think I just caught a spy!\" You grin, and your father shakes his head, smiling too." } else { "" } } } !************* Thyras is skipping stones if (num=17) { if (val1 = 1) { print "" : indent !Because PrintParaIndent wouldn't apply here. "Thyras skips a stone across the stream. It looks like fun, even though he shows no enthusiasm." } } !************* Miscellaneous "can't do that" messages. if (num=18) { if (val1 = 1) { !If trying to get blood or search dead father. "Your hands refuse to obey your mind. When you realize what you almost did, an instant later, you shudder." } if (val1 = 2) { !If trying to push/pull the haze. "The haze? It's not possible." } } !************* Final text before moving ahead to the next chapter if (num=99) { indent "You retrieve your father's fallen wristwatch from the ground near his fallen body. It feels unexpectedly soft, very smooth, and slightly warm. A faint hum increases slightly as you hold it, but the face is now dim. Your uncle glances up in your direction, but he says nothing. Your brother has ended his assault, and he sits now with his back to you, his face lowered and covered by both hands." indent "Why are the bad memories sometimes so much stronger than the good? What purpose is served by remembering the tint of the morning sky, the patterns carved in the ground by the streams, or the sound of a soft wind finding its way through elmpine branches? The details are unimportant, yet they are etched in mind as if by permanent sun-blindness." indent "You continue to clutch a small, smooth stone in one hand, Father's wristwatch in the other, but it isn't morning, and this isn't your uncle's summer retreat. A memory, still vivid after forty cycles, made real once again in the telling... \"Ah, Ruhne. Good friend, trusted friend, I have more to tell you.\"" ContinueChapter(1,1) !Print the "[Continue]" message and go forward. } }