Feature - Implemented allow property choiceAdventureXXX=URL

ckb

Minion
Staff member
Most choiceAdventures are a single choice option, so setting choiceAdventureXXX=N works fine.
However, some choiceAdventures take multiple arguments and therefor are not handled by a single int.

Could we allow some property choiceAdventureXXX=URL, so if the property is set to something that is not an int, Mafia would just follow that URL.
So setting
Code:
choiceAdventure1391 = choice.php?whichchoice=1391&option=1&tossid=10320
would allow users to set automated choices to anything when certain choice adventures come up. This could be generic enough to allow handling of many of these KoL choices with multiple parameters. The example above is for "Rationing_out_Destruction" in the Exploding Battlefield.
 

Veracity

Developer
Staff member
Currently:

Property: choiceAdventure1391=1
ASH: run_choice ( 1 );

How about:

Property: choiceAdventure1391=1&tossid=10320[&this=that...]
ASH: run_choice ( 1, "tossid=10320[&this=that...]" );
 

ckb

Minion
Staff member
How about:

Property: choiceAdventure1391=1&tossid=10320[&this=that...]
ASH: run_choice ( 1, "tossid=10320[&this=that...]" );

I like that even better, so that we get an ash version with adaptability!
 

Veracity

Developer
Staff member
Got it.

Code:
[color=green]> get choiceAdventure1391[/color]

1&tossid=10320

Set my Custom combat.
Automated 7 adventures on the Exploaded Battlefield.

Code:
Validating adventure sequence...

Request 1 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[362] The Exploaded Battlefield
Encounter: War Hippy Green Gourmet
...
2 hippies defeated; 160 down, 173 left.

Request 2 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[363] The Exploaded Battlefield
Encounter: War Hippy Fire Spinner
...
2 hippies defeated; 162 down, 171 left.

Request 3 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[364] The Exploaded Battlefield
Encounter: War Hippy Baker
...
2 hippies defeated; 164 down, 169 left.

Request 4 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[365] The Exploaded Battlefield
Encounter: War Hippy F.R.O.G.
...
2 hippies defeated; 166 down, 167 left.

Request 5 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[366] The Exploaded Battlefield
Encounter: invader bullet
...

Request 6 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[367] The Exploaded Battlefield
Encounter: War Hippy Homeopath
...
2 hippies defeated; 168 down, 165 left.

Request 7 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[368] The Exploaded Battlefield
Encounter: Rationing out Destruction
You defeated 21 hippies with some space chowder

Requests complete.

I then automated 6 battles and went to the relay browser.
I visited the Exploaded Battlefield and got the choice.

Code:
[375] The Exploaded Battlefield
Encounter: Rationing out Destruction

[color=green]> get hippiesDefeated[/color]

201

[color=green]> choice[/color]

choice 1: Toss!
choice 2: Never Mind

[color=green]> ashq run_choice( 1, "tossid=10320" );[/color]

Submitting option 1 for choice 1391
You defeated 21 hippies with some space chowder

[color=green]> get hippiesDefeated[/color]

222
I should probably test to make sure I didn't break anything else, but I'll submit this soon.
 

Veracity

Developer
Staff member
I'm reopening this because I want to add validation.

Code:
[color=green]> test load selects.txt[/color]

Read 2,659 bytes into a 2,659 character string

[color=green]> test visit-choice[/color]

choice = 1391
[b]choice 1[/b]: Toss!
  select = [b]tossid[/b] (24 options)
    0 --- select an item ---
    161 ghuol egg (2) (5 casualties)
    330 glass of goat's milk (5 casualties)
    471 hot wing (6) (5 casualties)
    669 ghuol guolash (18 casualties)
    672 cranberries (3) (5 casualties)
    1769 fricasseed brains (5 casualties)
    1776 stale baguette (5 casualties)
    1778 ancient frozen dinner (6 casualties)
    1952 desiccated apricot (5 casualties)
    1954 dehydrated caviar (5 casualties)
    2063 blackberry (2) (5 casualties)
    2843 dire fudgesicle (2) (5 casualties)
    3555 sea carrot (5 casualties)
    6416 mana curds (10 casualties)
    6422 vampire chowder (10 casualties)
    6705 jungle floor wax (6 casualties)
    7368 extra-flat panini (2) (8 casualties)
    7375 actual tapas (5 casualties)
    8412 succulent marrow (3) (6 casualties)
    8413 salacious crumbs (5) (6 casualties)
    8526 pink slime (2) (5 casualties)
    9953 PB&J with the crusts cut off (4) (5 casualties)
    10179 plain snowcone (12) (5 casualties)
