Thursday, April 16, 2020

Why did the partial cover rules change in Battletech?

First, let me say that I don't know what went into the actual decision to change the rule. That said, the short answer is that the old partial cover rule had terrible probability properties. Namely, that in some cases, you were better off not having partial cover, because with it you were much more likely to get hit in the head. Couple that with a Gauss rifle that does 15 damage even from across the map, and it can lead to obvious problems and frustrated players. Even setting aside the Gauss rifle, head hits by themselves are pretty terrible for your pilot.

Let's outline the two versions of partial cover. In the first version of the rule, partial cover granted a $+3$ to hit modifier, but the attacker used the Punch Location Table to determine where a hit landed. In the second version of the rule, partial cover grants a $+1$ to hit modifier, the standard Hit Location Table is used, but if a leg is rolled then the attack misses.

To evaluate the two versions of the rules, let's compute the probability of hitting different locations both with and without partial cover, for each version of the rule. What makes this a little complicated is that the to hit modifier affects each roll differently depending on what the target number would be without partial cover. I describe the effect of the to hit modifier on the probability of a hit as nonlinear. We already computed the probability of getting each result on 2d6 in the table below. However, in this case, we're interested in the probability of rolling a given number or higher.
\begin{align}
P(X \geq x) = \sum_{k=x}^\infty f_X(k)
\end{align}
Here $f_X(\cdot)$ denotes the probability mass function (PMF) of the random variable $X$, which is the result of our 2d6 roll.
\begin{align}
f_X(x) = P(X = x)
\end{align}
Note that the probability of interest is related to the cumulative distribution function (CDF), $F_X(x)$, as
\begin{align}
F_X(x) &= P(X \leq x) \\
&= 1 - P(X > x) \\
&= 1 - P(X \geq (x-1)).
\end{align}
Recall the equation for the PMF of 2d6:
\begin{align}
P(x) &= \frac{x-1}{36}, & x \leq 7 \\
P(x) &= \frac{13 - x}{36}, & 7 \leq x.
\end{align}
We could just tabulate $P(X \geq x)$, but it's nice to derive some results too. Since the CDF $F_X(x)$ is the more "standard'' function to use, we'll work with that, and then translate to the probability we're interested in (basically the inverse).
\begin{align}
F_X(x) &= \sum_{k=-\infty}^x f_X(k)
\end{align}
Here we know that $f_X(x) = 0$ for $x < 2$, so we can reduce the range of the summation.
\begin{align}
F_X(x) &= \sum_{k=2}^x f_X(k)
\end{align}
Let's stick with $x \leq 7$ for now. In that case, we have
\begin{align}
F_X(x) &= \sum_{k=2}^x \frac{k-1}{36} \quad & x \leq 7 \\
&= \sum_{k=3}^{x+1} \frac{k}{36} \quad & x \leq 7 \\
&= \frac{1}{36} \sum_{k=3}^{x+1} k \quad & x \leq 7 \\
\end{align}
A well known result of summing integers is that
\begin{align}
\sum_{k=1}^n k = \frac{n(n+1)}{2}.
\end{align}
Now, we aren't starting our sum at 1, but it's easy to subtract out the sum from 1 to 2. It's 3. You can get that from either
\begin{align}
1 + 2 &= 3\\
\frac{2(2+1)}{2} & = 3.
\end{align}
So going back to the CDF,
\begin{align}
F_X(x) &= \frac{1}{36} \cdot \left (\frac{(x+1)(x+2)}{2} - 3 \right ) \, & x \leq 7 \\
&= \frac{1}{36} \cdot \left (\frac{x^2+3x+2)}{2} - \frac{3\cdot 2}{2} \right ) \, & x \leq 7 \\
&= \frac{1}{36} \cdot \left (\frac{x^2+3x-4)}{2} \right ) \, & x \leq 7 \\
&= \frac{x^2+3x-4}{72} \, & x \leq 7 \\
\end{align}
This time we're going to be smart with symmetry and save ourselves some work. We know
\begin{align}
f_X(x) = f_X(14-x).
\end{align}
Using the above we can compute the CDF as shown in the first figure below, where we see the expected quadratic shape.

Function, or CDF, as shown in this figure.

Cumulative distribution function (CDF) of 2d6.

Then, using the CDF and the following relation,
\begin{align}
P(X \geq x) = 1 - F_X(x+1),
\end{align}
we can compute the approximate probabilities shown in following table.

