Whodunit
Jump to navigation
Jump to search
This is a script for the Taisidon Morada mystery game as of 2024. Front ends are Genie 3-4.
You must start this script at the morgue in the morada or at the coordinator. It will cycle through as many passes that you have redeemed. It will not redeem passes.
#debug 10
put #ECHO cyan ================== Will cycle through as many tickets as you have redeemed. Needs to start at the Morada morgue, or at the coordinator.
action var with cleaver when chop marks that reveal flesh and bone\.$
action var with knife when ragged edges\.$
action var with baton when soft tissue damage and internal bleeding\.$
action var with bottle when severe lacerations\.$
action var with zills when displaying clean edges\.$
action var with corkscrew when oddly curved puncture wounds\.$
action var with paintbrush when deep and lethal puncture wounds\.$
action var with logbook when displaying a large amount of damage\.$
action var with comb when criss-crossed with slashes marked by odd perforations of the skin\.$
action var who $1 when (bartender|deckhand|entertainer|boatswain|chef|director|artist|steward|beautician) says.* (?:with|while|coughing awkwardly|fingers tapping).*\.
action var ask $1 when ^You also see(?:.*)*\b(bartender|deckhand|entertainer|boatswain|chef|director|artist|steward|beautician)\b\.
start:
pause 1
var with NULL
var where NULL
var who NULL
Entrance:
if ("$roomid" = "1|0") then goto BEGIN
MATCHRE BEGIN ^A Taisidon cruise coordinator steps aside
MATCHRE NOTICK ^A Taisidon cruise coordinator checks some paperwork and frowns
send ask coor about access
matchwait 5
##goto ERROR
BEGIN:
pause 1
##if ("$roomid" = "1") then goto begin1
##matchwait 5
##goto ERROR
BEGIN1:
send study corpse
delay 1
#put #goto 462
put #ECHO ACCUSING %who, %with, in %where.
put up
FOREDECK:
pause 1
##if def("%who") then
send ask %ask about alibi
delay 1
gosub SEARCH
pause 1
if !matchre("%who|%where|%with", "NULL") then goto accuse
put #ECHO ACCUSING %who, %with, in %where.
#put #goto 463
put aft
#delay 2
#put #goto 463
PROMENADE:
pause 1
send ask %ask about alibi
delay 1
gosub SEARCH
pause 1
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
#put #goto 465
#delay 2
put port
BUFFET:
pause 1
send ask %ask about alibi
delay 1
gosub SEARCH
pause 1
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
delay 2
#put #goto 464
#delay 2
##put #goto 7
#delay 2
put starboard
pause
put up
QUARTERDECK:
pause 1
send ask %ask about alibi
pause 1
gosub SEARCH
pause 1
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
delay 2
#put #goto 466
#delay 2
#put #goto 4
#delay 2
put down
delay 1
put starboard
LOUNGE:
pause 1
send ask %ask about alibi
delay 1
gosub SEARCH
pause 1
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
#delay 2
#put #goto 467
delay 2
put aft
BAR:
pause 1
send ask %ask about alibi
delay 1
gosub SEARCH
pause 1
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
matchwait 5
goto error
SEARCH:
pause
MATCHRE NOTF fails to turn up any clues\.$
MATCHRE FOUND blood has partially dried\.$
Send search
matchwait
FOUND:
delay 0.5
if ("$roomid" = "462") then var where foredeck
if ("$roomid" = "463") then var where promenade
if ("$roomid" = "466") then var where lounge
if ("$roomid" = "467") then var where bar
if ("$roomid" = "465") then var where buffet
if ("$roomid" = "464") then var where quarterdeck
delay 0.5
return
NOTF:
return
ACCUSE:
put #ECHO ACCUSING %who, %with, in %where.
matchwait 2
ACCUSE1:
send accuse %who with %with in %where
delay 0.5
send stow right
delay 0.5
send stow left
goto start
ERROR:
put #ECHO FOUND %who, %with, in %where.
exit
ABORT:
exit
NOTICK:
put #ECHO red GET SOME PASSES
exit