!% -~S !% $OMIT_UNUSED_ROUTINES=1 !% $ZCODE_LESS_DICT_DATA=1 ! ---------------------------------------------------------------------------- ! SeaCoral ! A Punyjam #3 entry ! Copyright (C) 2023 Jeff Greer (Fos1), Far Out Science. ! http://faroutscience.com ! ---------------------------------------------------------------------------- Constant Story "Sea Coral"; Constant Headline "^A deep sea adventure for Punyjam #3.^^"; Array UUID_ARRAY string "UUID://C8BBCD81-61DA-46C2-AD11-6973211E4989//"; #Ifdef UUID_ARRAY; #Endif; ! Uncomment ONE of the two following lines, to show either time or score/turns ! Leaving both commented out makes the library bigger. !Constant STATUSLINE_TIME; Statusline time; Constant STATUSLINE_SCORE; Statusline score; ! Comment out to keep track of score ! The value is what will be shown as the score on statusline in z3 Constant NO_SCORE = 0; !Customize the statusline in z5+ (will have no effect in z3) !Constant OPTIONAL_SL_NO_SCORE; !Constant OPTIONAL_SL_NO_MOVES; ! Uncomment to add optional features to PunyInform !Constant DEBUG; Constant DIALECT_US; ! Affects OPTIONAL_ENGLISH_NUMBER !Constant CUSTOM_ABBREVIATIONS; !Constant CUSTOM_PLAYER_OBJECT = myPlayerObj; !Constant OPTIONAL_NO_DARKNESS; !Constant OPTIONAL_ALLOW_WRITTEN_NUMBERS; Constant OPTIONAL_EXTENDED_METAVERBS; Constant OPTIONAL_EXTENDED_VERBSET; Constant OPTIONAL_FLEXIBLE_INVENTORY; Constant OPTIONAL_LANGUAGE_NUMBER; Constant OPTIONAL_LIST_TOGETHER; Constant OPTIONAL_PRINT_SCENERY_CONTENTS; !Constant OPTIONAL_SCORED; !Constant OPTIONAL_FULL_SCORE; ! Comment out NO_SCORE when uncommenting this Constant OPTIONAL_FULL_DIRECTIONS; Constant OPTIONAL_SIMPLE_DOORS; Constant OPTIONAL_SHIP_DIRECTIONS; Constant OPTIONAL_GUESS_MISSING_NOUN; !Constant OPTIONAL_MANUAL_SCOPE; !Constant OPTIONAL_MANUAL_REACTIVE; !Constant OPTIONAL_ORDERED_TIMERS; Constant OPTIONAL_PROVIDE_UNDO; !Constant OPTIONAL_REACTIVE_PARSE_NAME; Constant RUNTIME_ERRORS = 2; ! 0, 1 or 2. 0 = smallest file, 2 = most info ! Define any library constants you need here, like MAX_SCORE, AMUSING_PROVIDED, ! MAX_CARRIED, SACK_OBJECT, etc. Constant INITIAL_LOCATION_VALUE = airlock; ! For winning the game Constant AMUSING_PROVIDED; Include "globals.h"; ! Define your attributes, common properties and global variables here, if any ! Define the entry point routines you need here, like Amusing, DarkToDark etc. ! Uncomment to add PunyLib extensions ! Include "ext_menu.h"; ! Study the Talk Menu extension. -> Manual and Tutorials? - jlg - 1/10/23 Constant FLAG_COUNT 48; Include "ext_flags.h"; Constant TM_FIRST_ID 300; Constant TM_MSG_TALK_ABOUT_WHAT "What would you like to talk about?"; Include "ext_talk_menu.h"; ! Note: Also include ext_flags.h to allow use of flags !Include "ext_quote_box.h"; !Include "ext_cheap_scenery.h"; Include "puny.h"; ! Uncomment to add PunyLib extensions !Include "ext_waittime.h"; Global F_HELP = 0; ! asks player to type HELP when the game starts ! ***** Aboard Pollux ***** Object Airlock "Airlock" with description "The airlock is just big enough to accommodate you and Bart. It is a pressure equalization port below the water line that allows divers safe entry into the ship.^^ The main passageway is forward (Fore).", n_to MainPassage, has light ; Object -> AirlockDesc "Airlock" with name 'airlock' 'air' 'lock' 'pressure' 'equaliztion' 'port', description "A compartment with controlled pressure and parallel sets of doors, to permit movement between areas at different pressures.", has scenery ; Object -> WaterLine "water line" with name 'water' 'line', description "The level normally reached by the water on the side of a ship.", has scenery ; Object pollux "pollux" with name 'pollux' 'ship' 'vessel' 'boat', description "The MV Pollux is a US registered motor vessel with a twist. It's primary mission is oceanic research and is owned by the National Oceanic and Atmospheric Administration. It is also chartered clandestinely by the US Coast Guard to ferret out pirates and poachers anywhere within US territorial waters or has been known to prey on US flagged vessels. Its designation 'MV' and the subdued paint scheme are meant to disguise the vessel allowing it patrol near suspicious vessels without raising their level of concern. In reality, the Pollux is a fully armed and capable military vessel.^^ The Pollux has a storied history. USS Pollux (AKS-2) served with the US Navy from 1941 until she ran aground off Newfoundlund in February 1942. USS Pollux (AKS-4) served with the US Navy from April 1942 until August 1949 where she was involved with the atomic testing at Bikini Atoll. She was reactivated and served in the Korean war in 1950. She was then transferred to Japan and ultimately decommissioned in 1969.", found_in Airlock MainPassage Bridge OpsCenter Fantail MoonPool, has scenery ; Object MainPassage "Main Passageway" with name 'passage' 'passageway', description [; print "The main passageway provides access to all areas of the Pollux.^^"; if(self hasnt visited) print "At this point you need to investigate the environmental damage to the reef with something more capable than scuba diving.^^The Deep Sea Submerssible Vehicle (DSRV) down in the Moon Pool.^"; else print "From here you can go up to the bridge deck.^"; ], u_to Bridge, d_to MoonPool, has light ; Object Passageway "passageway" with name 'passageway' 'passage' 'corridor', description "A vessel's internal ~ or corridor.", found_in MainPassage BridgeDeck Bridge, has scenery ; Object -> BridgeDeck "Bridge Deck" with name 'bridge' 'deck', description "A partial deck that is part of superstructure on smaller vessels. It is on the level that has access to the Command Bridge or control center of the vessel where the ship's Captain is found.", has scenery ; Object BridgeDesc "Bridge" with name 'bridge', description "A partial deck that is part of superstructure on smaller vessels. It is on the level that has access to the Command Bridge or control center of the vessel where the ships Captain is found.", found_in Bridge MainPassage OpsCenter OpsAfter Fantail FantailAfter, has scenery ; Object -> Captain "Captain" with name 'captain' 'commander' 'cpt' 'cdr', description "The commander of a maritime vessel is referred to as Captain or Commander. They do not have to carry the rank of 'Captain'.", has scenery ; Object MoonPool "Moon Pool" with name 'pool' 'moon', description [; print "The moon pool is an open access or pool at the water line of the ship. The bottom of the moon pool is open to the ocean. It allows direct access to the water for submersibles and divers. Not only is this a very convenient way to conduct research, it is also clandestine. Activities within the moon pool cannot be observed from nearby surface vessels. The Deep Sea Submersible Vehicle (DSRV) takes up most of the space in the moon pool.^^"; if(self hasnt visited) print "You have a mission to complete: [Board] the DSRV and visit the coral reef."; else print "You can go forward (Fore) to the lab."; ], !u_to MainPassage, ! maybe implement a separate Moon Pool for after the DSRV mission? n_to Lab, in_to DSRV, has light ; Object -> MoonPoolDesc "Moon Pool" with name 'moon' 'pool', found_in mainpassage moonpool, description "The moon pool is an open access or pool at the water line of the ship. The bottom of the moon pool is open to the ocean. It allows direct access to the water for submersibles and divers. Not only is this a very convenient way to conduct research, it is also clandestine. Activities within the moon pool cannot be observed from nearby surface vessels. The DSRV takes up most of the space in the moon pool.", has scenery ; Object -> Bottom "bottom of moon pool" with name 'bottom' 'ships' 'ship' 'hull', description "The moon pool has no bottom. It is open to the sea below the ship. Sometimes there can be a steel plate that can be moved over the opening. In reference to the ship, the bottom of the ship is its exterior surface or hull.", has scenery ; Object -> Hull "hull" with name 'bottom' 'exterior' 'hull' 'plate' 'plates', description "The hull of a boat or a ship is its outer body. A boat's hull can be made of wood, metal, or fiberglass — it gives a boat or ship its shape and keeps water out.", has scenery ; Object -> Ocean "ocean" with name 'ocean' 'sea' 'water', description "In this context, the ocean or sea is rhetorically called water.", has scenery ; Object -> DSRVSpecs "DSRV Specifications" with name 'dsrv' 'deep' 'sea' 'submersible' 'vehicle', description "DSRV Specifations: The Deep Sea Submersible Vehicle (DSRV) supports two researchers. It's maximum depth capability is well below the tolerance of the divers. The divers depth tolerance can be increased by use of mixed gasses. The exterior is equipped with 360 degree thrusters, full lighting, hand-like grasping claws and specimen holding bays. The DSRV can operate at full capacity for more than five hours on a full charge.", Before [; Take: print "You can only use the DSRV when on official missions."; return true; ], has scenery ; Object Lab "Lab" with name 'Lab', description "The lab is meticulously organized. Sandy is an excellent lab tech. You can see the lab station and some specimens that seem to have been analyzed already. Labs are interesting places. You are free to examine [X] everything. But do not touch! It would break the chain of custody rules.^^ It would be wise to discuss the lab results with the lab tech: [Talk to] Sandy.^^ You can go up to the main passageway from here after you have verified the lab analysis.", u_to MainPassage, after [; Go: move LabTech to self; tac1.activate_topics(self); rfalse; Going: tac1.inactivate_topics(self); rfalse; ], has light ; Object -> LabTech "Sandy" with name 'Tech' 'technician' 'Sandy', description "A very capable technician that can analyze just about anything you could bring to her. She has a P.Hd. in forensic science.^^ You can [Talk to] Sandy.", talk_start 0, has animate proper female scenery ; Object LabStation "lab station" Lab with name 'lab' 'station', description "This well-equipped lab station includes all the traditional lab equipment you would see in any well equipped lab on the mainland.^^ There is a chart on the wall that you can read." has scenery ; Object -> Specimens "specimens" with name 'specimens' 'samples' 'specimen' 'sample', description "The specimens are the samples of coral, water, and sand that were collected on your dive to the coral reef off Pennekamp Park. You can examine each of the samples individually.", has pluralname scenery ; Object CoralSample "coral sample" Lab with name 'coral', description "This particular coral sample was exposed to some sort of bleaching agent. There are traces of sodium hypochlorite. The coral has been killed in its entirety.", has scenery ; Object water "water" Lab with name 'water', description "This sea water sample contains a plethora salts, live and expired lifeforms, enzymes, and byproducts of untold marine creatures and fauna. It also shows a trace amount of sodium hypochlorite.", has scenery ; Object sand "sand" Lab with name 'sand', description "The sand is typical of an offshore, shallow water sand you would typically find in a coral reef. It consists of aragonite, calcite, and magnesium calcite. Of note, there are glass shards mixed in the sample. It appears to be of recent origin since the sharp edges have not be ground smooth by waves and current movement. There are also slight traces of some kind of petroleum hydrocarbon.", has scenery ; ! Implement shards and glass as scenery Object WhiteBoard "White Board" Lab with name 'white' 'board', description "The white board has a chart with the status of specimens being processed in the lab. (You can [Read] the chart.)", has scenery ; Object Chart "chart" Lab with name 'chart' 'status', description "^Specimen Status^^ Coral Complete^ Water Complete^ Sand Complete", has scenery ; Object LabEquipment "lab equipment" Lab with name 'equipment' 'machines', description "The lab equipment is the latest versions of lab equipment that you would find in any well-equipped lab." has scenery ; Object DSRV "DSRV" with description [; print "The Deep Sea Submersible Vehicle (DSRV) supports two researchers. It's maximum depth capability is well below the tolerance of the divers. The divers depth tolerance can be increased by use of mixed gasses. The exterior is equipped with 360 degree thrusters, full lighting, hand like grasping claws and specimen holding bays. The DSRV can operate at full capacity for more than five hours on a full charge.^^"; if(self hasnt visited) print "The coral reef is to the southwest."; else print "You can [Exit] to the moon pool."; ], sw_to ReefDSRV, out_to MoonPool, has light ; Object Bridge "Bridge Deck" with description "You are on the main deck of the Pollux.^^ This deck is above main passageway. The bridge is on the foward (Fore) part of the main deck, the Ops Center is to port and the fantail is aft.", n_to "You currently have no buisness to attend to on the bridge. You have pirates and poachers to deal with. There is much more information available in the Ops Center.", d_to MainPassage, s_to Fantail, w_to OpsCenter, has light ; Object -> Deck "deck" with name 'deck' 'ships', description "Decks are the main horizontal parts of a ship's structure. The crew stand and walk on the deck.", has scenery ; ! ***** Within Florida Straits ***** Object OpsCenter "Ops Center" with name 'ops' 'operations' 'center', description "All mission planning and control are carried out in the Operations Center. The Pollux is currently operating in the Florida Straits near the Pennekamp Park protected area. The Commander is usually on the bridge but drops in from time to time to make sure the mission is on track. Bart rarely leaves your side.^^ Note: The tactical displays (Tacs) are information screens. They have the latest AI programming. You can talk to them almost like they were alive. Tac2 is the large screen in the center that provides a general overview of operations. Tac1 provides satellite imagery and Tac3 is linked to a government database for maritime vessel data.^^ The Comms Room is forward (Fore) and the Bridge Deck is starboard.^^ After discussing the options and checking the Tacs and the radio in Comms, go northeast to set sail for the Florida Straits.^^ Try [Talk To] (Someone or the Tacs) for example: [Talk to Bart]", after [; Go: move tac1 to self; print "^^The Tac displays are operating.^^"; tac1.activate_topics(self); rfalse; Going: tac1.inactivate_topics(self); rfalse; ], n_to Communications, e_to Bridge, ne_to FloridaStraits, has light proper ; Object tac1 "Tac1" opscenter with name 'tac1' 'tactical1' 'display1', description "Tactical display 1 is an interactive device that provides current satellite imagery. A Department of Defense satellite has been tasked to the area covering the Florida Straits.", talk_start 0, activate_topics [ p_room; if(p_room == opscenter) ActivateTopic(self, 300); ], inactivate_topics [ p_room; if(p_room == opscenter) InactivateTopic(self, 300); ], has animate proper ; Object tac2 "Tac2" opscenter with name 'tac2' 'tactical2' 'display2', description "Tactical display 2, the large central display, provides a general overview of the operation area.", talk_start 0, has animate proper ; Object tac3 "Tac3" opscenter with name 'tac3' 'tactical3' 'display3', description "Tactical display 3 is mainly a database of ship information.", talk_start 0, has animate proper ; Object -> AIS "AIS" with name 'AIS', description "Automatic Identification System (AIS)", has scenery ; Object -> MMSI "MMSI" with name 'MMSI', description "Maritime Mobile Identity Number (MMSI)", has scenery ; Object Sonobouy "sonobouy" with name 'sonobouy', description "Sonobouy: a buoy equipped to detect underwater sounds and transmit them by radio. They can be deployed from the air by aircraft.", found_in OpsCenter OpsAfter, has scenery ; Object communications "Communications Room" with name 'comm' 'radio' 'comms', description "The radios here are interactive, similar to the Tac displays in Ops. Aft back to Ops.", after [; Go: move radio to self; print "^^The radio is set to channel 16.^^"; radio.activate_topics(self); rfalse; Going: radio.inactivate_topics(self); rfalse; ], s_to OpsCenter has light animate proper ; Object Comms "Comms" with name 'comms' 'communications' 'cell' 'phones' 'satellite' 'digital', description "Communications devices that includes traditional AM/FM tranceivers, cell phones, satellite phones and personal digital devices.", found_in communications OpsCenter OpsAfter, has scenery ; Object Screens "screens" with name 'screen' 'screens' 'monitor' 'monitors' 'tacs' 'tac' 'tactical' 'display' 'displays', description "Computer monitor displays mounted to the bulkhead of the Operations Center. Here we call them Tacs for tactical monitors.", found_in OpsCenter OpsAfter, has scenery ; Object radio "radio" with name 'radio' 'radios', description "A multiband communications radio is set to the Marine Band and Channel 16 - The national distress, safety and calling frequency.", talk_start 0, activate_topics [ p_room; if(p_room == communications) ActivateTopic(self, 300); ], inactivate_topics [ p_room; if(p_room == communications) InactivateTopic(self, 300); ], Before [; Take: print_ret "The radio is mounted. It cannot be removed."; ], has animate scenery ; Object Fantail "Fantail" with description "The fantail is aft of the bridge, the main working area for the Pollux. There is a rigid-hull inflatable boat (RHIB) secured to the deck.^^ You can get on (Board) the RHIB.", n_to Bridge, in_to RHIB, has light ; Object FantailDesc "Fantail" with name 'fantail' 'working' 'area', description "An overhang consisting of the fan-shaped part of the aft deck.", found_in MainPassage Bridge OpsCenter OpsAfter Fantail FantailAfter, has scenery ; Object RHIB "RHIB" with description "A rigid-hull inflatable boat.^^ You can exit to the fantail. Southwest to Coral Reef.", out_to Fantail, sw_to ReefRHIB, has light switchable enterable static container open ; Object OpsAfter "Ops Center" with name 'ops' 'operations' 'center', description "You are back in the Operations Center - After our inspection of the Shadow Caster, it is clear that that pirate and his crew are responsible for much of the damage to the local coral, marine life and environment. The equipment room is to starboard.^^ Be sure to talk to the Commander.", after [; Go: move CommanderAfter to self; print "^^The Tac displays are operating.^^"; CommanderAfter.activate_topics(self); rfalse; Going: CommanderAfter.inactivate_topics(self); rfalse; ], out_to EquipmentRoom, e_to EquipmentRoom, has light proper ; Object -> Focsle "Focsle" with name 'focsle' 'forecastle', description "Focs'le is short for forecastle. It is the forward part of a ship, typically covered and traditionally used storage.", found_in OpsCenter OpsAfter MysteryShip ShadowCasterRHIB, has scenery ; Object tac1After "Tac1" opsAfter with name 'tac1' 'tactical1' 'display1', description "Tactical display 1 is an interactive device that provides current satellite imagery. A Department of Defense satellite has been tasked to the area covering the Florida Straits.", talk_start 0, activate_topics [ p_room; if(p_room == opsAfter) ActivateTopic(self, 300); ], inactivate_topics [ p_room; if(p_room == opsAfter) InactivateTopic(self, 300); ], has animate proper ; Object tac2After "Tac2" opsAfter with name 'tac2' 'tactical2' 'display2', description "Tactical display 2, the large central display, provides a general overview of the operation area.", talk_start 0, has animate proper ; Object tac3After "Tac3" opsAfter with name 'tac3' 'tactical3' 'display3', description "Tactical display 3 is mainly a database of ship information.", talk_start 0, has animate proper ; Object TakeDown "Take Down" with name 'take' 'down' 'takedown', description "In martial arts and combat sports, a takedown is a technique that involves off-balancing an opponent and bringing them to the ground with the attacker landing on top.", found_in EquipmentRoom ShadowCasterRHIB RHIBAfter OpsAfter FantailAfter, has scenery ; Object EquipmentRoom "Equipment Room" with description "Suit up with your battle gear and head aft to fantail.^^ Be sure to consult Bart about mission.", s_to FantailAfter, ! Implement Before something other than Take? Consult? Before [; Consult: print "You know I'm comming with you. I would never miss a mission.^"; return true; ], after [; Go: move BartAfter to self; print "^^Bart is ready for action.^^"; BartAfter.activate_topics(self); rfalse; Going: BartAfter.inactivate_topics(self); rfalse; ], has light ; Object -> helmet "helmet" with name 'helmet', description "A military battle helmet, the latest version made from lightweight kevlar.", has clothing ; Object -> vest "bullet-proof vest" with name 'vest' 'bullet' 'proof', description "The latest version designed only for government agents and police. It is mostly kevlar with hard plates designed to specifically protect the heart and vital organs.", has clothing ; Object -> UtilityBelt "utility belt" with name 'utility' 'belt', description "The utility belt is made from a black colored web material. It is equipped with a flashlight, police grade pepper spray, a baton and extra loaded magazines for your rifle.", has clothing ; Object -> M249 "M249" with name 'M249' 'battle' 'rifle' 'gun' 'weapon' 'machine', description "This version M249 5.6 mm machine gun is capable of full auto, 3 round bursts, and is magazine fed. This is not available for civillians. It is heavy and deadly." has ; Object -> Baton "baton" with name 'baton', description "A baton is a roughly cylindrical club made of wood, rubber, plastic, or metal. It is carried as a compliance tool and defensive weapon by law-enforcement." has scenery ; Object -> Magazine "magazine" with name 'magazine' 'clip', description "A magazine is an ammunition storage and feeding device for a repeating firearm.", has scenery ; Object -> Flashlight "flashlight" with name 'flashlight' 'light' 'torch', description "A battery powered portable light.", has scenery ; Object FantailAfter "Fantail" with description "You are aft of the bridge the rear working area for the MV Pollux. There is a RHIB secured to the deck.^^ You can [Board] the RHIB.", n_to Bridge, in_to RHIBafter, has light ; Object RHIBafter "RHIB" with description "You are aboard the RHIB.^^ You can exit to the fantail. Southeast to Shadow Caster.", out_to FantailAfter, se_to ShadowCasterRHIB, has light switchable enterable static container open ; Object FloridaStraits "Florida Straits" with description [; print "You are now in the Florida Straits, a large area located south-southeast of the North American mainland, between the Gulf of Mexico and the Atlantic Ocean, and between the Florida Keys (U.S.) and Cuba. It is 93 mi (150 km) wide at the narrowest point between Key West and the Cuban shore, and has been sounded to a depth of 6,000 feet (1,800 m). The strait carries the Florida Current, the beginning of the Gulf Stream, from the Gulf of Mexico.^^"; if(self hasnt visited) print "You can go north to Pennekamp Park."; else print "You can go north to Pennekamp Park and south to the Marine Six."; ], n_to Park, !nw_to Bridge, !ne_to KeysDiver, !se_to BarboursCut, s_to MarineSix, !sw_to EasyTimes, has light ; Object MysteryShip "Mystery Ship" with name 'mystery' 'ship', description "It looks like a pirate vessel. You notice a lot of unsecured items in disarray all over the deck.^^ Navigate to the west when it is time to leave.", w_to OpsAfter, after [; Go: move pirate to self; print "^^The pirate has an aggressive posture.^^"; pirate.activate_topics(self); rfalse; Going: pirate.inactivate_topics(self); rfalse; ], has light proper ; Object -> Waylay "waylay" with name 'waylay' 'way' 'lay', description "To lie in wait for or attack (someone) from ambush.", has scenery ; Object -> items "unsecured items" with name 'unsecured' 'items', description "You see unmarked barrels, coral samples in scattered tubs, grease, grime and hydraulic fluid all over the deck. You see bottles of bleach and empty bottles on a worktable. There is dive gear haphazardly lying around.^^", before [; Take: print "You don't want to arouse the pirates' wrath by moving items on the deck at this time."; return true; ], has ; Object -> Barrels "barrels" with name 'barrels' 'barrel' 'drums' 'unmarked' 'drum', description "The barrels are a collection of standard 55 gallon steel drums. Some of them are made from a translucent nylon type material that allows you to barely see the shape of objects that they contain.", before [; Take: print "You don't want to arouse the pirates' wrath by moving items on the deck at this time."; return true; ], has scenery ; Object -> CoralSamples "coral samples" with name 'coral' 'samples', description "You can see damaged coral samples on worktables, in the transluceent drums and scattered around the deck!", before [; Take: print "You don't want to arouse the pirates' wrath by moving items on the deck at this time."; return true; ], has scenery ; Object -> Tubs "tubs" with name 'scattered' 'tubs' 'basins' 'wash', description "There are various wash tubs scattered around the open deck. It looks like they are cleaning coral and fish and packing them into the drums.", before [; Take: print "You don't want to arouse the pirates' wrath by moving items on the deck at this time."; return true; ], has scenery ; Object -> Bottles "bottles" with name 'bottles' 'bottle' 'jug' 'jugs' 'glass' 'gallon', description "You haven't see glass jugs in awhile. Bleach and vinegar used to come in glass jugs back in the day. Some of them are leaking. You can definitely smell a bleach odor.", before [; Take: print "You don't want to arouse the pirates' wrath by moving items on the deck at this time."; return true; Smell: print "Around the leaking bottles you can smell the piercing bleach oder."; return true; ], has scenery ; Object -> Bleach "bleach" with name 'bleach', description "You once used bleach in your laundry. It was very dangerous and would burn your skin and eyes. It also wears out clothing rapidly. But it does make them bright.", before [; Take: print "You don't want to arouse the pirates' wrath by moving items on the deck at this time."; return true; Smell: print "Around the leaking bottles you can smell the piercing bleach oder."; return true; ], has scenery ; Object -> Fish "fish" with name 'fish' 'heads', description "There are fish and fish remnants all over the deck and work tables. Some of them are definitely protected and out of season. They are being wrapped and prepared for shipment.", before [; Take: print "You don't want to arouse the pirates' wrath by moving items on the deck at this time."; return true; Smell: print "The dead fish laying out in the Sun are really beginning to stink."; return true; ], has scenery ; Object -> Grease "grease and grime" with name 'grease' 'grime' 'hydraulic' 'fluid' 'fuel' 'oil', description "There is various petroleum products including grease, oil and hydraulic fluid all over the deck and leaking into the water.", before [; Take: print "You don't want to arouse the pirates' wrath by moving items on the deck at this time."; return true; Smell: print "Around the leaking drums and equipment you can smell the nasty odor of fuel and hydraulic fluid."; return true; ], has scenery ; ! This is the version that ends the game one way or the other. Object ShadowCasterRHIB "Shadow Caster" with name 'shadow' 'caster' 'mystery' 'ship', description "You have boarded the Shadow Caster from the RHIB. The ship's name has been obscured. She is flying a Panamanian flag.^^ You shold definitely talk to the Pirate before anything else. If you want to back out, you can [Board] the RHIB.", out_to RHIB, before [; Talk: if(M249 notin player || Vest notin player || Helmet notin player || UtilityBelt notin player) { deadFlag = 3; "You have lost! You have been severely injured. You were not wearing your battle equipment. Even with the Pollux covering you, they were to late to protect you entirely. Fortunately, you will recover, your skill saved you from more serious injuries.^^The Captain and crew were ultimately talken into custody. They will now face additional charges for assaulting a federal agent.^^The Shadow Caster is being taken to Federal impound berthing and will be held for evidence until the the Captain and crew have been tried."; } else rfalse; Arrest: deadFlag = 3; if(M249 notin player || Vest notin player || Helmet notin player || UtilityBelt notin player) { deadFlag = 3; "You have lost! You have been severely injured. You were not wearing your battle equipment. Even with the Pollux covering you, they were to late to protect you entirely. Fortunately, you will recover, your skill saved you from more serious injuries.^^The Captain and crew were ultimately talken into custody. They will now face additional charges for assaulting a federal agent.^^The Shadow Caster is being taken to Federal impound berthing and will be held for evidence until the the Captain and crew have been tried."; } else { deadFlag = 3; "You have won! The pirate and his crew are under arrest and charged with environmental destruction in federal waters, poaching and killing marine life and contamination of seawater due to the leackage of petroleum products and toxic materials from the Shadow Caster.^^The Shadow Caster is now operated by Coast Guard appointed Captain and crew. She will be sailed to the Federal impound berthing and held for evidence until the Captain and crew have been tried"; } ], after [; Go: move PirateAfter to self; print "^^The captain has an aggressive posture.^^"; PirateAfter.activate_topics(self); rfalse; Going: PirateAfter.inactivate_topics(self); rfalse; ], has light proper ; Object Park "Pennekamp Park" with name 'Pennekamp' 'park', description "An incredible state park whose central attraction is an offshore coral reef. The reef attracts divers from all over the world. Its diversity of coral, fauna and the marine life is beyond compare. An underwater playground.^^ The coral reef is north of the Florida Straits are to the south.", n_to Reef, s_to FloridaStraits, !e_to KeysDiver, has light ; Object -> Fauna "Fauna" with name 'fauna' 'marine' 'life', description "The animals characteristic of coral reefs and mangroves in the Florida Straits.", has scenery ; Object -> Coral "coral" with name 'coral' 'reef', description "A sedentary coelenterate of warm and tropical seas, with a calcareous, horny, or soft skeleton. Most corals are colonial and many rely on the presence of green algae in their tissues to obtain energy from sunlight.", has scenery ; ! Different implementation - if RHIB or DSRV Object reef "Coral Reef" with nmme 'coral' 'reef', description "An amazing array of sea coral and marine life. The water is so clear, you can see it from the surface. Just some fins, snorkel and a mask would provide a great experience! By the way, you need to check on that kayaker just to the east.^^ Pennekamp Park is to the south. You see the Keys Diver to the southeast and Chasing Coral to the west. You can barely see a kayak to the east.", before [; Swim: print "The water is beautiful and enticing. Any other time you would put on your mask fin and snorkels and go swimming. Today, you have to solve the einvironmental crisis."; return true; ], s_to Park, se_to KeysDiver, w_to ChasingCoral, e_to kayak, has light ; Object kayak "Kayak" with name 'kayak', description [; print "A long and narrow racing kayak.^^The reef is to the west. "; if(self hasnt visited) print " There is a diver in the water."; ], w_to Reef, after [; Go: move diver to self; print "^^The diver is a young woman that kayaked out to the reef for fun and exploration.^^"; diver.activate_topics(self); rfalse; Going: diver.inactivate_topics(self); rfalse; ], has light static supporter, ; Object KayakDesc "Kayak" with name 'kayak' 'canoe' 'paddle' 'board' 'racing', description "A kayak is a narrow boat like a canoe, used by the Inuit people and in the sport of canoeing and kayak racing.", found_in Kayak Reef Communications OpsCenter OpsAfter, has scenery ; Object ReefRHIB "Coral Reef" with description "An amazing array of sea coral and marine life. Florida's coral reef is the only coral reef system in the continental United States and is home to over 40 species of reef-building corals that provide shelter, food and breeding sites for millions of plants and animals.^^ You can board the RHIB to return to the Pollux.", in_to RHIB, has light ; Object ReefDSRV "Coral Reef" with description "There is an amazing array of sea coral and marine life.^^ After seeing some strange damage to the environment, you have collected samples of coral, water and sand from the area that looks disturbed.^^ You can board the DSRV to return to the Pollux.", in_to DSRV, Before [; Examine: print "The specimens are stored in external wet wells. You cannot access them from inside the DSRV. It would be best to let the lab tech process them upon your return to the Pollux.^"; return true; Take: print "The specimens are stored in external wet wells. You cannot reach them.^"; return true; ], has light ; Object -> ReefSpecimens "specimens" with name 'specimens' 'samples' 'specimen' 'sample', discription "The samples of coral, water and sand that were collected within the Pennekamp Park coral reef area.", has scenery ; Object MarineSix "Marine 6" with name 'marine' 'six', description "A marine salvage vessel out of Marathon Key.^^ The Florida Straits is to the northwest. You can see the Easy Times to the west. For berthage and repairs Barbours Cut is to the east.", nw_to FloridaStraits, w_to EasyTimes, e_to BarboursCut, after [; Go: move Sledge to self; print "^^Sledge is the Captian of Marine Six.^^"; Sledge.activate_topics(self); rfalse; Going: Sledge.inactivate_topics(self); rfalse; ], has light ; Object -> DiverFlag "divers down flag" with name 'divers' 'down' 'flag' 'pennant' 'bouy', description "The divers down flag signifies that there is actually divers in the water and nearby vessels should stay clear. It is usually on a float but can also be a pennant or flag on the dive boat.", ; Object BarboursCut "Barbours Cut" with name 'barbours' 'cut', description "A small key, little more than a large collection of mangroves just big enough to tie up to. There is a small protected inlet with a pier and dockage that can be used to complete minor repairs.^^ West to Marine Six, northwest to navigate the Florida Straits and you can see a large vessel to the northeast.", ne_to MysteryShip, nw_to FloridaStraits, w_to MarineSix, after [; Go: move Dockmaster to self; print "^^The Dockmaster can complete any repair operation.^^"; Sledge.activate_topics(self); rfalse; Going: Sledge.inactivate_topics(self); rfalse; ], has light ; Object -> DockmasterDesc "Dockmaster" with name 'dockmaster', description "The Dockmaster is responsible for the operations directly associated with the boating and ship customers.", has scenery ; Object -> Repairs "repairs" with name 'repairs' 'service' 'servicing', description "The repair, improvement, alteration and reconditioning of the hull and/or the overhaul of the machinery and equipment of vessels at berth or at anchorage.", has scenery ; Object -> Inlet "inlet" with name 'inlet' 'cove' 'bay', description "A bay or recess in the shore of a sea, lake, or river.", has scenery ; Object -> Dockage "dockage" with name 'dockage' 'pier', description "A platform supported on pillars or girders leading out from the shore into a body of water, used as a landing stage for boats and ships.", has scenery ; Object EasyTimes "Easy Times" with name 'Easy' 'Times', description "A commercial party boat based out of Marathon Key. It caters to the tourists, mostly the ones from nearby Pennekamp Park.^^ Go northwest back to the Florida Straits and the Marine Six to the east.", nw_to FloridaStraits, e_to MarineSix, !w_to KeysDiver, after [; Go: move Hank to self; print "^^The Dockmaster can complete any repair operation.^^"; Hank.activate_topics(self); rfalse; Going: Hank.inactivate_topics(self); rfalse; ], has light ; Object ChasingCoral "Chasing Coral" with name 'chasing', description "A commercial offshore dive boat and sister ship to Keys Diver.^^ You can see Pennekamp Park to the west. North to Coral Reef.", w_to park, n_to Reef, after [; Go: move Bruce to self; print "^^Captain of Chasing Coral. A PADI master diver and instructor.^^"; Bruce.activate_topics(self); rfalse; Going: Bruce.inactivate_topics(self); rfalse; ], has light ; Object KeysDiver "Keys Diver" with name 'keys' 'diver', description "A commercial offshore dive boat and sister ship to Chasing Coral.^^ Northeast to Coral Reef. West to Pennekamp Park. Southwest to Florida Straits. East to Chasing Coral.", ne_to Reef, w_to Park, sw_to FloridaStraits, e_to ChasingCoral, after [; Go: move Joe to self; print "^^Captain of the Keys Diver a sister ship to Chasing Coral.^^"; JOe.activate_topics(self); rfalse; Going: Joe.inactivate_topics(self); rfalse; ], has light ; ! ***** NPC Characters ***** Object Bart "Bart" with name 'bart', description "He's your trusty sidekick, a Navy SEAL. He has been at your side on every dangerous mission you have completed and those not yet started.", found_in airlock opscenter, talk_start 0, has animate proper scenery ; ! Modified found_in to remove Bart from ShadowCasterRHIB - That removes the possibility that ! "Arresting Bart" would win the game. Object BartAfter "Bart" with name 'bart', description "He's your trusty sidekick, a Navy SEAL. He has been at your side on every dangerous mission you have completed. And those not yet completed.", found_in EquipmentRoom RHIBAfter OpsAfter FantailAfter, talk_start 0, activate_topics [ p_room; if(p_room == EquipmentRoom) ActivateTopic(self); ], inactivate_topics [ p_room; if(p_room == EquipmentRoom) InactivateTopic(self); ], has animate proper ; Object Commander "Decker" opscenter with name 'Decker' 'Commander' 'Cdr', description "Cdr. Elaine Decker is the mission commander. She is a seasoned Coast Guard officer and has spent all of her extensive careeer in law enforcement. Cdr. Decker is usually on the bridge, she stopped in the Ops Center briefly just to observe. She nods for all of you to continue.", talk_start 0, ! Implement - move Decker to nil after [; Talk: remove self; return false; ], has proper animate female ; Object CommanderAfter "Commander" OpsAfter with name 'Decker' 'Commander' 'Cdr', description "Cdr. Elaine Decker is the mission commander. She is a seasoned Coast Guard officer and has spent all of her extensive careeer in law enforcement. Cdr. Decker is usually on the bridge, she stopped in the Ops Center briefly just to observe. She nods for all of you to continue.", talk_start 0, activate_topics [ p_room; if(p_room == OpsAfter) ActivateTopic(self); ], inactivate_topics [ p_room; if(p_room == OpsAfter) InactivateTopic(self); ], has proper animate female ; Object Pirate "pirate" with name 'Pirate' 'Master', description "The Master of the Shadow Caster. You can talk to him.", talk_start 0, activate_topics [ p_room; if(p_room == MysteryShip) ActivateTopic(self, 300); ], inactivate_topics [ p_room; if(p_room == MysteryShip) InactivateTopic(self, 300); ], Before [; Take: print_ret "You cannot just take the pirate no matter how much you think he has done. You must have evidence first."; ], has animate ; Object PirateAfter "pirate" with name 'pirate' 'master', description "The Master of the Shadow Caster. He is very angry, but you can talk to him.", talk_start 0, activate_topics [ p_room; if(p_room == shadowcasterRHIB) ActivateTopic(self, 300); ], inactivate_topics [ p_room; if(p_room == shadowcasterRHIB) InactivateTopic(self, 300); ], Before [; Take: print_ret "You cannot just take the pirate. You must arrest him first."; ], has animate ; Object Sledge "Sledge" with name 'Sledge', description "Sledge worked his way up from deckhand to Captain of Marine Six by hard work and long hours of study to earn his Master's license. You can [Talk to] Sledge.", talk_start 0, activate_topics [ p_room; if(p_room == MarineSix) ActivateTopic(self); ], inactivate_topics [ p_room; if(p_room == MarineSix) InactivateTopic(self); ], has animate proper ; Object Dockmaster "Dockmaster" with name 'Dockmaster', description "He is a oneman repair crew. He can repair just about any boat or small vessel. You can talk to the Dockmaster.", talk_start 0, activate_topics [ p_room; if(p_room == BarboursCut) ActivateTopic(self); ], inactivate_topics [ p_room; if(p_room == BarboursCut) InactivateTopic(self); ], has animate proper ; Object Hank "Hank" with name 'Hank', description "Hank was once a conference organizer but had a yearning for the sea. He purchased a large commercial catamaran and outfitted it as a party boat. You can talk to Hank.", talk_start 0, activate_topics [ p_room; if(p_room == EasyTimes) ActivateTopic(self); ], inactivate_topics [ p_room; if(p_room == EasyTimes) InactivateTopic(self); ], has animate proper ; Object Bruce "Bruce" with name 'Bruce', description "Bruce is a PADI Master Diver and Open Water Instructor. He once taught diving in Florida and specialized in spring diving. You can talk to Bruce.", talk_start 0, activate_topics [ p_room; if(p_room == ChasingCoral) ActivateTopic(self); ], inactivate_topics [ p_room; if(p_room == ChasingCoral) InactivateTopic(self); ], has animate proper ; Object Joe "Joe" with name 'Joe', description "Joe is a PADI Master Diver and Open Water Instructor. He once taught diving in Florida and specialized in open water diving. You can talk to Joe.", talk_start 0, activate_topics [ p_room; if(p_room == KeysDiver) ActivateTopic(self); ], inactivate_topics [ p_room; if(p_room == KeysDiver) InactivateTopic(self); ], has animate proper ; Object diver "diver" with name 'diver' 'meg', description "A young woman that looks as if she just came up from snorkleing. She is anxious to talk with the authorities.", talk_start 0, activate_topics [ p_room; if(p_room == kayak) ActivateTopic(self); ], inactivate_topics [ p_room; if(p_room == kayak) InactivateTopic(self); ], has animate female scenery ; ! ***** End NPCs ***** ! ***** From talk-menu.inf ***** Array talk_array --> TM_NPC Tac1 ! Satellite Imagery 30 "Current View" "Anything significant on the satellite image?^" "There are several vessels in the area. Some are commercial and all of them seem to be loitering around the reef." 30 "Vessel Types" "Can you tell what types of vessels they are?^" "The smaller ones appear to be pleasure craft. The commercial craft are bigger, possibly charter vessels. One of the larger vessels is hard to discern." 30 "Specifics" "Do you have specifics on the large vessel?^" "Not currently. The vessel is not transmitting an ID." 30 "Track" "Keep an eye on the mystery ship and let us know when it starts making headway!^" "We have the mystery vessel's plot, it is difficult to maintain since they are not sending AIS or MMSI signals." TM_NPC Tac2 ! Big Picture (Larger Screen) 30 "Big Picture" "What's the big picture?^" "There are a number of vessels being tracked, at least the ones transmitting their AIS and MMSI codes. That includes all larger vessels and even the smaller commercial vessels. There are several United States Drug Enforcement Administration (DEA) and Florida Fish and Wildlife Commission (FWC) craft in the water and a DEA aircraft patrolling the area." 30 "Anything Unusual" "Any reports of unusual activity?^" "A report of a kayaker in distress and a sonabouy picked up some underwater explosions in the reef area." 30 "Explosions?" "Why would there be explosions? Any construction going on?^" "There is no approved construction that involves any demolition." 30 "Kayak" "Can you pinpoint the kayaks location?^" "Not so far. It is below our usual imagery resolution. We have sent a tasker request to DoD to go to maximum resolution." 30 "OK" "OK. Sound an alarm if you receive any important updates.^" "Aye-aye, will do." TM_NPC tac3 ! Ship Database 30 "Info" "Any info on our mystery ship?^" "No Sir. We cannot look it up in our database without further identification. The Intel Analysts are working on it. We do have information on the registered vessels in the area." 30 "Marine Six" "Marine Six?^" "The Marine Six is a salvage vessel working out of Marathon Key. It provides wreck debris removal services. The vessel has a shallow draft making it capable of maneuvering safely around coral reefs and mangroves. It has a very good reputation for service and safety." 30 "Easy Times" "Easy Times?^" "Party boat is somewhat a misnomer. The Easy Times provides charters to observe the coral reef and wreck sites using their unique live underwater camera system. It also has a glass bottom for direct viewing. It can also provide fishing charters to approved fishing sites. It has a very good reputation for being careful with the environment." 30 "Chasing Coral" "Chasing Coral?^" "Chasing Coral is a sister ship to the Keys Diver. The company, Reef Runners, was founded by two career divers and instructors. Chasing Coral is the larger of the two vessels that can accommodate up to twenty divers comfrortably. No significant infractions are listed on their record." 30 "Keys Diver" "Keys Diver?^" "The Keys Diver is a sister ship to Chasing Coral. It is the smaller of the two vessels owned by Reef Runners. It typically carries no more than eight passengers on more complex dives. It carries three well-qualified instructors to provide instruction and guidance for complex technical diving." TM_NPC Tac1After ! Satellite Imagery 30 "Latest" "What is the latest satellite info?^" "The rogue ship has been identified as the Shadow Caster. It is currently stationary just southeast of our current position." 30 "Tracking" "Is tracking secured?^" "The DoD satellite has now been fixed to this general area. It can track the Shadow Chaser even in bad weather." TM_NPC Tac2After ! Big Picture (Larger Screen) 30 "Status Report" "Status Report?^" "All systems and personnel aboard the Pollux are ready and operational. We are just over the horizon from Shadow Caster. Our communications are both encrypted and narrowly focused on a high altitude AWACS aircraft. The Shadow Caster should not be aware of our presence." TM_NPC tac3After ! Ship Database 30 "News" "Any new info on the rogue vessel?^" "The vessel has been positively identified. She is the Shadow Caster. It has changed names and registration info several times in recent years. It is a very bad actor along with the captain and crew." TM_NPC Pirate 30 "Greetings" "Good day, Sir. Are you the captain of this vessel?^" "I am. Why did you waylay my vessel? !" 30 "On Board" "What is your business in this area?^" "You have no authority to stop and board my ship!" 30 "Authority" "We have every authority. As a US Coast Guard vessel, we are responsible for the security of US territorial waters.^" "My flag is Panama. I can sail wherever I wish." 30 "Items on Deck" "Tell me about the unsecured items on your deck.^" "I will do no such thing. You have no authority on my ship. Now leave before there is trouble." 30 "Not now." "Very well. This is not the time, but it is the place. Good day to you. For now...^" "Harr!" TM_NPC PirateAfter 30 "Boarding" "Captain. You are under arrest and the Pollux is going to seize your vessel.^" "So you say!" TM_NPC radio 30 "New" "Anything new on the comms?^" "Just the general traffic. There was something faint from one of the commercial vessels. Something about an empty kayak near the reefs without a diver's down flag." 30 "Coast Guard HQ" "Anything from HQ?^" "HQ picked up the traffic about the kayak and asked that we keep a lookout on our patrols." 30 "Anything else?" "Anything else?^" "HQ has also heard reports about damaged coral and fish floating near the reefs. Some pleasure boaters also notified authorities that they heard muffled explosions. Keep a lookout." TM_NPC Commander 30 "Greetings" "Welcome to the Ops Center Commander Decker. Do you have instructions?^" "She observes everyone and nods for all of you to continue and then returns to the bridge." TM_NPC CommanderAfter 30 "Return" "We made it back in one piece.^" "What did you find out on the mystery ship?" 30 "Status Report" "It turned out the mystery ship is the Shadow Caster, the Captain was very belligerent and uncooperative. The deck was covered with grease and grime. There were several crates of glass gallon jugs. Some were leaking and smelled like bleach. There were sealed drums scattered around the deck, some of them made from a translucent material. They appeared to contain coral and rock specimens. Most importantly, there were crates labeled 'Explosives' in a focsle locker. The door was partially open.^" "Thank you. It is time for us to deal with them!" 30 "Time to Go" "What now Commander?^" "It is time for you to arrest the pirate. We will take care of his ship. You are to [EXIT] or [LEAVE] to go directly to the equipment room, then gear up. You and Bart take the rigid hull inflatable boat (RHIB), arrest the pirate. The Pollux will cover you from the Pollux.^^Battle Stations!" TM_NPC Bart 30 "The mission" "We're back on the ship.^" "That was quite a dive. I wonder who is destroying the coral?" 30 "Ideas" "Do you have any ideas?^" "There are definitely pirates in the area. We need to put them out of business!" 30 "Plan" "Do you have a plan?^" "We need to head out and find the pirates and their vessel! I have had enough talk..." TM_NPC BartAfter 30 "Ready" "Ready to go?^" "You know I'm ready. We always go on missions together. I would never miss an important take down!" TM_NPC LabTech 30 "Samples" "Did you receive the reef samples?^" "I did. They have already been analyzed." 30 "Analysis" "Can you give me the results?^" "The coral had somehow been bleached or oxydized. The water has traces of sodium hypochlorite or bleach and the sand had traces of some kind of petroleum product possibly a lubricating oil or hydraulic fluid. You are welcome to look around the lab for additional information." TM_NPC Sledge 30 "Divers Down" "I notice that you have a divers down flag out. What is your business so close to the reef?^" "Some guy commissioned us to search for an outboard he lost here last week." 30 "Any Luck" "Any luck finding it?^" "Yea, we found it with our sonar. Should be pulling it up by this afternoon and be on our way." 30 "Suspicious Activity" "Have you seen any suspicious activity recently?^" "Not really. We did see a tramp steamer hanging around yesterday. It was too far off to see much." TM_NPC Dockmaster 30 "Greetings" "Good day to you, Sir.^" "Good afternoon Skipper. Do you need repairs?." 30 "Information" "All shipshape today. Just checking around. Someone damaged some coral recently.^" "You don't say. Pennekamp Park is such a national treasure, who would do such a thing?" 30 "Information" "Have you seen anything suspicious?^" "Someone called on the radio looking for repairs but wouldn't state their vessel's name and never showed up." TM_NPC Hank 30 "Greetings" "Greetings, Sir. How are you?^" "Hi captain, I'm Hank. What brings the Coast Guard out this way?" 30 "Just Checking" "We checked your records. You run a clean operation.^" "I used to be in corporate relations. It was quite a grind. I spent my life savings buying this boat. We run a tight operation and do everything we can to give our customers a good time, but safety and protecting the environment here are important to us." 30 "Information" "Speaking of the environment, have you seen any suspicious activity?^" "Kind of. We saw a pretty ragged vessel trolling around. Never got too close. We want our customers to have a good time, and not see anything confrontational. Whoever they were, they didn't look like they were up to anything good." TM_NPC Bruce 30 "Greetings" "Greetings, Sir. How are you?^" "Hi captain, I'm Bruce. What brings the Coast Guard out this way?" 30 "Search Mission" "There have been reports that the reef has been damaged.^" "We supervise all of our dives. We have at least one PADI instructor for every four divers. We would not allow anyone to cause any environmental damage. We all love ocean diving." 30 "Information" "Speaking of the environment, have you seen any suspicious activity?^" "We haven't seen the perps but we have seen coral damage and fish floating like they had been stunned to death." 30 "Lookout" "Let us know if you see anything further. We monitor channel 16.^" "We will do so, Sir. We will pass this info along to Joe, my partner on the Keys Diver. Fair seas and following wind. Good day." TM_NPC Joe 30 "Patrolling" "Good day. Are you the Captain?^" "Yes Sir. I'm Joe, How can I help you." 30 "Follow Up" "I'm here from the government and I'm here to help you. ;)^" "Don't make me laugh..." 30 "Information" "The managers at Pennekamp park reported that there has been damaged coral and marine life in the area.^" "Yes Sir. We have seen some floating fish. We wondered what was killing them." 30 "BOLO" "A Be On The Lookout (BOLO) has been issued for a tramp steamer. Have you seen one in the area?^" "Only rumors. My partner on the Chasing Coral mentioned that he had seen one prowling around the area a couple of days ago. We'll keep and eye out and let you know if we see it." TM_NPC diver 30 "Greetings" "Greetings, Ma'am. How are you?^" "Hi captain, I'm Meg, short for Margaret. What brings the Coast Guard out this way?" 30 "Flag" "We are out patrolling the area. Where is your Diver's Down Flag?^" "I'm sorry, I have one in the kayak but I forgot to place it on the deck while I went down snorkeling." 30 "Important" "The flag is very important. It could save your life. I could issue a citation but I'll let it pass with a warning. Just today!^" "Thank you so much, Sir. I have been so rattled by an encounter I had with a dive boat this morning." 30 "Clarify" "What happened?^" "I was paddling near here earlier. An old rust bucket of a ship with several divers and rusty barrels all over the deck, approached me and told me if I didn't leave the area, they would sink my kayak and force me aboard." 30 "Description" "You are our first direct witness. Can you describe the vessel and give me its name?^" "Like I said, it is an old rust bucket. It has small cranes about so it is probably some kind of work boat. The name was obscured but I believe part of it was Shaddow or Shaddan, something like that." 30 "Lift?" "That is very helpful! Do you need a lift back to shore?^" "No thanks, the workout will be good for me. I'll paddle back.^^Just be sure to find those guys and take care of them. They are violent and dangerous!" TM_NPC 0 ; ! ***** End - from talk-menu.inf ***** [Initialise; print "^^You have just entered the stern airlock aboard the MV Pollux. You have been diving the coral reefs around the middle keys while the Pollux has been patrolling the Florida Straits near the southern end of Florida.^^"; lookmode = 2; player.description = "You are a US Navy SEAL on detachment to the US Coast Guard. You are working aboard the MV Pollux as a special agent policing US coastal territory to interdict drug trafficking, human smuggling, pirating and poaching."; InitTalk(); print "You can enter [Help] at the start for help relevant to this game, then [About] and [Credits] for additional information.^ ^In general you will be able to converse with the non player chaaracters [NPCs] within this adventure. Just enter [Talk] to [NPC].^^ Note: When within the [Talk] menu, just select the number '1'. Pressing enter drops you out of the talk menu. You can get back to the talk menu by entering [Talk] to [NPC] again. It is generally best to choose the option in the #1 position as you converse, but it is not required.^"; ] ; ! ***** Modifications ***** Verb 'board' = 'in'; !Verb 'arrest' = 'take'; Verb 'discuss' = 'talk'; ! Implement the Arrest action verb. See IBG page 112 Verb 'arrest' 'detain' 'apprehend' * noun -> Arrest; [ ArrestSub; print_ret "You can't do that to just anyone.";]; ! ***** From Hibernated - Stefan Vogt ***** Verb 'about' * -> About; Verb 'credits' * -> Credits; Verb 'help' * -> Help; [ AboutSub; print_ret "Sea Coral is copyright (c) 2023 by Jeff Greer (Fos1) and Far Out Science.^^This G-rated adventure was written expressly as an entry in the PunyJam #3 in 2023. You may freely distribute the game. This work may not be sold or included in any for-profit collection without written permission from the author.^^Your comments and bug reports are appreciated. (PM fos1 at intfiction.org)"; ]; [ CreditsSub; print_ret "Many thanks for help provided by Fredrik Ramsberg, Hugo Labrande, Stephen Vogt and especially Garry Francis for help with the conversation system source code.^^This game was created using the Inform language by Graham Nelson and the PunyInform custom library by Fredrik Ramsberg and Johan Berntsson. The PunyJams are also their creation.^^ Special thanks to the beta testers: Johan Berntsson, Garry Francis, Gianluca Girelli and Debbie G.^^ Note: Garry Francis was a tremendous help with his detailed and thoughtful game testing comments and transcripts."; ]; [ HelpSub; F_HELP = 1; print_ret "Conversations are not as complex as in Infocom titles. It is sufficient to type [Talk to NPC].^^While onboard various marine vessels you can navigate using the nautical terms: [Fore], [Aft], [Port], [Starboard].^^You may have to operate computers in this game. The TAC computers have an advanced AI system. You can [Talk] to them for information. For additional information, Enter [About} and/or [Credits].^^ Use the [Save] command to store your progress and [Restore] to load it again."; ]; ! ***** End From Hibernated *****