\begin{array}{c|c|c|c|c|c}
\text{To-hit}  &\text{Probability} &\text{With }+3 &\text{With }+1 & \text{Change with }+3 &\text{Change with }+1 \\ \hline
2 & 1 & 0.833 & 0.972 & -0.167 & -0.028 \\
3 & 0.972 & 0.722 & 0.917 & -0.250  & -0.056 \\
4 & 0.917 & 0.583 & 0.833 & -0.333  & -0.083 \\
5 & 0.833 & 0.417 & 0.722 & -0.417 & -0.111 \\
6 & 0.722 & 0.278 & 0.583 & -0.444 & -0.139 \\
7 & 0.583 & 0.167 & 0.417 & -0.417 & -0.167 \\
8 & 0.417 & 0.0833 & 0.278 & -0.333 & -0.139 \\
9 & 0.278 & 0.0278 & 0.167 & -0.250 & -0.111 \\
10 & 0.167 & 0 & 0.0833 & -0.167 & -0.083 \\
11 & 0.0833 & 0 & 0.0278 & -0.083 & -0.056 \\
12 & 0.0278 & 0 & 0 & -0.028 & -0.028 \\
\end{array}
Also included are the impacts of the two different to hit modifiers. Unfortunately, this is a bit hard to parse in a table. Let's plot them so it's easier to see.

Battletech

Battletech delta

What about the probability of hitting certain locations. Instead of looking at every location, let's just focus on two: center torso and head. Without partial cover, or with the second version of partial cover, the probability of getting center torso is (using Hit Location Table),
\begin{align}
P(\text{center torso}| \text{Hit Location}) &= P(\text{2 on 2d6}) + P(\text{7 on 2d6}) \\
&= \frac{1}{36} + \frac{6}{36} \\
&=\frac{7}{36} \\
&\approx 0.194.
\end{align}
For this analysis I'll assume that we're firing into the front arc.
Meanwhile, the probability of getting center torso with the first version of partial cover (using Punch Location Table),
\begin{align}
P(\text{center torso} | \text{Punch Location}) &= P(\text{3 on 1d6}) \\
&=\frac{1}{6} \\
&\approx 0.167.
\end{align}
The same probabilities for getting head are as follows.
\begin{align}
P(\text{head}| \text{Hit Location}) &= P(\text{12 on 2d6}) \\
&= \frac{1}{36} \\
&\approx 0.0278
\end{align}
\begin{align}
P(\text{head} | \text{Punch Location}) &= P(\text{6 on 1d6}) \\
&=\frac{1}{6} \\
&\approx 0.167
\end{align}
To compute the total probability of hitting a given location we use the following equations.
\begin{align}
P(\text{hit center torso}) &= P(\text{hit}) \cdot P(\text{hit center torso} | \text{hit}) \\
P(\text{hit head}) &= P(\text{hit}) \cdot P(\text{hit head} | \text{hit})
\end{align}
We have all these calculated (where conditioning on "hit" is the generalization of "Hit Location" and "Punch Location", which depend on which partial cover rule is used), and I've plotted the results for all base to-hit numbers in the following figures.

Battletech center torso

Battletech head

As you can see, for initial target numbers of 8 or lower, the probability of a head hit is higher with partial cover than without for the first version of the rule. This increase is quite drastic for low to-hit numbers. For an initial to-hit number of 4, the probability of a head hit is about four times higher with the original partial cover rules!

However, looking at the center torso hit location, it's tempting to think that the new partial cover rules, while they make head hit probabilities make sense, also don't protect the target mech as much. However, that plot doesn't take into account the fact that we ignore hits to the legs. A fair total comparison, would be to look back at our to-hit modifier effect, and then scale the $+1$ to hit column by by the probability that we hit a valid location. This probability is
\begin{align}
1 - P(\text{leg hit}) &= 1-P(\text{5 on 2d6})-P(\text{9 on 2d6}) \\
&= 1 - \frac{4}{36} - \frac{4}{36} \\
&= \frac{28}{36} \\
&= \frac{7}{9} \\
& \approx 0.778.
\end{align}
Including this factor gives us the probability of actually doing damage, which is compared in the figure below. So actually, the new partial cover is mostly less protection, although not at very low to-hit numbers, but the probability of getting a hit in the head does not increase with partial cover.

Probability of doing damage in Battletech with partial cover



No comments:

Post a Comment