In my recent series of posts on missile weapons, I’ve been promising an analysis of the effect of the archer being at a different elevation to the target. This was a bold statement as my initial investigations had yielded nothing and I was hoping for inspiration to strike. Fortunately it has, and I'm very surprised at the result.
Note that as the Referee I'd do these range calculations, and just tell the players if they’re in range or not and what the relevant bonuses are!
Imagine you have max range R and are shooting at a target horiz distance X away, height H below you.
For example: throwing an Axe with max range 80' from a 20' high wall at something 75' away.
Here's a diagram to accompany the example:
In our example it is 75'+10'=85' direct distance, so -9 to hit.
Secondly we check that it is within range: direct distance must be less than Range + Height.
In our example range + height is 80'+20'=100' which is bigger than 85' so it is within range.
Lastly you calculate the damage bonus/penalty: Take Range + 2*Height and see how many categories that shifts the range, you get +1/-1 for each shift.
In our example Range + 2*height = 100'+20'=120' and this is +1 range category so +1 damage.
Apart from the approximation for the direct distance, this is a 100% correct model (ignoring wind resistance) - no simplification needed. These are the actual equations when targeting a missile at something with a different elevation!
As a second example, consider throwing an Axe with max range 80' up at the top of a 20' high wall, 75' away. The direct distance is 75'+10'=85' as before. However 80'-20'=60' so it's out of range.
I've added one extra "limiting rule" (to mimic terminal velocity) –
You can add at most 960' to the height when calculating the damage.
This is unlikely to ever be needed!
As a third example, consider throwing a javelin with 240' max range off a 2000' cliff at a target 400’ away. It is clearly within range. Damage is capped at 960'+240' = 1200' which is +4. The direct distance is 2000'+200' = 2200', which means you'd be severely unlikely to hit anything, as the to hit penalty is now -36!
Example #4: Throwing the Axe (max range 80') from the top of a 100' high cliff at a target 100' away. Direct distance = 150' which is -12 to hit. This must be less than 80'+100'=180', so it's in range. Damage is @80'+100'+100'=280' which is +3.
Finally we have two observations – with these rules both of the following happen to be true:
The max rise is half the range.
The horiz distance is capped at twice the range.
This second one is a happy accident, which I discuss at the bottom of the post.
Example #5: Throwing the Axe (max range 80') from the top of a 200' high cliff at something 160' away. Direct distance is 200'+80' = 280' which is -18 to hit. This actually the max, which is 80'+200'=280'. Damage is @80'+200'+200'=480' which is +4.
Attacks by Flying creatures
For simplicity we’ll assume diving attacks are always at 45 degrees. This means the diving speed of a bird should (for simplicity) be given in stat blocks as the speed direct / speed horizontal & vertical (which is two-thirds).
For example, a Roc dives at speed 440'/rnd, which is 2/3*440' = 293'/rnd both vertically and horizontally. Hence we'd specify Roc Dive:440'(290').
When attacked you’d shoot at point blank range, and then one round before that, and one round after that, so distances are always a simple multiple of the movement speed.
Continuing our example, we have a bow (range 960') to protect us from the Roc. Is it in range at 440'? The max is 960'-290'=670', so it is in range (just). To hit penalty is -24. Damage is @670'-290'=380', so -2. In actual play the Roc swooped in, all shots at range missed, the next round (at point blank range) it successfully grabbed Elanor but got badly wounded, the subsequent round it got shot out of the sky due to the bonus to hit from it being wounded – Elanor was extremely grateful for having earlier polymorphed to grow a pair of wings!
So how did I arrive at these rules? This involves a bit of maths – sorry – but it’s purely by way of explanation; it’s completely irrelevant when playing the game and certainly will not appear in the rulebook!
My initial thoughts were that if:
1) shooting a distance R requires an initial KE of mg x 0.5R
2) shooting up height H requires kinetic energy of mg x H
Then shooting at range R and height H would impact with the KE of (1) minus (2), i.e. mg x (0.5R-H), i.e. the same KE as shooting a distance of R-2H. Hence we arrive at the damage reduction rule.
I had hoped that the max horizontal range would be X-2H, but results from my simulation program showed the max range was a straight line close to X-H, but above a 30 degree angle or with big drops the line curved away and it was difficult to have a simplification without wacky edge cases. By complete accident I added in an extra row to my results showing the direct distance, and found it was an exact straight line which seemed rather too good to be coincidence. Going back to this standard formula, I calculated the max direct distance for a given height and range...
and was astonished that everything cancels! Gosh, I haven’t written out an equation using Latex since I finished my thesis in 1997…
An Accidental Range Limit
One consequence of using an approximation for the direct distance isn't clear at first: the horiz range maxes out at double. With a correct calculation for direct distance you would have the rate of increase slowing down but never stopping, there would be no such maximum, but in reality you’d also have wind resistance, so we want a cut-off, so it is a happy accident.
For example with 100' range, 200' drop, we have max horiz range as 200', but it should be 224’, which is still very close. But if we increase the drop to 400’ our equation still gives 200' when it should have increased to 300'.