# tooncher
automates toontown rewritten's login process

## Installation

    $ pip3 install --user --upgrade tooncher

or:

    $ pip3 install --user --upgrade git+https://github.com/fphammerle/tooncher@master

Optional: Install cpulimit to enable use of parameter `--cpu-limit`

    $ sudo apt-get install cpulimit

Optional: Install xlib and psutil for python to enable extended controls:

```{sh}
$ sudo apt-get install python3-xlib python3-psutil
```

or

```{sh}
$ pip3 install --user xlib psutil
```

## Configuration

```yaml
# default path: $HOME/.tooncher
accounts:
- username: toon
  password: secret
- username: ceo
  password: golf
- username: cfo
  password: train
engine_path: '/opt/Toontown Rewritten/TTREngine'
```

## Usage

```
$ tooncher [username]
```

`tooncher --help` shows all available options.

### Extended Controls

To enable the use of WASD keys for walking,
launch tooncher with the `--extended-controls` option:

```{sh}
$ tooncher --extended-controls username
```

While in the game press `` ` `` (grave) to enable extended controls.
Press `` ` `` again to disable.

The command line parameter `--extended-controls-toggle` may be used
to change the toggling key:

```{sh}
$ tooncher --extended-controls --extended-controls-toggle slash username
```

Extended controls require the X Window System (X11).

### Examples

```
$ tooncher toon
$ tooncher --extended-controls ceo
$ tooncher --cpu-limit 70 cfo
```

## Extended Controls Default Mappings

![default mapping](docs/extended-controls/default-mapping.svg)

(based on <https://en.wikipedia.org/wiki/File:Qwerty.svg>)

### Movement

| Key   | Action                          | Target Engine |
| ----- | ------------------------------- | ------------- |
| `     | turn Extended Controls on / off |               |
| w     | walk forward                    | 0             |
| s     | walk backward                   | 0             |
| a     | turn left                       | 0             |
| d     | turn right                      | 0             |
| v     | throw pie                       | 0             |
| i     | walk forward                    | 1             |
| k     | walk backward                   | 1             |
| j     | turn left                       | 1             |
| l     | turn right                      | 1             |
| /     | jump                            | 1             |
| n     | throw pie                       | 1             |
| space | jump                            | all           |

### Gag Selection

| Key   | Action                          | Target Engine |
| ----- | ------------------------------- | ------------- |
| e     | select elephant trunk in battle | 0             |
| o     | select elephant trunk in battle | 1             |
| f     | select fog in battle            | 0             |
| ;     | select fog in battle            | 1             |