[b]choice 2[/b]: Never Mind
I want to change a bunch of things:

1) "choice" prints choices. I want it to also print the selects.
2) If selects are present, they are not optional. Therefore, I want to allow:

choice 1 tossid=8412

and have it validate: all selects must be supplied with a valid value
3) When automating, if choiceAdventureXXX=1&tossid=YYYY, then validate:
decision 1 is available and it requires tossid and YYYY is an available value
If validation fails, go to Manual Control
4) run_choice should also validate on supplied extra_fields and not submit the choice if it will be rejected by KoL. Probably. Signal caller by returning empty responseText? In any case, it's up to the script writer to either make sure correct extra parameters are passed or to recognize and abort if they fail.
 

Veracity

Developer
Staff member
Yeah, I definitely have the technology. For choices with multiple required selects, it can be a bit verbose, though.

Code:
Visiting the Spacegate Terminal
Using data override: relay/choice.1235.ash

[color=green]> choice[/color]

[b]choice 1[/b]: Open the gate using the dials
  select = [b]letter1[/b] (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = [b]letter2[/b] (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = [b]letter3[/b] (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = [b]letter4[/b] (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = [b]letter5[/b] (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = [b]letter6[/b] (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = [b]letter7[/b] (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
[b]choice 2[/b]: Open the gate to a specific planet
[b]choice 3[/b]: Open the gate to a random planet
 

Veracity

Developer
Staff member
Well, this worked, but there is a bug elsewhere:

Code:
Visiting the Spacegate Terminal
Using data override: relay/choice.1235.ash

> choice

choice 1: Open the gate using the dials
[As above]
choice 2: Open the gate to a specific planet
choice 3: Open the gate to a random planet

> choice 1 letter1=P letter2=Q letter3=R letter4=S letter5=R letter6=Q letter7=P

> vsg status

Visiting the Spacegate Terminal
Planet Name: (difficulty = 0)
Coordinates: PQRSRQP

Plant Life: none detected
Animal Life: none detected
Intelligent Life: none detected

You have used 0 turns in the Spacegate today and have 20 turns available to adventure there.
Notice that it executed the choice and visited the planet, but that KoLmafia did not log the visit nor parse the terminal output correctly.

Code:
Current planet: Planet Name: Mu Benedict IX
Coordinates: PQRSRQP
Environmental Hazards:
   irradiated
   high winds
   frigid zones
   scary noises
Plant Life: primitive
Animal Life: none detected
Intelligent Life: detected (hostile)
DANGER: Murderbot frequencies detected

Spacegate Energy remaining: 20 Adventures

Back to the Spacegate Facility
I submitted the choice and visited the planet - but we did not successfully parse the terminal and extract the planet data.

Or, perhaps, VSG didn't pick up the setting correctly. :)
 
Last edited:

Veracity

Developer
Staff member
Yeah, that was a bug in VSG. My session log has this:

Code:
Visiting the Spacegate Terminal
Took choice 1235/1: Open the gate using the dials
choice.php?whichchoice=1235&option=1&letter1=P&letter2=Q&letter3=R&letter4=S&letter5=R&letter6=Q&letter7=P&pwd
Planet: Mu Benedict IX
Coordinates: PQRSRQP
Hazards: irradiated|high winds|frigid zones|scary noises
Plant Life: primitive
Animal Life: none detected
Intelligent Life: detected (hostile)
Spant chemical signature detected: false
Murderbots frequencies detected: true
Ancient ruins detected: false
Spacegate turns left: 20
OK, I am going to try this out on the battlefield now. If it works as expected - both via the "choice" command and via automation - I'll submit it.

Although, I will still not be done. Spacegate is an example of another way to have extra fields: decision #2 requires "word=ABCDEFG", which is a text input field, not a select.
I'll support that kind of thing next.
 

Veracity

Developer
Staff member
I adventured in the relay browser until I got the battlefield choice:

Code:
[351] The Exploaded Battlefield
Encounter: Rationing out Destruction

[color=green]> choice[/color]

[b]choice 1[/b]: Toss!
  select = [b]tossid[/b] (22 options)
    0 => --- select an item ---
    10179 => plain snowcone (5) (5 casualties)
    10320 => space chowder (8) (21 casualties)
    161 => ghuol egg (5 casualties)
    1769 => fricasseed brains (2) (5 casualties)
    1776 => stale baguette (2) (5 casualties)
    1954 => dehydrated caviar (5 casualties)
    2063 => blackberry (4) (5 casualties)
    2841 => antique packet of ketchup (5 casualties)
    471 => hot wing (6) (5 casualties)
    4959 => Knob nuts (5 casualties)
    589 => cocoa eggshell fragment (5 casualties)
    669 => ghuol guolash (18 casualties)
    6705 => jungle floor wax (6 casualties)
    672 => cranberries (2) (5 casualties)
    7368 => extra-flat panini (2) (8 casualties)
    7372 => pie man was not meant to eat (25 casualties)
    7375 => actual tapas (5 casualties)
    7509 => Mornington crescent roll (9 casualties)
    8526 => pink slime (3) (5 casualties)
    9514 => meteoreo (7 casualties)
    9953 => PB&J with the crusts cut off (2) (5 casualties)
[b]choice 2[/b]: Never Mind

[color=green]> choice 1 tossid=7372[/color]

You defeated 25 hippies with some pie man was not meant to eat
That worked. That was my only pie. Let's see what happens if I set that as my choice setting and automate.

Code:
[color=green]> inv pie[/color]

[color=green]> set choiceAdventure1391=1&tossid=7372[/color]

choiceAdventure1391 => 1&tossid=7372

Validating adventure sequence...

Request 1 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[352] The Exploaded Battlefield
Encounter: War Hippy Windtalker
...
2 hippies defeated; 33 down, 300 left.

Request 2 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[353] The Exploaded Battlefield
Encounter: War Hippy F.R.O.G.
...
2 hippies defeated; 35 down, 298 left.

Request 3 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[354] The Exploaded Battlefield
Encounter: War Hippy Baker
...
2 hippies defeated; 37 down, 296 left.

Request 4 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[355] The Exploaded Battlefield
Encounter: War Hippy Fire Spinner
...
2 hippies defeated; 39 down, 294 left.

Request 5 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[356] The Exploaded Battlefield
Encounter: sausage goblin
...
This combat did not cost a turn

Request 5 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[356] The Exploaded Battlefield
Encounter: War Hippy Rigger
...
2 hippies defeated; 41 down, 292 left.

Request 6 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[357] The Exploaded Battlefield
Encounter: Rationing out Destruction
[color=red]Choice option 1391/1 requires 'tossid' but '7372' is not a valid value.[/color]
[b]choice 1[/b]: Toss!
  select = [b]tossid[/b] (21 options)
    0 => --- select an item ---
    10179 => plain snowcone (5) (5 casualties)
    10320 => space chowder (8) (21 casualties)
    161 => ghuol egg (5 casualties)
    1769 => fricasseed brains (2) (5 casualties)
    1776 => stale baguette (2) (5 casualties)
    1954 => dehydrated caviar (5 casualties)
    2063 => blackberry (4) (5 casualties)
    2841 => antique packet of ketchup (5 casualties)
    471 => hot wing (6) (5 casualties)
    4959 => Knob nuts (5 casualties)
    589 => cocoa eggshell fragment (5 casualties)
    669 => ghuol guolash (18 casualties)
    6705 => jungle floor wax (6 casualties)
    672 => cranberries (2) (5 casualties)
    7368 => extra-flat panini (2) (8 casualties)
    7375 => actual tapas (5 casualties)
    7509 => Mornington crescent roll (9 casualties)
    8526 => pink slime (3) (5 casualties)
    9514 => meteoreo (7 casualties)
    9953 => PB&J with the crusts cut off (2) (5 casualties)
[b]choice 2[/b]: Never Mind
[color=red]Click here to continue in the relay browser.[/color]
Let's give some space chowder, set that as my choice property, and automate again.

Code:
[color=green]> choice 1 tossid=10320 always[/color]

choiceAdventure1391 => 1&tossid=10320
You defeated 21 hippies with some space chowder
Validating adventure sequence...

Request 1 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[358] The Exploaded Battlefield
Encounter: War Hippy Infantryman
...
2 hippies defeated; 64 down, 269 left.

Request 2 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[359] The Exploaded Battlefield
Encounter: War Hippy Baker
...
2 hippies defeated; 66 down, 267 left.

Request 3 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[360] The Exploaded Battlefield
Encounter: War Hippy Rigger
...
2 hippies defeated; 68 down, 265 left.

Request 4 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[361] The Exploaded Battlefield
Encounter: invader bullet
...

Request 5 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[362] The Exploaded Battlefield
Encounter: War Hippy Homeopath
...
2 hippies defeated; 70 down, 263 left.

Request 6 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[363] The Exploaded Battlefield
Encounter: War Hippy F.R.O.G.
...
2 hippies defeated; 72 down, 261 left.

Request 7 of 7 (Exploathing: The Exploaded Battlefield) in progress...

[364] The Exploaded Battlefield
Encounter: Rationing out Destruction
You defeated 21 hippies with some space chowder

Requests complete.
Revision 19540 has this.

Next up, I will make the extra fields work for non-select inputs - text fields, for example.
 

ckb

Minion
Staff member
Veracity,
Your work here is amazing and much appreciated. This is going to make a bunch of my scripts much nicer and more robust. Thank you!
 

Veracity

Developer
Staff member
Got text inputs to work:

Code:
Visiting the Spacegate Terminal
Using data override: relay/choice.1235.ash

[color=green]> choice[/color]

[b]choice 1[/b]: Open the gate using the dials
  select = [b]letter1[/b] (26 options)
...
  select = [b]letter2[/b] (26 options)
...
  select = [b]letter3[/b] (26 options)
...
  select = [b]letter4[/b] (26 options)
...
  select = [b]letter6[/b] (26 options)
...
  select = [b]letter7[/b] (26 options)
...
[b]choice 2[/b]: Open the gate to a specific planet
  text = [b]word[/b]
[b]choice 3[/b]: Open the gate to a random planet

[color=green]> choice 2 word=BRIANNA[/color]

[color=green]> vsg status[/color]

Visiting the Spacegate Terminal
Planet Name: Omicron Stipe II (difficulty = 1)
Coordinates: BRIANNA

The sky is a bright orange, with a dense covering of lilac-colored clouds.
The landscape is lit by a pale yellow sun.
A single medium-sized moon punctuates the expanse of sky.

Environmental Hazards:
  toxic atmosphere
Plant Life: anomalous (sgplantc3.gif)
Animal Life: none detected
Intelligent Life: none detected
ALERT: ANCIENT RUINS DETECTED (Space Pirates 3: Paradise under a Strange Sun)

You have used 0 turns in the Spacegate today and have 20 turns available to adventure there.
Other inputs that could be supported are radio buttons and checkboxes - but I know of no examples of either of those in a KoL choice adventure.
Easy enough to add support for them in ChoiceUtilities, should they appear.

I think this is done now.

Revision 19541
 

Veracity

Developer
Staff member
Note that I decided not to validate the extra stuff for run_choice(). I validate for automation using the choiceAdventureXXXX property and for the choice command, but if your ASH script gives invalid input, it's not coded correctly. :)

I suppose I could add more ASH functions to support this. We have available_choice_options() which returns a map from int => string of available decisions and the text from the game. There could be something like available_choice_select_inputs(int decision) which returns a map from string => string and available_choice_text_inputs( int decision ) which returns a map from string to boolean, or something. Seems pretty specialized. Your script which handles the exploaded battlefield should know which foods and boozes you have.
 
Last edited:

Veracity

Developer
Staff member
I can't stop. I decided to add the ASH functions, since possible select inputs are variable at runtime - and it might be amusing to, for example, look at the food/drink options and calculate which is the best currently available.

string[string][string] available_choice_select_inputs( int decision );

For the specified decision, returns a map from NAME to a map from VALUE to DESCRIPTION.

string[string] available_choice_text_inputs( int decision );

For the specified decision, return a map from NAME to DESCRIPTION. Not that we parse the description, currently; it's not embedded in the input, but is freeform text in the HTML that labels the text box.

Given this little ASH script:

Code:
foreach decision, description in available_choice_options() {
    print( "Choice " + decision + ": " + description );
    string[string][string] selects = available_choice_select_inputs( decision );
    foreach name in selects {
	string[string] mapping = selects[name];
	print( "  select = " + name + " (" + count(mapping) + " options)" );
	foreach value, desc in mapping {
	    print( "    " + value + " => " + desc );
	}
    }
    string[string] texts = available_choice_text_inputs( decision );
    foreach text, desc in texts {
	print( "  text = " + text );
    }
}
Here is the Exploaded Battlefield choice:

Code:
[color=green]> test load selects.txt[/color]

Read 2,659 bytes into a 2,659 character string

[color=green]> test visit-choice[/color]

choice = 1391
choice 1: Toss!
  select = tossid (24 options)
    0 => --- select an item ---
    10179 => plain snowcone (12) (5 casualties)
    161 => ghuol egg (2) (5 casualties)
    1769 => fricasseed brains (5 casualties)
    1776 => stale baguette (5 casualties)
    1778 => ancient frozen dinner (6 casualties)
    1952 => desiccated apricot (5 casualties)
    1954 => dehydrated caviar (5 casualties)
    2063 => blackberry (2) (5 casualties)
    2843 => dire fudgesicle (2) (5 casualties)
    330 => glass of goat's milk (5 casualties)
    3555 => sea carrot (5 casualties)
    471 => hot wing (6) (5 casualties)
    6416 => mana curds (10 casualties)
    6422 => vampire chowder (10 casualties)
    669 => ghuol guolash (18 casualties)
    6705 => jungle floor wax (6 casualties)
    672 => cranberries (3) (5 casualties)
    7368 => extra-flat panini (2) (8 casualties)
    7375 => actual tapas (5 casualties)
    8412 => succulent marrow (3) (6 casualties)
    8413 => salacious crumbs (5) (6 casualties)
    8526 => pink slime (2) (5 casualties)
    9953 => PB&J with the crusts cut off (4) (5 casualties)
choice 2: Never Mind

[color=green]> choice-inputs.ash[/color]

Choice 1: Toss!
  select = tossid (24 options)
    0 => --- select an item ---
    10179 => plain snowcone (12) (5 casualties)
    161 => ghuol egg (2) (5 casualties)
    1769 => fricasseed brains (5 casualties)
    1776 => stale baguette (5 casualties)
    1778 => ancient frozen dinner (6 casualties)
    1952 => desiccated apricot (5 casualties)
    1954 => dehydrated caviar (5 casualties)
    2063 => blackberry (2) (5 casualties)
    2843 => dire fudgesicle (2) (5 casualties)
    330 => glass of goat's milk (5 casualties)
    3555 => sea carrot (5 casualties)
    471 => hot wing (6) (5 casualties)
    6416 => mana curds (10 casualties)
    6422 => vampire chowder (10 casualties)
    669 => ghuol guolash (18 casualties)
    6705 => jungle floor wax (6 casualties)
    672 => cranberries (3) (5 casualties)
    7368 => extra-flat panini (2) (8 casualties)
    7375 => actual tapas (5 casualties)
    8412 => succulent marrow (3) (6 casualties)
    8413 => salacious crumbs (5) (6 casualties)
    8526 => pink slime (2) (5 casualties)
    9953 => PB&J with the crusts cut off (4) (5 casualties)
Choice 2: Never Mind
And here is the Spacegate choice:

Code:
[color=green]> test load selects2.txt[/color]

Read 7,349 bytes into a 7,349 character string

[color=green]> test visit-choice[/color]

choice = 1235
choice 1: Open the gate using the dials
  select = letter1 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter2 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter3 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter4 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter5 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter6 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter7 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
choice 2: Open the gate to a specific planet
  text = word
choice 3: Open the gate to a random planet

[color=green]> choice-inputs.ash[/color]

Choice 1: Open the gate using the dials
  select = letter1 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter2 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter3 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter4 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter5 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter6 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
  select = letter7 (26 options)
    A => A
    B => B
    C => C
    D => D
    E => E
    F => F
    G => G
    H => H
    I => I
    J => J
    K => K
    L => L
    M => M
    N => N
    O => O
    P => P
    Q => Q
    R => R
    S => S
    T => T
    U => U
    V => V
    W => W
    X => X
    Y => Y
    Z => Z
Choice 2: Open the gate to a specific planet
  text = word
Choice 3: Open the gate to a random planet
Revision 19543
 
Top