'$INCLUDE: 'BREATH.INC' NoFile: FileExists = 0: RESUME NEXT AnError: PRINT "error!": END WatchError: ErrorFound = 1: RESUME NEXT EsDoIt: IF TPlay = 1 THEN PLAY "mbmlt100o1l4fgfga+l8agl4af" IF TPlay = 2 THEN PLAY "o2l4fgfga+l8agl4af" IF TPlay = 3 THEN PLAY "o1l4a+l8agl4afo2fel4dp4cfl8p63fede" IF TPlay = 4 THEN PLAY "mlt140o1l4fgfga+l8agl4af" IF TPlay = 5 THEN PLAY "o2l4fgfga+l8agl4af" IF TPlay = 6 THEN PLAY "o1l4a+l8agl4afo2fel4dp4cfl8p63fede" IF TPlay = 7 THEN PLAY "mlt180o1l4fgfga+l8agl4af" IF TPlay = 8 THEN PLAY "o2l4fgfga+l8agl4af" IF TPlay = 9 THEN PLAY "o1l4a+l8agl4afo2fel4dp4cfl8p63fede" TPlay = TPlay + 1: IF TPlay > 9 THEN TPlay = 1 RETURN FUNCTION BadCommand% (a$) IF IsVerb(a$, "NORTH") THEN Oprint "`7 You can't go north." + ret$ BadCommand = 1: EXIT FUNCTION END IF IF IsVerb(a$, "SOUTH") THEN Oprint "`7 You can't go south." + ret$ BadCommand = 1: EXIT FUNCTION END IF IF IsVerb(a$, "EAST") THEN Oprint "`7 You can't go east." + ret$ BadCommand = 1: EXIT FUNCTION END IF IF IsVerb(a$, "WEST") THEN Oprint "`7 You can't go west." + ret$ BadCommand = 1: EXIT FUNCTION END IF IF IsVerb(a$, "GET") THEN IF ContainsToken(a$) THEN n = INT(2 * RND(1)) + 1 IF n = 1 THEN Oprint "`7 You can't pick that up." + ret$ IF n = 2 THEN Oprint "`7 For some reason, you can't seem to get that." + ret$ ELSE Oprint "`7 You don't see that here." + ret$ END IF BadCommand = 1: EXIT FUNCTION END IF IF IsVerb(a$, "MOVE") AND INSTR(a$, " ") AND LEN(a$) >= 6 THEN IF ContainsToken(a$) THEN Oprint "`7 You probably won't be able to move that." + ret$ ELSE Oprint "`7 Are you attempting to move something that isn't here?" + ret$ END IF BadCommand = 1: EXIT FUNCTION END IF IF IsVerb(a$, "OPEN") AND INSTR(a$, " ") AND LEN(a$) >= 6 THEN IF ContainsToken(a$) THEN Oprint "`7 You can't open that." + ret$ ELSE Oprint "`7 What are you trying to open?" + ret$ END IF BadCommand = 1: EXIT FUNCTION END IF IF IsVerb(a$, "UNLOCK") AND INSTR(a$, " ") AND LEN(a$) >= 8 THEN IF ContainsToken(a$) THEN Oprint "`7 You have a moderate amount of difficulty unlocking that." + ret$ ELSE Oprint "`7 Where did you see that?" + ret$ END IF BadCommand = 1: EXIT FUNCTION END IF END FUNCTION FUNCTION KbIn$ (l%, a$, cc$, SB%) 'cc=input color 'SB%=Scrollback! Lmax = l% DIM LL AS LONG m = 0 V1 = ScrollCommandCount + 1 V2 = ScrollItemCount + 1 IF TempCommand$ <> "" THEN V1 = TempCommandNumber1 IF TempCommand$ = "*" THEN TempCommand$ = "" END IF Abort = 0: Oprint "`" + cc$ + a$ Incount = 0 IF m = 0 THEN Oprint "`%ù" + CHR$(8) + "`" + cc$ J! = TIMER 'Used for RANDOM FEATURE Party: IF RandomFeature > 0 THEN 'is RANDOMizer in effect here? IF (TIMER - J!) >= RandomFeature THEN IF INT(8 * RND(1)) + 1 = 1 THEN 'Was it randomly triggered?? P = DoRandomFeature IF P <> 0 THEN RandomFeature = -1 TempCommandNumber2 = V2 TempCommandNumber1 = V1 IF TempCommand$ = "" THEN TempCommand$ = "*" KbIn$ = a$ EXIT FUNCTION END IF J! = TIMER END IF END IF END IF 'i$ = INKEY$ i$ = UCASE$(INKEY$) IF i$ = "" THEN IF m = 0 THEN Oprint "`%ù" + CHR$(8) + "`" + cc$ IF m = 1 THEN Oprint "`#o" + CHR$(8) + "`" + cc$ IF m = 2 THEN Oprint "`5O" + CHR$(8) + "`" + cc$ m = m + 1: IF m > 2 THEN m = 0 Paus GOTO Party END IF Rikey: IF SoundOn <> 0 THEN PLAY "mbt255l63o1d" IF LEN(i$) < 1 THEN GOTO SkipRolling '*** New stuff added on 10/13/97 for ScrollBack buffer!!! IF SB% = 1 THEN IF ScrollCommandCount > 0 AND V1 > 1 THEN IF LEN(i$) = 2 AND ASC(RIGHT$(i$, 1)) = 72 THEN 'up arrow IF V1 >= (ScrollCommandCount + 1) THEN TempCommand$ = a$ Oprint " " + CHR$(8) Oprint STRING$(LEN(a$), 8) Oprint STRING$(LEN(a$), " ") Oprint STRING$(LEN(a$), 8) V1 = V1 - 1: IF V1 < 1 THEN V1 = 1 Oprint "`" + cc$ + ScrollBackCommand$(V1) a$ = ScrollBackCommand$(V1) GOTO Party END IF END IF IF ScrollCommandCount > 0 AND V1 < (ScrollCommandCount + 1) THEN IF LEN(i$) = 2 AND ASC(RIGHT$(i$, 1)) = 80 THEN 'Down Arrow Oprint " " + CHR$(8) Oprint STRING$(LEN(a$), 8) Oprint STRING$(LEN(a$), " ") Oprint STRING$(LEN(a$), 8) V1 = V1 + 1: IF V1 >= (ScrollCommandCount + 1) THEN V1 = ScrollCommandCount + 1 IF V1 <= ScrollCommandCount THEN Oprint "`" + cc$ + ScrollBackCommand$(V1) a$ = ScrollBackCommand$(V1) ELSE Oprint "`" + cc$ + TempCommand$ a$ = TempCommand$ END IF GOTO Party END IF END IF END IF IF SB% = 2 THEN '**** Scrollback for "special" commands IF ScrollItemCount > 0 AND V2 > 1 THEN IF LEN(i$) = 2 AND ASC(RIGHT$(i$, 1)) = 72 THEN 'up arrow IF V2 >= (ScrollItemCount + 1) THEN TempCommand$ = a$ Oprint " " + CHR$(8) Oprint STRING$(LEN(a$), 8) Oprint STRING$(LEN(a$), " ") Oprint STRING$(LEN(a$), 8) V2 = V2 - 1: IF V2 < 1 THEN V2 = 1 Oprint "`" + cc$ + ScrollBackItem$(V2) a$ = ScrollBackItem$(V2) GOTO Party END IF END IF IF ScrollItemCount > 0 AND V2 < (ScrollItemCount + 1) THEN IF LEN(i$) = 2 AND ASC(RIGHT$(i$, 1)) = 80 THEN 'Down Arrow Oprint " " + CHR$(8) Oprint STRING$(LEN(a$), 8) Oprint STRING$(LEN(a$), " ") Oprint STRING$(LEN(a$), 8) V2 = V2 + 1: IF V2 >= (ScrollItemCount + 1) THEN V2 = ScrollItemCount + 1 IF V2 <= ScrollItemCount THEN Oprint "`" + cc$ + ScrollBackItem$(V2) a$ = ScrollBackItem$(V2) ELSE Oprint "`" + cc$ + TempCommand$ a$ = TempCommand$ END IF GOTO Party END IF END IF END IF '--------------------------------------------------------------------------- SkipRolling: 'To skip the above stuff under normal keystrokes :) IF i$ = CHR$(8) THEN v = LEN(a$) te$ = " " + CHR$(8) + CHR$(8) + " " + CHR$(8) IF v > 0 THEN Oprint "`" + cc$ + te$ v = v - 1 a$ = LEFT$(a$, LEN(a$) - 1) END IF END IF IF i$ = CHR$(13) THEN GOTO Angela IF i$ = CHR$(27) THEN Abort = 1: a$ = "": GOTO Angela I2$ = UCASE$(i$) IF I2$ > CHR$(&H1F) THEN IF LEN(a$) < Lmax THEN Oprint "`" + cc$ + i$ a$ = a$ + i$ Incount = Incount + TookIn IF m = 0 THEN Oprint "`%ù" + CHR$(8) + "`" + cc$ IF m = 1 THEN Oprint "`#o" + CHR$(8) + "`" + cc$ IF m = 2 THEN Oprint "`5O" + CHR$(8) + "`" + cc$ END IF END IF GOTO Party Angela: AddToCommand SB%, a$ KbIn$ = a$ Oprint " " + CHR$(8) TempCommand$ = "" END FUNCTION FUNCTION VerbClimb% (a$) IF IsVerb(a$, "CLIMB") = 0 THEN VerbClimb = 0: EXIT FUNCTION IF (lo = 2 OR lo = 10) AND INSTR(a$, "FENCE") THEN Oprint "`7 You can't climb over the fence." + ret$ VerbClimb = 1: EXIT FUNCTION END IF IF lo = 10 AND INSTR(a$, "GATE") THEN Oprint "`7 You can't climb over the gate." + ret$ VerbClimb = 1: EXIT FUNCTION END IF END FUNCTION FUNCTION VerbDig% (a$) IF IsVerb(a$, "DIG") = 0 THEN VerbDig = 0: EXIT FUNCTION b$ = a$ IF INSTR(a$, " WITH ") = 0 AND INSTR(a$, " USING ") = 0 THEN b$ = GetWord$("`2 Dig using what: ", 1) END IF IF NounItem(b$, 6) AND o(6) = 0 THEN IF lo = 9 THEN Oprint "`7 The clerk shakes his head sadly and chuckles as you try digging here." + ret$ VerbDig = 1: EXIT FUNCTION END IF IF lo = 4 OR lo = 1 OR lo = 5 OR lo = 12 THEN Oprint "`7 Your shovel contacts something solid. You can't dig here." + ret$ VerbDig = 1: EXIT FUNCTION END IF IF lo = 10 THEN Oprint "`7 You can't dig through the concrete parking lot." + ret$ VerbDig = 1: EXIT FUNCTION END IF IF lo = 2 AND Special(11) = 0 THEN Oprint "`7 You begin digging a small hole. Your shovel slices into some kind of" + ret$ Oprint "`7 sprinkler line. You hear a grinding noise nearby. With a sheepish grin," + ret$ Oprint "`7 you stop digging." + ret$ AddScore 2 Special(11) = 1 VerbDig = 1: EXIT FUNCTION END IF Oprint "`7 You can't dig here." + ret$ VerbDig = 1: EXIT FUNCTION END IF m = IsItem(b$) IF m <> 0 THEN Oprint "`7 You can't dig using the " + oc$(m) + "." + ret$ ELSE IF INSTR(b$, "HAND") OR INSTR(b$, "FINGE") THEN Oprint "`7 You can't dig with your bare hands, at least not with any success." + ret$ ELSE Oprint "`7 You can't dig with something you aren't holding." + ret$ END IF END IF VerbDig = 1: EXIT FUNCTION END FUNCTION DEFINT A-Z FUNCTION VerbFunnyGet% (a$) IF IsVerb(a$, "GET") = 0 THEN EXIT FUNCTION 'wasn't trying to get anything at all! IF lo = 10 AND (INSTR(a$, "CAR") OR INSTR(a$, "MAZD") OR INSTR(a$, "323")) AND INSTR(a$, "CARD") = 0 THEN Oprint "`7 You pick up the `#Mazda 323`7." : Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus Oprint "`6 (Just kidding)`7." + ret$ VerbFunnyGet = 1: EXIT FUNCTION END IF IF lo = 9 THEN IF INSTR(a$, "CLERK") OR INSTR(a$, " MAN") THEN Oprint "`7 I don't think the clerk would let you take him with you." + ret$ VerbFunnyGet = 1: EXIT FUNCTION END IF IF INSTR(a$, "GOOD") OR INSTR(a$, "CRACK") OR INSTR(a$, "CANNED") OR INSTR(a$, "BOX") THEN Oprint "`7 You can't take anything off the shelves here." + ret$ VerbFunnyGet = 1: EXIT FUNCTION END IF END IF IF lo = 3 AND (INSTR(a$, "CHAIR")) THEN Oprint "`7 You can't pick up either of those heavy chairs." + ret$ VerbFunnyGet = 1: EXIT FUNCTION END IF VerbFunnyGet = 0 END FUNCTION DEFSNG A-Z FUNCTION VerbGetDrop% (a$) HasItems = 0 Warned = 0 FOR x = 1 TO MaxItems IF o(x) = 0 THEN HasItems = HasItems + 1 NEXT x g = 0 'Gotten anything? IF IsVerb(a$, "GET") THEN IF HasItems >= CanHold THEN Oprint "`5 You're holding as many items as you can. Drop something first." + ret$ VerbGetDrop = 1: EXIT FUNCTION END IF FOR x = 1 TO MaxItems IF RIGHT$(a$, 4) <> " ALL" THEN FOR y = 1 TO 4 IF o(x) = lo AND INSTR(a$, Uo$(x, y)) THEN IF HasItems >= CanHold THEN IF Warned = 0 THEN Oprint "`5 You're holding as many items as you can. Drop something first." + ret$ Warned = 1 END IF ELSE g = 1: HasItems = HasItems + 1 Oprint "`7 You pick up the `#" + oc$(x) + "`7." + ret$ o(x) = 0 END IF END IF NEXT y END IF IF RIGHT$(a$, 4) = " ALL" THEN IF o(x) = lo THEN IF HasItems >= CanHold THEN IF Warned = 0 THEN Oprint "`5 You're holding as many items as you can. Drop something first." + ret$ Warned = 1 END IF ELSE g = 1: HasItems = HasItems + 1 Oprint "`7 You pick up the `#" + oc$(x) + "`7." + ret$ o(x) = 0 END IF END IF END IF NEXT x END IF IF g <> 0 THEN VerbGetDrop = 1: EXIT FUNCTION g = 0 'Dropped anything? IF IsVerb(a$, "DROP") THEN FOR x = 1 TO MaxItems IF RIGHT$(a$, 4) <> " ALL" THEN FOR y = 1 TO 4 IF o(x) = 0 AND INSTR(a$, Uo$(x, y)) THEN IF lo = 4 AND x = 4 THEN Oprint "`7 You can't drop the `2" + oc$(x) + "`7 here." + ret$ ELSE g = 1 Oprint "`7 You drop the `#" + oc$(x) + "`7 here." + ret$ o(x) = lo END IF END IF NEXT y END IF IF RIGHT$(a$, 4) = " ALL" THEN IF o(x) = 0 THEN IF lo = 4 AND x = 4 THEN Oprint "`7 You can't drop the `2" + oc$(x) + "`7 here." + ret$ ELSE g = 1 Oprint "`7 You drop the `#" + oc$(x) + "`7 here." + ret$ o(x) = lo END IF END IF END IF NEXT x END IF IF g <> 0 THEN VerbGetDrop = 1: EXIT FUNCTION END FUNCTION DEFINT X FUNCTION VerbGive% (a$) IF IsVerb(a$, "GIVE") = 0 THEN VerbGive = 0: EXIT FUNCTION Found = 0 FOR x = 1 TO MaxItems IF Found = 0 THEN IF NounItem(a$, x) <> 0 AND o(x) = 0 THEN Found = x b$ = a$ IF INSTR(a$, " WITH ") = 0 AND INSTR(a$, " TO ") = 0 THEN b$ = GetWord$("`2 Give it to: ", 1) END IF IF b$ = "" THEN GOTO GoodOutVerbGive '*** NOW check for the object of the GIVE ** IF (INSTR(b$, "CLERK") OR INSTR(b$, "MAN")) AND lo = 9 AND x = 1 THEN IF Special(7) = 0 THEN Oprint "`7 You haven't even read it yet. Maybe you should keep it for now." + ret$ GOTO GoodOutVerbGive END IF o(1) = -1 Oprint "`7 The clerk gladly accepts the newspaper. Maybe now he won't be quite so" + ret$ Oprint "`7 bored. In fact, maybe it will keep him occupied for a while. As he holds" + ret$ Oprint "`7 the newspaper up to begin reading, a key falls out onto the floor" + ret$ AddScore 2 o(2) = lo GOTO GoodOutVerbGive END IF 'If giving newspaper to clerk at LO#9 '*** Trying to give the bandana to the clerk? IF (INSTR(b$, "CLERK") OR INSTR(b$, "MAN")) AND lo = 9 AND x = 4 THEN Oprint "`7 The clerk looks at you, puzzled, then runs a hand through his slick black" + ret$ Oprint "`7 hair and tells you that he has no use for the bandana." + ret$ GOTO GoodOutVerbGive END IF '*** Try giving the mebership card to the PIRATES IF (INSTR(b$, "PIRATE") OR INSTR(b$, "MAN") OR INSTR(b$, "MEN")) AND lo = 4 THEN IF x = 5 THEN Oprint "`7 The pirates frown, then look at the card. In turn, each one flashes a card of" + ret$ Oprint "`7 their own, as if the simple fact that you have one isn't too impressive." + ret$ GOTO GoodOutVerbGive END IF IF x = 4 THEN Oprint "`7 The pirates have their own. Keep it." + ret$ GOTO GoodOutVerbGive END IF END IF END IF 'If has an item that in their command line END IF 'If Found=0 NEXT x IF Found <> 0 THEN Oprint "`7 Nobody here wants the " + oc$(Found) + "." + ret$ GOTO GoodOutVerbGive END IF VerbGive = 0 'If nothing works out.... EXIT FUNCTION GoodOutVerbGive: VerbGive = 1 END FUNCTION DEFINT A-W, Y-Z FUNCTION VerbGo (a$) IF IsVerb(a$, "NORTH") THEN IF CanGo(1) <> 0 THEN lo = lo - RoomWidth: VerbGo = 1: EXIT FUNCTION END IF IF IsVerb(a$, "SOUTH") THEN IF CanGo(2) <> 0 THEN lo = lo + RoomWidth: VerbGo = 1: EXIT FUNCTION END IF IF IsVerb(a$, "EAST") THEN IF CanGo(3) <> 0 THEN lo = lo + 1: VerbGo = 1: EXIT FUNCTION END IF IF IsVerb(a$, "WEST") THEN IF CanGo(4) <> 0 THEN lo = lo - 1: VerbGo = 1: EXIT FUNCTION END IF VerbGo = 0 END FUNCTION DEFSNG A-Z FUNCTION VerbHelp% (a$) IF IsVerb(a$, "HELP") = 0 THEN VerbHelp = 0: EXIT FUNCTION IF VariFile(GameFile$ + ".TXT") = 0 THEN Oprint "`% [ERROR: `2HELP FILE COULD NOT BE FOUND. FILE `0" + GameFile$ + ".TXT `2IS MISSING`%]" + ret$ VerbHelp = 1: EXIT FUNCTION END IF TagLine$ = "`}`$Viewing InGame Instructions" ShowFile GameFile$ + ".TXT", "@@HELP" VerbHelp = 2 END FUNCTION FUNCTION VerbInsert% (a$) IF IsVerb(a$, "INSERT") = 0 THEN VerbInsert = 0: EXIT FUNCTION IF NounItem(a$, 2) AND o(2) = 0 THEN b$ = "" IF INSTR(a$, " INTO ") = 0 AND INSTR(a$, " IN ") = 0 AND INSTR(a$, " INSIDE ") = 0 THEN b$ = GetWord$("`2 Insert the key into what: ", 1) ELSE b$ = a$ END IF IF (INSTR(b$, "LOCK") OR INSTR(b$, "GATE") OR INSTR(b$, "DOOR")) AND lo = 10 THEN IF Special(5) = 0 THEN Oprint "`7 You slide the key into the lock and turn it. The gate clicks and opens just" + ret$ Oprint "`7 a hair." + ret$ Special(5) = 1 VerbInsert = 1: EXIT FUNCTION ELSE Oprint "`7 The gate is already unlocked." + ret$ VerbInsert = 1: EXIT FUNCTION END IF END IF IF b$ = "" THEN VerbInsert = 1: EXIT FUNCTION END IF IF ContainsToken(b$) <> 0 THEN Oprint "`7 You can't seem to make the key fit there. Maybe it fits something else." + ret$ ELSE Oprint "`7 You don't see that here. Maybe the key fits something else." + ret$ END IF VerbInsert = 1: EXIT FUNCTION END IF END FUNCTION FUNCTION VerbJump% (a$) IF IsVerb(a$, "JUMP") = 0 THEN VerbJump = 0: EXIT FUNCTION IF lo = 12 THEN Oprint ret$ + "`7 You climb back up on the rail and leap to your death in the cold river." + ret$ + ret$ ScoreToggle = 0: StatLine GameOver END IF END FUNCTION FUNCTION VerbLoadGame% (a$) IF IsVerb(a$, "LOAD") = 0 THEN VerbLoadGame = 0: EXIT FUNCTION Oprint "`7 Do you wish to `$LOAD`7 previously saved position in the game? `6(Y/N) `%" t$ = UCASE$(KbIn$(1, "", "%", 0)) ClearLine IF t$ <> "Y" THEN VerbLoadGame = 1: EXIT FUNCTION '*** Otherwise, LOAD the position in the game!!! :) DIM Tempo(MaxItems) 'Where item is LOCATED. 0=In Inventory!! DIM TempSpecial(MaxSpecial) AS INTEGER 'How many "Special" things are there? DIM TempSpecial AS INTEGER, TempScore AS INTEGER IF VariFile(GameFile$ + ".SGM") = 0 THEN Oprint " `7You haven't saved a game yet." + ret$ VerbLoadGame = 1: EXIT FUNCTION END IF ON ERROR GOTO WatchError OPEN GameFile$ + ".SGM" FOR INPUT SHARED AS #1 IF ErrorFound <> 0 THEN GOTO VerbLoadGameError Check$ = "": c1! = 0: c2! = 0 FOR x = 1 TO MaxSpecial INPUT #1, TempSpecial(x): c1! = c1! + TempSpecial(x) + 2 NEXT x IF ErrorFound <> 0 THEN GOTO VerbLoadGameError FOR x = 1 TO MaxItems INPUT #1, Tempo(x): c2! = c2! + Tempo(x) + 3 NEXT x IF ErrorFound <> 0 THEN GOTO VerbLoadGameError INPUT #1, TempLo INPUT #1, TempScore LINE INPUT #1, OldCheck$ 'Checksum digit to prevent "TAMPERING" with save-game file heheheh Check$ = LTRIM$(RTRIM$(STR$(c1!))) + "421" + LTRIM$(RTRIM$(STR$(TempScore))) + LTRIM$(RTRIM$(STR$(c2!))) + LTRIM$(RTRIM$(STR$(TempLo * 17))) + "84" IF ErrorFound <> 0 THEN GOTO VerbLoadGameError CLOSE #1 IF ErrorFound <> 0 THEN GOTO VerbLoadGameError IF OldCheck$ <> Check$ THEN Oprint "`@ [SORRY. YOU HAVE ATTEMPTED TO LOAD AN INVALID SAVE FILE FOR THIS GAME!]" + ret$ SetStandardErrorTrap VerbLoadGame = 1 EXIT FUNCTION END IF FOR x = 1 TO MaxItems: o(x) = Tempo(x): NEXT x FOR x = 1 TO MaxSpecial: Special(x) = TempSpecial(x): NEXT x lo = TempLo score = TempScore SetStandardErrorTrap VerbLoadGame = 2 IF SoundOn <> 0 THEN PLAY "mbmnt160l16o0cdo2cdo4cdmn" EXIT FUNCTION VerbLoadGameError: CLOSE #1 Oprint "`% [ERROR: `2GAME COULD NOT BE LOADED. PROBLEM ENCOUNTERED USING FILE `0" + GameFile$ + ".SGM`%]" + ret$ SetStandardErrorTrap VerbLoadGame = 1 END FUNCTION FUNCTION VerbLook% (a$) IF IsVerb(a$, "LOOK") = 0 THEN VerbLook = 0: EXIT FUNCTION IF lo = 5 AND (INSTR(a$, "GRAY") OR INSTR(a$, "SHELF") OR INSTR(a$, "SHELV") OR INSTR(a$, "RACK")) THEN IF o(3) = 100 THEN Oprint "`7 You notice a can of oil on the shelf, but beyond that it's bare." + ret$ o(3) = lo: GOTO VerbLookReturn END IF IF o(6) = 100 THEN Oprint "`7 Woops, you almost missed that big SHOVEL that's on the shelf too. Silly you." + ret$ AddScore 1 o(6) = lo: GOTO VerbLookReturn END IF END IF IF lo = 10 AND (INSTR(a$, "FENCE") OR INSTR(a$, "GATE")) THEN IF Special(5) = 0 AND Special(2) = 0 THEN Oprint "`7 The gate is closed and appears to be locked." + ret$ GOTO VerbLookReturn END IF IF Special(5) = 1 AND Special(2) = 0 THEN Oprint "`7 The gate is closed, but it appears to be unlocked." + ret$ GOTO VerbLookReturn END IF IF Special(2) <> 0 THEN Oprint "`7 The gate is open and a sidewalk leads to the North." + ret$ GOTO VerbLookReturn END IF END IF IF lo = 3 AND (INSTR(a$, "MAIL") OR INSTR(a$, "BOX")) THEN IF Special(10) = 0 THEN Oprint "`7 The lid of the ornamented metal mailbox is closed." + ret$ GOTO VerbLookReturn END IF IF Special(10) <> 0 THEN IF o(7) = 100 THEN o(7) = lo Oprint "`7 You notice a note of some kind inside the mailbox." + ret$ GOTO VerbLookReturn END IF Oprint "`7 the lid of the mailbox is open." + ret$ GOTO VerbLookReturn END IF END IF IF lo = 2 AND INSTR(a$, "DOOR") THEN IF Special(4) = 0 THEN Oprint "`7 The door looks very ordinary, and is currently closed." + ret$ ELSE Oprint "`7 The door is open and a path leads into the house to the west." + ret$ END IF GOTO VerbLookReturn END IF IF lo = 10 AND (INSTR(a$, "CAR") OR INSTR(a$, "MAZD") OR INSTR(a$, "323")) AND INSTR(a$, "CARD") = 0 THEN IF Special(14) = 0 THEN Oprint "`7 The hood of the old car is closed." + ret$ ELSE Oprint "`7 The hood of the Mazda is open and you peer in at the engine. The oil cap is" + ret$ Oprint "`7 missing. You pull and check the dip stick and it's about a quart low." + ret$ IF Special(15) = 0 THEN Special(15) = 1: AddScore 1 END IF END IF GOTO VerbLookReturn END IF IF lo = 2 THEN IF INSTR(a$, "PORCH") THEN Oprint "`7 It's a simple cement porch. Some grass and dirt has blown onto it, and" + ret$ Oprint "`7 it appears that nobody has been in the habit of keeping up with it." + ret$ GOTO VerbLookReturn END IF IF INSTR(a$, "HOUSE") THEN Oprint "`7 The house is small and is painted a light shade of red (but not so light as" + ret$ Oprint "`7 to be pink by any means). It's slightly chipping though." + ret$ GOTO VerbLookReturn END IF IF INSTR(a$, "FENCE") THEN Oprint "`7 It's a metal chain-link fence and appears to be pretty rusty." + ret$ GOTO VerbLookReturn END IF IF INSTR(a$, "PLANT") OR INSTR(a$, "POTT") OR INSTR(a$, "LEAVE") THEN Oprint "`7 The plants are fake. The plastic leaves are weathered and faded." + ret$ GOTO VerbLookReturn END IF END IF IF lo = 3 THEN IF INSTR(a$, "CHAIR") THEN Oprint "`7 The chairs are crafted of wooden branches and planks. They appear to be very" + ret$ Oprint "`7 well-made, but none too comfortable." + ret$ GOTO VerbLookReturn END IF END IF IF lo = 12 THEN IF INSTR(a$, "WEBB") OR INSTR(a$, "BRIDGE") THEN Oprint "`7 This bridge was recently rebuilt. It's one of the oldest bridges in these" + ret$ Oprint "`7 parts. It marks the edge of Milford, which is a small town just south of the" + ret$ Oprint "`7 city you can see in the distance from here. The town of Milford is to the" + ret$ Oprint "`7 west. Your home is just over the bridge to the east." + ret$ GOTO VerbLookReturn END IF IF INSTR(a$, "RIVER") THEN Oprint "`7 The river is shrouded in near-darkness, but its roar is anything but hidden." + ret$ GOTO VerbLookReturn END IF END IF IF lo = 7 THEN IF INSTR(a$, "HOUSE") OR INSTR(a$, "WINDOW") THEN Oprint "`7 You see a fairly large gray brick house. A light is visible in one window." + ret$ GOTO VerbLookReturn END IF END IF IF lo = 10 THEN IF INSTR(a$, "CONVEN") OR INSTR(a$, "CLERK") OR INSTR(a$, "STORE") THEN Oprint "`7 To the west you see a convenience store. The large white-on-red sign states" + ret$ Oprint "`7 proudly `%`dMannyMart`h`7 like you've seen a thousand times before. Inside" + ret$ Oprint "`7 the store, behind the counter, is a clerk." + ret$ GOTO VerbLookReturn END IF END IF IF lo = 1 THEN IF INSTR(a$, "FLOOR") THEN Oprint "`7 You're standing on a dusty hard-wood floor." + ret$ GOTO VerbLookReturn END IF IF INSTR(a$, "RIBBON") OR INSTR(a$, "PLAST") THEN Oprint "`7 Upon closer inspection, you notice a chalk outline - in the shape of a" + ret$ Oprint "`7 dismembered person - drawn on the floor near the yellow police ribbon." + ret$ GOTO VerbLookReturn END IF END IF IF lo = 8 THEN IF INSTR(a$, "SQUAD") OR INSTR(a$, "CARS") OR INSTR(a$, "POLICE") OR INSTR(a$, "MEN") THEN Oprint "`7 The squad cars are blocking the street and jacketed policemen behind them" + ret$ Oprint "`7 seem to be anticipating something to come through here soon." + ret$ GOTO VerbLookReturn END IF END IF IF lo = 9 THEN IF INSTR(a$, "MAN") OR INSTR(a$, "CLERK") THEN Oprint "`7 The clerk appears to be in his early twenties. He is skinny and has slick" + ret$ Oprint "`7 black hair. He is wearing an ugly brown button-up shirt and blue jeans." + ret$ GOTO VerbLookReturn END IF END IF '**************************************************************************** '***** Otherwise, use existing room TOKENS to determine if it's even HERE or ' Not. If not, say it's not here, if it's here, say it looks ordinary :) IF ContainsToken(a$) = 0 THEN Oprint "`7 You don't see that here." + ret$ VerbLook = 1: EXIT FUNCTION END IF t = INT(3 * RND(1)) + 1 IF t = 1 THEN Oprint "`7 You see something very ordinary." + ret$ IF t = 2 THEN Oprint "`7 You don't notice anything unusual about that." + ret$ IF t = 3 THEN Oprint "`7 It's just as you'd expect." + ret$ VerbLookReturn: VerbLook = 1: EXIT FUNCTION END FUNCTION FUNCTION VerbLookAtItems% (a$) g = 0 IF IsVerb(a$, "LOOK") THEN FOR x = 1 TO MaxItems FOR y = 1 TO 4 IF (o(x) = 0 OR o(x) = lo) AND INSTR(a$, Uo$(x, y)) AND g = 0 THEN g = x NEXT y NEXT x END IF IF g = 1 THEN Oprint "" + ret$ Oprint "`7`h `8`g`g±`}°`8 `}³`8 `}°`8±`h`7" + ret$ Oprint "`7`h `g`}`g°`8° `} `4-=-=- REBEL VOICE -=-=-`8 ³ `}individuals have taken to`8 °`}°`h`7`h" + ret$ Oprint "`7`h `8`g`g±`}°`8 `4 `8 `1Vol:1`4,`1 no.6 `8 `4 `8 `}³`8 `}stealing oxygen equipment`8 `}in °`8±`h`7" + ret$ Oprint "`7`h `g`}`g°`8° `4-=-=-=-=-=-=-=-=-=-=-=-=-=- `8 `}³`8 `}any way they feel necessary.`8 °`}°`h`7`h" + ret$ Oprint "`7`h `8`g`g±`}°`8 ³ `}We certainly don't condone`8 `}°`8±`h`7" + ret$ Oprint "`7`h `g`}`g°`8° `}BLAH BLAH BLAH BLAH`8 `}³`8 `}this vigilante group, but`8 °`}°`h`7`h" + ret$ Oprint "`7`h `8`g`g±`}°`8 `}Blah blah blah... blah. If`4 `8 ³ `}their actions are really `8 `}°`8±`h`7" + ret$ Oprint "`7`h `g`}`g°`8° `}blah blah and blah for blah`8 `}³`8 `}beginning to have a positive`8 °`}°`h`7`h" + ret$ Oprint "`7`h `8`g`g±`}°`8 `}then blah blah.`8 `}³`8 `}impact on our general goal -`8 `}°`8±`h`7" + ret$ Oprint "`7`h `g`}`g°`8° `}³`8 `}survival at all costs! `8 °`}°`h`7`h" + ret$ Oprint "`7`h `8`g`g±`}°`8 `}BREATH PIRATES RISING`8 `}³`8 `}°`8±`h`7" + ret$ Oprint "`7`h `g`}`g°`8° `}It seems that some of our`8 `}³`8 `}BLAH BLAH`8 °`}°`h`7`h" + ret$ Oprint "`7`h `8`g`g±`}°`8 `}supporters are reacting in`8 ³ `}Blah blah blah... blah. Blah`8 `}°`8±`h`7" + ret$ Oprint "`7`h `g`}`g°`8° `}an unexpected way. Calling`8 `}³`8 `}blahblahblah blah blahblah.`8 °`}°`h`7`h" + ret$ Oprint "`7`h `8`g`g±`}°`8 `}themselves the " + CHR$(34) + "Breath`8 `}³`8 `}°`8±`h`7" + ret$ Oprint "`7`h `g`}`g°`8° `}Pirates," + CHR$(34) + " these dangerous`8 ³ `4 ...Stormfront Publications `8°`}°`h`7`h" + ret$ Oprint "`7`h `8`g`g±`}°`8 `}³`8 `}°`8±`h`7" + ret$ Oprint "" + ret$ IF Special(7) = 0 THEN PressEnter Oprint "" + ret$ Oprint "`@ Your expression changes as you read the newspaper. The pirates have a" + ret$ Oprint " reason for living. You make up your mind to join their ranks." + ret$ AddScore 2 Oprint "" + ret$ END IF Special(7) = 1 END IF IF g = 2 THEN Oprint "`7 The key is about an inch long and is made of brass. It looks like any other" + ret$ Oprint "`7 key you have ever seen." + ret$ END IF IF g = 3 THEN Oprint "`7 It is a partially-full can of light-weight motor oil." + ret$ END IF IF g = 4 THEN Oprint "`7 The bandana fabric is black. Printed on one side is a large red skull" + ret$ Oprint "`7 with crossed bones under it." + ret$ END IF IF g = 5 THEN Oprint "`7 The card is plastic and is slightly larger than a credit card. It's white," + ret$ Oprint "`7 and in one corner is a small icon of a red skull and black crossed bones." + ret$ END IF IF g = 6 THEN Oprint "`7 The shovel has a long wooden handle and the blade is very sharp." + ret$ END IF IF g = 7 THEN Oprint FixQuote$("`7 Hand-scribbled on the note is a message. It says \Knock 3 times and wait.\" + ret$) IF Special(12) = 0 THEN Special(12) = 1: AddScore 1 END IF END IF IF g > 0 THEN VerbLookAtItems = 1 ELSE VerbLookAtItems = 0 END FUNCTION FUNCTION VerbMiscel% (a$) '*** this should be called after all "defined" verbs have been tried. IF LEFT$(a$, 5) = "KNOCK" AND lo = 3 THEN IF INSTR(a$, "3") OR INSTR(a$, "THREE") THEN Oprint "`7 You can't do that." + ret$ VerbMiscel = 1: EXIT FUNCTION END IF IF INSTR(a$, "KNOCK") AND INSTR(INSTR(a$, "KNOCK") + 1, a$, "KNOCK") THEN Oprint "`7 You can't do that." + ret$ VerbMiscel = 1: EXIT FUNCTION END IF Special(13) = Special(13) + 1 Oprint "`7 .... KNOCK" + ret$ VerbMiscel = 1: EXIT FUNCTION END IF IF LEFT$(a$, 5) = "WAIT " OR a$ = "WAIT" OR a$ = "Z" THEN IF lo = 3 AND Special(13) = 3 AND Special(12) <> 0 AND Special(3) = 0 THEN AddScore 2 Special(3) = 1: CanGo(3) = 1 Oprint "`7 As you are waiting, somebody opens the door of the house from the inside." + ret$ VerbMiscel = 1: EXIT FUNCTION END IF Oprint "`7 You wait, but nothing happens." + ret$ VerbMiscel = 1: EXIT FUNCTION END IF IF LEFT$(a$, 5) = "SING " OR a$ = "SING" THEN Oprint "`7 .... la la teee da!" + ret$ VerbMiscel = 1: EXIT FUNCTION END IF IF LEFT$(a$, 5) = "YELL " OR a$ = "YELL" OR a$ = "SCREAM" OR LEFT$(a$, 7) = "SCREAM " OR a$ = "SHOUT" OR LEFT$(a$, 6) = "SHOUT " THEN Oprint "`7 .... AAAAAAAHHHHHHHHHHHHGGGGGGHHHHH!" + ret$ VerbMiscel = 1: EXIT FUNCTION END IF IF LEFT$(a$, 4) = "SAY " OR a$ = "SAY" THEN Oprint "`7 You said it!" + ret$ VerbMiscel = 1: EXIT FUNCTION END IF IF LEFT$(a$, 7) = "VERSION" THEN Oprint ret$ + Version$ + ret$ + ret$ VerbMiscel = 1: EXIT FUNCTION END IF 'IF a$ = "RESTART" THEN RUN VerbMiscel = 0: EXIT FUNCTION END FUNCTION FUNCTION VerbMove% (a$) IF IsVerb(a$, "MOVE") = 0 THEN VerbMove = 0: EXIT FUNCTION '**** Attempting to MOVE things!! IF lo = 2 AND (INSTR(a$, "PLANT") OR INSTR(a$, "POTT")) THEN Oprint "`7 You move one of the potted plants, but upon realizing that it did you no good" + ret$ Oprint "`7 you move it back." + ret$ GOTO VerbMoveReturn END IF IF lo = 3 AND INSTR(a$, "CHAIR") THEN Oprint "`7 You move one of the chairs, but upon realizing that it did you no good" + ret$ Oprint "`7 you move it back." + ret$ GOTO VerbMoveReturn END IF VerbMove = 0: EXIT FUNCTION VerbMoveReturn: VerbMove = 1 END FUNCTION FUNCTION VerbOpen% (a$) IF IsVerb(a$, "OPEN") = 0 THEN VerbOpen = 0: EXIT FUNCTION IF lo = 10 AND (INSTR(a$, " GATE") OR INSTR(a$, " FENCE") OR INSTR(a$, "DOOR")) THEN IF Special(5) = 0 THEN Oprint "`7 You try opening the gate but it's locked shut." + ret$ GOTO VerbOpenReturn END IF IF Special(2) = 0 THEN CanGo(1) = 1: Special(2) = 1 Oprint "`7 The gate swings open easily." + ret$ AddScore 2 GOTO VerbOpenReturn END IF Oprint "`7 The gate is already open." + ret$ GOTO VerbOpenReturn END IF IF lo = 3 AND (INSTR(a$, "LID") OR INSTR(a$, "MAIL") OR INSTR(a$, "BOX")) THEN IF Special(9) = 0 THEN Oprint "`7 You attempt to lift the lid of the mailbox but it appears to have remained" + ret$ Oprint "`7 closed for so long that it will no longer open." + ret$ GOTO VerbOpenReturn END IF IF Special(10) = 0 THEN Special(10) = 1 Oprint "`7 The lid of the mailbox opens easily." + ret$ AddScore 1 GOTO VerbOpenReturn END IF Oprint "`7 The mailbox has already been opened." + ret$ GOTO VerbOpenReturn END IF IF lo = 2 AND (INSTR(a$, "DOOR") OR INSTR(a$, "HOUSE")) THEN IF Special(11) = 0 THEN Oprint "`7 You tug on the doorknob but it won't budge. It appears to be locked." + ret$ GOTO VerbOpenReturn END IF IF Special(4) = 0 THEN Special(4) = 1 Oprint "`7 The door opens easily." + ret$ AddScore 1 CanGo(4) = 1 GOTO VerbOpenReturn END IF Oprint "`7 The door to the west is already open!" + ret$ GOTO VerbOpenReturn END IF IF lo = 1 AND (INSTR(a$, "DOOR") OR INSTR(a$, "CLOSET")) THEN IF o(5) <> 100 THEN Oprint "`7 You tug on the closet door but this time it won't budge." + ret$ ELSE Oprint "`7 It doesn't open easy, but you manage to get a good grip on the doorknob and" + ret$ Oprint "`7 pull the door open. You catch a glimpse inside an empty closet. Then, as if" + ret$ Oprint "`7 spring-loaded, the knob jumps out of your grip and the door slams shut." + ret$ o(5) = lo END IF GOTO VerbOpenReturn END IF IF lo = 10 AND INSTR(a$, "HOOD") THEN IF Special(14) = 0 THEN Oprint "`7 After a slight struggle, you manage to open the hood of the old car." + ret$ Special(14) = 1 ELSE Oprint "`7 The car's hood is already open." + ret$ END IF GOTO VerbOpenReturn END IF VerbOpen = 0: EXIT FUNCTION VerbOpenReturn: VerbOpen = 1 END FUNCTION FUNCTION VerbPour% (a$) IF IsVerb(a$, "POUR") = 0 THEN VerbPour = 0: EXIT FUNCTION IF NounItem(a$, 3) AND o(3) = 0 THEN b$ = "" IF INSTR(a$, " INTO ") = 0 AND INSTR(a$, " IN ") = 0 AND INSTR(a$, " INSIDE ") = 0 AND INSTR(a$, " ON ") = 0 AND INSTR(a$, " ONTO ") = 0 THEN b$ = GetWord$("`2 Pour the oil onto what: ", 1) ELSE b$ = a$ END IF IF b$ = "" THEN GOTO VerbPourReturn END IF IF (INSTR(b$, "HING") OR INSTR(b$, "MAIL") OR INSTR(b$, "BOX") OR INSTR(b$, "LID")) AND lo = 3 THEN IF Special(9) = 0 THEN Oprint "`7 You pour some of the oil onto the hinges of the lid of the mailbox." + ret$ Special(9) = 1 AddScore 2 GOTO VerbPourReturn ELSE Oprint "`7 You have already oiled the hinges of the mailbox." + ret$ GOTO VerbPourReturn END IF END IF IF (INSTR(b$, "CAR") OR INSTR(b$, "ENGIN") OR INSTR(b$, "MOTOR") OR INSTR(b$, "MAZDA") OR INSTR(b$, "323")) AND lo = 10 AND Special(14) <> 0 THEN IF o(4) <> 0 THEN Oprint "`7 You stoop over to service the car. As you do, something heavy smacks you." + ret$ Oprint "`7 Your breathmask is ripped off and you manage to see three young men wearing" + ret$ Oprint "`7 black bandanas right before you fall to the ground." + ret$ + ret$ ELSE Oprint "`7 About the time you get started, you hear a gunshot. You look up from the" + ret$ Oprint "`7 car to see the clerk standing in the doorway of his store. He yells something" + ret$ Oprint "`7 at you, and his second shot hits you in the chest." + ret$ + ret$ END IF GameOver END IF IF ContainsToken(b$) <> 0 THEN Oprint "`7 It wouldn't help to try pouring oil on that." + ret$ ELSE Oprint "`7 You don't see that here." + ret$ END IF GOTO VerbPourReturn END IF '*** default VerbPour = 0: EXIT FUNCTION VerbPourReturn: VerbPour = 1 END FUNCTION FUNCTION VerbQuit% (a$) IF IsVerb(a$, "QUIT") = 0 THEN VerbQuit = 0: EXIT FUNCTION Oprint "```4****`@**** ```%Are you sure you want to quit? `7(Y/N) ```@****`4****```$" + STRING$(10, 8) t$ = UCASE$(KbIn$(1, "", "%", 0)) ClearLine IF t$ <> "Y" THEN VerbQuit = 1: EXIT FUNCTION TIMER OFF VIEW PRINT 1 TO 24 CLS Oprint "" + ret$ Oprint "" + ret$ Oprint "" + ret$ Oprint "`! Thanks for playing `0Breath Pirates`!!" + ret$ + ret$ + ret$ END END FUNCTION FUNCTION VerbSaveGame% (a$) IF IsVerb(a$, "SAVE") = 0 THEN VerbSaveGame = 0: EXIT FUNCTION Oprint "`7 Do you wish to `$SAVE`7 your current position in the game? `6(Y/N) `%" t$ = UCASE$(KbIn$(1, "", "%", 0)) ClearLine IF t$ <> "Y" THEN VerbSaveGame = 1: EXIT FUNCTION '*** Otherwise, SAVE the position in the game!!! :) ON ERROR GOTO WatchError OPEN GameFile$ + ".SGM" FOR OUTPUT SHARED AS #1 IF ErrorFound <> 0 THEN GOTO VerbSaveGameError Check$ = "": c1! = 0: c2! = 0 FOR x = 1 TO MaxSpecial PRINT #1, Special(x): c1! = c1! + Special(x) + 2 NEXT x IF ErrorFound <> 0 THEN GOTO VerbSaveGameError FOR x = 1 TO MaxItems PRINT #1, o(x): c2! = c2! + o(x) + 3 NEXT x IF ErrorFound <> 0 THEN GOTO VerbSaveGameError PRINT #1, lo PRINT #1, score 'Checksum digit to prevent "TAMPERING" with save-game file heheheh Check$ = LTRIM$(RTRIM$(STR$(c1!))) + "421" + LTRIM$(RTRIM$(STR$(score))) + LTRIM$(RTRIM$(STR$(c2!))) + LTRIM$(RTRIM$(STR$(lo * 17))) + "84" IF ErrorFound <> 0 THEN GOTO VerbSaveGameError PRINT #1, Check$ CLOSE #1 IF ErrorFound <> 0 THEN GOTO VerbSaveGameError IF SoundOn <> 0 THEN PLAY "mbmnt160l16o4dco2dco0dcmn" Oprint "`2 [GAME HAS NOW BEEN SAVED. TO RESTORE LATER, TYPE `0LOAD`2]" + ret$ VerbSaveGame = 1 SetStandardErrorTrap EXIT FUNCTION VerbSaveGameError: CLOSE #1 SetStandardErrorTrap Oprint "`% [ERROR: `2GAME COULD NOT BE SAVED. PROBLEM ENCOUNTERING SAVING FILE `0" + GameFile$ + ".SGM`%]" + ret$ VerbSaveGame = 1 END FUNCTION FUNCTION VerbTalk% (a$) IF IsVerb(a$, "TALK") = 0 THEN EXIT FUNCTION 'Wasn't trying to talk after all IF lo = 9 AND (INSTR(a$, "CLERK") OR INSTR(a$, "MAN")) THEN 'In the convenience store.... b$ = a$ IF RIGHT$(a$, 5) = "CLERK" OR RIGHT$(a$, 4) = " MAN" THEN IF INSTR(a$, " ABOUT") = 0 AND INSTR(a$, " FOR") = 0 THEN b$ = GetWord$("`2 Talk about: ", 1) END IF IF b$ = "" THEN VerbTalk = 1: EXIT FUNCTION END IF IF INSTR(b$, "STING") OR INSTR(b$, "POLIC") OR INSTR(b$, "RAID") OR INSTR(b$, "BUST") OR INSTR(b$, "COP") THEN IF Special(1) = 0 AND Special(8) <> 0 THEN Oprint FixQuote$("`7 \I thought you might want to know that the police are conducting raids on" + ret$) Oprint FixQuote$("`7 what they think may be Breath Pirate fronts,\ you say. \So, you might want" + ret$) Oprint FixQuote$("`7 to hide the newspaper I gave you.\" + ret$) Oprint FixQuote$("`7 The clerk smiles. \Thanks for the tip,\ he says, \but they already checked" + ret$) Oprint FixQuote$("`7 the place out so I'm safe. I know I can trust you now though. Feel free" + ret$) Oprint FixQuote$("`7 to take whatever you find in the supply room.\" + ret$) Special(1) = 1: CanGo(1) = 1 AddScore 1 VerbTalk = 1: EXIT FUNCTION END IF END IF IF INSTR(b$, "CAR") OR INSTR(b$, "323") OR INSTR(b$, "MAZDA") THEN Oprint FixQuote$("`7 \I don't know much about that old car,\ says the clerk. \Somebody parked it" + ret$) Oprint FixQuote("`7 out there several months ago. I suppose if you can get it running, you can" + ret$) Oprint FixQuote$("`7 have the thing.\" + ret$) VerbTalk = 1: EXIT FUNCTION END IF IF INSTR(b$, "PIRATE") THEN IF o(1) < 0 THEN Oprint FixQuote$("`7 \They don't sound like my kind of people at all,\ comments the clerk." + ret$) ELSE Oprint FixQuote$("`7 \Breath Pirates?\ asks the clerk. \Never heard of them!\" + ret$) END IF VerbTalk = 1: EXIT FUNCTION END IF Oprint "`7 He doesn't understand what you're trying to talk to him about." + ret$ VerbTalk = 1: EXIT FUNCTION END IF IF lo = 8 AND (INSTR(a$, "POLICE") OR INSTR(a$, "COP") OR INSTR(a$, "MAN") OR INSTR(a$, "MEN")) THEN 'In the convenience store.... b$ = a$ IF RIGHT$(a$, 4) = "COPS" OR RIGHT$(a$, 3) = "COP" OR RIGHT$(a$, 6) = "POLICE" OR RIGHT$(a$, 3) = "MAN" OR RIGHT$(a$, 3) = "MEN" THEN IF INSTR(a$, " ABOUT") = 0 AND INSTR(a$, " FOR") = 0 THEN b$ = GetWord$("`2 Talk about: ", 1) END IF IF b$ = "" THEN VerbTalk = 1: EXIT FUNCTION END IF Oprint "`7 One of the rookies looks over at you." + ret$ IF INSTR(b$, "PIRATE") OR INSTR(b$, "BREATH") THEN Oprint FixQuote$("`7 \The Breath Pirates started as a small band of vigilantes,\ explains the" + ret$) Oprint FixQuote$("`7 rookie. \It's quickly getting out of hand though. We're waiting for a" + ret$) Oprint FixQuote("`7 carload of them who are supposed to try smuggling stolen oxygen soon. We" + ret$) Oprint FixQuote$("`7 have another unit in the process of busting convenience and liquor stores" + ret$) Oprint FixQuote$("`7 that are suspected of being fronts for pirate operations.\" + ret$) Special(8) = 1 VerbTalk = 1: EXIT FUNCTION END IF IF INSTR(b$, "CLERK") THEN Oprint FixQuote$("`7 \A Clerk?\ asks the policeman. \We already know about him.\" + ret$) VerbTalk = 1: EXIT FUNCTION END IF IF INSTR(b$, "BANDAN") THEN Oprint FixQuote$("`7 \The black bandana is a symbol of the Breath Pirates,\ explains the rookie." + ret$) VerbTalk = 1: EXIT FUNCTION END IF IF INSTR(b$, "HOUSE") THEN Oprint FixQuote$("`7 \You know where they live?\ asks the rookie." + ret$) VerbTalk = 1: EXIT FUNCTION END IF Oprint "`7 He doesn't understand what you're trying to talk to him about." + ret$ VerbTalk = 1: EXIT FUNCTION END IF IF lo = 4 AND (INSTR(a$, "MAN") OR INSTR(a$, "MEN") OR INSTR(a$, "WOMEN") OR INSTR(a$, "PIRATE")) THEN 'In the Breath Pirate's home! b$ = a$ IF RIGHT$(a$, 5) = "MAN" OR RIGHT$(a$, 4) = " MEN" OR RIGHT$(a$, 6) = "PIRATE" OR RIGHT$(a$, 7) = "PIRATES" THEN IF INSTR(a$, " ABOUT") = 0 AND INSTR(a$, " FOR") = 0 THEN b$ = GetWord$("`2 Talk about: ", 1) END IF IF b$ = "" THEN VerbTalk = 1: EXIT FUNCTION END IF IF INSTR(b$, "JOIN") OR INSTR(b$, "MEMBER") THEN IF o(5) <> 0 THEN Oprint FixQuote$("`7 The pirates laugh in unison. \This is BY REQUEST ONLY,\ one replies to you." + ret$) VerbTalk = 1: EXIT FUNCTION END IF '** Otherwise, you've asked to join, you have the card, so you WON!! AddScore 2 WinGame END IF IF INSTR(b$, "POLICE") OR INSTR(b$, "COPS") OR INSTR(b$, "RAID") OR INSTR(b$, "STING") THEN Oprint "`7 At the very mention of it, the pirates swarm on you like angry dogs and have" + ret$ Oprint "`7 a nice time tearing you apart. That must have been a very touchy subject." + ret$ + ret$ GameOver END IF Oprint "`7 They aren't paying much attention to you." + ret$ VerbTalk = 1: EXIT FUNCTION END IF VerbTalk = 0 END FUNCTION FUNCTION VerbUnlock% (a$) IF IsVerb(a$, "UNLOCK") = 0 THEN VerbUnlock = 0: EXIT FUNCTION IF lo = 10 AND (INSTR(a$, " GATE") OR INSTR(a$, " DOOR") OR INSTR(a$, " LOCK")) THEN IF Special(5) <> 0 THEN Oprint "`7 The gate is not locked!" + ret$ VerbUnlock = 1: EXIT FUNCTION END IF b$ = "" IF INSTR(a$, " USING ") = 0 AND INSTR(a$, " USE ") = 0 AND INSTR(a$, " WITH ") = 0 THEN b$ = GetWord$("`2 Unlock the gate with what: ", 1) ELSE b$ = a$ END IF IF INSTR(b$, "KEY") AND o(2) = 0 THEN Oprint "`7 You slide the key into the lock and turn it. The gate clicks and opens just" + ret$ Oprint "`7 a hair." + ret$ Special(5) = 1 VerbUnlock = 1: EXIT FUNCTION END IF IF b$ = "" THEN VerbUnlock = 1: EXIT FUNCTION END IF IF IsItem(b$) <> 0 THEN Oprint "`7 You can't unlock the gate with that." + ret$ ELSE Oprint "`7 You can't unlock the gate with something you don't have!" + ret$ END IF VerbUnlock = 1: EXIT FUNCTION END IF IF (lo = 3 OR lo = 2) AND (INSTR(a$, " DOOR") OR INSTR(a$, " HOUSE") OR INSTR(a$, " LOCK")) THEN IF (lo = 3 AND Special(3) <> 0) OR (lo = 2 AND Special(11) <> 0) THEN Oprint "`7 The door of the house is not locked!" + ret$ VerbUnlock = 1: EXIT FUNCTION END IF b$ = "" IF INSTR(a$, " USING ") = 0 AND INSTR(a$, " USE ") = 0 AND INSTR(a$, " WITH ") = 0 THEN b$ = GetWord$("`2 Unlock the door with what: ", 1) ELSE b$ = a$ END IF IF NounItem(b$, 2) AND o(2) = 0 THEN Oprint "`7 You poke your key at the keyhole but it doesn't appear to fit." + ret$ VerbUnlock = 1: EXIT FUNCTION END IF IF b$ = "" THEN VerbUnlock = 1: EXIT FUNCTION END IF IF IsItem(b$) <> 0 THEN Oprint "`7 You can't unlock the door with that." + ret$ ELSE Oprint "`7 You can't unlock the door with something you don't have!" + ret$ END IF VerbUnlock = 1: EXIT FUNCTION END IF END FUNCTION SUB WinGame '**** They WON THE GAME!!! TagLine$ = "`}`$YOU HAVE WON `%BREATH PIRATES" Ocls PALETTE 4, 0 Oprint ret$ IF SoundOn <> 0 THEN ON PLAY(3) GOSUB EsDoIt TPlay = 1 PLAY ON PLAY "mbt140p8p8p8" END IF Oprint "`4`h°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°" Oprint "`4`h³`%`d`d `h`4³" Oprint "`4`h³Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛÛÛÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d " Oprint "`h`4Ý`%ÛÛÛÛÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛÛÛÛÛ`4ÞÝ`%ÛÛÛÛÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛÛÛÛÛ`4ÞÝ`%ÛÛÛÛÛÛ`4Þ³" Oprint "`4`h³Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4ÞÝ`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4ÞÝ`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d " Oprint "`h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4³" Oprint "`4`h³Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4ÞÝ`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4ÞÝ`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d " Oprint "`h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4³" Oprint "`4`h³`%`d`d `h`4Ý`%ÛÛ`4ÞÝ`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4ÞÝ`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d " Oprint "`h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4³" Oprint "`4`h³`%`d`d `h`4Ý`%ÛÛÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4ÞÝ`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d " Oprint "`h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4³" Oprint "`4`h³`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4ÞÝ`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d " Oprint "`h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4³" Oprint "`4`h³`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛÛÛÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛÛÛÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛÛÛÛÛ`4ÞÝ`%ÛÛÛÛÛÛ`4Þ`%`d`d " Oprint "`h`4Ý`%ÛÛÛÛÛÛ`4Þ`%`d`d `h`4Ý`%ÛÛ`4Þ`%`d`d `h`4³" Oprint "`4`h³`%`d`d `h`4³" Oprint "`4`h°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°" : Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus : Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus: Paus PALETTE Oprint ret$ Oprint "`7 You have successfully joined the ranks of the outlaw rebel group, the" + ret$ Oprint "`7 Breath Pirates. Your illegal activities will bring you to the attention of" + ret$ Oprint "`7 a special agency, not affiliated with either side, after the Oxygen Wars" + ret$ Oprint "`7 begin. You'll be recruited for the most important assignment mankind has" + ret$ Oprint "`7 ever known... but that's another story." + ret$ + ret$ Oprint "`7 You have ```4WON```7 with a score of `%" + LTRIM$(STR$(score)) + "`7 (of " + MaxScore$ + "`7 possible). " IF score >= VAL(MaxScore) THEN Oprint "`@EXCELLENT!`7" Oprint ret$ + ret$ PressEnter COLOR 7 PLAY OFF VIEW PRINT 1 TO 24 CLS END END SUB