Index / Orange System / last update: January 2002
(GameBot is dbref #2117; last content update: July 5, 2001)
Currently coding the 50 adventure cards, ugh. This'll take some time.
"This game was loosely based around Trelaine, Squire of Gothos, who splits the Enterprise and its crew into four identical copies. I think that's how many copies we sold too..."
-- Peter Corless, playtester
http://www.employees.org/~pcorless/author.html
@create gamebot;bot;robot;game;gameboard;board;gb
@desc #2117 = @switch(@g("gstate"),
{0,1},"A friendly gamebot stands ready to host a game of Star Trek:
The Enterprise^4 Encounter.",
@print("An electronic table and gameboard, with a game of Star Trek: The
Enterprise^4 Encounter already in progress.", @call(2117,"showboard")));
@field #2117 = varobj : 2117
@lock #2117 = #8796&!#8796
@link #2117 = #10322 // Starbase Trek
@set #2117 = expert
// The board layout looks like this:
// ------------------------------------------
// BLUE( )BASE
// |
// 1( )-( .)-( )-( )-( ,)5
// 20( ,) 2 3 4 ( )6
// YLLW ( )19 7( .) RED
// ( )-( )18 8( )-( )
// BASE ( .)17 9( ) BASE
// 16( ) 14 13 12 ( ,)10
// 15( ,)-( )-( )-( .)-( )11
// |
// GREEN( )BASE
// ------------------------------------------
// BRGY=players +=crew .=tz ,=tz&ezb
// When adv on space, advcode replaces space#,
// and space uses []s, not ()s.
// ------------------------------------------
//
// Notes:
// - use 1st position for + (crew) or blank (no crew)
// - use 2nd position for BRGY (1-player) or blank (no player)
// - use 3rd position for .(tz) or ,(tz&ezb) or blank (normal)
// - if 2,3,4 players in one space, use 2,3,4 literally.
// - eg using list below:
// 1(+ )-[+R.]-( )-[ ]-( Y,)5
// LZ 3 SGn
//
// Alternatively, might want to give option of a report like this:
// 1: 1 crew
// 2: [LZ], 2 crew, RED // tz
// 3: empty
// 4: [SGn]
// 5: YELLOW // tz, ebz
// ...
// SHOWBOARD
// - makes heavy use of fld sbnum and fns sbcod, sbspa
@field #2117 = showboard : @print(
// line 1
"%c------------------------------------------",
// line 2
"%c BLUE( ",
@switch(@g("ship1_loc"),41,"B"," "), " )BASE",
// line 3
"%c |",
// line 4
"%c ", @s("sbnum",1), @call(2117,"sbcod"), @call(2117,"sbspa"),
"-", @s("sbnum",2), @call(2117,"sbspa"),
"-", @s("sbnum",3), @call(2117,"sbspa"),
"-", @s("sbnum",4), @call(2117,"sbspa"),
"-", @s("sbnum",5), @call(2117,"sbspa"), @call(2117,"sbcod"),
// line 5
"%c ", @s("sbnum",20), @call(2117,"sbcod"), @call(2117,"sbspa"),
" ", @s("sbnum",2), @call(2117,"sbcod"),
" ", @s("sbnum",3), @call(2117,"sbcod"),
" ", @s("sbnum",4), @call(2117,"sbcod"),
" ", @s("sbnum",6), @call(2117,"sbspa"), @call(2117,"sbcod"),
// line 6
"%cYLLW ", @s("sbnum",19), @call(2117,"sbspa"), @call(2117,"sbcod"),
" ",
@s("sbnum",7), @call(2117,"sbcod"), @call(2117,"sbspa"), " RED",
// line 7
"%c( ", @switch(@g("ship4_loc"),"44","Y"," "),
" )-", @s("sbnum",18), @call(2117,"sbspa"), @call(2117,"sbcod"),
" ",
@s("sbnum",8), @call(2117,"sbcod"), @call(2117,"sbspa"), "-( ",
@switch(@g("ship2_loc"),"42","R"," "), " )",
// line 8
"%cBASE ", @s("sbnum",17), @call(2117,"sbspa"), @call(2117,"sbcod"),
" ",
@s("sbnum",9), @call(2117,"sbcod"), @call(2117,"sbspa"), " BASE",
// line 9
"%c ", @s("sbnum",16), @call(2117,"sbcod"), @call(2117,"sbspa"),
" ", @s("sbnum",14), @call(2117,"sbcod"),
" ", @s("sbnum",13), @call(2117,"sbcod"),
" ", @s("sbnum",12), @call(2117,"sbcod"),
" ", @s("sbnum",10), @call(2117,"sbspa"), @call(2117,"sbcod"),
// line 10
"%c ", @s("sbnum",15), @call(2117,"sbcod"), @call(2117,"sbspa"),
"-", @s("sbnum",14), @call(2117,"sbspa"),
"-", @s("sbnum",13), @call(2117,"sbspa"),
"-", @s("sbnum",12), @call(2117,"sbspa"),
"-", @s("sbnum",11), @call(2117,"sbspa"), @call(2117,"sbcod"),
// line 11
"%c |",
// line 12
"%c GREEN( ",
@switch(@g("ship3_loc"),"43","G"," "), " )BASE",
// line 13
"%c------------------------------------------");
// SBCOD, Show Board CODe
// This is either the adventure space's #sbnum's number, or the abbrev.
// of the adventure card in that space. Must print 3 chars exactly.
// ------------------------------------------------------------------
@field #2117 = sbcod :
@s("sbcod_done",0);
// Search adventure cards to see if one is on the space.
// Only one card can be there at a time.
@fieldloop(2117,"acloc_",@switch("%v",@g("sbnum"),
@let("k"=>@substr("%f",6),@switch("%v",
// right-justify the code
{1,2,3,7,8,9,14,15,16,20},
@print( @s("sbcod_done",1),
@substr(@print(" ",@g("accod_%k")),-3)
),
// left-justify the code
// {4,5,6,10,11,12,13,17,18,19},
@print( @s("sbcod_done",1),
@substr(@print(@g("accod_%k")," "),0,3)
)
))
));
// if no adventure card found, just show the space#.
@switch(@g("sbcod_done"),0, @switch(@g("sbnum"),
1, " 1", 2, " 2", 3, " 3 ", 4, "4 ", 5, "5 ",
6, "6 ", 7, " 7", 8, " 8", 9, " 9", 10, "10 ",
11, "11 ", 12, "12 ", 13, "13 ", 14, " 14", 15, " 15",
16, " 16", 17, "17 ", 18, "18 ", 19, "19 ", 20, " 20"
));
----
TEST
@field #2117 = sbcod : @s("sbcod_done",0); @fieldloop(2117,"acloc_",@switch("%v",@g("sbnum"), @let("k"=>@substr("%f",6),@switch("%v",{1,2,3,7,8,9,14,15,16,20}, @print( @s("sbcod_done",1), @substr(@print(" ",@g("accod_%k")),-3)), @print( @s("sbcod_done",1), @substr(@print(@g("accod_%k")," "),0,3)))))); @switch(@g("sbcod_done"),0, @switch(@g("sbnum"), 1, " 1", 2, " 2", 3, " 3 ", 4, "4 ", 5, "5 ", 6, "6 ", 7, " 7", 8, " 8", 9, " 9", 10, "10 ", 11, "11 ", 12, "12 ", 13, "13 ", 14, " 14", 15, " 15", 16, " 16", 17, "17 ", 18, "18 ", 19, "19 ", 20, " 20"));
====
// SBSPA, Show Board SPAce
// Show adventure space #sbnum, represented in exactly 5 chars.
// ------------------------------------------------------------
@field #2117 = sbspa :
// 1st, find out if an advcard here. Remember it in sbspa_1, sbspa_5.
@s("sbspa_1","("); @s("sbspa_5",")");
@switch(@g(@print("nac_",@g("sbnum"))),1, @print(
@s("sbspa_1","["), @s("sbspa_5","]")
));
// 2nd, find out if any crew here. Remember it in sbspa_2.
@s("sbspa_2"," ");
@fieldloop(2117,"ccloc_",@switch("%v",@g("sbnum"),@s("sbspa_2","+")));
// 3rd, find out if any players here. Remember it in sbspa_3.
@s("sbspa_3","");
@switch(@g("ship1_loc"),@g("sbnum"),@s("sbspa_3",@print(@g("sbspa_3"),"B")));
@switch(@g("ship2_loc"),@g("sbnum"),@s("sbspa_3",@print(@g("sbspa_3"),"R")));
@switch(@g("ship3_loc"),@g("sbnum"),@s("sbspa_3",@print(@g("sbspa_3"),"G")));
@switch(@g("ship4_loc"),@g("sbnum"),@s("sbspa_3",@print(@g("sbspa_3"),"Y")));
@switch(@strlen(@g("sbspa_3")),
0, @s("sbspa_3"," "), 2, @s("sbspa_3","2"),
3, @s("sbspa_3"," "), 4, @s("sbspa_4","4"));
// 4th, find out if tractor or exit battle zone here. Note in sbspa_4.
@s("sbspa_4",@switch(@g("sbnum"),
{2,7,12,17}, ".", {5,10,15,20}, ",", " "));
// 5th, put it all together.
@print(@g("sbspa_1"), @g("sbspa_2"), @g("sbspa_3"),
@g("sbspa_4"), @g("sbspa_5"));
--------
@field #2117 = sbspa : @s("sbspa_1","("); @s("sbspa_5",")"); @switch(@g(@print("nac_",@g("sbnum"))),1, @print(@s("sbspa_1","["), @s("sbspa_5","]"))); @s("sbspa_2"," "); @fieldloop(2117,"ccloc_",@switch("%v",@g("sbnum"),@s("sbspa_2","+"))); @s("sbspa_3",""); @switch(@g("ship1_loc"),@g("sbnum"),@s("sbspa_3",@print(@g("sbspa_3"),"B"))); @switch(@g("ship2_loc"),@g("sbnum"),@s("sbspa_3",@print(@g("sbspa_3"),"R"))); @switch(@g("ship3_loc"),@g("sbnum"),@s("sbspa_3",@print(@g("sbspa_3"),"G"))); @switch(@g("ship4_loc"),@g("sbnum"),@s("sbspa_3",@print(@g("sbspa_3"),"Y"))); @switch(@strlen(@g("sbspa_3")), 0, @s("sbspa_3"," "), 2, @s("sbspa_3","2"), 3, @s("sbspa_3"," "), 4, @s("sbspa_4","4")); @s("sbspa_4",@switch(@g("sbnum"), {2,7,12,17}, ".", {5,10,15,20}, ",", " ")); @print(@g("sbspa_1"), @g("sbspa_2"), @g("sbspa_3"), @g("sbspa_4"), @g("sbspa_5"));
========
Terminology changes:
@action lookup *;look up *;lu *;ask gamebot about *;ask about *; ask bot about *;ask board about *;ask gameboard about *; ask gb about * = bot : nowhere @field #2119 = varobj : 2117 @set #2119 = puzzle @desc #2119 = Lookup the rules of the game by asking GameBot about different topics, eg: 'lookup game' or 'ask gamebot about phaser 1'. GameBot knows many synonyms and abbreviations, eg: 'lu' is short for 'lookup', and 'p1' is short for 'phaser 1'. So 'lu p1' is the same as 'ask gamebot about phaser 1'. @succ #2119 = // 1) Convert spaces in %0 to underscores, store result in field x0. // This converts the phrase to lookup into a single word. @s("x0","lu_"); @strloop("%0","x",@switch("%x"," ", @s("x0",@print(@g("x0"),"_")),@s("x0",@print(@g("x0"),"%x")) )); // 2) If topicvalue found begins with "lu_", set that as new topic. // This lets me have synonyms for topics. @switch(@substr(@g(@g("x0")),0,3), "lu_", @s("x0",@g(@g("x0")))); // 3) Reply to the player with value of topic x0. @print("GameBot whispers (to you), \"", @strcheck(@execute(@g(@g("x0"))), "Sorry, I don't know the term '%4'."), "\"");
@field #2117 = lu_overview :
New players should ask me about: intro, components, setup, turn, winning.
@field #2117 = lu_rules : lu_overview
@field #2117 = lu_ : lu_overview
@field #2117 = lu_game : lu_overview
@field #2117 = lu_adventure_space : lu_adventure
@field #2117 = lu_adventure : When you land on an Adventure Space,
if there is already an Adventure Card there, then you will play that
adventure. If the space is empty, you will play the next adventure
from the Adventure Card deck. GameBoard will prompt you what your
choices are, as appropriate. The Adventure Card will stay
in the space after your adventure ends.
@field #2117 = lu_adventure_cards : lu_adventure-cards
@field #2117 = lu_adventure_card : lu_adventure-cards
@field #2117 = lu_adventure-card : lu_adventure-cards
@field #2117 = lu_adventure-cards : There are 50 Adventure Cards, each
named after a different episode in STAR TREK. To lookup a specific
Adventure Card, refer to it by its standard abbreviation (as per the
Star Trek Concordance), eg: "lookup MW" to lookup Mudd's Women.
@field #2117 = lu_ae : ----Assignment: Earth [AE] / Gary Seven----
%cWARP with SCIENCE: You may take one marooned crewman from any space
on the board.%cIMPULSE: You may look at any one marooned crewman and
move it to any adventure space.%c(Clarification: If you have SCIENCE, you
may take a marooned crewman without looking at any of them. If you don't
have SCIENCE, look at one crewman without taking any. If there aren't
any marooned crewmen left, this adventure has no effect.)
@field #2117 = lu_aon : ----By Any Other Name [AON] / Hyperwarp----
%cWARP with NAVIGATION: Immediately move from one to six spaces (your
choice) and have that adventure.%cIMPULSE: Roll again and move BACKWARD.
Have that adventure.
@field #2117 = lu_ar : ----Arena [Ar] / Photon Grenades----
%cEnergize! Draw ONE Battle-card.
@field #2117 = lu_at : ----Amok Time [AT] / Pon Farr----
%cRoll the die and move. If you do not pass a Base World, maroon a
crewman of your choice in the adventure you end on.%c(Clarification: If
you have this adventure right in front of a Base World, you must pass the
*next* Base World. 'Pass' means actually move past, not stop on.)
@field #2117 = lu_ay : ----All Our Yesterdays [AY] / Mr. Atoz----
%cReplace any other adventure (or an empty space) with this one and bring
in a new adventure here.%c(Clarification: Pick up the card and place it
in any other space. If the space already has a card, put that card in the
adventure discard deck. Any ships that are already there simply ignore
this adventure. Now draw a new adventure for this space.)
@field #2117 = lu_barrows : [1] Barrows is a Science officer.
%c[2] Phaser 1 Barrows (Battle-card): If you have BARROWS, you may fight
this battle for 2 crew calls (or 2 picks in the Mind Meld). Play this
before the first Battle turn.
@field #2117 = lu_home : lu_base
@field #2117 = lu_home_base : lu_base
@field #2117 = lu_base_world : lu_base
@field #2117 = lu_base-world : lu_base
@field #2117 = lu_base : Each player has their own Base World; their ships
begin the game there. Your ship won't return home until you announce that
you have officers in all six specialties. At that time, you move your
ship back to your Base World immediately, and "lock in" one of your crew
(lookup lock). Each player will then have one last turn to try to keep
you from winning (lookup last-ditch battle).
@field #2117 = lu_battles : lu_battle
@field #2117 = lu_battle : You may start a battle only in your turn, and
only once per turn. Battles can be started in two ways: 1) An Adventure
card may allow or force you to start a battle, 2) You may challenge
another player to battle if your ship ends its move in a Tractor Zone.
%c At the start of a battle, both players fill up their hands upto 2
Battle-cards, put their ships on the '6' spaces on either end of the
Battle Vortex, then take Battle-turns until the battle is over, starting
with the player who started the battle (unless otherwise directed).
%c The winner of a battle gets a chance to take a crewmember from
his opponent's rack. (also lookup vortex, battle-card, battle-turn, hit,
mind meld)
@field #2117 = lu_battle_cards : lu_battle-cards
@field #2117 = lu_battle_card : lu_battle-cards
@field #2117 = lu_battle-card : lu_battle-cards
@field #2117 = lu_battle-cards : 1) When you begin a Battle, both you
and your opponent must have at least 2 Battle Cards. Draw cards until you
have at least two. You may not draw additional cards during the Battle.
%c2) You may never have more than 7 Battle Cards. If you ever have more
than seven, you must immediately discard the excess (you choose which).
%c2) Battle Cards are discarded after they are played.
%c3) Each Battle Card has a specific effect. Lookup the following
card types: PHASER 1, PHASER 2, PHASER 3, PHOTON TORPEDO, SHIELD,
SHIELD 2, WARP 2, COCHRANE ACCELERATION, TRACTOR, MATTER-ANTIMATTER
LOOP, ESCAPE!
%c4) Battle Cards with officer names on them are Special Battle Cards,
eg: PHASER 1 SULU (lookup special).
@field #2117 = lu_battle_turn : lu_battle-turn
@field #2117 = lu_battle-turn : In your Battle Turn, you may either play
one Battle Card or move your ship one space forward on the Vortex towards
the Mind Meld. Players alternate Battle Turns until one scores an
"unshielded hit," or until one ship reaches the Mind Meld.
@field #2117 = lu_board : The board has shows a circular track of 20
Adventure spaces, with one of the 4 Base Worlds branching out from the
track at every fifth Adventure space. Some Adventure Spaces are labelled
as a Tractor Zone. Four of the Tractor Zones are also labelled as an Exit
Battle Zone.
%c In the center of the board is the Battle Vortex, and at its center
is the Mind Meld space.
@field #2117 = lu_bt : ----Balance of Terror [BT] / Cloaking Device ----
%cWARP with COMMAND: Bring another ship into battle, you on '4', he on
'6'. He moves first.%cIMPULSE: Draw ONE Battle Card and start a battle.
@field #2117 = lu_cadets : lu_cadet
@field #2117 = lu_cadet : Things to know about cadets:
%c- Cadet specialties may never be used in adventures or towards winning
the game (exception: lookup kirk).
%c- If you make a "crew call" for a specialty, your opponent can give you
the Cadet with that specialty instead of an officer. In fact, if that is
the only crew your opponent has with the specialty you named, he must
give you the Cadet.
@field #2117 = lu_crew_call : lu_call
@field #2117 = lu_call : You can make a "crew call" against another player if
you win a Battle by scoring an "unshielded hit". Call for a specific
officer (eg: "call McCoy"), or for a specific specialty (eg: "call
science"). If your opponent has the named officer or specialty on his
rack, not counting locked in crew, he must give it to you. If he doesn't
have it, you get nothing. If he has it, but it's locked, you make another
call.
%c If you ask for a specialty, and he has the Cadet in that specialty,
he can give you the Cadet instead of an officer. If you ask for a
specialty, and he doesn't have a crewmember with that specialty but does
have Starfleet, he must give you Starfleet (since Starfleet counts as all
specialties).
%c BONUS: If you ask for an officer or Starfleet by name, and get it,
you also get one Battle-card from the deck.
@field #2117 = lu_card : lu_cards
@field #2117 = lu_deck : lu_cards
@field #2117 = lu_decks : lu_cards
@field #2117 = lu_cards : There are two decks of cards in this game:
Adventure Cards and Battle Cards.
@field #2117 = lu_chapel : [1] Chapel is a Medical officer.
%c[2] Phaser 1 Chapel (Battle Card): If you have CHAPEL, you may replace
the adventure you have just landed on with one from the deck.
@field #2117 = lu_chekov : [1] Chekov is a Navigation officer.
%c[2] Phaser 1 Chekov (Battle Card): If you have CHEKOV, you may use this
as a WARP 2.
@field #2117 = lu_ck : ----The Conscience of the King [CK] /
Kodos/Karidian----
%cDANGER: Maroon one crewman of your choice on an adventure space
chosen by "Least Crew" player.
%cPROTECT: KIRK, RAND, or RILEY
%c(Clarification: If the crewman is marooned on an occupied adventure, he
may NOT be picked up until someone actually moves INTO the space.)
@field #2117 = lu_cml : ----Court Martial [CMl] / Areel Shaw----
%cDANGER: Immediately take another move - none of your crew or
specialties may be used for the new adventure.
%cPROTECT: SPOCK, SCOTT, or UHURA
%c(Clarification: This means that you cannot be protected from, or
receive the full benefit of, the adventure which the extra move brings
you to, regardless of what crewmembers you have.)
@field #2117 = lu_cmn : ----The Corbomite Maneuver [CMn] / Balok----
%cDANGER: Enter Battle, you on '6', your opponent on '4'. You move first.
%cPROTECT: KYLE, PALAMAS, or BARROWS
@field #2117 = lu_cms : ----The Cloud-minders [Cms] / Zenite----
%cEnergize! Draw ONE Battle Card.
@field #2117 = lu_cmnd : lu_command
@field #2117 = lu_command : The Command specialty is represented by Kirk,
Spock, and Scott. NOTE: You may not make a crew call for the Command
specialty. Kirk, Spock, or Scott may be called for only by name.
@field #2117 = lu_conchrane : lu_cochrane
@field #2117 = lu_cochrane_acceleration : lu_cochrane
@field #2117 = lu_acceleration : lu_cochrane
@field #2117 = lu_ca : lu_cochrane
@field #2117 = lu_cochrane : COCHRANE ACCELERATION (Battle Card): Same as
PHASER 1, then move forward one space on the Battle Vortex.
@field #2117 = lu_commun : lu_communication
@field #2117 = lu_communication : The Communication specialty is
represented by Uhura, Kyle, Rand, and a cadet.
@field #2117 = lu_components : The game components are: a game board,
24 counters to represent the crew, a deck of Adventure Cards, a deck of
Battle Cards, plus a ship and a bridge rack for each player.
@field #2117 = lu_cp : ----Catspaw [Cp] / Magic Wand----
%cFlip over another Adventure. If another player occupies the space, he
has the new Adventure but cannot start a battle.
@field #2117 = lu_counters : lu_crew
@field #2117 = lu_counter : lu_crew
@field #2117 = lu_crew : Each of the 24 crew counters bears either a name
of a specific _Enterprise_ officer, or is an unnamed cadet, or is the
special Starfleet counter. Also, each of the 24 crew counters has one
of the six specialties, except for the Starfleet counter, which can be
ANY specialty. There are three officers and one cadet for every specialty,
except the Command specialty, for which there are only three officers.
%c See also: crew call, locking crew.
@field #2117 = lu_cx : ----Charile X [CX] / Charlie----
%cWARP with RAND, PALAMAS, or ROMAINE: Name a cardtype; all players
must give you any cards of that type that they possess.
%cIMPULSE: Receive a card of a specific cardtype from one player.
@field #2117 = lu_dd : ----The Devil in the Dark [DD] / Horta----
%cWARP with SPOCK, JONES, or LANDON: Another player must discard three
cards at random.%cIMPULSE: Another player must discard one card of his
choice.%c(Clarification: He can simply mix them up and allow you to draw
from his hand. The cards go to the discard pile.)
@field #2117 = lu_dma :----The Doomsday Machine [DMa] / Planet-Killer----
%cDANGER: Discard all Battle Cards except phasers and shields.
%cPROTECT: NAVIGATION%c(Clarification: This means you can keep Phaser
1s, 2s, and 3s, as well as Shield 1s and Shield 2s.)
@field #2117 = lu_dmd : ----Dagger of the Mind [DMd] / Tantalus----
%cDANGER: Reveal one unlocked crewman to all players.
%cPROTECT: KIRK, MANNING, or NOEL
@field #2117 = lu_dy : ----The Deadly Years [DY] / Commodore Stocker----
%cDANGER: Discard all Phaser 2's and Phaser 3's.
%cPROTECT: ROMAINE, NOEL, or CHEKOV
@field #2117 = lu_ei : ----The Enterprise Incident [EI] / Cloaking
Device----%cWARP with NAVIGATION: Energize! Draw TWO Battle Cards from
the deck or other players' hands.%cIMPULSE: Energize! Draw ONE
Battle Card.
@field #2117 = lu_em : ----Errand of Mercy [EM] / Organian Peace----
%cDeal away your hand. Start to your left and deal clockwise. You choose
which player gets which card.%c(Clarification: Keep dealing one at a time
to the other players until all your cards are gone. In a two-player game,
simply give your entire hand to the other player.)
@field #2117 = lu_esc : lu_escape
@field #2117 = lu_escape : ESCAPE! (Battle Card): The Battle ends
immediately with no winner or loser. Opponent exits first, then you exit
to the Exit Battle Zone of your choice. No crew calls are made.
@field #2117 = lu_et : ----Elaan of Troyius [ET] / Radians----
%cEnergize! Draw ONE Battle Card.
@field #2117 = lu_ew : ----The Enemy Within [EW] / Transporter
Malfunction----%cIf you have more than one crewman with COMMAND (NOT
Starfleet), you must give one to the player with "Least Crew."
@field #2117 = lu_exchanging : lu_exchange
@field #2117 = lu_exchange : If you end your move on a space containing
another player's ship, you must exchange your hands of Battle Cards. If
three or more players co-occupy a space, hands are exchanged clockwise.
GameBoard will do this for players automatically.
@field #2117 = lu_exit_battle_zone : lu_ebz
@field #2117 = lu_exit_zone : lu_ebz
@field #2117 = lu_exit : lu_ebz
@field #2117 = lu_ebz : After a Battle, both ships exit the Vortex onto any
Exit Battle Zone space that does not contain a ship. The winner exits
first. If the Exit Battle Zone has any marooned crew, you may rescue one.
If the Exit Battle Zone has an adventure card there, you play that
adventure unless it instructs you to start another battle.
@field #2117 = lu_fc : ----Friday's Child [FC] / Topaline----
%cWARP with COMMUNICATION: Energize! Draw TWO Battle Cards from the deck
or other players' hands.%cIMPULSE: Energize! Draw ONE Battle Card.
@field #2117 = lu_fw : ----For the World is Hollow and I Have Touched
the Sky [FW] / Oracle----%cWARP with MANNING, McCOY, or CHAPEL: Energize!
Draw until you have SEVEN cards.%cIMPULSE: Discard two cards and draw
two new ones.%c(Clarification: You may choose which two to discard. If
you have less than two, discard one (or none, if you have none) and draw
two cards.)
@field #2117 = lu_gt : ----The Gamesters of Triskelion [GT] /
Triskelion----%cWARP with COMMUNICATION: Look at another player's hand
and trade as many cards with him as you wish.%cIMPULSE: Trade hands with
the player of your choice.%c(Example: You look at RED's hand. He has three
Phaser 1s and a Phaser 3, plus a Shield. You have a Phaser 1. You can
trade your Phaser 1 for any one of his cards. If you had two cards, you
could trade each of them for one of his cards.)
@field #2117 = lu_unshielded_hit : lu_hit
@field #2117 = lu_hit : During a Battle, you can fire phasers and photon
torpedoes at your opponent using the appropriate battle cards, and score
a hit on your opponent. Your opponent may block the attack with a Shield
card; otherwise the hit is an "unshielded hit" and you win the battle and
may make a "crew call" against him.
@field #2117 = lu_introduction : lu_intro
@field #2117 = lu_intro : Captain Kirk and the crew of the Enterprise
are sent on a mission to re-establish contact with Trelane, the Squire of
Gothos (whom they first met in the STAR TREK episode _The Squire of
Gothos_). Trelane captures them and forces them to play a diabolical game.
%c Trelane creates four Enterprises and places a few crewmembers on
each one, marooning the rest of the crew on worlds from their past.
Trelane also disrupts each Enterprise's sensors, so that to each vessel,
the other three ships appear to be Klingon battle cruisers. Trelane hopes
the Enterprises will destroy each other while attempting to rescue the
marooned crew.%c In THE ENTERPRISE^4 ENCOUNTER, from two to four players
assume command of an Enterprise and try to assemble a full crew by
rescuing them from adventures, and by taking them from other players. The
first player to do so wins the game.
@field #2117 = lu_jones : [1] Jones is a Security officer.
%c[2] Phaser 1 Jones (Battle Card): If you have JONES, you may lock in
one of your crew during your move (may not be used to lock in JONES.)
@field #2117 = lu_kirk : [1] Kirk is a Command officer.
%c[2] Phaser 1 Kirk (Battle Card): If you have KIRK, you may play this
and make one Cadet's specialty count for a single adventure, or one try
at victory.
@field #2117 = lu_kyle : [1] Kyle is a Communications officer.
%c[2] Photon Torpedo Kyle (Battle Card): If you have KYLE, you may pick
up one marooned crewmember.
@field #2117 = lu_landon : [1] Landon is a Security officer.
%c[2] Phaser 1 Landon (Battle Card): If you have LANDON, you may look at
another player's hand.
@field #2117 = lu_last-ditch_battle : lu_last-ditch
@field #2117 = lu_last-ditch : Once you have locked in a crewmember and
moved to your Base World, each other player takes one last turn. He may
either make a normal move, or he may call a "last-ditch battle" against
you.
%c Last-ditch battle is fought in the same way as regular battle, your
challenger moving first, and fought for the regular stakes.
%c If you have three or more crewmembers locked in, anyone who loses a
last-ditch battle against you is out of the game.
%c If you win the battle, you make a crew call/Mind Meld as normal;
then return to your Base World and place the loser on an empty Exit
Battle Zone.
%c If you lose the battle but still have all six specialties, the winner
exits to the Exit Battle Zone of his choice and you return to your Base
World.
%c If you lose a battle and no longer have all six specialties, you
exit the Battle Vortex as from a normal battle and play continues.
%c If you survive every other player's turn with all six specialties
intact, you win the game!
---
@field #2117 = lu_last-ditch : Once you have locked in a crewmember and moved to your Base World, each other player takes one last turn. He may either make a normal move, or he may call a "last-ditch battle" against you.%c Last-ditch battle is fought in the same way as regular battle, your challenger moving first, and fought for the regular stakes.%c If you have three or more crewmembers locked in, anyone who loses a last-ditch battle against you is out of the game.%c If you win the battle, you make a crew call/Mind Meld as normal; then return to your Base World and place the loser on an empty Exit Battle Zone.%c If you lose the battle but still have all six specialties, the winner exits to the Exit Battle Zone of his choice and you return to your Base World.%c If you lose a battle and no longer have all six specialties, you exit the Battle Vortex as from a normal battle and play continues.%c If you survive every other player's turn with all six specialties intact, you win the game!
===
@field #2117 = lu_least : lu_least_crew
@field #2117 = lu_least_crew: This is the player with the least crew, not
counting the player having the adventure. If there is a tie, the player
having the adventure chooses between the tied players.
%c In a two-player game, cards referring to "least crew" now refer to
the opposing player.
@field #2117 = lu_lock_in : lu_lock
@field #2117 = lu_locking_crew : lu_lock
@field #2117 = lu_locked_crew : lu_lock
@field #2117 = lu_locked : lu_lock
@field #2117 = lu_locking : lu_lock
@field #2117 = lu_lock : When you announce that you have all 6 specialties,
you may lock in one crewmember. The crewmember's name is announced to
all players. Locked crew may be used in adventures, but can't be taken
from you in any way except via the special effect of the Phaser 1 Manning
Battle Card. If a player makes a "crew call" for a locked-in officer or
for a specialty that only your locked-in crew has, tell him so, and he
gets to make a crew call for someone/something else.%c You can lock an
additional crewmember if you lose your 6th specialty and then regain it.
If you have all 6 specialties locked in, you win the game immediately.
%c If all three members of a specialty and Starfleet are locked in,
players without that specialty are "out of the game".
@field #2117 = lu_matter_antimatter_loop : lu_loop
@field #2117 = lu_matter-antimatter_loop : lu_loop
@field #2117 = lu_matter_antimatter : lu_loop
@field #2117 = lu_matter-antimatter : lu_loop
@field #2117 = lu_matter : lu_loop
@field #2117 = lu_mal : lu_loop
@field #2117 = lu_m-a_loop : lu_loop
@field #2117 = lu_m-a : lu_loop
@field #2117 = lu_loop : MATTER-ANTIMATTER LOOP (Battle Card): Put your
opponent back on the '6' space of his Battle Vortex.
@field #2117 = lu_lz : ----The Lights of Zetar [LZ] / Zetarians----
%cWARP with SCOTT, ROMAINE, or BARROWS: Make a crew call against player
of your choice; if correct, trade for one of your crewmen.
%cIMPULSE: Make a card call; if correct, trade for one of your cards.
%c(Clarification: You must choose the player whom you wish to make the
call against BEFORE you make the call. In the trade, you must give a
crewman for a crewman, a card for a card.)
@field #2117 = lu_manning : [1] Manning is a Security officer.
%c[2] Phaser 1 Manning (Battle Card): If you have MANNING, you may make a
crew call or Mind Meld against locked-in crew. (They remain locked-in for
you.)
@field #2117 = lu_bones : lu_mccoy
@field #2117 = lu_mccoy : [1] McCoy is a Medical officer.
%c[2] Phaser 1 McCoy (Battle Card): If you have McCOY, you may ask one
player for SPOCK. If that player has SPOCK (not locked in), he must give
him to you.
@field #2117 = lu_me : ----The Menagerie [Me] / The Keepers----
%cDANGER: Player with "Least Crew" takes one crewman from you at random.
%cPROTECT: COMMAND
@field #2117 = lu_medicine : lu_medical
@field #2117 = lu_med : lu_medical
@field #2117 = lu_medical : The Medical specialty is represented by McCoy,
Chapel, Noel, and a cadet.
@field #2117 = lu_met : ----Metamorphosis [Met] / The Companion----
%cReverse direction of movement for all ships.%c(Clarification: All
players move in a counterclockwise direction (until someone lands on this
again) but play passes to the left as usual.)
@field #2117 = lu_mind : lu_mind_meld
@field #2117 = lu_meld : lu_mind_meld
@field #2117 = lu_mind-meld : lu_mind_meld
@field #2117 = lu_mindmeld : lu_mind_meld
@field #2117 = lu_mind_meld : If you reach Mind Meld during Battle, the
battle ends and you win. You may look at your opponent's Bridge rack and
take the crewmember of your choice.%c Also, if you name the crew you
are taking out loud to all players, you may also take one Battle Card from
the deck.
@field #2117 = lu_mm : ----Mirror, Mirror [MM] / Dilithium----
%cWARP with SCIENCE: Energize! Draw THREE Battle Cards.
%cIMPULSE: Energize! Draw TWO Battle Cards.
@field #2117 = lu_most : lu_most_crew
@field #2117 = lu_most_crew: This is the player with the most crew, not
counting the player having the adventure. If there is a tie, the player
having the adventure chooses between the tied players.%c In a two-player
game, cards referring to "most crew" now refer to the opposing player.
@field #2117 = lu_movement : lu_move
@field #2117 = lu_moving : lu_move
@field #2117 = lu_move : At the start of your turn, GameBot will prompt you
to roll the die for movement. This is mandatory. If your ship lands on
a space with an Adventure Card, and an adjacent space does not contain an
Adventure Card, you must move forward or backward to the empty space. This
is called "exploring new worlds". If both adjacent spaces are empty,
GameBoard will prompt you to either "explore forward" or "explore back".
@field #2117 = lu_mt : ----Man Trap [MT] / Salt Monster----
%cEach player must pass one non-Cadet crewman to the player on his left.
%c(Clarification: If you have no officers (or all are locked in), you do
not participate in this adventure.)
@field #2117 = lu_mw : ----Mudd's Women [MW] / Venus Drug----
%cYou may use one Special card in your hand without having the named
crewman.%c(Clarification: If none of your special cards are appropriate
at the moment, this adventure has no effect.
@field #2117 = lu_nav : lu_navigation
@field #2117 = lu_navigation : The Navigation specialty is represented by
Sulu, Chekov, Riley, and a cadet.
@field #2117 = lu_noel : [1] Noel is a Medical officer.
%c[2] Phase 3 Noel (Battle Card): If you have NOEL, you may play this as
another player is about to make a crew call against you. He gets no
guesses. (Does not affect Mind Meld.)
@field #2117 = lu_nt : ----The Naked Time [NT] / Virus----
%cDANGER: Lose three random cards from your hand.
%cPROTECT: LANDON, SULU, or RILEY
@field #2117 = lu_oa : ----Operation - Annihilate! [OA] / Parasites----
%cBring another ship to this world and trade hands. He does NOT have this
adventure.%c(Clarification: If there are other ships here, they do NOT
participate in the trade.)
@field #2117 = lu_officers : lu_officer
@field #2117 = lu_officer : In Command: Kirk, Spock, Scott.
%cIn Communication: Uhura, Kyle, Rand.%cIn Medical: McCoy, Chapel, Noel.
%cIn Navigation: Sulu, Chekov, Riley.%cIn Science: Barrows, Palamas,
Romaine.%cIn Security: Jones, Landon, Manning.%cIn ANY: Starfleet.
@field #2117 = lu_pa : ----A Piece of the Action [PA] / Oxmyx----
%cEnergize! Draw ONE Battle Card.
@field #2117 = lu_palamas : [1] Palamas is a Science officer.
%c[2] Phaser 1 Palamas (Battle Card): If you have PALAMAS, you may play
this on a player calling battle. You select the opponent (this card may
not be used for last-ditch battle).)
@field #2117 = lu_phaser : Phaser Battle-cards come in three strengths:
lookup Phaser 1, Phaser 2, and Phaser 3.
@field #2117 = lu_phaser_1 : PHASER 1 (Battle Card): When you play this you
may roll the die one time. If you roll a number equal to or higher than
the number of the Vortex space you are on, you score a hit. If your
opponent doesn't block it with a Shield, you win the battle (lookup hit).
@field #2117 = lu_phaser_2 : PHASER 2 (Battle Card): Like a Phaser 1, but
you get to roll again if your first shot misses or if your opponent
plays a Shield against your first shot.
@field #2117 = lu_phaser_3 : PHASER 3 (Battle Card): Like a Phaser 1 or 2,
except that you can roll three times.
@field #2117 = lu_ph : lu_phaser
@field #2117 = lu_ph1 : lu_phaser_1
@field #2117 = lu_ph2 : lu_phaser_2
@field #2117 = lu_ph3 : lu_phaser_3
@field #2117 = lu_pt : lu_photon
@field #2117 = lu_photon_torpedo : lu_photon
@field #2117 = lu_torpedo : lu_photon
@field #2117 = lu_photon : PHOTON TORPEDO (Battle Card): When you play this
card, you automatically score one hit without rolling the die. Photon
Torpedoes can still be Shielded, though.
@field #2117 = lu_pf : ----Patterns of Force [PF] / John Gil----
%cWARP with MEDICAL: You may ask each player for a specific type of
card.%cIMPULSE: You may ask one player for a specific type of card.
%c(Clarification: You may ask each player in turn for a different card.
If a player doesn't have what you ask for, he gives you nothing.)
@field #2117 = lu_danger : lu_protect
@field #2117 = lu_protect : Some adventures give you a choice of a DANGER
or a way to PROTECT yourself. If you have one the officers or specialty
listed after PROTECT, you may "choose protect" or just "protect" to
avoid the danger. Otherwise, you must "choose danger" (or "danger").
@field #2117 = lu_pst : ----Plato's Stepchildren [PSt] / Kironide----
%cWARP with MEDICAL: Energize! Draw TWO Battle Cards from the deck or
other players' hands.%cIMPULSE: Energize! Draw ONE Battle Card.
@field #2117 = lu_psy : ----The Paradise Syndrome [PSy] / Obelisk----
%cYou may look through the discard pile and select one Battle Card.
@field #2117 = lu_ra : ----The Return of the Archons [RA] / Landru----
%cDANGER: Give one crewman of your choice to the player of your choice.
%cPROTECT: JONES, MANNING, or SULU
@field #2117 = lu_bridge_rack : lu_rack
@field #2117 = lu_bridge : lu_rack
@field #2117 = lu_racks : lu_rack
@field #2117 = lu_rack : Your bridge rack is where you keep the members of
your crew. Each player has a rack of the appropriate color. You have to
be holding a rack to be able to see which crewmembers are in it.
%c Also, whoever has the rack is considered by GameBoard to be that
player. For example, if you hold both the red and blue racks, then you're
both the red and blue players. If you want another mudPlayer to take over
for you in the game, just give your rack and hand over to him or her,
and GameBoard will figure it out.
@field #2117 = lu_rand : [1] Rand is a Communications officer.
%c[2] Phaser 1 Rand (Battle Card): If you have RAND, you may choose your
own exit from battle, even if you lost. You exit first.
@field #2117 = lu_marooned : lu_rescue
@field #2117 = lu_rescuing : lu_rescue
@field #2117 = lu_rescue : If you end your move on a space which has any
marooned crew counters on it, you get one of them taken at random. You
do not get to look at any other crew counters that may be there. The
crew counter is added to your bridge rack.
@field #2117 = lu_riley : [1] Riley is a Navigation officer.%c[2] Phaser 1
Riley (Battle Card): If you have RILEY, you may take your die roll in
either direction (play this after rolling).)
@field #2117 = lu_rm : ----Requiem for Methuselah [RM] / Ryetalin----
%cEnergize! Draw TWO Battle Cards.
@field #2117 = lu_romaine : [1] Romaine is a Science officer.
%c[2] Warp 2 Romaine (Battle Card): If you have ROMAINE, you may play
this on any player in battle. He must discard one SHIELD 1 or SHIELD 2.
@field #2117 = lu_rt : ----Return to Tomorrow [RT] / Sargon----
%cWARP with SCIENCE: Take one unlocked crewman at random form player
with "Most Crew".%cIMPULSE: Make one crew call for information only.
%c(Clarification: "One crew call for information" means: select a player,
and make a crew call against him. If he has what you call for, he tells
you, but does not give it to you.)
@field #2117 = lu_sb : ----Spock's Brain [SB] / Kara----%cDANGER: Player
with "Least Crew" takes one crew from you at random.%cPROTECT: SECURITY
@field #2117 = lu_sc : ----The Savage Curtain [SC] / Yarnek----
%cChoose two other players to immediately battle each other. You decide
who moves first.%c(Clarification: Remember that there may be only one
battle per turn. If you enact this adventure, you may not call battle
again later this turn.%cAlso, this adventure has no effect in a two-player
game.)
@field #2117 = lu_sci : lu_science
@field #2117 = lu_science : The Science specialty is represented by
Barrows, Palamas, Romaine, and a cadet.
@field #2117 = lu_scotty : lu_scott
@field #2117 = lu_scott : [1] Scott is a Command officer.
%c[2] Phaser 1 Scott (Battle Card): If you have SCOTT, you may play this
as if it were a PHASER 3.
@field #2117 = lu_sec : lu_security
@field #2117 = lu_security : The Security specialty is represented by
Jones, Landon, Manning, and a cadet.
@field #2117 = lu_setup : The GameBot will take care of most setup details.
In brief: Each player chooses a color and gets the corresponding ship,
bridge rack, and hand. The decks are shuffled. Each player gets 3
Battle-cards for his hand, and 2 randomly chosen crew (or 3 crew in a
2-player game) for his bridge rack. The other crew counters are placed
randomly on the board, face down. A player is chosen at random to go
first.
@field #2117 = lu_sgn : ----Spectre of the Gun [SGn] / Melkotians----
%cWARP with SECURITY: Force one player to maroon a crew of his choice on
an adventure space of your choice.%cIMPULSE: Force a player to discard one
card of the type you name.%c(Clarification: The marooned crew may NOT be
picked up by current occupants of the Adventure space. In the IMPULSE
section, if the player does not have the card you name, there is no
effect.)
@field #2117 = lu_shield : Lookup 'shield 1' or 'shield 2'.
@field #2117 = lu_shield_1 : SHIELD 1 (Battle Card): You play a Shield 1
when your opponent scores a hit on your ship. Each Shield card negates
ONE hit. Playing a Shield does not cost a Battle Turn since you play it
in your opponent's Battle Turn.
@field #2117 = lu_sh1 : lu_shield_1
@field #2117 = lu_shield_2 : SHIELD 2 (Battle Card): A Shield 2 negates TWO
hits in the same Battle Turn. That is, if your opponent plays a Phaser 2
or 3, the Shield 2 card will negate two hits from that card. The Shield 2
will NOT negate hits made in different Battle Turns.
@field #2117 = lu_sh2 : lu_shield_2
@field #2117 = lu_enterprise : lu_ship
@field #2117 = lu_enterprises : lu_ship
@field #2117 = lu_ships : lu_ship
@field #2117 = lu_ship : Each player gets a marker in the shape of the
starship Enterprise in his or her color. It starts out on the player's
Base World, and on his or her turn, moves clockwise around the board on
the Adventure Spaces. Eg: you may use "x yellow ship" to find where the
yellow Enterprise is.
@field #2117 = lu_starships : lu_ship
@field #2117 = lu_starship : lu_ship
@field #2117 = lu_spaceship : lu_ship
@field #2117 = lu_spaceships : lu_ship
@field #2117 = lu_sl : ----Shore Leave [SL] / Fantasy Planet----
%cWARP with KYLE, BARROWS, or SULU: Move your ship to any other adventure
space and have that adventure.%cIMPULSE: Move your ship forward or back
one space and have that adventure.
@field #2117 = lu_special_battle_cards : lu_special
@field #2117 = lu_special : Special Battle Cards are the same as normal
Battle-cards, except they have an extra optional effect which you may only
use if you have the named officer. Eg: You can only play PHASER 1 SULU's
special effect if you have Sulu. Look up the officer's name to learn what
his or her special Battle Card does. Special cards may be played whenever
appropriate, not just during battle.%c To play PHASER 1 SULU as a normal
PHASER 1, type "play phaser 1 sulu".%c To play PHASER 1 SULU as Sulu's
special effect, just type "play sulu".
@field #2117 = lu_specialty : lu_specialties
@field #2117 = lu_specialties : The six specialties are Command,
Communication, Medical, Navigation, Science, and Security. There are
three officers and one cadet in each specialty, except Command which
has only three officers. You need one officer from each of the six
specialties to win the game.%c NOTE 1: Cadet specialties cannot help
you in adventures, nor can cadet specialties help you win the game.
%c NOTE 2: The Starfleet crew counter is wild, and can have ANY
specialty.
@field #2117 = lu_mr_spock : lu_spock
@field #2117 = lu_spock : [1] Spock is a Command officer.
%c[2] Phaser 1 Spock (Battle Card): If you have SPOCK, you may play this
card when your opponent reaches Mind Meld. He gets nothing.
@field #2117 = lu_starfleet : The Starfleet counter can act as any
specialty, and you win if you have five other specialties plus this
counter.
@field #2117 = lu_sulu : [1] Sulu is a Navigation officer.
%c[2] Phaser 1 Sulu (Battle Card): If you have SULU, you may play this on
another player as he is about to move. You move him from 1 to 6 spaces.
@field #2117 = lu_ta : ----A Taste of Armageddon [TA] / Anan-7----
%cDANGER: Fight "Battle to the Death" - no exit until one player has
only shields, or no cards.%cPROTECT: COMMAND%c(Clarification: This means
that you select an opponent and start a battle. After the end of the
battle, if both players still have cards that are not shields, start
ANOTHER battle instead of exiting. You do NOT draw to fill your hand to
two cards in the second and subsequent battles.)
@field #2117 = lu_tractor : TRACTOR (Battle Card): You move FORWARD one
space on the Battle Vortex, and your opponent moves BACK one space.
@field #2117 = lu_tractor-zone : lu_tz
@field #2117 = lu_tractor_zone : lu_tz
@field #2117 = lu_zone : Do you mean Tractor Zone ("lookup tz") or Exit
Battle Zone ("lookup ebz")?
@field #2117 = lu_tz : If you have an adventure in a space that is also a
Tractor Zone, and if you haven't already been in a battle this turn, you
may start a Battle with any other player. He cannot refuse. The winner of
a Battle gets a chance to take a crewman from the loser.
@field #2117 = lu_two-player : lu_two
@field #2117 = lu_two_player : lu_two
@field #2117 = lu_two : In a two-player game, the following changes are
made:%c- Each player begins with three crewmen on his Bridge rack.%c- All
cards referring to "least crew" or "most crew" now refer to the opposing
player.%c- The Savage Curtain [SC] adventure has no effect on play.
%c- The Errand of Mercy [EM] adventure requires you to give your entire
hand to the other player.
@field #2117 = lu_tsp : ----This Side of Paradise [TSP] / Spore Plants----
%cDANGER: Each player (starting to your left) may ask you for a specific
type of card.%cPROTECT: LANDON, McCOY, or RILEY%c(Clarification: Each
player may ask you for a different card.)
@field #2117 = lu_phases : lu_turn
@field #2117 = lu_phase : lu_turn
@field #2117 = lu_turns : lu_turn
@field #2117 = lu_turn : Each player's turn consists of the following
phases:%c1) Movement, 2) Exchange battle cards, 3) Rescue marooned crew,
4) Adventure, 5) Battle, 6) Winning the game.
@field #2117 = lu_tw : ----The Tholian Web [TW] / Interdimensional Warp----
%cWARP with UHURA, JONES, or CHEKOV: Move another ship to any adventure
space (except this one).
%cIMPULSE: Move another ship forward or back one space.
@field #2117 = lu_tws : ----That Which Survives [TWS] / Losira----
%cDANGER: Maroon one crewman of your choice here.%cPROTECT: MEDICAL
@field #2117 = lu_ty : ----Tomorrow is Yesterday [TY] / Black Star----
%cDANGER: The player with "Least Crew" puts your ship on any adventure
space.%cPROTECT: UHURA, KYLE, or CHAPEL
@field #2117 = lu_uhura : [1] Uhura is a Communications officer.
%c[2] Phaser 1 Uhura (Battle Card): If you have UHURA, you may play this
when you are named to enter battle. The caller must call someone else.
(This effect may not be used in last-ditch battle.)
@field #2117 = lu_battle-vortex : lu_vortex
@field #2117 = lu_battle_vortex : lu_vortex
@field #2117 = lu_vortex : The Battle Vortex is where Battles take place.
The layout of the Vortex is a straight track of 13 spaces labelled as
follows: %c[6]-[5]-[4]-[3]-[2]-[1]-(Mind Meld)-[1]-[2]-[3]-[4]-[5]-[6]
%c(also lookup battle, battle card, battle turn, hit, mind meld)
@field #2117 = lu_wa2 : lu_warp_2
@field #2117 = lu_warp : lu_warp_2
@field #2117 = lu_warp_2 : WARP 2 (Battle Card): When you play this card,
you may immediately move your ship ahead 2 spaces on the Battle Vortex.
@field #2117 = lu_we : ----Wink of an Eye [WE] / Scalos----
%cWARP with SECURITY: Take three more turns. Calling a battle ends this
adventure.%cIMPULSE: Take two more turns. Calling a battle ends this
adventure.
@field #2117 = lu_winning : lu_win
@field #2117 = lu_win : To win the game, you must have one crewmember from
each of the six specialties or put all other players out of the game.
When you have all six specialties, GameBoard will announce the fact, you
will get to "lock in" a crewmember, and everyone else gets one chance
at "last-ditch battle" to prevent you from winning.
@field #2117 = lu_wnm :----Where No Man Has Gone Before [WNM] / Lithium----
%cEnergize! Draw ONE Battle Card.
@field #2117 = lu_wm : ----Who Mourns for Adonais? [WM] / Apollo----
%cDANGER: Reveal your hand to all players.
%cPROTECT: SCOTT, PALAMAS, or CHEKOV
@action new game;start game;begin game;new;newgame = bot : nowhere
@desc #2417 = Starts a new game of Star Trek: The Enterprise^4 Encounter,
for 2 to 4 players.
@field #2417 = varobj : 2117
// note: hide all racks and hands in the Praw!
@succ #2417 = @tellroom(@location("%#"),"",
@print("GameBot exclaims, \"New game!\"%cGameBot produces four game
tokens from a hidden compartment in its chest."));
@s("arg1",2229);@call(2117,"botdrop");
@s("arg1",2236);@call(2117,"botdrop");
@s("arg1",2235);@call(2117,"botdrop");
@s("arg1",2160);@call(2117,"botdrop");
@move(10487,9671);@move(10488,9671);@move(10489,9671);@move(10490,9671);
@move(10491,9671);@move(10492,9671);@move(10493,9671);@move(10494,9671);
@s("gstate","1");
@tellroom(@location("%#"),"","GameBot says, \"First, everyone who's
playing, please take a spaceship. The color of your ship will be your
color in the game. It's okay with me if someone wants to play as two
players. Leave unused ships on the floor. When everyone's ready to
continue, someone should type 'OK'.\"");
-----
**TEST**
@succ #2417 = @tellroom(@location("%#"),"", @print("GameBot exclaims, \"New game!\"%cGameBot produces four game tokens from a hidden compartment in its chest.")); @s("arg1",2229);@call(2117,"botdrop"); @s("arg1",2236);@call(2117,"botdrop"); @s("arg1",2235);@call(2117,"botdrop"); @s("arg1",2160);@call(2117,"botdrop"); @move(10487,9671);@move(10488,9671);@move(10489,9671);@move(10490,9671); @move(10491,9671);@move(10492,9671);@move(10493,9671);@move(10494,9671); @s("gstate","1"); @tellroom(@location("%#"),"","GameBot says, \"First, everyone who's playing, please take a spaceship. The color of your ship will be your color in the game. It's okay with me if someone wants to play as two players. Leave unused ships on the floor. When everyone's ready to continue, someone should type 'OK'.\"");
=====
@field #2117 = botdrop : @move(@g("arg1"),@location("%#"));
@setflag(@g("arg1"),"!dark"); @setfield(@g("arg1"),"lock","");
@tellroom(@location("%#"),"",@print("GameBot drops ",
@shortname(@g("arg1")), "."));
@action ok;ready;done;continue = bot : nowhere
@field #10485 = varobj : 2117
@desc #10485 = Continues the game, assuming it has paused for some reason.
@succ #10485 = @switch(@g("gstate"),
"1", @call("2117","do_1"), "2", @call("2117","do_2"),
"GameBot whispers (to you), \"But the game isn't paused.\"");
**RENAME**
@action x space *;look space *;l space * = bot : nowhere
@field #10510 = varobj : 2117
@set #10510 = puzzle
@desc #10510 = Look at what's at one of the adventure spaces,
eg: 'x space 3' looks at adventure space #3.
// - The weird @add("%0",0) phrase gets rids or leading zeroes
// and spaces so 'space 3' works properly.
@succ #10510 =
@switch(@or(@lt("%0",1),@gt("%0",20)), "1",
"GameBoard whispers (to you), \"I don't know that space.
Adventure spaces are numbered from 1 to 20.\"",
@print(
@s("sbac",99),
@fieldloop(2117,"acloc_",@switch("%v",@add(0,"%0"),
@s("sbac",@substr("%f",6)))),
"GameBoard whispers (to you), \"Space #", @add("%0",0),
@switch(@g("sbac"),99," is unexplored.",@print(
" has the '", @g(@print("acnam_",@g("sbac"))),
" [", @g(@print("accod_",@g("sbac"))), "]' adventure."
)),
@s("sbac",""),
@switch(@g(@print("ncc_",@add("%0",0))),0,"",
1," One crewman is marooned there.",@print(
" ", @g(@print("ncc_",@add("%0",0))), " crewmen are marooned there."
)),
@switch(@g("ship1_loc"),@add("%0",0)," The blue ship is there."),
@switch(@g("ship2_loc"),@add("%0",0)," The red ship is there."),
@switch(@g("ship3_loc"),@add("%0",0)," The green ship is there."),
@switch(@g("ship4_loc"),@add("%0",0)," The yellow ship is there."),
@switch(@add("%0",0),{2,7,12,17}," It is also a Tractor Zone.",
{5,10,15,20}," It is also a Tractor Zone and an Exit Battle Zone."),
"\""
));
------
**TEST**
@succ #10510 = @switch(@or(@lt("%0",1),@gt("%0",20)), "1","GameBoard whispers (to you), \"I don't know that space. Adventure spaces are numbered from 1 to 20.\"",@print(@s("sbac",99),@fieldloop(2117,"acloc_",@switch("%v",@add(0,"%0"),@s("sbac",@substr("%f",6)))),"GameBoard whispers (to you), \"Space #", @add("%0",0),@switch(@g("sbac"),99," is unexplored.",@print(" has the '", @g(@print("acnam_",@g("sbac")))," [", @g(@print("accod_",@g("sbac"))),"]' adventure.")),@s("sbac",""),@switch(@g(@print("ncc_",@add("%0",0))),0,"",1," One crewman is marooned there.",@print(" ", @g(@print("ncc_",@add("%0",0))), " crewmen are marooned there.")), @switch(@g("ship1_loc"),@add("%0",0)," The blue ship is there."), @switch(@g("ship2_loc"),@add("%0",0)," The red ship is there."), @switch(@g("ship3_loc"),@add("%0",0)," The green ship is there."), @switch(@g("ship4_loc"),@add("%0",0)," The yellow ship is there."), @switch(@add("%0",0),{2,7,12,17}," It is also a Tractor Zone.", {5,10,15,20}," It is also a Tractor Zone and an Exit Battle Zone."), "\""));
======
@action roll die;roll;toss die;throw die = bot : nowhere
@desc #10497 = Rolls a normal 6-sided die.
@field #10497 = varobj : 2117
@succ #10497 =
@switch(@g("gstate"), 3, @call(2117,"phase1"),
"['ROLL' is not a valid option right now.]" );
// Rolling the die at beginning of movement phase.
// First, best check that it's the player who SHOULD roll.
// If not, STOP HERE. Else go phase1b
@field #2117 = phase1 :
@call(2117,"calc_whodbr_turn");
@switch("%#", @g("whodbr_turn"), @call(2117,"phase1b"),
@print("Gamebot whispers (to you), \"Sorry, but it's the ",
@g("whocna_turn"), " player who must 'ROLL' now.\""));
-----
**TEST**
@field bot = phase1 : @call(2117,"calc_whodbr_turn"); @switch("%#", @g("whodbr_turn"), @call(2117,"phase1b"), @print("Gamebot whispers (to you), \"Sorry, but it's the ", @g("whocna_turn"), " player who must 'ROLL' now.\""));
=====
@field #2117 = phase1b :
@s("dieval",@add(@rand(6),1));
@tell("%#", @print("You roll a ", @g("dieval"), "."));
@tellroom(@location("%#"),"%#", @print("%n rolls a ", @g("dieval"), "."));
// Calculate the nowdir from the stddir.
@s("nowdir",@g("stddir"));
// Move the player's ship dieval spaces in the nowdir direction.
// Do a little fakery to map Base Worlds to Adventure Spaces
@s("loc_x0",@g(@print("ship",@g("whoclr_turn"),"_loc")));
@s("loc_x1",@g(@print("ship",@g("whoclr_turn"),"_loc")));
@switch(@g("loc_x1"),41,@s("loc_x1",2),42,@s("loc_x1",7),
43,@s("loc_x1",12),44,@s("loc_x1",17));
@switch(@g("nowdir"),
0, @s("loc_x2",@add(@mod(@sub(@add(@g("loc_x1"),@g("dieval")),1),20),1)),
1, @s("loc_x2",@add(@mod(@add(@sub(@g("loc_x1"),@g("dieval")),19),20),1))
);
@tellroom(@location("%#"),"",@print("From ",
@switch(@g("loc_x0"), 41,"the Blue Base World", 42,"the Red Base World",
43,"the Green Base World", 44,"the Yellow Base World",
@print("space #", @g("loc_x0"))),
", the ", @g(@print("clrnam",@g("whoclr_turn"))),
" ship glides clockwise around the board by ",
@g("dieval"), @switch(@g("dieval"),"1", " space", " spaces"),
", arriving at space #", @g("loc_x2"),
"."));
@s(@print("ship",@g("whoclr_turn"),"_loc"),@g("loc_x2"));
// Set isadv_here = 1 if adventure card already here.
// Set isadv_forw = 1 if adventure card in forward direction
// Set isadv_back = 1 if adventure card in back direction
@s("isadv_here",0); @s("isadv_forw",0); @s("isadv_back",0);
@s("loc_x2f",@add(@mod(@g("loc_x2"),20),1));
@s("loc_x2b",@add(@mod(@add(@g("loc_x2"),18),20),1));
@fieldloop(2117,"acloc_",@switch("%v",
@g("loc_x2"),@s("isadv_here",1),
@g("loc_x2f"),@s("isadv_forw",1),
@g("loc_x2b"),@s("isadv_back",1)
));
// if isadv_here = 1 and isadv_forw = 0 and isadv_back = 0,
// then we have to ask the player (gstate=4) and STOP HERE.
@switch(@and(@eq(@g("isadv_here"),1),
@eq(0,@g("isadv_forw"),@g("isadv_back"))),
"1", @print(@s("gstate",4), @tellroom(@location(""),"",@print(
"An adventure card is here, but not at either neighboring space. \"",
@g("whorna_turn"), ",\" GameBoard says, \"you must \"explore new worlds\".
Do you choose to go 'FORWARD' to #",
@g("loc_x2f"), " or 'BACK' to #", @g("loc_x2b"), "?\""
))),
// else go phase1c
@call(2117,"phase1c")
);
@field #2117 = phase1forw : TODO
@field #2117 = phase1back : TODO
@field #2117 = phase1c :
// If isadv_here = 1 and isadv_forw = 1 and isadv_back = 0,
// then back 1
@switch(@and(@eq(@g("isadv_here"),@g("isadv_forw"),1),@eq(@g("isadv_back"),0)),
"1", @print( @tellroom(@location("%#"),"", @print(
"An adventure card is both here and ahead, but not behind, so the ",
@g(@print("clrnam",@g("whoclr_turn"))),
" ship moves back 1 space, to space #",
@g("loc_x2b"), ".")),
@s(@print("ship",@g("whoclr_turn"),"_loc"),@g("loc_x2b")))
);
// Elseif isadv_here = 1 and isadv_forw = 0 and isadv_back = 1,
// then forward 1
@switch(@and(@eq(@g("isadv_here"),@g("isadv_back"),1),@eq(@g("isadv_forw"),0)),
"1", @print( @tellroom(@location("%#"),"", @print(
"An adventure card is both here and behind, but not ahead, so the ",
@g(@print("clrnam",@g("whoclr_turn"))),
" ship moves forward 1 space, to space #",
@g("loc_x2f"), ".")),
@s(@print("ship",@g("whoclr_turn"),"_loc"),@g("loc_x2f")))
);
// Else we stay where we are because all are full.
@switch(@eq(1,@g("isadv_here"),@g("isadv_back"),@g("isadv_forw")),
"1", @print(@tellroom(@location("%#"),"",@print(
"An adventure card is here, but also ahead and behind, so the ",
@g(@print("clrnam",@g("whoclr_turn"))),
" ship stops."))));
// Else we stay where we are because the locn has no card.
@switch(@g("isadv_here"),
"0", @print(@tellroom(@location("%#"),"",@print(
"No adventure card is here, so the ",
@g(@print("clrnam",@g("whoclr_turn"))),
" ship stops here to explore."))));
// Continue goto phase2: Exchanging Battle Cards
@call(2117,"phase2");
**TO TEST**
// PHASE 2: EXCHANGING BATTLE CARDS
// Build the whoclrs_here string. Prepend and append it with a '5'
// to represent a "fifth" player.
// If the whoclr_here string is longer than 3 chars, then
// strloop through it, treating it in pairs, eg:
// "5ABC5" means A gives his hand to 5, B gives his hand to A, etc.
@field #2117 = phase2 :
@s("loc_x0",@g(@print("ship",@g("whoclr_turn"),"_loc")));
@s("whoclrs_here","5");
@switch(@g("ship4_loc"),@g("loc_x0"),
@s("whoclrs_here",@print(@g("whoclrs_here"),"4")));
@switch(@g("ship3_loc"),@g("loc_x0"),
@s("whoclrs_here",@print(@g("whoclrs_here"),"3")));
@switch(@g("ship2_loc"),@g("loc_x0"),
@s("whoclrs_here",@print(@g("whoclrs_here"),"2")));
@switch(@g("ship1_loc"),@g("loc_x0"),
@s("whoclrs_here",@print(@g("whoclrs_here"),"1")));
@s("whoclrs_here",@print(@g("whoclrs_here"),"5"));
@switch(@strlen(@g("whoclrs_here")),{4,5,6},@print(
@tellroom(@location("%#"),"",@print(
"GameBoard says, \"There are now ",
@sub(@strlen(@g("whoclrs_here")),2),
" players in this space; those players must now
exchange their battle cards in their hands.\"")),
@call(2117,"phase2b")));
@call(2117,"phase3");
---------
@field #2117 = phase2 : @s("loc_x0",@g(@print("ship",@g("whoclr_turn"),"_loc"))); @s("whoclrs_here","5"); @switch(@g("ship1_loc"),@g("loc_x0"), @s("whoclrs_here",@print(@g("whoclrs_here"),"1"))); @switch(@g("ship2_loc"),@g("loc_x0"), @s("whoclrs_here",@print(@g("whoclrs_here"),"2"))); @switch(@g("ship3_loc"),@g("loc_x0"), @s("whoclrs_here",@print(@g("whoclrs_here"),"3"))); @switch(@g("ship4_loc"),@g("loc_x0"), @s("whoclrs_here",@print(@g("whoclrs_here"),"4"))); @s("whoclrs_here",@print(@g("whoclrs_here"),"5")); @switch(@strlen(@g("whoclrs_here")),{4,5,6},@print(@tellroom(@location("%#"),"",@print("GameBoard says, \"There are now ", @sub(@strlen(@g("whoclrs_here")),2), " players in this space; those players must now exchange their battle cards in their hands.\"")), @call(2117,"phase2b"))); @call(2117,"phase3");
=========
**TO TEST**
@field #2117 = phase2b :
@s("i",0");
@strloop(@g("whoclrs_here"),"x", @switch(
@lt(@add(@g("i"),1),@strlen(@g("whoclrs_here"))), "1", @print(
@s("arg1",@add(40,@substr(@g("whoclrs_here"),@add(@g("i"),1),1))),
@s("arg2",@add(40,"%x")),
@call(2117,"qmove_bc")
)));
-------
@field #2117 = phase2b : @s("i",0"); @strloop(@g("whoclrs_here"),"x", @switch( @lt(@add(@g("i"),1),@strlen(@g("whoclrs_here"))), "1", @print( @s("arg1",@add(40,@substr(@g("whoclrs_here"),@add(@g("i"),1),1))), @s("arg2",@add(40,"%x")), @call(2117,"qmove_bc"))));
=======
**TO TEST**
// quick move all battle cards from arg1 to arg2
// note: assuming arg1 is empty.
// therefore, we can leave the bcpos_X values as is.
// This is ONLY to be called by phase2b.
@field #2117 = qmove_bc:
@tellroom(@location("%#"),"",@print(
"GameBoard moves the cards from the ",
@switch(@g("arg1"),41,"blue",42,"red",43,"green",44,"yellow","sidebar"),
" hand to the ",
@switch(@g("arg2"),41,"blue",42,"red",43,"green",44,"yellow","sidebar"),
" hand."
));
@fieldloop(2117,"bcloc_",@switch("%v",@g("arg1"),
@s("%f",@g("arg2"))));
@s(@print("nbc_",@g("arg2")),@g(@print("nbc_",@g("arg1"))));
@s(@print("nbc_",@g("arg1")),0);
-------
@field #2117 = qmove_bc: @tellroom(@location("%#"),"",@print("GameBoard moves the cards from the ", @switch(@g("arg1"),41,"blue",42,"red",43,"green",44,"yellow","sidebar"), " hand to the ", @switch(@g("arg2"),41,"blue",42,"red",43,"green",44,"yellow","sidebar"), " hand.")); @fieldloop(2117,"bcloc_",@switch("%v",@g("arg1"), @s("%f",@g("arg2")))); @s(@print("nbc_",@g("arg1")),@g(@print("nbc_",@g("arg2")))); @s(@print("nbc_",@g("arg2")),0);
=======
**TO TEST**
// PHASE 3: RESCUE A MAROONED CREWMEMBER
// CAUTION: Assuming this is the whoclr_turn player doing this.
// NOTE: The value of cc_moved is set by botdealcc1.
@field #2117 = phase3 :
// if ncc[shipX_loc] > 0,...
@switch(@gt(@g(@print("ncc_",@g(@print("ship",@g("whoclr_turn"),"_loc")))),0),
"1", @print(
@s("arg1",@g(@print("ship",@g("whoclr_turn"),"_loc"))),
@s("arg2",@add(40,@g("whoclr_turn"))),
@call(2117,"botdealcc1"),
@tellroom(@location("%#"),"%#",@print(
"%n rescues a marooned crew member, and adds him or her to %p ",
@g(@print("clrnam",@g("whoclr_turn"))), " bridge rack."
)),
@tell("%#",@print(
"You rescue ", @g(@print("ccnam_",@g("cc_moved"))), " (",
@g(@print("speabbr_",@g(@print("ccspe_",@g("cc_moved"))))),
"), who was marooned, and add ",
@switch(@substr(@g("ccsexs"),@g("cc_moved"),1),"F","her","him"),
" to your ", @g(@print("clrnam",@g("whoclr_turn"))), " bridge rack."
))
), @tellroom(@location("%#"),"","No crew to rescue here."));
@s("whoord_inadv",@g("whoord_turn")); @s("whoclr_inadv",@g("whoclr_turn"));
@call(2117,"phase4");
-----------
@field #2117 = phase3 : @switch(@gt(@g(@print("ncc_",@g(@print("ship",@g("whoclr_turn"),"_loc")))),0), "1", @print(@s("arg1",@g(@print("ship",@g("whoclr_turn"),"_loc"))), @s("arg2",@add(40,@g("whoclr_turn"))), @call(2117,"botdealcc1"), @tellroom(@location("%#"),"%#",@print("%n rescues a marooned crew member, and adds him or her to %p ", @g(@print("clrnam",@g("whoclr_turn"))), " bridge rack.")), @tell("%#",@print("You rescue ", @g(@print("ccnam_",@g("cc_moved"))), " (", @g(@print("speabbr_",@g(@print("ccspe_",@g("cc_moved"))))), "), who was marooned, and add ", @switch(@substr(@g("ccsexs"),@g("cc_moved"),1),"F","her","him"), " to your ", @g(@print("clrnam",@g("whoclr_turn"))), " bridge rack."))), @tellroom(@location("%#"),"","No crew to rescue here.")); @s("whoord_inadv",@g("whoord_turn")); @s("whoclr_inadv",@g("whoclr_turn")); @call(2117,"phase4");
===========
//PHASE 4: HAVE AN ADVENTURE
// If no card here, put the next one from the deck here and play it.
// Else, play the card that's here.
@field #2117 = phase4 :
@s("loc_x0",@g(@print("ship",@g("whoclr_inadv"),"_loc")));
@call(2117,"calc_whodbr_inadv");
@s("the_ac",99);
@fieldloop(2117,"acloc_",@switch("%v", @g("loc_x0"),
@print(
// OLDONE, anything else TODO?
@s("the_ac",@substr("%f",6))
)
));
@switch(@g("the_ac"),99, @print(
// DEALONE
@fieldloop("2117","acloc_",
@let("k"=>@substr("%f",6),@switch( @and(@eq("%v",0),
@eq(@g("acpos_%k"),@sub(@g("nac_0"),1))),
"1", @print(
@s("the_ac","%k"), @s("%f",@g("loc_x0")),
@s("acpos_%k", @g(@print("nac_",@g("loc_x0"))))
)
))
),
@s("nac_0", @sub(@g("nac_0"),1)),
@s(@print("nac_",@g("loc_x0")), 1),
@tell(@g("whodbr_inadv"),
"You draw a new adventure card and put it into play."),
@tellroom(@location("%#"),@g("whodbr_inadv"), @print(
@g("whorna_inadv"),
" draws a new adventure card it puts it into play."))
));
@tellroom(@location("%#"),"",@print("GameBoard says, \"",
@g("whocna_inadv"), "'s adventure is...%c",
@call(2117,@print("lu_",@g(@print("accod_",@g("the_ac"))))), "\""
));
@call(2117,@print("do_adv_",@g("the_ac")));
---------
**TEST**
@field #2117 = phase4 : @s("loc_x0",@g(@print("ship",@g("whoclr_inadv"),"_loc"))); @call(2117,"calc_whodbr_inadv"); @s("the_ac",99); @fieldloop(2117,"acloc_",@switch("%v", @g("loc_x0"), @print( @s("the_ac",@substr("%f",6))))); @switch(@g("the_ac"),99, @print(@fieldloop("2117","acloc_", @let("k"=>@substr("%f",6),@switch( @and(@eq("%v",0), @eq(@g("acpos_%k"),@sub(@g("nac_0"),1))), "1", @print(@s("the_ac","%k"), @s("%f",@g("loc_x0")), @s("acpos_%k", @g(@print("nac_",@g("loc_x0")))))))), @s("nac_0", @sub(@g("nac_0"),1)), @s(@print("nac_",@g("loc_x0")), 1), @tell(@g("whodbr_inadv"), "You draw a new adventure card and put it into play."), @tellroom(@location("%#"),@g("whodbr_inadv"), @print(@g("whorna_inadv"), " draws a new adventure card it puts it into play.")))); @tellroom(@location("%#"),"",@print("GameBoard says, \"", @g("whocna_inadv"), "'s adventure is...%c", @call(2117,@print("lu_",@g(@print("accod_",@g("the_ac"))))), "\"")); @call(2117,@print("do_adv_",@g("the_ac")));
=========
**TO TEST**
// [AE] Assignment Earth - offer 'warp' or 'impulse'
@field #2117 = do_adv_0 : @s("gstate",5); @call(2117,"setmsg_wrpimp");
// to warp, SCIENCE: Barrows(20),Palamas(21),Romaine(22),Starfleet(0)
// TODO: Cadet-Sci(23) plus Kirk(1) plus Phaser 1 Kirk complication
@field #2117 = do_adv_0w :
@call(2117,"echo_warp");
@s("why_warp_ok","officer with Science");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_20"),@g("rack_inadv")),
@eq(@g("ccloc_21"),@g("rack_inadv")),
@eq(@g("ccloc_22"),@g("rack_inadv")),
@eq(@g("ccloc_0"),@g("rack_inadv"))),
"1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_0wz")),
@print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_0i"))
);
----------
**TEST**
@field bot = do_adv_0w : @call(2117,"echo_warp"); @s("why_warp_ok","officer with Science"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_20"),@g("rack_inadv")), @eq(@g("ccloc_21"),@g("rack_inadv")), @eq(@g("ccloc_22"),@g("rack_inadv")), @eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_0wz")), @print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_0i")));
==========
// TODO: If no crew are marooned, end the adventure.
// Else, choose a space that has a marooned man on it.
@field #2117 = do_adv_0wz :
@s("gstate",6);
@tellroom(@location("%#"),"",@print(
"GameBoard says (to %n), \"", @g("whocna_inadv"),
"choose a space with marooned crew on it, eg: 'SPACE 10'."
));
-----
**TEST**
@field #2117 = do_adv_0wz : @s("gstate",6); @tellroom(@location("%#"),"",@print("GameBoard says (to %n), \"", @g("whocna_inadv"), "choose a space with marooned crew on it, eg: 'SPACE 10'."));
=====
// Verify that the chosen space has a crewman on it.
// If it does, move a crewman from there to the inadv's rack and end adv.
@field #2117 = do_adv_0ws :
@switch("%#",@g("whodbr_inadv"),@print(
@call(2117,"echo_space"),
@switch("1",
@eq(@g(@print("ncc_",@g("space_chosen"))),0),@print(
@tellroom(@location("%#"),"",@print(
"GameBoard says (to %n), \"", @g("whocna_inadv"),
", that space has no marooned crew. Choose another space.\""
))
),
@print(
@s("arg1",@g("space_chosen")),
@s("arg2",@add(40,@g("whoclr_inadv"))),
@call(2117,"botdealcc1"),
@tell("%#",@print(
"You rescue ", @g(@print("ccnam_",@g("cc_moved"))), " (",
@g(@print("speabbr_",@g(@print("ccspe_",@g("cc_moved"))))),
") from space #", @g("space_chosen"), " and add ",
@switch(@substr(@g("ccsexs"),@g("cc_moved"),1),"F","her","him"),
" to your ",
@g(@print("clrnam",@g("whoclr_turn"))), " bridge rack."
)),
@tellroom(@location("%#"),"%#",@print(
"%n rescues a marooned crew member from space #", @g("space_chosen"),
", and adds him or her to %p ",
@g(@print("clrnam",@g("whoclr_inadv"))), " bridge rack."
)),
@call(2117,"end_adv")
)
)
), @call(2117,"you_not_inadv"));
------
**TEST**
@field #2117 = do_adv_0ws : @switch("%#",@g("whodbr_inadv"),@print(@call(2117,"echo_space"), @switch("1", @eq(@g(@print("ncc_",@g("space_chosen"))),0),@print(@tellroom(@location("%#"),"",@print("GameBoard says (to %n), \"", @g("whocna_inadv"), ", that space has no marooned crew. Choose another space.\""))), @print(@s("arg1",@g("space_chosen")), @s("arg2",@add(40,@g("whoclr_inadv"))), @call(2117,"botdealcc1"), @tell("%#",@print("You rescue ", @g(@print("ccnam_",@g("cc_moved"))), " (", @g(@print("speabbr_",@g(@print("ccspe_",@g("cc_moved"))))), ") from space #", @g("space_chosen"), " and add ", @switch(@substr(@g("ccsexs"),@g("cc_moved"),1),"F","her","him"), " to your ", @g(@print("clrnam",@g("whoclr_turn"))), " bridge rack.")), @tellroom(@location("%#"),"%#",@print("%n rescues a marooned crew member from space #", @g("space_chosen"), ", and adds him or her to %p ", @g(@print("clrnam",@g("whoclr_inadv"))), " bridge rack.")), @call(2117,"end_adv")))), @call(2117,"you_not_inadv"));
======
// TODO: If no crew are marooned, end the adventure.
// Else, choose a space that has a marooned man on it.
@field #2117 = do_adv_0i :
@call(2117,"echo_impulse"); @s("gstate",7);
@tellroom(@location("%#"),"",@print(
"GameBoard says (to %n), \"", @g("whocna_inadv"),
"choose a space with marooned crew on it, eg: 'SPACE 10'."));
-----
**TEST**
@field #2117 = do_adv_0i : @call(2117,"echo_impulse"); @s("gstate",7); @tellroom(@location("%#"),"",@print("GameBoard says (to %n), \"", @g("whocna_inadv"), "choose a space with marooned crew on it, eg: 'SPACE 10'."));
=====
// Verify that the chosen space has a crewman on it.
// If it does, move a crewman from there to the 0 pile,
// tell inadv who it is, and ask for a space to move it to.
@field #2117 = do_adv_0is1 :
@switch("%#",@g("whodbr_inadv"),@print(
@call(2117,"echo_space"),
@switch("1",
@eq(@g(@print("ncc_",@g("space_chosen"))),0),@print(
@tellroom(@location("%#"),"",@print(
"GameBoard says (to %n), \"", @g("whocna_inadv"),
", that space has no marooned crew. Choose another space.\""
))
),
@print(
@s("arg1",@g("space_chosen")), @s("arg2",0),
@call(2117,"botdealcc1"),
@tell("%#",@print(
"GameBoard picks up a crewman from space #", @g("space_chosen"),
" and shows it to you: ", @g(@print("ccnam_",@g("cc_moved"))), " (",
@g(@print("speabbr_",@g(@print("ccspe_",@g("cc_moved"))))), ")."
)),
@tellroom(@location("%#"),"%#",@print(
"GameBoard picks up a crewman from space #", @g("space_chosen"),
" and shows it to %n."
)),
@tellroom(@location("%#"),"",@print(
"GameBoard says (to %n), \"", @g("whocna_inadv"),
", now choose the new space where it will go, eg: 'SPACE 10'."
)),
@s("gstate",8)
)
)
), @call(2117,"you_not_inadv"));
-------
**TEST**
@field #2117 = do_adv_0is1 : @switch("%#",@g("whodbr_inadv"),@print(@call(2117,"echo_space"), @switch("1", @eq(@g(@print("ncc_",@g("space_chosen"))),0),@print(@tellroom(@location("%#"),"",@print("GameBoard says (to %n), \"", @g("whocna_inadv"), ", that space has no marooned crew. Choose another space.\""))), @print(@s("arg1",@g("space_chosen")), @s("arg2",0), @call(2117,"botdealcc1"), @tell("%#",@print("GameBoard picks up a crewman from space #", @g("space_chosen"), " and shows it to you: ", @g(@print("ccnam_",@g("cc_moved"))), " (", @g(@print("speabbr_",@g(@print("ccspe_",@g("cc_moved"))))), ").")), @tellroom(@location("%#"),"%#",@print("GameBoard picks up a crewman from space #", @g("space_chosen"), " and shows it to %n.")), @tellroom(@location("%#"),"",@print("GameBoard says (to %n), \"", @g("whocna_inadv"), ", now choose the new space where it will go, eg: 'SPACE 10'.")), @s("gstate",8)))), @call(2117,"you_not_inadv"));
=======
@field #2117 = do_adv_0is2 :
@switch("%#",@g("whodbr_inadv"),@print(
@call(2117,"echo_space"),
@s("arg1",0), @s("arg2",@g("space_chosen")),
@call(2117,"botdealcc1"),
@tell("%#",@print(
"GameBoard maroons ", @g(@print("ccnam_",@g("cc_moved"))), " (",
@g(@print("speabbr_",@g(@print("ccspe_",@g("cc_moved"))))),
") on space #", @g("space_chosen"), "."
)),
@tellroom(@location("%#"),"%#",@print(
"GameBoard maroons the crewman on space #", @g("space_chosen"), "."
)),
@call(2117,"end_adv")
), @call(2117,"you_not_inadv"));
-------
**TEST**
@field #2117 = do_adv_0is2 : @switch("%#",@g("whodbr_inadv"),@print(@call(2117,"echo_space"), @s("arg1",0), @s("arg2",@g("space_chosen")), @call(2117,"botdealcc1"), @tell("%#",@print("GameBoard maroons ", @g(@print("ccnam_",@g("cc_moved"))), " (", @g(@print("speabbr_",@g(@print("ccspe_",@g("cc_moved"))))), ") on space #", @g("space_chosen"), ".")), @tellroom(@location("%#"),"%#",@print("GameBoard maroons the crewman on space #", @g("space_chosen"), ".")), @call(2117,"end_adv")), @call(2117,"you_not_inadv"));
=======
**TO TEST**
// [AON] By Any Other Name - offer 'warp' or 'impulse'
@field bot = do_adv_1 : @s("gstate",9); @call(2117,"setmsg_wrpimp");
// to warp, NAV: Chekov(12),Riley(13),Sulu(14),Starfleet(0)
// TODO: Nav-Cadet plus Kirk(1) plus Phaser 1 Kirk complication
@field bot = do_adv_1w :
@call(2117,"echo_warp");
@s("why_warp_ok","officer with Navigation");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_12"),@g("rack_inadv")),
@eq(@g("ccloc_13"),@g("rack_inadv")),
@eq(@g("ccloc_14"),@g("rack_inadv")),
@eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_warp_ok"), @call(2117,"do_adv_1w1")
),
@print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_1i"))
);
--------
**TEST**
@field bot = do_adv_1w : @call(2117,"echo_warp"); @s("why_warp_ok","officer with Navigation"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_12"),@g("rack_inadv")), @eq(@g("ccloc_13"),@g("rack_inadv")), @eq(@g("ccloc_14"),@g("rack_inadv")), @eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_1w1")), @print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_1i")));
========
@field bot = do_adv_1w1 : TODO
@field bot = do_adv_1i : TODO
@call(2117,"echo_impulse");
// [Ar] Arena - deal him a new battle card. END ADV.
@field bot = do_adv_2 :
@s("arg1",0); @s("arg2",@add(40,@g("whoclr_inadv")));
@call(2117,"echo_dealbc");
@s("whoclr_cards",@g("whoclr_inadv")); @call(2117,"echo_7cardmax");
@call(2117,"end_adv");
-----
**TEST**
@field bot = do_adv_2 : @s("arg1",0); @s("arg2",@add(40,@g("whoclr_inadv"))); @call(2117,"echo_dealbc"); @s("whoclr_cards",@g("whoclr_inadv")); @call(2117,"echo_7cardmax"); @call(2117,"end_adv");
=====
// [AT] Amok Time - autoroll & move ship.
// Might either offer 'maroon crewname' or END THIS ADV AND START NEW ADV.
@field bot = do_adv_3 :
@call(2117,"do_adv_3_roll");
@switch(@g("didpassbase"),
"0",@switch(@g(@print("ncc_",@add(40,@g("whoclr_inadv")))),
"0",@print(
@tellroom(@location("%#"),"",@print(
"GameBoard says, \"", @g("whocna_inadv"),
" didn't pass a Base World, but has no crewman to maroon anyway.\""
)),
@call(2117,"end_adv")
),
"1",@print(
@fieldloop(2117,"ccloc_",@switch("%v", @add(40,@g("whoclr_inadv")),
@s("crew_chosen",@substr("%f",6))
)),
@call(2117,"do_adv_3cz")
),
@print(
@s("gstate",11),
@tellroom(@location("%#"),"",@print(
"GameBoard says (to ", @g("whorna_inadv"),
"), \"", @g("whocna_inadv"),
", you didn't pass a Base World. Choose which of your crewman to maroon, eg: 'CREW SULU'.\""
))
)
),
@print(
@tellroom(@location("%#"),"",@print(
"GameBoard says, \"", @g("whocna_inadv"),
" passed the ", @ucfirst(@g(@print("clrnam",@g("basepassed")))),
" Base World and so avoided the danger.\""
)),
@call(2117,"end_adv")
)
);
-------
**TEST**
@field bot = do_adv_3 : @call(2117,"do_adv_3_roll"); @switch(@g("didpassbase"), "0",@switch(@g(@print("ncc_",@add(40,@g("whoclr_inadv")))), "0",@print(@tellroom(@location("%#"),"",@print("GameBoard says, \"", @g("whocna_inadv"), " didn't pass a Base World, but has no crewman to maroon anyway.\"")), @call(2117,"end_adv")), "1",@print(@fieldloop(2117,"ccloc_",@switch("%v", @add(40,@g("whoclr_inadv")), @s("crew_chosen",@substr("%f",6)))), @call(2117,"do_adv_3cz")), @print(@s("gstate",11), @tellroom(@location("%#"),"",@print("GameBoard says (to ", @g("whorna_inadv"), "), \"", @g("whocna_inadv")))), ", you didn't pass a Base World. Choose which of your crewman to maroon, eg: 'CREW SULU'.\"")))), @print(@tellroom(@location("%#"),"",@print("GameBoard says, \"", @g("whocna_inadv"), " passed the ", @ucfirst(@g(@print("clrnam",@g("basepassed")))), " Base World and so avoided the danger.\"")), @call(2117,"end_adv")));
=======
// TODO: autoroll and move ship. Set basepassed to 1..4 or 0 if none.
@field bot = do_adv_3_roll : TODO
// maroon the chosen crewman, end adv
@field bot = do_adv_3cz : TODO
@call(2117,"end_adv");
// [AY] All Our Yesterdays - offer choice of 'space #' to move adv to.
@field bot = do_adv_4 :
@s("gstate",12);
@tellroom(@location("%#"),"",@print(
"GameBoard says (to ", @g("whorna_inadv"),
"), \"", @g("whocna_inadv"),
"choose any other space to move this adventure to, eg: 'SPACE 10'."
));
------
**TEST**
@field bot = do_adv_4 : @s("gstate",12); @tellroom(@location("%#"),"",@print("GameBoard says (to ", @g("whorna_inadv"), "), \"", @g("whocna_inadv"), "choose any other space to move this adventure to, eg: 'SPACE 10'."));
======
@field bot = do_adv_4s :
@switch("%#",@g("whodbr_inadv"),@print(
@call(2117,"echo_space"),
@s("space_this",@g(@print("ship",@g("whoclr_inadv"),"_loc"))),
@switch("1",
@eq(@g("space_chosen"),@g("space_this")), @print(
"GameBoard says (to %n), \"No, any *other* space. Choose again.\""
),
@print(
// if card on space_chosen, discard it.
@switch(@g(@print("nac_",@g("space_chosen"))),"1",@print(
@s("arg1",@g("space_chosen")), @s("arg2",99),
@call(2117,"botdealac1"),
@tellroom(@location("%#"),"",@print(
"GameBoard discards the '", @g(@print("acnam_",@g("ac_moved"))),
" [", @g(@print("accod_",@g("ac_moved"))),
"]' adventure from space #", @g("space_chosen"), "."
))
)),
// move [AY] adventure to space_chosen.
@s("acloc_4",@g("space_chosen")),
@s(@print("nac_",@g("space_chosen")),1),
@s(@print("nac_",@g("space_this")),0),
@tellroom(@location("%#"),"",@print(
"GameBoard moves the 'All Our Yesterdays [AY]' adventure from space #",
@g("space_this"), " to space #", @g("space_chosen"), "."
)),
// deal new adventure to space_this.
@s("arg1",0), @s("arg2",@g("space_this")),
@call(2117,"botdealac1"),
@tellroom(@location("%#"),"",@print(
"GameBoard deals the '", @g(@print("acnam_",@g("ac_moved"))),
" [", @g(@print("accod_",@g("ac_moved"))),
"]' adventure into space #", @g("space_this"), "."
)),
@call(2117,"end_adv")
)
)
), @call(2117,"you_not_inadv"));
------
**TEST**
@field bot = do_adv_4s : @switch("%#",@g("whodbr_inadv"),@print(@call(2117,"echo_space"), @s("space_this",@g(@print("ship",@g("whoclr_inadv"),"_loc"))), @switch("1", @eq(@g("space_chosen"),@g("space_this")), @print("GameBoard says (to %n), \"No, any *other* space. Choose again.\""), @print(@switch(@g(@print("nac_",@g("space_chosen"))),"1",@print(@s("arg1",@g("space_chosen")), @s("arg2",99), @call(2117,"botdealac1"), @tellroom(@location("%#"),"",@print("GameBoard discards the '", @g(@print("acnam_",@g("ac_moved"))), " [", @g(@print("accod_",@g("ac_moved"))), "]' adventure from space #", @g("space_chosen"), ".")))), @s("acloc_4",@g("space_chosen")), @s(@print("nac_",@g("space_chosen")),1), @s(@print("nac_",@g("space_this")),0), @tellroom(@location("%#"),"",@print("GameBoard moves the 'All Our Yesterdays [AY]' adventure from space #", @g("space_this"), " to space #", @g("space_chosen"), ".")), @s("arg1",0), @s("arg2",@g("space_this")), @call(2117,"botdealac1"), @tellroom(@location("%#"),"",@print("GameBoard deals the '", @g(@print("acnam_",@g("ac_moved"))), " [", @g(@print("accod_",@g("ac_moved"))), "]' adventure into space #", @g("space_this"), ".")), @call(2117,"end_adv")))), @call(2117,"you_not_inadv"));
======
**TO TEST**
// [BT] Balance of Terror - offer choice of 'warp' or 'impulse'
@field bot = do_adv_5 : @s("gstate",13); @call(2117,"setmsg_wrpimp");
// to warp, COMMAND: Kirk(1),Scott(2),Spock(3),Starfleet(0)
@field bot = do_adv_5w :
@call(2117,"echo_warp");
@s("why_warp_ok","officer with Command");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_1"),@g("rack_inadv")),
@eq(@g("ccloc_2"),@g("rack_inadv")),
@eq(@g("ccloc_3"),@g("rack_inadv")),
@eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_warp_ok"), @call(2117,"do_adv_5w1")
),
@print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_5i"))
);
--------
**TEST**
@field bot = do_adv_5w : @call(2117,"echo_warp"); @s("why_warp_ok","officer with Command"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_1"),@g("rack_inadv")), @eq(@g("ccloc_2"),@g("rack_inadv")), @eq(@g("ccloc_3"),@g("rack_inadv")), @eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_5w1")), @print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_5i")));
========
// Warp confirmed. Now decide who you're going to fight.
// 1) if there's already been a battle this turn, or it's not your turn,
// then there's no battle at all, and this adventure ends.
// 2) else if there's only 2 players, calculate who the opponent is.
// 3) else ask who the opponent will be.
@field bot = do_adv_5w1 :
@switch("1",
@not(@eq(@g("whoclr_inadv"),@g("whoclr_turn"))), @print(
@tellroom(@location("%#"),"",@print(
"GameBoard says, \"", @g("whocna_inadv"),
"can't start a battle when it's not %p turn, so no battle occurs.\""
)),
@call(2117,"end_adv")
),
@eq(@g("isbatdone"),1), @print(
@tellroom(@location("%#"),"",
"GameBoard says, \"There's already been a battle this turn, so no battle occurs.\""
),
@call(2117,"end_adv")
),
@eq(@g("nwho"),2), @print(
@strloop(@g("whoclrs"),"x",@switch("%x",
@g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))),
@tellroom(@location("%#"),"",@print( "GameBoard says, \"",
@g("whocna_inadv"), " challenges ",
@g("whocna_chosen"), " to battle.")),
@call(2117,"do_adv_5wb")
),
@print(
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")),
@s(@print("isclropt",@g("whoclr_inadv")),"0"),
@s("gstate",14), @s("q1","who will you battle?"), @call(2117,"q_who")
)
);
---------
**TEST**
@field bot = do_adv_5w1 : @switch("1", @not(@eq(@g("whoclr_inadv"),@g("whoclr_turn"))), @print(@tellroom(@location("%#"),"",@print("GameBoard says, \"", @g("whocna_inadv"), "can't start a battle when it's not %p turn, so no battle occurs.\"")), @call(2117,"end_adv")), @eq(@g("isbatdone"),1), @print(@tellroom(@location("%#"),"", @print("GameBoard says, \"There's already been a battle this turn, so no battle occurs.\"")), @call(2117,"end_adv")), @eq(@g("nwho"),2), @print(@strloop(@g("whoclrs"),"x",@switch("%x", @g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))), @tellroom(@location("%#"),"",@print( "GameBoard says, \"", @g("whocna_inadv"), " challenges ", @g("whocna_chosen"), " to battle.")), @call(2117,"do_adv_5wb")), @print(@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")), @s(@print("isclropt",@g("whoclr_inadv")),"0"), @s("gstate",14), @s("q1","who will you battle?"), @call(2117,"q_who")));
=========
**TEST**
// has chosen which player to battle
@field bot = do_adv_5wp : @call(2117,"echo_player"); @call(2117,"do_adv_5wb");
// TODO: battle whoclr_chosen, you on '4', he on '6'. He moves first.
@field bot = do_adv_5wb : TODO
@s("whoclr_bat1",@g("whoclr_inadv"));
@s("whoclr_bat2",@g("whoclr_chosen"));
@s(@print("ship",@g("whoclr_bat1"),"_loc"),21);
@s(@print("ship",@g("whoclr_bat2"),"_loc"),21);
@s(@print("ship",@g("whoclr_bat1"),"_pos"),4);
@s(@print("ship",@g("whoclr_bat2"),"_loc"),6);
@s("whoclr_bturn",@g("whoclr_bat2"));
@call(2117,"do_battle");
// draw a battle card, then start a battle
// 1) if there's already been a battle this turn, or it's not your turn,
// then there's no battle at all, and this adventure ends.
// 2) else if there's only 2 players, calculate who the opponent is.
// 3) else ask who the opponent will be (gstate 15).
@field bot = do_adv_5i :
@call(2117,"echo_impulse");
@tellroom(@location("%#"),"","[TODO (5i): draw 1 battle card]");
@switch("1",
@not(@eq(@g("whoclr_inadv"),@g("whoclr_turn"))), @print(
@tellroom(@location("%#"),"",@print(
"GameBoard says, \"", @g("whocna_inadv"),
"can't start a battle when it's not %p turn, so no battle occurs.\""
)),
@call(2117,"end_adv")
),
@eq(@g("isbatdone"),1), @print(
@tellroom(@location("%#"),"", @print(
"GameBoard says, \"There's already been a battle this turn, so no battle occurs.\""
)),
@call(2117,"end_adv")
),
@eq(@g("nwho"),2), @print(
@strloop(@g("whoclrs"),"x",@switch("%x",
@g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))),
@tellroom(@location("%#"),"",@print( "GameBoard says, \"",
@g("whocna_inadv"), " challenges ",
@g("whocna_chosen"), " to battle.")),
@call(2117,"do_adv_5ib")
),
@print(
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")),
@s(@print("isclropt",@g("whoclr_inadv")),"0"),
@s("gstate",15), @s("q1","who will you battle?"), @call(2117,"q_who")
)
);
--------
**TEST**
@field bot = do_adv_5i : @call(2117,"echo_impulse"); @tellroom(@location("%#"),"","[TODO (5i): draw 1 battle card]"); @switch("1", @not(@eq(@g("whoclr_inadv"),@g("whoclr_turn"))), @print(@tellroom(@location("%#"),"",@print("GameBoard says, \"", @g("whocna_inadv"), "can't start a battle when it's not %p turn, so no battle occurs.\"")), @call(2117,"end_adv")), @eq(@g("isbatdone"),1), @print(@tellroom(@location("%#"),"", @print("GameBoard says, \"There's already been a battle this turn, so no battle occurs.\"")), @call(2117,"end_adv")), @eq(@g("nwho"),2), @print(@strloop(@g("whoclrs"),"x",@switch("%x", @g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))), @tellroom(@location("%#"),"",@print( "GameBoard says, \"", @g("whocna_inadv"), " challenges ", @g("whocna_chosen"), " to battle.")), @call(2117,"do_adv_5ib")), @print(@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")), @s(@print("isclropt",@g("whoclr_inadv")),"0"), @s("gstate",15), @s("q1","who will you battle?"), @call(2117,"q_who")));
========
@field bot = do_adv_5ip : TODO
@call(2117,"echo_player");
@field bot = do_adv_5ib : TODO
**TEST**
// [CK] The Conscience of the King - choice of 'danger' or 'protect'
@field bot = do_adv_6 : @s("gstate",16); @call(2117,"setmsg_danpro");
// [CK-Dan]
// 1) if you don't have any crewmen to maroon, end adv.
// 2) else calc LeastCrew player.
// If tie, ask which player LeastCrew will be;
// else continue to ask LeastCrew which space it'll be marooned to.
@field bot = do_adv_6d :
@call(2117,"echo_danger"); @call(2117,"calc_whoclr_least");
@switch("1",
@eq(@g(@print("ncc_",@add(40,@g("whoclr_inadv")))),0), @print(
@tellroom(@location("%#"),"",@print(
"GameBoard says, \"Since ", @g("whocna_inadv"),
" has no crew to maroon...\""
)),
@call(2117,"end_adv")
),
@eq(@g("whoclr_least"),0), @print(
@s("gstate",18),
@s("q1","there's a tie for who has the 'Least Crew'. You must choose one. Will it be:"),
@call(2117,"q_who")
),
@print(
@call(2117,"calc_whodbr_least"), @s("gstate",19),
@tellroom(@location("%#"),"",@print(
"GameBoard asks ", @g("whorna_least"), ", \"",
@g("whocna_least"),
"Choose the space where ", @g("whocna_inadv"),
"must maroon one of crewmember, eg: 'SPACE 3'.\""
))
)
);
-----
**TEST**
@field bot = do_adv_6d : @call(2117,"echo_danger"); @call(2117,"calc_whoclr_least"); @switch("1", @eq(@g(@print("ncc_",@add(40,@g("whoclr_inadv")))),0), @print(@tellroom(@location("%#"),"",@print("GameBoard says, \"Since ", @g("whocna_inadv"), " has no crew to maroon...\"")), @call(2117,"end_adv")), @eq(@g("whoclr_least"),0), @print(@s("gstate",18), @s("q1","there's a tie for who has the 'Least Crew'. You must choose one. Will it be:"), @call(2117,"q_who")), @print(@call(2117,"calc_whodbr_least"), @s("gstate",19), @tellroom(@location("%#"),"",@print("GameBoard asks ", @g("whorna_least"), ", \"", @g("whocna_least"), "Choose the space where ", @g("whocna_inadv"), "must maroon one of crewmember, eg: 'SPACE 3'.\""))));
=====
**TEST NODEL**
@field bot = do_adv_6dp : @call(2117,"echo_player"); @call(2117,"do_adv_6dpz");
@field bot = do_adv_6dpz : TODO
// space selected, now figure out which crewman
@field bot = do_adv_6ds :
@call(2117,"calc_whodbr_least");
@switch("%#",@g("whodbr_least"),@print(
@call(2117,"echo_space"),
@switch(@g(@print("ncc_",@add(40,@g("whoclr_inadv")))),
"1",@print(
@fieldloop(2117,"ccloc_",@switch("%v", @add(40,@g("whoclr_inadv")),
@s("crew_chosen",@substr("%f",6))
)),
@call(2117,"do_adv_6dcz")
),
@print(
@s("gstate",17),
@tellroom(@location("%#"),"",@print(
"GameBoard says (to ", @g("whorna_inadv"),
"), \"", @g("whocna_inadv"),
", choose which of your crewman to maroon, eg: 'CREW SMITH'.\""
))
)
)
), @call(2117,"you_not_least"));
------
**ADD**
@field bot = do_adv_6ds : @call(2117,"calc_whodbr_least"); @switch("%#",@g("whodbr_least"),@print(@call(2117,"echo_space"), @switch(@g(@print("ncc_",@add(40,@g("whoclr_inadv")))), "1",@print(@fieldloop(2117,"ccloc_",@switch("%v", @add(40,@g("whoclr_inadv")), @s("crew_chosen",@substr("%f",6)))), @call(2117,"do_adv_6dcz")), @print(@s("gstate",17), @tellroom(@location("%#"),"",@print("GameBoard says (to ", @g("whorna_inadv"), "), \"", @g("whocna_inadv"), ", choose which of your crewman to maroon, eg: 'CREW SMITH'.\""))))), @call(2117,"you_not_least"));
======
@field bot = do_adv_6dc : TODO
@field bot = do_adv_6dcz : TODO
// to protect, must have KIRK (1), RAND (6), or RILEY (13)
@field bot = do_adv_6p :
@call(2117,"echo_protect");
@s("why_pro_ok","of Kirk, Rand, or Riley");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_1"),@g("rack_inadv")),
@eq(@g("ccloc_6"),@g("rack_inadv")),
@eq(@g("ccloc_13"),@g("rack_inadv"))), "1", @print(
@call("echo_pro_ok"), @call(2117,"end_adv")
),
@print(@call("echo_pro_nok"), @call(2117,"do_adv_6d"))
);
---------
**TEST**
@field bot = do_adv_6p : @call(2117,"echo_protect"); @s("why_pro_ok","of Kirk, Rand, or Riley"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_1"),@g("rack_inadv")), @eq(@g("ccloc_6"),@g("rack_inadv")), @eq(@g("ccloc_13"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_pro_ok"), @call(2117,"end_adv")), @print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_6d")));
=========
**TEST**
// [CMl] Court Martial - choice of 'danger' or 'protect'
@field bot = do_adv_7 : @s("gstate",20); @call(2117,"setmsg_danpro");
@field bot = do_adv_7d : TODO
@call(2117,"echo_danger");
// to protect, must have SPOCK (3), SCOTT (2), or UHURA (4)
@field bot = do_adv_7p :
@call(2117,"echo_protect");
@s("why_pro_ok","of Spock, Scott, or Uhura");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_3"),@g("rack_inadv")),
@eq(@g("ccloc_2"),@g("rack_inadv")),
@eq(@g("ccloc_4"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_pro_ok"), @call(2117,"end_adv")
),
@print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_7d"))
);
-----------
**TEST**
@field bot = do_adv_7p : @call(2117,"echo_protect"); @s("why_pro_ok","of Spock, Scott, or Uhura"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_3"),@g("rack_inadv")), @eq(@g("ccloc_2"),@g("rack_inadv")), @eq(@g("ccloc_4"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_pro_ok"), @call(2117,"end_adv")), @print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_7d")));
===========
**TEST**
// [CMn] The Corbomite Maneuver - choice of 'danger' or 'protect'
@field bot = do_adv_8 : @s("gstate",21); @call(2117,"setmsg_danpro");
// 1) if there's already been a battle this turn, or it's not your turn,
// then there's no battle at all, and this adventure ends.
// 2) else if there's only 2 players, calculate who the opponent is.
// 3) else ask who the opponent will be.
@field bot = do_adv_8d :
@call(2117,"echo_danger");
@switch("1",
@not(@eq(@g("whoclr_inadv"),@g("whoclr_turn"))), @print(
@tellroom(@location("%#"),"",@print(
"GameBoard says, \"", @g("whocna_inadv"),
"can't start a battle when it's not %p turn, so no battle occurs.\""
)),
@call(2117,"end_adv")
),
@eq(@g("isbatdone"),1), @print(
@tellroom(@location("%#"),"",
"GameBoard says, \"There's already been a battle this turn, so no battle occurs.\""
),
@call(2117,"end_adv")
),
@eq(@g("nwho"),2), @print(
@strloop(@g("whoclrs"),"x",@switch("%x",
@g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))),
@tellroom(@location("%#"),"",@print( "GameBoard says, \"",
@g("whocna_inadv"), " challenges ",
@g("whocna_chosen"), " to battle.")),
@call(2117,"do_adv_8db")
),
@print(
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")),
@s(@print("isclropt",@g("whoclr_inadv")),"0"),
@s("gstate",22), @s("q1","who will you battle?"), @call(2117,"q_who")
)
);
---------
**TEST**
@field bot = do_adv_8d : @call(2117,"echo_danger"); @switch("1",@not(@eq(@g("whoclr_inadv"),@g("whoclr_turn"))), @print(@tellroom(@location("%#"),"",@print("GameBoard says, \"", @g("whocna_inadv"), "can't start a battle when it's not %p turn, so no battle occurs.\"")), @call(2117,"end_adv")), @eq(@g("isbatdone"),1), @print(@tellroom(@location("%#"),"", "GameBoard says, \"There's already been a battle this turn, so no battle occurs.\""), @call(2117,"end_adv")), @eq(@g("nwho"),2), @print(@strloop(@g("whoclrs"),"x",@switch("%x", @g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))), @tellroom(@location("%#"),"",@print( "GameBoard says, \"", @g("whocna_inadv"), " challenges ", @g("whocna_chosen"), " to battle.")), @call(2117,"do_adv_8db")), @print(@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")), @s(@print("isclropt",@g("whoclr_inadv")),"0"), @s("gstate",22), @s("q1","who will you battle?"), @call(2117,"q_who")));
=========
**TEST NODEL**
@field bot = do_adv_8dp : @call(2117,"echo_player"); @call(2117,"do_adv_8db");
// TODO: battle whoclr_chosen, you on '6', he on '4'. You move first.
@field bot = do_adv_8db : TODO
@s("whoclr_bat1",@g("whoclr_inadv"));
@s("whoclr_bat2",@g("whoclr_chosen"));
@s(@print("ship",@g("whoclr_bat1"),"_loc"),21);
@s(@print("ship",@g("whoclr_bat2"),"_loc"),21);
@s(@print("ship",@g("whoclr_bat1"),"_pos"),6);
@s(@print("ship",@g("whoclr_bat2"),"_loc"),4);
@s("whoclr_bturn",@g("whoclr_bat1"));
@call(2117,"do_battle");
// to protect, must have KYLE (5), PALAMAS (21), or BARROWS (20)
@field bot = do_adv_8p :
@call(2117,"echo_protect");
@s("why_pro_ok","of Kyle, Palamas, or Barrows");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_5"),@g("rack_inadv")),
@eq(@g("ccloc_21"),@g("rack_inadv")),
@eq(@g("ccloc_20"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_pro_ok"), @call(2117,"end_adv")
),
@print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_8d"))
);
----------
**TEST**
@field bot = do_adv_8p : @call(2117,"echo_protect"); @s("why_pro_ok","of Kyle, Palamas, or Barrows"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_5"),@g("rack_inadv")), @eq(@g("ccloc_21"),@g("rack_inadv")), @eq(@g("ccloc_20"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_pro_ok"), @call(2117,"end_adv")), @print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_8d")));
==========
// [Cms] The Cloud-minders - no choice
@field bot = do_adv_9 : TODO
// [Cp] Catspaw - no choice
@field bot = do_adv_10 : TODO
**TO TEST**
// [CX] Charlie X - choose 'warp' or 'impulse'
@field bot = do_adv_11 : @s("gstate",23); @call(2117,"setmsg_wrpimp");
// to warp: Rand(6), Palamas(21), Romaine(22)
@field bot = do_adv_11w :
@call(2117,"echo_warp");
@s("why_warp_ok","of Rand, Palamas, or Romaine");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_6"),@g("rack_inadv")),
@eq(@g("ccloc_21"),@g("rack_inadv")),
@eq(@g("ccloc_22"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_warp_ok"), @call(2117,"do_adv_11wz")
),
@print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_11i"))
);
-------
**ADD**
@field bot = do_adv_11w : @call(2117,"echo_warp"); @s("why_warp_ok","of Rand, Palamas, or Romaine"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_6"),@g("rack_inadv")), @eq(@g("ccloc_21"),@g("rack_inadv")), @eq(@g("ccloc_22"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_11wz")), @print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_11i")));
=======
**ADD NODEL**
@field bot = do_adv_11wz : @s("gstate",24); @call(2117,"q_ct");
// for each player other than inadv, move all the cards of the chosen
// cardtype from player's hand to inadv's hand, if any.
@field bot = do_adv_11wt :
@switch("%#",@g("whodbr_inadv"),@print(
@call(2117,"echo_ct"),
@s("arg2",@add(40,@g("whoclr_inadv"))),
@fieldloop(2117,"bcloc_",@switch("%v",{41,42,43,44},
@switch("1",@and( @not(@eq("%v",@g("arg2"))),
@eq(@g(@print("bcct_",@substr("%f",6))),@g("ct_chosen")) ),@print(
@s("arg1","%v"),
@s("arg3",@substr("%f",6)),
@call(2117,"bcgive1")
))
)),
@call(2117,"end_adv")
), @call(2117,"you_not_inadv"));
-----
**ADD**
@field bot = do_adv_11wt : @switch("%#",@g("whodbr_inadv"),@print(@call(2117,"echo_ct"), @s("arg2",@add(40,@g("whoclr_inadv"))), @fieldloop(2117,"bcloc_",@switch("%v",{41,42,43,44}, @switch("1",@and( @not(@eq("%v",@g("arg2"))), @eq(@g(@print("bcct_",@substr("%f",6))),@g("ct_chosen")) ),@print(@s("arg1","%v"), @s("arg3",@substr("%f",6)), @call(2117,"bcgive1"))))), @call(2117,"end_adv")), @call(2117,"you_not_inadv"));
=====
// name the player to get a cardtype from
// 1) If 2-player game, calc who whoclr_chosen is,
// 2) Else ask.
@field bot = do_adv_11i :
@call(2117,"echo_impulse");
@switch("1",
@eq(@g("nwho"),2), @print(
@strloop(@g("whoclrs"),"x",@switch("%x",
@g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))),
@call(2117,"do_adv_11ip")
),
@print(
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")),
@s(@print("isclropt",@g("whoclr_inadv")),"0"),
@s("gstate",25), @s("q1","who will you ask for a card?"),
@call(2117,"q_who")
)
);
-----
**TEST**
@field bot = do_adv_11i : @call(2117,"echo_impulse"); @switch("1", @eq(@g("nwho"),2), @print(@strloop(@g("whoclrs"),"x",@switch("%x", @g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))), @call(2117,"do_adv_11ip")), @print(@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")), @s(@print("isclropt",@g("whoclr_inadv")),"0"), @s("gstate",25), @s("q1","who will you ask for a card?"), @call(2117,"q_who")));
=====
**ADD NODEL**
@field bot = do_adv_11ip : @call(2117,"echo_player"); @call(2117,"do_adv_11ipz");
**ADD NODEL**
// know the player, now name a cardtype
@field bot = do_adv_11ipz : @s("gstate",26); @call(2117,"q_ct");
// We now know the player and cardtype.
// 1) if chosen player hasn't got such a card, say so and end adv.
// 2) else, if he has a generic card of that type, autochoose it.
// 3) else, ask chosen to now name which of his cards to give
@field bot = do_adv_11it : TODO
// know the player and specific card, so move it over
// (unless, of course, he's named a card not of the given type,
// or a card he doesn't actually have.)
@field bot = do_adv_11iz : TODO
**TO TEST**
// [DD] The Devil in the Dark - choose 'warp' or 'impulse'
@field bot = do_adv_12 : @s("gstate",27); @call(2117,"setmsg_wrpimp");
// to warp, Spock(3), Jones(16), Landon(18)
@field bot = do_adv_12w :
@call(2117,"echo_warp");
@s("why_warp_ok","of Spock, Jones, or Landon");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_3"),@g("rack_inadv")),
@eq(@g("ccloc_16"),@g("rack_inadv")),
@eq(@g("ccloc_18"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_warp_ok"), @call(2117,"do_adv_12w1")
),
@print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_12i")
)
);
---------
**TEST**
@field bot = do_adv_12w : @call(2117,"echo_warp"); @s("why_warp_ok","of Spock, Jones, or Landon"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_3"),@g("rack_inadv")), @eq(@g("ccloc_16"),@g("rack_inadv")), @eq(@g("ccloc_18"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_12w1")), @print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_12i")));
=========
// [DD] choose another player who will have to discard 3 cards at random
// 1) if there's only 2 players, calculate who the other one is.
// 2) else ask to choose a player.
@field bot = do_adv_12w1 :
@switch("1",
@eq(@g("nwho"),2), @print(
@strloop(@g("whoclrs"),"x",@switch("%x",
@g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))),
@call(2117,"do_adv_12wz")
),
@print(
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")),
@s(@print("isclropt",@g("whoclr_inadv")),"0"),
@s("gstate",28), @s("q1","choose who discards three cards at random."),
@call(2117,"q_who")
)
);
---------
**TEST**
@field bot = do_adv_12w1 : @switch("1", @eq(@g("nwho"),2), @print(@strloop(@g("whoclrs"),"x",@switch("%x", @g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))), @call(2117,"do_adv_12wz")), @print(@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")), @s(@print("isclropt",@g("whoclr_inadv")),"0"), @s("gstate",28), @s("q1","choose who discards three cards at random."), @call(2117,"q_who")));
=========
@field bot = do_adv_12wp : TODO
@call(2117,"echo_player");
// [DD-WRP] whoclr_chosen discards 3 cards at random
@field bot = do_adv_12wz : [TODO: 12wz]
// [DD-IMP] choose another player who will have to discard a card of his choice
// 1) if there's only 2 players, calculate who the other one is.
// 2) else ask to choose a player.
@field bot = do_adv_12i :
@call(2117,"echo_impulse");
@switch("1",
@eq(@g("nwho"),2), @print(
@strloop(@g("whoclrs"),"x",@switch("%x",
@g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))),
@call(2117,"do_adv_12iz")
),
@print(
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")),
@s(@print("isclropt",@g("whoclr_inadv")),"0"),
@s("gstate",29), @s("q1","choose who will discard a card."),
@call(2117,"q_who")
)
);
---------
**TEST**
@field bot = do_adv_12i : @call(2117,"echo_impulse"); @switch("1", @eq(@g("nwho"),2), @print(@strloop(@g("whoclrs"),"x",@switch("%x", @g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))), @call(2117,"do_adv_12iz")), @print(@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")), @s(@print("isclropt",@g("whoclr_inadv")),"0"), @s("gstate",29), @s("q1","choose who will discard a card."), @call(2117,"q_who")));
=========
@field bot = do_adv_12ip : TODO
@call(2117,"echo_player");
// [DD-IMP] whoclr_chosen chooses a card to discard
@field bot = do_adv_12ic : TODO
// [DD-IMP] whoclr_chosen discards the bcard_chosen
@field bot = do_adv_12iz : TODO
**TEST**
// [Dma] The Doomsday Machine - choose 'danger' or 'protect'
@field bot = do_adv_13 : @s("gstate",31); @call(2117,"setmsg_danpro");
@field bot = do_adv_13d : TODO
@call(2117,"echo_danger");
// to protect, NAVIGATION: CHEKOV (12), RILEY (13), SULU (14), STARFLEET (0)
// TODO: CADET-Nav (15) plus KIRK (1) plus PHASER 1 KIRK complication
@field bot = do_adv_13p :
@call(2117,"echo_protect");
@s("why_pro_ok","officer with Navigation");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_12"),@g("rack_inadv")),
@eq(@g("ccloc_13"),@g("rack_inadv")),
@eq(@g("ccloc_14"),@g("rack_inadv")),
@eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_pro_ok"), @call(2117,"end_adv")
),
@print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_13d"))
);
----------
**TEST**
@field bot = do_adv_13p : @call(2117,"echo_protect"); @s("why_pro_ok","officer with Navigation"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_12"),@g("rack_inadv")), @eq(@g("ccloc_13"),@g("rack_inadv")), @eq(@g("ccloc_14"),@g("rack_inadv")), @eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_pro_ok"), @call(2117,"end_adv")), @print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_13d")));
==========
**TEST**
// [DMd] Dagger of the Mind - choose 'danger' or 'protect'
@field bot = do_adv_14 : @s("gstate",32); @call(2117,"setmsg_danpro");
// tmpc = countYourUnlockedCrew()
@field bot = do_adv_14d :
@call(2117,"echo_danger");
@s("tmpc",0);
@fieldloop(2117,"ccloc_",@let("k"=>@substr("%f",6),@switch("1",
@and( @eq("%v",@add(40,@g("whoclr_inadv"))),
@eq(0,@g("cclkd_%k")) ), @print(
@s("tmpc",@add(1,@g("tmpc"))),
@s("crew_chosen","%k")
)
)));
@switch(@g("tmpc"),
"0", @print(
@tellroom(@location("%#"),"",@print(
"GameBoard says, \"", @g("whocna_inadv"),
" has no unlocked crewmen to reveal.\""
)),
@call(2117,"end_adv")
),
"1", @call(2117,"do_adv_14dcz"),
@print(
@s("gstate",33),
@tellroom(@location("%#"),"",@print(
"GameBoard says (to ", @g("whorna_inadv"),
"), \"", @g("whocna_inadv"),
", choose which of your crewman to reveal, eg: 'CREW SMITH'.\""
))
)
);
-------
**ADD**
=======
@field bot = do_adv_14dc : TODO
@field bot = do_adv_14dcz : TODO
// to protect, must have KIRK (1), MANNING (17), or NOEL (10)
@field bot = do_adv_14p :
@call(2117,"echo_protect");
@s("why_pro_ok","of Kirk, Manning, or Noel");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_1"),@g("rack_inadv")),
@eq(@g("ccloc_17"),@g("rack_inadv")),
@eq(@g("ccloc_10"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_pro_ok"), @call(2117,"end_adv")
),
@print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_14d"))
);
---------
**TEST**
@field bot = do_adv_14p : @call(2117,"echo_protect"); @s("why_pro_ok","of Kirk, Manning, or Noel"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_1"),@g("rack_inadv")), @eq(@g("ccloc_17"),@g("rack_inadv")), @eq(@g("ccloc_10"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_pro_ok"), @call(2117,"end_adv")), @print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_14d")));
=========
**TEST**
// [DY] The Deadly Years - choose 'danger' or 'protect'
@field bot = do_adv_15 : @s("gstate",34); @call(2117,"setmsg_danpro");
@field bot = do_adv_15d : TODO
@call(2117,"echo_danger");
**TEST**
// to protect, must have ROMAINE (22), NOEL (10), or CHEKOV (12)
@field bot = do_adv_15p :
@call(2117,"echo_protect");
@s("why_pro_ok","of Romaine, Noel, or Chekov");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_22"),@g("rack_inadv")),
@eq(@g("ccloc_10"),@g("rack_inadv")),
@eq(@g("ccloc_12"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_pro_ok"), @call(2117,"end_adv")
),
@print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_15d"))
);
-----------
**TEST**
@field bot = do_adv_15p : @call(2117,"echo_protect"); @s("why_pro_ok","of Romaine, Noel, or Chekov"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_22"),@g("rack_inadv")), @eq(@g("ccloc_10"),@g("rack_inadv")), @eq(@g("ccloc_12"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_pro_ok"), @call(2117,"end_adv")), @print(@call(2117,"echo_pro_nok"), @call(2117,"do_adv_15d")));
===========
**TO TEST**
// [EI] The Enterprise Incident - choose 'warp' or 'impulse'
@field bot = do_adv_16 : @s("gstate",35); @call(2117,"setmsg_wrpimp");
// to warp, NAV: CHEKOV (12), RILEY (13), SULU (14), STARFLEET (0)
// TODO: CADET-Nav (15) plus KIRK (1) plus PHASER 1 KIRK complication
@field bot = do_adv_16w :
@call(2117,"echo_warp");
@s("why_warp_ok","officer with Navigation");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_12"),@g("rack_inadv")),
@eq(@g("ccloc_13"),@g("rack_inadv")),
@eq(@g("ccloc_14"),@g("rack_inadv")),
@eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_warp_ok"), @call(2117,"do_adv_16w1")
),
@print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_16i"))
);
---------
**TEST**
@field bot = do_adv_16w : @call(2117,"echo_warp"); @s("why_warp_ok","officer with Navigation"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_12"),@g("rack_inadv")), @eq(@g("ccloc_13"),@g("rack_inadv")), @eq(@g("ccloc_14"),@g("rack_inadv")), @eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_16w1")), @print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_16i")));
=========
// ask for player or deck to get 1st card from
@field bot = do_adv_16w1 :
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1"));
@s(@print("isclropt",@g("whoclr_inadv")),"0");
@s("gstate",36); @s("q1","first"); @call(2117,"q_who_or_deck");
-----
**TEST**
@field bot = do_adv_16w1 : @strloop(@g("whoclrs"),"x",@s("isclropt%x","1")); @s(@print("isclropt",@g("whoclr_inadv")),"0"); @s("gstate",36); @s("q1","first"); @call(2117,"q_who_or_deck");
=====
// 1) get 1st card from deck
// 2) then ask for player or deck to get 2nd card from (do_adv_16w2)
@field bot = do_adv_16wk1 : TODO
@call(2117,"echo_deck");
[TODO: draw card from deck];
@call(2117,"do_adv_16w2");
// 1) get 1st card from whoclr_chosen
// 2) then ask for player or deck to get 2nd card from (do_adv_16w2)
@field bot = do_adv_16wp1 : TODO
@call(2117,"echo_player");
[TODO: draw card from whoclr_chosen];
@call(2117,"do_adv_16w2");
// ask for player or deck to get 2nd card from
@field bot = do_adv_16w2 :
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1"));
@s(@print("isclropt",@g("whoclr_inadv")),"0");
@s("gstate",37); @s("q1","second"); @call(2117,"q_who_or_deck");
-----
**TEST**
@field bot = do_adv_16w2 : @strloop(@g("whoclrs"),"x",@s("isclropt%x","1")); @s(@print("isclropt",@g("whoclr_inadv")),"0"); @s("gstate",37); @s("q1","second"); @call(2117,"q_who_or_deck");
=====
// get 2st card from deck, end adv.
@field bot = do_adv_16wk2 : TODO
@call(2117,"echo_deck");
// get 2st card from whoclr_chosen, end adv
@field bot = do_adv_16wp2 : TODO
@call(2117,"echo_player");
// Impulse. draw one card from deck
@field bot = do_adv_16i : TODO
@call(2117,"echo_impulse");
// [EM] Errand of Mercy - choose a card to give
@field bot = do_adv_17 : TODO
// [ET] Elaan of Troyius - no choice
@field bot = do_adv_18 : TODO
// [EW] The Enemy Within - choose crewman with Command to give
@field bot = do_adv_19 :
@s("ncmnd",0);
@switch(@g("ccloc_1"),@add(40,@g("whoclr_inadv")),
@s("ncmnd",@add(1,@g("ncmnd"))));
@switch(@g("ccloc_2"),@add(40,@g("whoclr_inadv")),
@s("ncmnd",@add(1,@g("ncmnd"))));
@switch(@g("ccloc_3"),@add(40,@g("whoclr_inadv")),
@s("ncmnd",@add(1,@g("ncmnd"))));
@call(2117,"calc_whoclr_least");
@switch("1",
@lt(@g("ncmnd"),2), @print(
@tellroom(@location("%#"),"",@print(
"GameBoard says, \"But ", @g("whocna_inadv"),
" doesn't have more than one crewman with Command, so...\""
)),
@call(2117,"end_adv")
),
@eq(@g("whoclr_least"),0), @print(
@s("gstate",40),
@s("q1","there's a tie for who has the 'Least Crew'. You must choose one. Will it be:"),
@s(2117,"q_who")
),
@call(2117,"do_adv_19pz")
);
----------
**TEST**
@field bot = do_adv_19 : @s("ncmnd",0); @switch(@g("ccloc_1"),@add(40,@g("whoclr_inadv")), @s("ncmnd",@add(1,@g("ncmnd")))); @switch(@g("ccloc_2"),@add(40,@g("whoclr_inadv")), @s("ncmnd",@add(1,@g("ncmnd")))); @switch(@g("ccloc_3"),@add(40,@g("whoclr_inadv")), @s("ncmnd",@add(1,@g("ncmnd")))); @call(2117,"calc_whoclr_least"); @switch("1", @lt(@g("ncmnd"),2), @print(@tellroom(@location("%#"),"",@print("GameBoard says, \"But ", @g("whocna_inadv"), " doesn't have more than one crewman with Command, so...\"")), @call(2117,"end_adv")), @eq(@g("whoclr_least"),0), @print(@s("gstate",40), @s("q1","there's a tie for who has the 'Least Crew'. You must choose one. Will it be:"), @s(2117,"q_who")), @call(2117,"do_adv_19pz"));
==========
**TEST NODEL**
@field bot = do_adv_19p : @call(2117,"echo_player"); @call(2117,"do_adv_19pz");
// ask to choose CREW KIRK, SPOCK, or SCOTT
@field bot = do_adv_19pz :
@s("gstate",39);
@tellroom(@location("%#"),"",@print(
"GameBoard says (to ", @g("whorna_inadv"),
"), \"", @g("whocna_inadv"),
", choose which of your crewman with Command to give to ",
@g("whocna_least"), ", eg: 'CREW KIRK'.\""
));
------
**TEST**
@field bot = do_adv_19pz : @s("gstate",39); @tellroom(@location("%#"),"",@print("GameBoard says (to ", @g("whorna_inadv"), "), \"", @g("whocna_inadv"), ", choose which of your crewman with Command to give to ", @g("whocna_least"), ", eg: 'CREW KIRK'.\""));
======
@field bot = do_adv_19c : TODO
**TEST**
// [FC] Friday's Child - choose 'warp' or 'impulse'
@field bot = do_adv_20 : @s("gstate",41); @call(2117,"setmsg_wrpimp");
// to warp, COMMUN: Uhura(4),Kyle(5),Rand(6),Starfleet(0)
// TODO: Cadet-Commun(7) plus Kirk(1) plus Phaser 1 Kirk complication
@field bot = do_adv_20w :
@call(2117,"echo_warp");
@s("why_warp_ok","officer with Communication");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_4"),@g("rack_inadv")),
@eq(@g("ccloc_5"),@g("rack_inadv")),
@eq(@g("ccloc_6"),@g("rack_inadv")),
@eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_warp_ok"), @call(2117,"do_adv_20w1")
),
@print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_20i"))
);
--------
**TEST**
@field bot = do_adv_20w : @call(2117,"echo_warp"); @s("why_warp_ok","officer with Communication"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_4"),@g("rack_inadv")), @eq(@g("ccloc_5"),@g("rack_inadv")), @eq(@g("ccloc_6"),@g("rack_inadv")), @eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_20w1")), @print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_20i")));
========
@field bot = do_adv_20w1 :
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1"));
@s(@print("isclropt",@g("whoclr_inadv")),"0");
@s("gstate",42); @s("q1","first"); @call(2117,"q_who_or_deck");
-----
**TEST**
@field bot = do_adv_20w1 : @strloop(@g("whoclrs"),"x",@s("isclropt%x","1")); @s(@print("isclropt",@g("whoclr_inadv")),"0"); @s("gstate",42); @s("q1","first"); @call(2117,"q_who_or_deck");
=====
// 1) get 1st card from deck
// 2) then ask for player or deck to get 2nd card from (do_adv_20w2)
@field bot = do_adv_20wk1 : TODO
@call(2117,"echo_deck");
[TODO: draw card from deck];
@call(2117,"do_adv_20w2");
// 1) get 1st card from whoclr_chosen
// 2) then ask for player or deck to get 2nd card from (do_adv_20w2)
@field bot = do_adv_20wp1 : TODO
@call(2117,"echo_player");
[TODO: draw card from whoclr_chosen];
@call(2117,"do_adv_20w2");
// ask for player or deck to get 2nd card from
@field bot = do_adv_20w2 :
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1"));
@s(@print("isclropt",@g("whoclr_inadv")),"0");
@s("gstate",43); @s("q1","second"); @call(2117,"q_who_or_deck");
-----
**TEST**
@field bot = do_adv_20w2 : @strloop(@g("whoclrs"),"x",@s("isclropt%x","1")); @s(@print("isclropt",@g("whoclr_inadv")),"0"); @s("gstate",43); @s("q1","second"); @call(2117,"q_who_or_deck");
=====
// get 2nd card from whoclr_chosen, end adv
@field bot = do_adv_20wp2 : TODO
@call(2117,"echo_player");
// get 2nd card from deck, end adv
@field bot = do_adv_20wk2 : TODO
@call(2117,"echo_deck");
// draw one card from deck, end adv
@field bot = do_adv_20i : TODO
@call(2117,"echo_impulse");
**TEST**
// [FW] For the World is Hollow... - choose 'warp' or 'impulse'
@field bot = do_adv_21 : @s("gstate",44); @call(2117,"setmsg_wrpimp");
// to warp, Manning(17), McCoy(8), Chapel(9)
@field bot = do_adv_21w :
@call(2117,"echo_warp");
@s("why_echo_ok","of Manning, McCoy, or Chapel");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_17"),@g("rack_inadv")),
@eq(@g("ccloc_8"),@g("rack_inadv")),
@eq(@g("ccloc_9"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_warp_ok"), @call(2117,"do_adv_21w1")
),
@print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_21i"))
);
--------
**TEST**
@field bot = do_adv_21w : @call(2117,"echo_warp"); @s("why_echo_ok","of Manning, McCoy, or Chapel"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_17"),@g("rack_inadv")), @eq(@g("ccloc_8"),@g("rack_inadv")), @eq(@g("ccloc_9"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_21w1")), @print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_21i")));
========
@field bot = do_adv_21w1 : TODO
@field bot = do_adv_21i : TODO
@call(2117,"echo_impulse");
**TEST**
// [GT] The Gamesters of Triskelion - choose 'warp' or 'impulse'
@field bot = do_adv_22 : @s("gstate",47); @call(2117,"setmsg_wrpimp");
// to warp, COMMUN: Uhura(4), Kyle(5), Rand(6), Starfleet(0)
// TODO: Cadet-Commun(7) plus Kirk(1) plus Phaser 1 Kirk complication
@field bot = do_adv_22w :
@call(2117,"echo_warp");
@s("why_warp_ok","officer with Communication");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_4"),@g("rack_inadv")),
@eq(@g("ccloc_5"),@g("rack_inadv")),
@eq(@g("ccloc_6"),@g("rack_inadv")),
@eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_warp_ok"), @call(2117,"do_adv_22w1")
),
@print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_22i"))
);
--------
**TEST**
@field bot = do_adv_22w : @call(2117,"echo_warp"); @s("why_warp_ok","officer with Communication"); @s("rack_inadv",@add(40,@g("whoclr_inadv"))); @switch(@or(@eq(@g("ccloc_4"),@g("rack_inadv")), @eq(@g("ccloc_5"),@g("rack_inadv")), @eq(@g("ccloc_6"),@g("rack_inadv")), @eq(@g("ccloc_0"),@g("rack_inadv"))), "1", @print(@call(2117,"echo_warp_ok"), @call(2117,"do_adv_22w1")), @print(@call(2117,"echo_warp_nok"), @call(2117,"do_adv_22i")));
========
// 1) if 2-player game, calc who it is
// 2) else ask choice of other player
@field bot = do_adv_22w1 :
@switch("1",
@eq(@g("nwho"),2), @print(
@strloop(@g("whoclrs"),"x",@switch("%x",
@g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))),
@call(2117,"do_adv_22wp")
),
@print(
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")),
@s(@print("isclropt",@g("whoclr_inadv")),"0"),
@s("gstate",48), @s("q1","whose hand do you want to trade cards with?"),
@call(2117,"q_who")
)
);
-----
**TEST**
@field bot = do_adv_22w1 : @switch("1", @eq(@g("nwho"),2), @print(@strloop(@g("whoclrs"),"x",@switch("%x", @g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))), @call(2117,"do_adv_22wp")), @print(@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")), @s(@print("isclropt",@g("whoclr_inadv")),"0"), @s("gstate",48), @s("q1","whose hand do you want to trade cards with?"), @call(2117,"q_who")));
=====
@field bot = do_adv_22wp : TODO
@call(2117,"echo_player");
@field bot = do_adv_22i :
@call(2117,"echo_impulse");
@switch("1",
@eq(@g("nwho"),2), @print(
@strloop(@g("whoclrs"),"x",@switch("%x",
@g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))),
@call(2117,"do_adv_22ip")
),
@print(
@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")),
@s(@print("isclropt",@g("whoclr_inadv")),"0"),
@s("gstate",50), @s("q1","who do you want to trade hands with?"),
@call(2117,"q_who")
)
);
-----
**TEST**
@field bot = do_adv_22i : @call(2117,"echo_impulse"); @switch("1",@eq(@g("nwho"),2), @print(@strloop(@g("whoclrs"),"x",@switch("%x",@g("whoclr_inadv"), "", @s("whoclr_chosen","%x"))), @call(2117,"do_adv_22ip")), @print(@strloop(@g("whoclrs"),"x",@s("isclropt%x","1")), @s(@print("isclropt",@g("whoclr_inadv")),"0"), @s("gstate",50), @s("q1","who do you want to trade hands with?"), @call(2117,"q_who")));
=====
@field bot = do_adv_22ip : TODO
@call(2117,"echo_player");
**TEST**
// [LZ] The Lights of Zetar - choose 'warp' or 'impulse'
@field bot = do_adv_23 : @s("gstate",51); @call(2117,"setmsg_wrpimp");
// to warp, Scott(2), Romaine(22), Barrows(20)
@field bot = do_adv_23w : TODO
@call(2117,"echo_warp");
@s("why_warp_ok","of Scott, Romaine, or Barrows");
@s("rack_inadv",@add(40,@g("whoclr_inadv")));
@switch(@or(@eq(@g("ccloc_2"),@g("rack_inadv")),
@eq(@g("ccloc_22"),@g("rack_inadv")),
@eq(@g("ccloc_20"),@g("rack_inadv"))), "1", @print(
@call(2117,"echo_warp_ok"), @call(2117,"do_adv_23w1")
),
@print(call(2117,"echo_warp_nok"), @call(2117,"do_adv_23i"))
);
--------
**TEST**
@field bot = do_adv_23w : @call(2117,"echo_warp"); @s("why_warp_ok","of Scot