873 lines
19 KiB
Plaintext
873 lines
19 KiB
Plaintext
;"***************************************************************************"
|
|
; "game : Abyss"
|
|
; "file : GAS-MIX.ZIL"
|
|
; "auth : $Author: DEB $"
|
|
; "date : $Date: 20 Mar 1989 8:44:46 $"
|
|
; "rev : $Revision: 1.11 $"
|
|
; "vers : 1.0"
|
|
;"---------------------------------------------------------------------------"
|
|
; "Default substitutions"
|
|
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
|
;"***************************************************************************"
|
|
|
|
<GLOBAL GL-OXYGEN-QTY 3400>
|
|
<GLOBAL GL-OXYGEN-MSG 3400>
|
|
<CONSTANT K-OXYGEN-FACTOR -4>
|
|
<CONSTANT K-OXY-LOW-4 850>
|
|
<CONSTANT K-OXY-LOW-3 1133>
|
|
<CONSTANT K-OXY-LOW-2 1417>
|
|
<CONSTANT K-OXY-LOW-1 1700>
|
|
<CONSTANT K-OXY-NOM 3400>
|
|
<CONSTANT K-OXY-HIGH-1 20400>
|
|
<CONSTANT K-OXY-HIGH-2 23800>
|
|
<CONSTANT K-OXY-HIGH-3 27200>
|
|
<CONSTANT K-OXY-HIGH-4 30600>
|
|
|
|
<GLOBAL GL-CO2-QTY 536>
|
|
<GLOBAL GL-CO2-MSG 536>
|
|
<CONSTANT K-CO2-FACTOR -6>
|
|
<CONSTANT K-CO2-NOM 536>
|
|
<CONSTANT K-CO2-HIGH-1 22725>
|
|
<CONSTANT K-CO2-HIGH-2 25971>
|
|
<CONSTANT K-CO2-HIGH-3 29218>
|
|
<CONSTANT K-CO2-HIGH-4 32464>
|
|
|
|
<GLOBAL GL-NITROGEN-QTY 1267>
|
|
<GLOBAL GL-NITROGEN-MSG 1267>
|
|
<CONSTANT K-NITROGEN-FACTOR -3>
|
|
<CONSTANT K-NIT-LOW-4 211>
|
|
<CONSTANT K-NIT-LOW-3 253>
|
|
<CONSTANT K-NIT-LOW-2 317>
|
|
<CONSTANT K-NIT-LOW-1 422>
|
|
<CONSTANT K-NIT-NOM 1267>
|
|
<CONSTANT K-NIT-HIGH-1 3802>
|
|
<CONSTANT K-NIT-HIGH-2 5070>
|
|
<CONSTANT K-NIT-HIGH-3 6337>
|
|
<CONSTANT K-NIT-HIGH-4 7605>
|
|
|
|
<GLOBAL GL-HELIUM-QTY 9839>
|
|
<CONSTANT K-HELIUM-FACTOR -2>
|
|
<CONSTANT K-HEL-NOM 9839>
|
|
|
|
<GLOBAL GL-SCRUBBERS-ON <> <> BYTE>
|
|
|
|
<SYNTAX $SCRUB = V-$SCRUB>
|
|
|
|
<ROUTINE V-$SCRUB ()
|
|
<TELL "[CO2 scrubbers ">
|
|
<COND
|
|
(<SETG GL-SCRUBBERS-ON <NOT ,GL-SCRUBBERS-ON>>
|
|
<TELL "on">
|
|
)
|
|
(T
|
|
<TELL "off">
|
|
)
|
|
>
|
|
<TELL ".]|">
|
|
<RFATAL>
|
|
>
|
|
|
|
<SYNTAX $AIR = V-$AIR>
|
|
|
|
<ROUTINE V-$AIR ()
|
|
<SETG GL-OXYGEN-QTY ,K-OXY-NOM>
|
|
<SETG GL-OXYGEN-MSG ,K-OXY-NOM>
|
|
<SETG GL-CO2-QTY ,K-CO2-NOM>
|
|
<SETG GL-CO2-MSG ,K-CO2-NOM>
|
|
<SETG GL-NITROGEN-QTY ,K-NIT-NOM>
|
|
<SETG GL-NITROGEN-MSG ,K-NIT-NOM>
|
|
<SETG GL-HELIUM-QTY ,K-HEL-NOM>
|
|
<TELL "[Breathing mix returned to nominal.]|">
|
|
<RFATAL>
|
|
>
|
|
|
|
<ROUTINE RT-NUM-DIGITS (N)
|
|
<SET N <ABS .N>>
|
|
<COND
|
|
(<L? .N 10>
|
|
<RETURN 1>
|
|
)
|
|
(<L? .N 100>
|
|
<RETURN 2>
|
|
)
|
|
(<L? .N 1000>
|
|
<RETURN 3>
|
|
)
|
|
(<L? .N 10000>
|
|
<RETURN 4>
|
|
)
|
|
(T
|
|
<RETURN 5>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-PRINT-FLOAT (F E "OPT" (D -1) "AUX" N M)
|
|
<COND
|
|
(<L? .E 0>
|
|
<SET N <- <RT-NUM-DIGITS .F>>>
|
|
<COND
|
|
(<L=? .E .N>
|
|
<TELL "0.">
|
|
<REPEAT ()
|
|
<COND
|
|
(<L? .E .N>
|
|
<TELL !\0>
|
|
<INC E>
|
|
)
|
|
(T
|
|
<RETURN>
|
|
)
|
|
>
|
|
>
|
|
<TELL N .F>
|
|
)
|
|
(T
|
|
<COND
|
|
(<EQUAL? <- .N> 5>
|
|
<SET M 10000>
|
|
)
|
|
(<EQUAL? <- .N> 4>
|
|
<SET M 1000>
|
|
)
|
|
(<EQUAL? <- .N> 3>
|
|
<SET M 100>
|
|
)
|
|
(<EQUAL? <- .N> 2>
|
|
<SET M 10>
|
|
)
|
|
(T
|
|
<SET M 1>
|
|
)
|
|
>
|
|
<REPEAT ()
|
|
<TELL N <MOD </ .F .M> 10>>
|
|
<INC N>
|
|
<COND
|
|
(<EQUAL? .E .N>
|
|
<TELL !\.>
|
|
)
|
|
>
|
|
<SET M </ .M 10>>
|
|
<COND
|
|
(<EQUAL? .M 0>
|
|
<RETURN>
|
|
)
|
|
>
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL N .F>
|
|
<SET N 0>
|
|
<REPEAT ()
|
|
<COND
|
|
(<L? .N .E>
|
|
<TELL !\0>
|
|
<INC N>
|
|
)
|
|
(T
|
|
<RETURN>
|
|
)
|
|
>
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-NITROGEN-MSG ()
|
|
<COND
|
|
(<G? ,GL-NITROGEN-QTY ,GL-NITROGEN-MSG>
|
|
; "Nitrogen going up"
|
|
<COND
|
|
(<G=? ,GL-NITROGEN-QTY ,K-NIT-HIGH-4>
|
|
<COND
|
|
(T ;<L? ,GL-NITROGEN-MSG ,K-NIT-HIGH-4>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" The high nitrogen level finally overcomes you and you fall to the floor,
|
|
unconscious.|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-NITROGEN-QTY ,K-NIT-HIGH-3>
|
|
<COND
|
|
(<L? ,GL-NITROGEN-MSG ,K-NIT-HIGH-3>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL " You are beginning to hallucinate." CR>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-NITROGEN-QTY ,K-NIT-HIGH-2>
|
|
<COND
|
|
(<L? ,GL-NITROGEN-MSG ,K-NIT-HIGH-2>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL " Your head is beginning to spin." CR>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-NITROGEN-QTY ,K-NIT-HIGH-1>
|
|
<COND
|
|
(<L? ,GL-NITROGEN-MSG ,K-NIT-HIGH-1>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL " You are beginning to feel light-headed." CR>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-NITROGEN-QTY ,K-NIT-LOW-1>
|
|
<COND
|
|
(<L=? ,GL-NITROGEN-MSG ,K-NIT-LOW-1>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" Your hands stop trembling. The nitrogen level must be back to normal." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-NITROGEN-QTY ,K-NIT-LOW-2>
|
|
<COND
|
|
(<L=? ,GL-NITROGEN-MSG ,K-NIT-LOW-2 ;317>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" Most of the trembling in your hands has disappeared." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-NITROGEN-QTY ,K-NIT-LOW-3>
|
|
<COND
|
|
(<L=? ,GL-NITROGEN-MSG ,K-NIT-LOW-3 ;253>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" The flashes of irritibility cease, but your fingertips are still
|
|
trembling." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-NITROGEN-QTY ,GL-NITROGEN-MSG>
|
|
; "Nitrogen going down"
|
|
<COND
|
|
(<L=? ,GL-NITROGEN-QTY ,K-NIT-LOW-4>
|
|
<COND
|
|
(T ;<G? ,GL-NITROGEN-MSG ,K-NIT-LOW-4>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" You slump to the floor, a victim of High Pressure Nervous Syndrome.|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<L=? ,GL-NITROGEN-QTY ,K-NIT-LOW-3>
|
|
<COND
|
|
(<G? ,GL-NITROGEN-MSG ,K-NIT-LOW-3>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" You begin to have flashes of sudden irritibility." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L=? ,GL-NITROGEN-QTY ,K-NIT-LOW-2>
|
|
<COND
|
|
(<G? ,GL-NITROGEN-MSG ,K-NIT-LOW-2>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" The trembling in your fingertips gets worse." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L=? ,GL-NITROGEN-QTY ,K-NIT-LOW-1>
|
|
<COND
|
|
(<G? ,GL-NITROGEN-MSG ,K-NIT-LOW-1>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL " Your hands begin to tremble." CR>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-NITROGEN-QTY ,K-NIT-HIGH-1>
|
|
<COND
|
|
(<G=? ,GL-NITROGEN-MSG ,K-NIT-HIGH-1>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" You no longer feel dizzy. The nitrogen level must be back to normal." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-NITROGEN-QTY ,K-NIT-HIGH-2>
|
|
<COND
|
|
(<G=? ,GL-NITROGEN-MSG ,K-NIT-HIGH-2>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" Your head stops spinning, but you still feel dizzy." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-NITROGEN-QTY ,K-NIT-HIGH-3>
|
|
<COND
|
|
(<G=? ,GL-NITROGEN-MSG ,K-NIT-HIGH-3>
|
|
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
|
<TELL
|
|
" The hallucinations fade, but your head is still spinning." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-OXYGEN-MSG ()
|
|
<COND
|
|
(<G? ,GL-OXYGEN-QTY ,GL-OXYGEN-MSG>
|
|
; "Oxygen going up"
|
|
<COND
|
|
(<G=? ,GL-OXYGEN-QTY ,K-OXY-HIGH-4>
|
|
<COND
|
|
(T ;<L? ,GL-OXYGEN-MSG ,K-OXY-HIGH-4>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL
|
|
" The high oxygen level finally overcomes you. You go into convulsions, fall
|
|
to the floor, and pass out.|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-OXYGEN-QTY ,K-OXY-HIGH-3>
|
|
<COND
|
|
(<L? ,GL-OXYGEN-MSG ,K-OXY-HIGH-3>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL
|
|
" Suddenly, your stomach muscles tighten up and you fight off the urge to
|
|
vomit." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-OXYGEN-QTY ,K-OXY-HIGH-2>
|
|
<COND
|
|
(<L? ,GL-OXYGEN-MSG ,K-OXY-HIGH-2>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL " You begin to feel nauseous." CR>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-OXYGEN-QTY ,K-OXY-HIGH-1>
|
|
<COND
|
|
(<L? ,GL-OXYGEN-MSG ,K-OXY-HIGH-1>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL " Suddenly, you feel a twitch in your lower lip." CR>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-OXYGEN-QTY ,K-OXY-LOW-1>
|
|
<COND
|
|
(<L=? ,GL-OXYGEN-MSG ,K-OXY-LOW-1>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL
|
|
" Your headache disappears. The oxygen level must be back to normal." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-OXYGEN-QTY ,K-OXY-LOW-2>
|
|
<COND
|
|
(<L=? ,GL-OXYGEN-MSG ,K-OXY-LOW-2>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL
|
|
" You begin to see colors again, but you still have a mild headache." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-OXYGEN-QTY ,K-OXY-LOW-3>
|
|
<COND
|
|
(<L=? ,GL-OXYGEN-MSG ,K-OXY-LOW-3>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL " Your tunnel vision begins to fade." CR>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-OXYGEN-QTY ,GL-OXYGEN-MSG>
|
|
; "Oxygen going down"
|
|
<COND
|
|
(<L=? ,GL-OXYGEN-QTY ,K-OXY-LOW-4>
|
|
<COND
|
|
(T ;<G? ,GL-OXYGEN-MSG ,K-OXY-LOW-4>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL " You collapse, a victim of oxygen starvation.|">
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<L=? ,GL-OXYGEN-QTY ,K-OXY-LOW-3>
|
|
<COND
|
|
(<G? ,GL-OXYGEN-MSG ,K-OXY-LOW-3>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL
|
|
" You notice that your peripheral vision is beginning to disappear." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L=? ,GL-OXYGEN-QTY ,K-OXY-LOW-2>
|
|
<COND
|
|
(<G? ,GL-OXYGEN-MSG ,K-OXY-LOW-2>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL " The colors around you seem to fade." CR>
|
|
)
|
|
>
|
|
)
|
|
(<L=? ,GL-OXYGEN-QTY ,K-OXY-LOW-1>
|
|
<COND
|
|
(<G? ,GL-OXYGEN-MSG ,K-OXY-LOW-1>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL " Your head begins to ache." CR>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-OXYGEN-QTY ,K-OXY-HIGH-1>
|
|
<COND
|
|
(<G=? ,GL-OXYGEN-MSG ,K-OXY-HIGH-1>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL
|
|
" You lip stops twitching. The oxygen level must be back to normal." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-OXYGEN-QTY ,K-OXY-HIGH-2>
|
|
<COND
|
|
(<G=? ,GL-OXYGEN-MSG ,K-OXY-HIGH-2>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL
|
|
" You no longer feel nauseous, but your lip still twitches occasionally." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-OXYGEN-QTY ,K-OXY-HIGH-3>
|
|
<COND
|
|
(<G=? ,GL-OXYGEN-MSG ,K-OXY-HIGH-3>
|
|
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
|
<TELL
|
|
" The tension in your stomach disappears, but you still feel slightly
|
|
nauseous." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-CO2-MSG ()
|
|
<COND
|
|
(<G? ,GL-CO2-QTY ,GL-CO2-MSG>
|
|
; "Carbon Dioxide going up"
|
|
<COND
|
|
(<G=? ,GL-CO2-QTY ,K-CO2-HIGH-4>
|
|
<COND
|
|
(T ;<L? ,GL-CO2-MSG ,K-CO2-HIGH-4>
|
|
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
|
<TELL " You pass out from carbon dioxide poisoning.|">
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-CO2-QTY ,K-CO2-HIGH-3>
|
|
<COND
|
|
(<L? ,GL-CO2-MSG ,K-CO2-HIGH-3>
|
|
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
|
<TELL
|
|
" Suddenly the muscles in your arm begin to spasm." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-CO2-QTY ,K-CO2-HIGH-2>
|
|
<COND
|
|
(<L? ,GL-CO2-MSG ,K-CO2-HIGH-2>
|
|
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
|
<TELL " Your chest muscles are beginning to ache." CR>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-CO2-QTY ,K-CO2-HIGH-1>
|
|
<COND
|
|
(<L? ,GL-CO2-MSG ,K-CO2-HIGH-1>
|
|
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
|
<TELL " You begin to feel a little short of breath." CR>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-CO2-QTY ,GL-CO2-MSG>
|
|
; "Carbon Dioxide going down"
|
|
<COND
|
|
(<L? ,GL-CO2-QTY ,K-CO2-HIGH-1>
|
|
<COND
|
|
(<G=? ,GL-CO2-MSG ,K-CO2-HIGH-1>
|
|
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
|
<TELL
|
|
" You begin to breathe more easily. The carbon dioxide level must have
|
|
returned to normal." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-CO2-QTY ,K-CO2-HIGH-2>
|
|
<COND
|
|
(<G=? ,GL-CO2-MSG ,K-CO2-HIGH-2>
|
|
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
|
<TELL
|
|
" Your chest muscles feel better, but you are still short of breath." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-CO2-QTY ,K-CO2-HIGH-3>
|
|
<COND
|
|
(<G=? ,GL-CO2-MSG ,K-CO2-HIGH-3>
|
|
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
|
<TELL
|
|
" The spasms in your arm have stopped, but your chest muscles still ache." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-I-GAS-MIX ()
|
|
<RT-QUEUE ,RT-I-GAS-MIX <+ ,GL-MOVES 1>>
|
|
<SETG GL-OXYGEN-QTY <- ,GL-OXYGEN-QTY 4>>
|
|
<COND
|
|
(<L? ,GL-OXYGEN-QTY 0>
|
|
<SETG GL-OXYGEN-QTY 0>
|
|
)
|
|
>
|
|
<COND
|
|
(,GL-SCRUBBERS-ON
|
|
<SETG GL-CO2-QTY <- ,GL-CO2-QTY 340>>
|
|
<COND
|
|
(<L? ,GL-CO2-QTY 0>
|
|
<SETG GL-CO2-QTY 0>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<SETG GL-CO2-QTY <+ ,GL-CO2-QTY 340>>
|
|
)
|
|
>
|
|
<COND
|
|
(<OR <RT-OXYGEN-MSG>
|
|
<RT-CO2-MSG>
|
|
>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<GLOBAL GL-HEATERS-ON <> <> BYTE>
|
|
|
|
<SYNTAX $HEAT = V-$HEAT>
|
|
|
|
<ROUTINE V-$HEAT ()
|
|
<TELL "[Heaters ">
|
|
<COND
|
|
(<SETG GL-HEATERS-ON <NOT ,GL-HEATERS-ON>>
|
|
<TELL "on">
|
|
)
|
|
(T
|
|
<TELL "off">
|
|
)
|
|
>
|
|
<TELL ".]|">
|
|
<RFATAL>
|
|
>
|
|
|
|
<CONSTANT K-AMBIENT-TEMP 3400>
|
|
|
|
<GLOBAL GL-DEEPCORE-TEMP 9000>
|
|
|
|
<GLOBAL GL-PLAYER-TEMP 9860> ; "98.6 deg F"
|
|
<GLOBAL GL-TEMP-MSG 9860>
|
|
<CONSTANT K-TEMP-FACTOR -2>
|
|
<CONSTANT K-TEMP-LOW-4 8600>
|
|
<CONSTANT K-TEMP-LOW-3 9100>
|
|
<CONSTANT K-TEMP-LOW-2 9300>
|
|
<CONSTANT K-TEMP-LOW-1 9500>
|
|
<CONSTANT K-TEMP-NOM 9860>
|
|
<CONSTANT K-TEMP-HIGH-1 10000>
|
|
<CONSTANT K-TEMP-HIGH-2 10500>
|
|
<CONSTANT K-TEMP-HIGH-3 11000>
|
|
<CONSTANT K-TEMP-HIGH-4 11500>
|
|
|
|
<OBJECT TH-THERMOMETER
|
|
(LOC CH-PLAYER)
|
|
(DESC "thermometer")
|
|
(FLAGS FL-READABLE FL-TAKEABLE)
|
|
(SYNONYM THERMOMETER)
|
|
(ACTION RT-TH-THERMOMETER)
|
|
>
|
|
|
|
<ROUTINE RT-TH-THERMOMETER ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? READ EXAMINE>
|
|
<TELL " The thermometer says your core temperature is ">
|
|
<RT-PRINT-FLOAT ,GL-PLAYER-TEMP ,K-TEMP-FACTOR>
|
|
<TELL " degrees Fahrenheit." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-TEMP-MSG ()
|
|
<COND
|
|
(<L? ,GL-PLAYER-TEMP ,GL-TEMP-MSG>
|
|
; "Temperature going down."
|
|
<COND
|
|
(<L=? ,GL-PLAYER-TEMP ,K-TEMP-LOW-4>
|
|
<COND
|
|
(T ;<G? ,GL-TEMP-MSG ,K-TEMP-LOW-4>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL " The cold finally overpowers you and you pass out.|">
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<L=? ,GL-PLAYER-TEMP ,K-TEMP-LOW-3>
|
|
<COND
|
|
(<G? ,GL-TEMP-MSG ,K-TEMP-LOW-3>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL " You're so cold you can hardly move." CR>
|
|
)
|
|
>
|
|
)
|
|
(<L=? ,GL-PLAYER-TEMP ,K-TEMP-LOW-2>
|
|
<COND
|
|
(<G? ,GL-TEMP-MSG ,K-TEMP-LOW-2>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL " The cold begins to creep into your bones." CR>
|
|
)
|
|
>
|
|
)
|
|
(<L=? ,GL-PLAYER-TEMP ,K-TEMP-LOW-1>
|
|
<COND
|
|
(<G? ,GL-TEMP-MSG ,K-TEMP-LOW-1>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL " You begin to shiver." CR>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-1>
|
|
<COND
|
|
(<G=? ,GL-TEMP-MSG ,K-TEMP-HIGH-1>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL
|
|
" You stop sweating. Your body temperature must have returned to normal." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-2>
|
|
<COND
|
|
(<G=? ,GL-TEMP-MSG ,K-TEMP-HIGH-2>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL
|
|
" Your face is no longer flushed, but you are still sweating." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<L? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-3>
|
|
<COND
|
|
(<G=? ,GL-TEMP-MSG ,K-TEMP-HIGH-3>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL
|
|
" Your breathing returns to normal, but your face is still red." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-PLAYER-TEMP ,GL-TEMP-MSG>
|
|
; "Temperature going up."
|
|
<COND
|
|
(<G=? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-4>
|
|
<COND
|
|
(T ;<L? ,GL-TEMP-MSG ,K-TEMP-HIGH-4>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL " The heat becomes overpowering and you collapse.|">
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-3>
|
|
<COND
|
|
(<L? ,GL-TEMP-MSG ,K-TEMP-HIGH-3>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL
|
|
" You're so hot you can hardly move. Your breathing speeds up dangerously." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-2>
|
|
<COND
|
|
(<L? ,GL-TEMP-MSG ,K-TEMP-HIGH-2>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL " Your face turns red from the heat." CR>
|
|
)
|
|
>
|
|
)
|
|
(<G=? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-1>
|
|
<COND
|
|
(<L? ,GL-TEMP-MSG ,K-TEMP-HIGH-1>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL " You feel uncomfortably hot and begin to sweat." CR>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-PLAYER-TEMP ,K-TEMP-LOW-1>
|
|
<COND
|
|
(<L=? ,GL-TEMP-MSG ,K-TEMP-LOW-1>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL
|
|
" You stop shivering. Your body temperature must be back to normal." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-PLAYER-TEMP ,K-TEMP-LOW-2>
|
|
<COND
|
|
(<L=? ,GL-TEMP-MSG ,K-TEMP-LOW-2>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL
|
|
" Your hands and feet tingle as they begin to warm up." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-PLAYER-TEMP ,K-TEMP-LOW-3>
|
|
<COND
|
|
(<L=? ,GL-TEMP-MSG ,K-TEMP-LOW-3>
|
|
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
|
<TELL " You're beginning to thaw out." CR>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-I-DEEPCORE-TEMP ()
|
|
<RT-QUEUE ,RT-I-DEEPCORE-TEMP <+ ,GL-MOVES 1>>
|
|
<COND
|
|
(,GL-HEATERS-ON
|
|
<SETG GL-DEEPCORE-TEMP <+ ,GL-DEEPCORE-TEMP 5>>
|
|
)
|
|
(T
|
|
<SETG GL-DEEPCORE-TEMP <- ,GL-DEEPCORE-TEMP 5>>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
>
|
|
|
|
<ROUTINE RT-I-TEMP ("AUX" L D1 D2)
|
|
<SET L <LOC ,CH-PLAYER>>
|
|
<RT-QUEUE ,RT-I-TEMP <+ ,GL-MOVES 1>>
|
|
<COND
|
|
(<FSET? .L ,FL-WATER>
|
|
<COND
|
|
(<OR <AND
|
|
<IN? ,TH-FBS-SUIT ,CH-PLAYER>
|
|
<FSET? ,TH-FBS-SUIT ,FL-WORN>
|
|
>
|
|
<AND
|
|
<IN? ,TH-DRY-SUIT ,CH-PLAYER>
|
|
<FSET? ,TH-DRY-SUIT ,FL-WORN>
|
|
>
|
|
>
|
|
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP 10>>
|
|
)
|
|
(T
|
|
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP 500>>
|
|
)
|
|
>
|
|
)
|
|
(<AND <L? ,GL-PLAYER-TEMP ,K-TEMP-NOM>
|
|
<G? ,GL-DEEPCORE-TEMP <- ,GL-PLAYER-TEMP 860>>
|
|
>
|
|
<SET D1 <- ,GL-DEEPCORE-TEMP <- ,GL-PLAYER-TEMP 860>>>
|
|
<SET D2 <- ,K-TEMP-NOM ,GL-PLAYER-TEMP>>
|
|
<COND
|
|
(<AND <L=? .D2 .D1>
|
|
<L=? .D2 5>
|
|
>
|
|
<SETG GL-PLAYER-TEMP ,K-TEMP-NOM>
|
|
)
|
|
(<G=? .D1 5>
|
|
<SETG GL-PLAYER-TEMP <+ ,GL-PLAYER-TEMP 5>>
|
|
)
|
|
(T
|
|
<SETG GL-PLAYER-TEMP <+ ,GL-PLAYER-TEMP .D1>>
|
|
)
|
|
>
|
|
)
|
|
(<AND <G? ,GL-PLAYER-TEMP ,K-TEMP-NOM>
|
|
<L? ,GL-DEEPCORE-TEMP <- ,GL-PLAYER-TEMP 860>>
|
|
>
|
|
<SET D1 <- <- ,GL-PLAYER-TEMP 860> ,GL-DEEPCORE-TEMP>>
|
|
<SET D2 <- ,GL-PLAYER-TEMP ,K-TEMP-NOM>>
|
|
<COND
|
|
(<AND <L=? .D2 .D1>
|
|
<L=? .D2 5>
|
|
>
|
|
<SETG GL-PLAYER-TEMP ,K-TEMP-NOM>
|
|
)
|
|
(<G=? .D1 5>
|
|
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP 5>>
|
|
)
|
|
(T
|
|
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP .D1>>
|
|
)
|
|
>
|
|
)
|
|
(<G? ,GL-DEEPCORE-TEMP <+ ,GL-PLAYER-TEMP 600>> ;"+6 deg."
|
|
<SETG GL-PLAYER-TEMP <+ ,GL-PLAYER-TEMP 5>>
|
|
)
|
|
(<L? ,GL-DEEPCORE-TEMP <- ,GL-PLAYER-TEMP 1200>> ;"-12 deg."
|
|
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP 5>>
|
|
)
|
|
>
|
|
<RT-TEMP-MSG>
|
|
>
|
|
|
|
;"***************************************************************************"
|
|
; "end of file"
|
|
;"***************************************************************************"
|
|
|