* 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 20 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);