#!/usr/local/jacl-1.5/bin/jacl
#
# -----------------------------------------------------------
# Copyright (C) Stuart Allen 1999-2000. All rights resevered.
# -----------------------------------------------------------
prefix TUTORIAL-
location bedroom : master bedroom
west bathroom
south living_room
{look
write "<P>You are in your bedroom. There is a large, soft bed "
write "in the centre of the room while a doorway to the "
write "west leads into the bathroom.^"
}
object bed: bed
short a "bed"
mass scenery
{look_under
if guide(parent) = limbo
write "<P>Hidden under the bed you find this week's "
write "television guide.^"
set guide(parent) = here
points 50
break
endif
write "<P>You don't find anything else.^"
}
object guide: television tv tele guide
short a "television guide"
long "The television guide is here."
parent limbo
mass 5
{examine : read
write "<P>It contains a listing of this week's programmes.^"
}
{give_to_rick : show_to_rick
write "<P>~Cool!~ Rick exclaims as he snatches it from your "
write "hands.^"
write "<P>Satisfied that you have achieved at least one thing "
write "today, you decide to go back to bed.^"
points 50
execute +game_over
}
location bathroom : bathroom
east bedroom
{look
write "<P>You are in the bathroom. The only exit from here "
write "is back east into the bedroom.^"
}
{movement
if COMPASS = EAST : COMPASS = OUT
write "<P>You bang your head as you walk through the "
write "doorway.^^"
break false
endif
write "<P>The only exit from here is to the east.^"
}
object box: small wooden box
has CONTAINER CLOSABLE CLOSED
short a "small wooden box"
long "There is a small wooden box here."
mass 25
capacity 20
{close_override
write "<P>The lid creaks as you push it closed.^"
ensure box has CLOSED
}
object note: orange note
short an "orange note"
long "An orange note rests on the ground."
parent box
mass 5
{read
write "<P>Welcome to Jamaica and have a nice day.^"
}
location living_room: living room
short the "living room"
north bedroom
{look
if here has VISITED
write "<P>You have returned to the living room.^"
else
write "<P>You are in the living room. There is a small "
write "television perched on a low-lying table in front "
write "of a sofa.^"
endif
}
{eachturn
set rick(status) + 1
if rick(status) = 5
write "<P>Rick takes a sip from his drink.^"
set rick(status) = 0
endif
}
object television: television tv tele
short a "television"
mass scenery
{examine
write "<P>There is currently a cartoon showing on the "
write "television.^"
}
{turn_off
write "<P>As you reach over and switch off the television, "
write "you get quite a shock to see Rick rapidly growing "
write "a coat of hair and foaming at the mouth. The shock "
write "of this is only surpassed by that of him sinking "
write "his newly acquired fangs into your throat.^"
execute +game_over
}
object rick: son boy teenager rick
has ANIMATE
short name "Rick"
long "Rick is here, watching television."
mass heavy
{examine
write "<P>Rick is staring blankly at the television screen.^"
}
{talk_to
write "<P>~Uh, yeah, I'll do it in a minute,~ Rick mumbles "
write "with out looking up. You have quite a strong "
write "suspicion that he didn't really hear a word "
write "you said.^"
}
;-----------------
; Global functions
;-----------------
{+header
write "Content-type: text/html^^"
write "<HTML><HEAD>
write "<TITLE>Tutorial Game</TITLE>"
write "</HEAD><BODY>"
write "<FORM NAME=~GameForm~ METHOD=get ACTION=~" url "~>"
}
{+footer
write "<HR>"
write "<CENTER>"
prompt
execute "+score"
write "</CENTER>"
write "</FORM>"
write "</BODY></HTML>"
}
{+default_ask_about
if noun1 = rick
write "<P>Rick blinks several times then pokes out his "
write "bottom lip. This, you have figured out over the "
write "years, translates to, ~Not a clue.~^"
break
endif
break false
}
{+intro
set GAME_VERSION = 1
centre "<H1>TUTORIAL GAME</H1>"
centre "by I.F. Author"
write "<P>Your alarm rings and you climb out of bed. "
write "Monday morning again so soon. Oh well, at least "
write "your house doesn't have a front door so you have "
write "a good excuse for not going to work.^^"
if here hasnt OUTDOORS
set north_wall(parent) = here
set south_wall(parent) = here
set east_wall(parent) = here
set west_wall(parent) = here
endif
set ground(parent) = here
look
}
object kryten: myself self me
has ANIMATE
short name "yourself"
capacity 42
parent bedroom
player
{examine
write "<P>As beautiful as ever.^^"
execute "+inventory"
}
grammar about >about
{+about
write "This is the game from the tutorial "
write "section of the JACL Author's Guide. See the "
write "appendix for the full source to this program.^"
}