* aelmon-shipmate
label(start);
%state% {pending};
if ( not(random(0,20)), {goto(boarding);});
if ( not(random(0,20)), {goto(fishing);});
if ( not(random(0,20)), {goto(storm);});
if ( not(random(0,20)), {goto(return)});
wait(6);
label(boarding);
%state% {boarding};
wait(101);
do({shout Merchant ship, ahoy!  All hands on deck!});
reset(6215);
reset(6216);
reset(6217);
wait(30);
dig(6210,{east},6215);
do({shout Plank is lowered, board the enemy ship!});
wait(1002);
do({shout all aboard the Aelmon, we set sail soon!});
wait(103);
do({shout Plank is raised, anchor's away!});
undig(6210,{east});
wait(100);
goto(start);
label(fishing);
%state% {fishing};
wait(10);
do({:baits his hook.});
wait(10);
do({:fishes over the side.});
wait(random(50,150));
do({:catches a fish and reels it in!});
do({at 1 oload 6209});
wait(10);
do({drop fish});
wait(10);
if(random(0,1),{goto(start);},{goto(fishing);});
label(return);
%state% {returning};
wait(40);
do({shout Land ho! Starboard!});
wait(15);
recho(6210,{The ship floats safely into the Marina.});
recho(6211,{The ship floats safely into the Marina.});
recho(6212,{The ship floats safely into the Marina.});
recho(6213,{The ship floats safely into the Marina.});
wait(20);
do({shout Drop anchor!});
wait(30);
do({shout We have returned to port!});
moveall(6211,6200,{look});
moveall(6212,6200,{look});
moveall(6213,6200,{look});
moveall(6210,6200,{look});
goto(start);
label(landfall);wait(10);
do({shout Storm!});
wait(50);
recho(6210,{Wind buffets the ship; you hear the mast break!});
recho(6211,{Wind buffets the ship; you hear the mast break!});
recho(6212,{Wind buffets the ship; you hear the mast break!});
recho(6213,{Wind buffets the ship; you hear the mast break!});
wait(50);
do({shout All hands abandon ship!});
recho(6210,{The boat begins to capsize!});
recho(6211,{The boat begins to capsize!});
recho(6212,{The boat begins to capsize!});
recho(6213,{The boat begins to capsize!});
wait(50);
do({shout Abandon ship!});
moveall(6210,6218,{look});
moveall(6211,6218,{look});
moveall(6212,6218,{look});
moveall(6213,6218,{look});
wait(100);
label(storm);
%state% {storm};
if ( cmp(weather(),3),
     { goto(landfall); } );
if ( cmp(weather(),2),
     {  do({shout Batten down the hatches!  Lower the misenmast!});
        wait(100);  } );
goto(start);
 
