Whodunit: Difference between revisions

From Elanthipedia
Jump to navigation Jump to search
(Created page)
 
(Function and stability)
 
(2 intermediate revisions by the same user not shown)
Line 5: Line 5:


put #ECHO cyan ================== Will cycle through as many tickets as you have redeemed. Needs to start at the Morada morgue, or at the coordinator.
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 send $lastcommand when \.\.\.wait


action var with cleaver when chop marks that reveal flesh and bone\.$
action var with cleaver when chop marks that reveal flesh and bone\.$
Line 31: Line 32:
send ask coor about access
send ask coor about access
matchwait 5
matchwait 5
##goto ERROR


BEGIN:
BEGIN:
pause 1
pause 0.5
##if ("$roomid" = "1") then goto begin1
##matchwait 5
##goto ERROR


BEGIN1:
BEGIN1:
send study corpse
send study corpse
delay 1
delay 0.5
#put #goto 462
put #ECHO ACCUSING %who, %with, in %where.
put #ECHO ACCUSING %who, %with, in %where.
put up
put up


FOREDECK:
FOREDECK:
pause 1
pause 0.5
##if def("%who") then
send ask %ask about alibi
send ask %ask about alibi
delay 1
delay 0.5
gosub SEARCH
gosub SEARCH
pause 1
pause 0.5
if !matchre("%who|%where|%with", "NULL") then goto accuse
if !matchre("%who|%where|%with", "NULL") then goto accuse
put #ECHO ACCUSING %who, %with, in %where.
put #ECHO ACCUSING %who, %with, in %where.
#put #goto 463
put aft
put aft

#delay 2
#put #goto 463


PROMENADE:
PROMENADE:
pause 1
pause 0.5
send ask %ask about alibi
send ask %ask about alibi
delay 1
delay 0.5
gosub SEARCH
gosub SEARCH
pause 1
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
if !matchre("%who|%where|%with", "NULL") then goto accuse
#put #goto 465
#delay 2
put port
put port


BUFFET:
BUFFET:
pause 1
pause 0.5
send ask %ask about alibi
send ask %ask about alibi
delay 1
delay 0.5
gosub SEARCH
gosub SEARCH
pause 1
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
if !matchre("%who|%where|%with", "NULL") then goto accuse
delay 2
delay 0.5
#put #goto 464
#delay 2
##put #goto 7
#delay 2
put starboard
put starboard
pause
pause
put up
put up

QUARTERDECK:
QUARTERDECK:
pause 1
pause 0.5
send ask %ask about alibi
send ask %ask about alibi
pause 1
pause 0.5
gosub SEARCH
gosub SEARCH
pause 1
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
if !matchre("%who|%where|%with", "NULL") then goto accuse
delay 2
delay 0.5
#put #goto 466
#delay 2
#put #goto 4
#delay 2
put down
put down
delay 1
delay 1
Line 106: Line 90:


LOUNGE:
LOUNGE:
pause 1
pause 0.5
send ask %ask about alibi
send ask %ask about alibi
delay 1
delay 0.5
gosub SEARCH
gosub SEARCH
pause 1
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
if !matchre("%who|%where|%with", "NULL") then goto accuse
#delay 2
delay 0.5
#put #goto 467
delay 2
put aft
put aft


BAR:
BAR:
pause 1
pause 0.5
send ask %ask about alibi
send ask %ask about alibi
delay 1
delay 0.5
gosub SEARCH
gosub SEARCH
pause 1
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
if !matchre("%who|%where|%with", "NULL") then goto accuse
Line 130: Line 112:


SEARCH:
SEARCH:
pause
pause 2
MATCHRE NOTF fails to turn up any clues\.$
MATCHRE NOTF fails to turn up any clues\.$
MATCHRE FOUND blood has partially dried\.$
MATCHRE FOUND blood has partially dried\.$
Line 138: Line 120:
FOUND:
FOUND:
delay 0.5
delay 0.5
if ("$roomid" = "462") then var where foredeck
if contains ("$roomname", "Foredeck") then var where foredeck
if ("$roomid" = "463") then var where promenade
if contains ("$roomname", "Promenade") then var where promenade
if ("$roomid" = "466") then var where lounge
if contains ("$roomname", "Lounge") then var where lounge
if ("$roomid" = "467") then var where bar
if contains ("$roomname", "Bar") then var where bar
if ("$roomid" = "465") then var where buffet
if contains ("$roomname", "Buffet") then var where buffet
if ("$roomid" = "464") then var where quarterdeck
if contains ("$roomname", "Quarterdeck") then var where quarterdeck
delay 0.5
delay 0.5
return
return
Line 152: Line 134:
ACCUSE:
ACCUSE:
put #ECHO ACCUSING %who, %with, in %where.
put #ECHO ACCUSING %who, %with, in %where.
pause 2
matchwait 2


ACCUSE1:
ACCUSE1:

Latest revision as of 16:53, 23 September 2024

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 send $lastcommand when \.\.\.wait

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

BEGIN:
pause 0.5

BEGIN1:
send study corpse
delay 0.5
put #ECHO ACCUSING %who, %with, in %where.
put up

FOREDECK:
pause 0.5
send ask %ask about alibi
delay 0.5
gosub SEARCH
pause 0.5
if !matchre("%who|%where|%with", "NULL") then goto accuse
put #ECHO ACCUSING %who, %with, in %where.
put aft


PROMENADE:
pause 0.5
send ask %ask about alibi
delay 0.5
gosub SEARCH
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
put port

BUFFET:
pause 0.5
send ask %ask about alibi
delay 0.5
gosub SEARCH
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
delay 0.5
put starboard
pause
put up

QUARTERDECK:
pause 0.5
send ask %ask about alibi
pause 0.5
gosub SEARCH
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
delay 0.5
put down
delay 1
put starboard

LOUNGE:
pause 0.5
send ask %ask about alibi
delay 0.5
gosub SEARCH
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
delay 0.5
put aft

BAR:
pause 0.5
send ask %ask about alibi
delay 0.5
gosub SEARCH
pause 0.5
put #ECHO ACCUSING %who, %with, in %where.
if !matchre("%who|%where|%with", "NULL") then goto accuse
matchwait 5
goto error

SEARCH:
pause 2
MATCHRE NOTF fails to turn up any clues\.$
MATCHRE FOUND blood has partially dried\.$
Send search
matchwait

FOUND:
delay 0.5
if contains ("$roomname", "Foredeck") then var where foredeck
if contains ("$roomname", "Promenade") then var where promenade
if contains ("$roomname", "Lounge") then var where lounge
if contains ("$roomname", "Bar") then var where bar
if contains ("$roomname", "Buffet") then var where buffet
if contains ("$roomname", "Quarterdeck") then var where quarterdeck
delay 0.5
return

NOTF:
return

ACCUSE:
put #ECHO ACCUSING %who, %with, in %where. 
pause 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