Running Mechanics

## Basic inputs

Characters will automatically start running to the next base when the ball is hit.

### Advancing Bases

When a character has reached a base, press Y to make them start running to the next base. This will make all runners go to the next base. To only give instructions to a single baserunner, point the joystick to the next base when pressing Y.

### Turning around

Either press X twice or do a long press to tell runners to turn around. This will not work on the better-runner going to 1st base. To only tell one runner to turn around, point to base behind them with the joystick when pressing X.

### Stopping

runners can be instructed to stop by a single quick press of the X or Y buttons (depending on which direction the runners are going).

### Faster running

Mash the A, B, X or Y buttons (care needs to be used when pressing X and Y since they control direction).

### Stealing

In the batting screen, pressing Y will instruct the runner to steal. The runner will start running once the pitcher starts their pitching motion. If there are multiple runners on base. tilting the control stick to the base ahead of a runner will send only that runner to steal.

To cancel a steel attempt, press the X button before the pitcher starts his pitching motion.

In the pitching screen, a pitcher can press B to become a fielder to try to pick-off runners trying to steal. If a runner has been instructed to steal already, then the runner will start advancing to the next base and can be thrown out.

#### Perfect Steals

If the steal input is timed to be within the first 15 frames of the pitcher's windup, a "Perfect Steal" is possible where the runner will start running earlier than normal, giving them a better chance to reach the next base. If a perfect steal is achieved, the "STEAL" UI will be in gold text instead of the normal purple.

The runner begins running on frames 15 and 40 of the pitcher's windup for perfect steals and standard steals, respectively.

## Calculating Speed

Disclaimer: the way the game calculates speed is very convoluted, so the complete function isn't available yet. However, the discussion below is useful for making relative comparisons (x is 20% faster than y)

### How speed stat translates to speed

Use the 10's digit of a characters speed stat, use the table below to find the base speed.

All characters in the game have zeros in the 1's digit, but if there were non-zeros, then the 1's digit is used to linearly interpolate towards the next number. Eg Speed 11 is 0.1352 which is 10% between 0.135 and 0.137.

Since the speed increases aren't uniform for all speed-stat values, this means that the speed difference between low-speed-stat characters is smaller than the speed difference between high-speed stat characters. Therefore, the 50-point bonus for superstarred characters increases the base speed more for already-fast characters compared to slow characters.

### Increase Running Speed by Mashing

A speed bonus is added to the speed of all runners for mashing the A, B, X, or Y buttons. The mashing speed value has a range of 0.0 to 1.0, where the highest value is equivalent to a 15% speed increase. Each button press adds 0.2 to the value, but won't add to acceleration after the 3rd dash input. Therefore, it takes a minimum of 5 frames to reach the maximum value. Acceleration is added to the character's speed two frames after the inputs.

Alternating buttons allows a button to be pressed on every frame. This is impossible to do with just one button since the game will think you are holding the button.

The mashing value accumulates even when runners are standing still, so a player can mash before sending a runner to the next base and the character will start running at maximum speed.

#### Dash speed attrition

If a button isn't mashed for 6 frames, the game will decrease the bonus value by 0.05 per frame. Therefore, a rate of 10 presses per second is the minimum number of presses to maintain top speed.

Going 14 frames without a dash input will slow the character back down to normal speed, and the deceleration can't be interrupted.

### Runner Stamina

Each runner has a starting stamina value of 4000 that is reset upon entering the batting view.

Stamina losses:

* 1 per frame when advancing to the next base
* 3 per frame during the turn around animation to go backwards
* 4 per frame during the turn around animation to go forwards

Note, stamina is NOT lost when retreating to the previous base.

Stamina is factored into the runner speed equation as follows:

```
Speed = NormalSpeed * ((Stamina/4000 * 0.3) + 0.7)

```

When a character runs out of stamina, they will run at 70% of their normal speed.

## Body Check Ability

Body Check is a character ability that allows the runner to knock over a fielder and make them lose the ball, making them safe.

They can only occur on a close tag play when the ball is arriving at the base just before the runner and the runner is sprinting (not necessarily a full mashing dash - a well timed single dash input can work). The chance of a body check occurring is based on the difference in weight between the runner and the fielder.

Players with Body Check Ability (shown in **Bold** above): Toad, Bowser, Bowser Jr., the Bros, Wario, Birdo, Petey

Shout-outs to PeacockSlayer and Roeming for the statistics.

## Tagging up

When a fly ball is caught, runners can only advance to the next base after tagging their previous base after the ball is caught.

When the ball is caught, the game will automatically send runners back to their previous base. This can't be overridden by pressing the Y button.

An interesting difference between the rules of Mario Baseball and real Baseball is that in Mario Baseball, runners can't start running until the ball is firmly caught after a bobble, while in real baseball, runners can start advancing immediately after the fielder touches the ball, regardless of if they bobble/juggle the ball before ultimately catching it.

## Lefties get to First Base Quicker

After hitting the ball, the runners start running to first from the position they were when they hit the ball, as opposed to always starting at a set point. Therefore, lefty batters get to first base quicker than righty batters, In one no-dashing test, Thanners found that Mario arrives 32 frames faster as a lefty.

## Standing off first base glitch when fly ball caught

A quirk on how the game handles advancing runners sometimes results in the batter-runner standing a few steps off of first base. Unless the player is familiar with this glitch, it's only noticed when the play is over but the game doesn't advance to the next pitch, so the fielding player starts throwing the ball around the bases in boredom until they throw to first and notice the player is off the bag. Due to its subtlety, it's hard to notice when this happens on the mini-map of the bases.

This occurs when there is a runner on first, a high fly-ball is hit, and the runners are sent back to their bases to tag up. The game won't allow the runner on first base to go all the way back to the bag (presumably because the batter runner needs to be able to occupy that base if the ball drops), so this runner is a few feet off of 1st base. If the ball drops, the player will press Y to advance the runner(s) since now there is a force out at second. Since the fly-ball took so long to land, the batter-runner has reached 1st base. So, the game thinks you are trying to instruct both the batter-runner and the runner originally on first to run to second, they will both start running to 2nd. However, since the two runners are close together, the game thinks they are colliding with each other, and will stop the better-runner to avoid over takes. Since the runner on 1st was a few feet beyond first, this means the better-runner will be automatically stopped also a few feet off of 1st base, and be eligible to be putout.

## To be discovered

* Perfect steal window
* Full running speed formula
* Body check exact triggers

1. ↑ 1.0 1.1 Roeming's dash and stamina discoveries https://discord.com/channels/628353660698624020/841677353108242444/961805129558917120
2. ↑ 2.0 2.1 MORI's Dash Testing https://discord.com/channels/628353660698624020/628354009865912350/955889968667033701
3. ↑ Body Check Chance of Success https://discord.com/channels/628353660698624020/841677353108242444/954157708519542854
4. ↑ Lefty getting to first faster than righty confirmation. https://discord.com/channels/628353660698624020/628354009865912350/829035474785665078