the-infocom-files / moonmist

Moonmist
4 stars 3 forks source link

Dr. Wendish and Vivien can shoot you, even when they're not the villains #57

Open eriktorbjorn opened 2 years ago

eriktorbjorn commented 2 years ago
>VERSION
Moonmist
Infocom interactive fiction - a mystery story
Copyright (c) 1986 by Infocom, Inc. All rights reserved.
Moonmist is a trademark of Infocom, Inc.
Release number 1 / Serial number 211103 / yellow variation

>WAIT
[I assume you mean: Wait 10 minutes.]
Time passes...
You freeze as the door bursts open and Dr. Wendish appears. He stares at you
with a shocked look. "Well! I didn't expect MY room to be searched!" he says
angrily. He enters the room and closes the door behind him.
Then he pulls out the blowgun!

>PUSH BUTTON
You think it over. There's no need to get violent.
He puts the blowgun to his lips and puffs his cheeks out and in. You feel a
sharp pain in the chest. Your vision mists over, the room blacks out, and your
legs give way beneath you.
The sad fact is, Foo, that you've been shot with a poison dart, and for you, the
game is over!

The same thing can happen with Vivien, but not with any of the other characters.

In the yellow variant, Tamara is the villain. Neither Dr. Wendish nor Vivien have any reason to kill you, even if you were trespassing in their rooms. But I-DISCOVERED only checks if the character you catches you is carrying the blowgun:

    <COND (<AND <IN? ,BLOWGUN .VAL>
            <EQUAL? .VAL ,PAINTER ,DOCTOR>
            <NOT <FIND-FLAG-HERE ,PERSONBIT ,PLAYER .VAL>>>
           <SETUP-SHOT .VAL>
           <TELL "Then" HE .VAL " pulls out" THE ,BLOWGUN "!" CR>)>

I guess the assumption here is that only the villain would be carrying the blowgun. But in at least some variants, you can find the blowgun yourself and then give it to whoever you like. So this part of the code should probably check <EQUAL? .VAL ,VILLAIN-PER> as well, before getting aggressive.