Constant Story "The Angel Curse"; Constant Headline "^An interactive something by David Welbourn (dswxyz@@64look.ca) for SpeedIF 19^"; Release 1; Serial "030112"; Constant MAX_SCORE = 0; Constant DIALECT_US = 1; Constant DEATH_MENTION_UNDO; Include "Parser"; Object LibraryMessages ! see section 21 of the manual with before [; ! and english.h Miscellany: switch(lm_n) { 19: if (player in wheelchair) "You're a girl in a wheelchair feeling sorry for herself. So what else is new?"; if (angel in player) "You're a girl with broken legs, forced to crawl."; "You're a mermaid, until recently under a dread curse."; } Answer: if (lm_o == player) "Talking to yourself again?"; Ask, Tell: if (lm_o == player) "Talking to yourself again?"; Pray : "You're not Catholic, or even Christian. You'd hardly know what to say."; Take: if (lm_n == 2) "That doesn't make any sense."; Touch: switch(lm_n) { 1: "It's not that kind of game."; 2: "You feel nothing unusual."; 3: "Touch yourself on your own time, okay?"; } Wake, WakeOther: "No one is asleep."; ]; Include "VerbLib"; [ emph str; style underline; print (string) str; style roman; ]; [ HeOrShe obj; if (obj has female) { print "she"; return; } print "he"; return; ]; [ HisOrHer obj; if (obj has female) { print "her"; return; } print "his"; return; ]; !----------------- Object Gym "Gymnasium at St. Catherine's" with description "St. Catherine's has an excellent gymnasium for its female students, but of course it's of little use to you. The only reason you're here is because your friend Amy practically begged you to come with her.", e_to LowerHall, has light; Object girls "female gymnasts" Gym with name 'girls' 'gymnasts' 'women' 'pro' 'pros' 'professional' 'athletes' 'female', description "There's several women here, including Amy, out practicing for a professional gymnastic competition in Hamburg next Spring. Looking at them fills your mind with envy and self-pity. You cannot join them, and you never will. Such emotions, you upbraid yourself, only illustrate the darkness intrinsic to the human soul. You turn away.", has static female pluralname animate; Object Amy "Amy" Gym with name 'amy' 'your' 'friend', description "Look at her. She's so graceful on the parallel bars. You could never do that. You can't see why she insisted you accompany her here.^^Well, okay. It was the decent thing to do. But she's obviously over her performance anxiety, and she's not paying any attention to you. She's too busy working with the rest of the girls.", has static scenery animate female; Object wheelchair "wheelchair" Gym with name 'wheelchair' 'wheel' 'chair', description "Your wheelchair. You hate it. But it takes you where you need to go, so you're stuck with it.", before [; Go: if (noun == d_to) { print "Not in your wheelchair, you're not.^"; return 2; } return 1; ], react_before [; Exit: if (location == SouthHall) rfalse; "No. Not here. What would be the point?"; ], has enterable container open static; Object angel "angel pendant" with name 'angel' 'pendent' 'pendant' 'white' 'alabaster', description "It's a white angel pendant made of alabaster. At least, you think it's alabaster. You're not sure where you got it from, come to think of it. It's pretty, though, and you've always worn it.", before [; Disrobe: if (self hasnt general) { give self general; "You try to remove the angel... uhhh...^^Your head hurts. You wanted to do something, but what?"; } "You can't! You can't remove the angel! Ah, the pain! Your mind reels with it."; ], has worn clothing; Object bag "Toys R Us bag" with name 'toys' 'r' 'us' 'bag' 'sack', description [; print "Amy asked you to hold onto her bag for her. What she needed it for, you can't imagine."; if (self hasnt general) { give self general; print " Amy always was a little weird. Maybe that's why she's your friend. When you're around, she probably seems almost normal by comparison."; } new_line; ], has container ~open openable; Class Bit with name 'lead-painted' 'lead' 'painted' 'metal' 'bit', list_together "lead-painted metal bits"; Bit "jagged white bit" bag with name 'jagged' 'white' 'bit', description "Ick. Looks dangerous. Someone could cut themselves with that."; Bit pole "long red hooked bit" bag with name 'long' 'red' 'hooked' 'pole', description "Kinda like a pole, with a hook at the end."; Bit "shiny triangular bit" bag with name 'shiny' 'triangular' 'dagger', description "~Is this a dagger I see before me?~ Naaah."; Bit "small green circular bit" bag with name 'small' 'green' 'circular' 'coin', description "This bit's rather like a coin. Except it's painted green and doesn't have a queen on it, or E Pluribus Uranium, or whatever coins are supposed to have on them.", has light; Object LowerHall "First Floor Hallway (North End)" with name 'trophies' 'trophy' 'christian' 'cross', description "The hallway outside the gym is nothing special. Some trophies. The Christian cross. An aquarium of fish. The hallway continues south, the gym is west, the chapel east, and the exit to the street is to the north.", w_to Gym, n_to "No. You can't leave without Amy. You promised.", s_to SouthHall, e_to "You peek into the chapel, but the nuns are preparing for some sort of ceremony. A funeral, maybe. Or perhaps just a normal prayer service. You don't know why you're so gloomy today.", has light; Object tank "aquarium" LowerHall with name 'aquarium' 'tank' 'fish', description "You watch the fish swim about for awhile, and you feel the darkness in your soul ebb. These simple fish comfort you. Why?" has static scenery; Object SouthHall "First Floor Hallway (South End)" with description "The south end of the hallway is even less interesting than the north end, except for a sewer grating in the floor.", n_to [; if (player in wheelchair) return LowerHall; "You should probably get back in your wheelchair, first."; ], d_to [; if (player in wheelchair) "You'll need to leave the wheelchair, first."; if (grate hasnt open) "You'll need to open the grating, first."; print "Heedless of the risk, you push yourself into the hole, and fall...^"; return Sewer1; ], has light; Object grate "sewer grating" SouthHall with name 'sewer' 'grating' 'grate', description [; print "A sewer grating in the floor. You hear something down there, something alive? Something or someone trapped? The grating is "; if (self has open) "open."; "closed."; ], before [; Open: if (pole notin player) "You'll need a tool in your hand to open the grating with."; ], after [; Open: "Using the long hooked bit, you manage to pry open the grating."; ], has ~open openable; Object Sewer1 "Sewer" with description "You're in the sewer. It's dark and gloomy and smelly. But it's also cool and wet, which you don't mind so much. The hole you fell through is high above you, and the sewer extends east.", u_to "You'll never get back up there now. For better or worse, you're committed to the sewers.", e_to [; print "You crawl, fall, further down the sewer.^"; return Sewer2; ], has; Object Sewer2 "Deeper in the Sewer" with description "The water is deeper here; you can swim. But an alligator blocks further passage east.", w_to "You cannot return.", e_to [; if (angel in player) "The alligator blocks your way."; deadflag = 2; "You swim past the alligator joyfully, and swim, swim, SWIM out through the sewers, out of mankind's waterways in into the ocean...^^ * * *^^You swim to an underwater palace, where you find your father, the Merfolk King. He looks at you, unbelieving his eyes, then rushes to embrace you. When the initial shock has worn off, he takes a more critical look at you and says, ~Where hast thou been, my child? Thy gills are as unclean as a lobster's arse.~ You laugh, and hug him again."; ], has; Object gator "alligator" Sewer2 with name 'gator' 'alligator' 'croc' 'crocodile', description [; if (angel in player) "The alligator seems a friendly sort. It grins at you with sharp, sharp teeth. You feel you can trust it. Maybe even love it. But it blocks your way east."; "The alligator grins at you, and moves you one side to let you pass."; ], before [; Kiss: if (angel in player) { remove angel; "You give the alligator a kiss, and he snaps at you!!^^No! At your angel pendant! He crushes it into powder and...^^ A miracle! Your broken legs become a fish's tail, and you... you are a mermaid! How? How did this happen? Who put this curse on you? And oh! Your father and mother? How long have they missed you and thought you dead?"; } "You give the alligator another kiss in thanks. You will love alligators forever more."; ], has animate; !------------------------------------------------------------- [ Initialise; location = wheelchair; move angel to player; move bag to player; score = 0; lookmode = 2; ! Verbose print "^^^^^^"; ]; [ AboutSub; "The rules for SpeedIF 19 were:^ Write a game that includes decency, a Toys-R-Us Bag of Rusty Lead-Painted Metal Bits, a cursed angel, and the phrase 'thy gills are as unclean as a lobster's arse'. Bonus points for including the darkness intrinsic to the human soul, alligators and the women who love them, or professional girls gymnastics. Sign here with URL when done."; ]; [ BeGreetedSub; " Talking to yourself again?"; ]; [ DanceSub; "You cannot dance. It pains you deeply."; ]; [ GreetSub; if (ObjectIsUntouchable(noun)) return; if (noun has animate && RunLife(noun,##Greet)~=0) rfalse; if (noun == player) " Talking to yourself again?"; print " ", (The) noun, " ignore"; if (noun hasnt pluralname) print "s"; " your greetings."; ]; !------------------------------------------------------------- Include "Grammar"; Verb meta 'about' * -> About; Extend 'cut' last * noun 'with' held -> Cut; Verb 'debone' = 'cut'; Verb 'dance' * -> Dance * 'around'/'about' -> Dance; Verb 'hi' 'hello' * -> BeGreeted * creature -> Greet; Verb 'greet' * creature -> Greet;