#OW TAS Example

# Sintax:
# 1- You can use the symbol '#' to make the reader ignore the line
# but the symbol MUST be the first character in the line for it to ignore

# 2- A command works is structured like this:
# (BEGINNING TIME) - (END TIME) (COMMAND KEYWORD) (VALUES OR VALUE KEYWORD)
# (BEGINNING TIME) -> The time the programm will start the change in the input
# (END TIME) -> The time the programm will stop the change in the input
# (COMMAND KEYWORD) -> A Keyword that represent a button/axis in the game, they follow the table 1.1
# (VALUES OR VALUE KEYWORD) - > Two values that need to be separated or a Keyword that represent a Vector2 value from unity, they follow the table 1.2

# 3- Special commands
#There are some commands that can change other stuff, they don't care about capitalisation:
# Seed (integer number) -> sets the seed that the tas will use when it loads

# Examples:

#0,0 - 0,1 up 1,0 0,0
# From 0.0s to 0.1s it will make the input up (UP) have it value changed to (1.0, 0.0)

#0,0 - 0,25 down foward
# From 0.0s to 0.25s it will make the input down (DOWN) have it value changed to foward (0.0, 1.0)

#Tables:

#Table 1.1 - Table of Command Keywords
#--------------------------------------------------------------------------------------------
#|   Keyword       |   Enum Value     |                   Meaning In Game                   |
#|  move           |   MOVE_XZ        | Moves the character when in the ground              |
#|  right          |   RIGHT          | Turns the character to the right                    |
#|  left           |   LEFT           | Turns the character to the left                     |
#|  up             |   UP             | Makes the character look up (in theory)             |
#|  down           |   DOWN           | Makes the character look down (in theory)           |
#|  jump           |   JUMP           | Makes the character charge their jump               |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| rollMode        |  ROLL_MODE       | Changes pitch to roll                               |
#| pitch           |  LOOK_X          | Pitches the character or ship                       |
#| yaw             |  LOOK_Y          | Yaws the character or ship                          |
#| autopilot       |  AUTOPILOT       | Turns the Autopilot on                              |
#| freelook        | FREELOOK         | Makes the character be able to freelook when in ship|
#| landingCamera   | LANDING_CAMERA   | Changes to the landing camera when in ship          |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| matchVeloc      | MATCH_VELOCITY   | Makes the character matches their velocity          |
#| lockon          | LOCKON           | Makes the character look into a OWRigidbody         |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| boost           | BOOST            | Turns the boost in the jetpack on                   |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| cancel          | CANCEL           | Presses the cancel button                           |
#| confirm         | CONFIRM          | Presses the confirm button                          |
#| enter           | ENTER            | Presses the enter button                            |
#| esc             | ESCAPE           | Presses the escape button                           |
#| interact        | INTERACT         | Presses the interact button                         |
#| interactSecond  |INTERACT_SECONDARY| Presses the secondary interact button               |
#| select          | SELECT           |                                                     |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| stick           | THRUST_UP        | Extends the stick                                   |
#| flashlight      | FLASHLIGHT       | Turns the flashlight on/off                         |
#| sleep           | SLEEP            | Sleeps if aiming(?) at a campfire                   |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| map             | MAP              | Turns the map on/off                                |
#| mapMouse0       | MAP_MOUSE0       |                                                     |
#| mapMouse1       | MAP_MOUSE1       |                                                     |
#| mapZoom         | MAP_ZOOM         |                                                     |
#| mapZoomIn       | MAP_ZOOM_IN      |                                                     |
#| mapZoomOut      | MAP_ZOOM_OUT     |                                                     |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| markEntry       | MARK_ENTRY_ON_HUD| Marks an entry in the ship's computer               |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| pause           | PAUSE            | Opens the ingame menu                               |
#| menuConfirm     | MENU_CONFIRM     | Confirms a selection in the menu                    |
#| menuLeft        | MENU_LEFT        |                                                     |
#| menuRight       | MENU_RIGHT       |                                                     |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| scrollText      | SCROLLING_TEXT   | Scrolls text                                        |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| thrustX         | MOVE_X           | Thrusts in the X axis                               |
#| thrustZ         | MOVE_Z           | Thrusts in the Z axis                               |
#| thrustDown      | THRUST_DOWN      | Thrusts down                                        |
#| thrustUp        | THRUST_UP        | Thrusts up                                          |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| probeLaunch     | TOOL_PRIMARY     | Equips the probe launcher                           |
#| probeRetrieve   | PROBERETRIEVE    | Retrieves sent probes  and unequips the launcher    |
#| takeScreenshot  | TAKE_SCREENSHOT  |                                                     |
#| take2xScreenshot| TAKE_2XSCREENSHOT|                                                     |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| signalscope     | SIGNALSCOPE      | Equips/Unequips the signalscope                     |
#| //////////////////////////////////////////////////////////////////////////////////////// |
#| toolUp          | TOOL_UP          | Tool Up Action                                      |
#| toolDown        | TOOL_DOWN        | Tool Down Action                                    |
#| toolRight       | TOOL_RIGHT       | Tool Right Action                                   |
#| toolLeft        | TOOL_LEFT        | Tool Left Action                                    |
#| toolPrim        | TOOL_PRIMARY     | Tool Primary Action                                 |
#| toolSecond      | TOOL_SECONDARY   | Tool Secondary Action                               |
#| toolX           | TOOL_X           | Tool X Action                                       |
#| toolY           | TOOL_Y           | Tool Y Action                                       |
#--------------------------------------------------------------------------------------------

# Table 1.2 - Table of Value Keywords 
#-------------------------------------------------------
#|   Keyword       |   Vector2 Value  | Value in (x,y) |
#|   foward        |        up        |    (0  ,  1)   |
#|   backwards     |        down      |    (0  , -1)   |
#|   up            |        up        |    (0  ,  1)   |
#|   down          |        down      |    (0  , -1)   |
#|   left          |        left      |    (-1 ,  0)   |
#|   right         |        right     |    (1  ,  0)   |
#-------------------------------------------------------


#Working example, made to work inside the main menu:

#Sets Seed to 100
Seed 100

#Makes the menu selection go up 4 times, and then back 4 times,
#hopefully then landing on the same option it was selecting before the tas was run

0,0 - 0,1 up 1,0 0,0

0,2 - 0,3 up 1,0 0,0

0,5 - 0,6 up 1,0 0,0

0,7 - 0,8 up 1,0 0,0

1,0 - 1,1 down 1,0 0,0

1,2 - 1,3 down 1,0 0,0

1,5 - 1,6 down 1,0 0,0

1,7 - 1,8 down 1,0 0,0