the-infocom-files / cutthroats

Cutthroats
3 stars 3 forks source link

Drilling a hole in the glass case while underwater ruins the stamps, even if they are already ruined #61

Open eriktorbjorn opened 4 years ago

eriktorbjorn commented 4 years ago
>TURN ON DRILL
The drill bit begins to spin.
The water level in the glass case rises. As it reaches the stamps, it soaks
them.

>DRILL CASE WITH DRILL
Water pours into the case, ruining the stamps.
The portable drill sputters, and the bit stops turning.

That's because GLASS-CASE-F doesn't check if the stamps are already ruined:

           (<VERB? DRILL>
        <COND (<AND <IN? ,PLAYER ,WRECK-5>
                <NOT ,WRECK-5-FLOODED>>
               <SETG WATER-IN-CASE 0>
               <TELL "The water pours out of the hole." CR>)
              (T
               <SETG WATER-IN-CASE 10>
               <DISABLE <INT I-CASE-LEAK>>
               <FSET ,STAMPS ,RMUNGBIT>
               <TELL "Water pours into the case, ruining the stamps." CR>)>
        <ADD-HOLE ,GLASS-CASE>)

Perhaps simply print "Water pours into the case." if the stamps are already wet?

Similarly, if you try to empty the case of water you can get the stamps wet even if they already are:

           (<OR <AND <VERB? POUR TAKE>
                 <PRSO? ,OCEAN>>
            <VERB? EMPTY>>
        <COND (<==? ,WATER-IN-CASE 0>
               <TELL "There's no water in the case." CR>)
              (<NOT <AIRTIGHT-ROOM?>>
               <TELL "That would be a losing battle." CR>)
              (T
               <SETG WATER-IN-CASE 0>
               <FSET ,STAMPS ,RMUNGBIT>
               <TELL
"In the process of emptying the case, you manage to get the stamps wet." CR>)>)

(It looks like "POUR WATER" or "TAKE WATER" - possibly "FROM CASE" - should work as well here, but I could only get "EMPTY CASE" to work.)

Perhaps change "wet" to "even wetter" if the stamps are already wet?