Pages

Thursday, October 21, 2021

Dueling Calculator: Average Expected Wounds

Good morning gamers,

A while back we did two posts on how to build a spreadsheet that calculated your probability of winning fights. Both posts focused solely on the dueling roll and how to compute your likelihood of winning a duel based on the number of dice being rolled, the Fight Values of each side, and common modifiers (dueling penalties, use of Might to boost your highest roll, etc.).

For the most part, that tool works well - if only one model is participating on each side of the fight. Once you get more than one friendly model in the fight, you get some really complicated interactions - here are a few of them:

  • What happens if some models are using two-handed weapons (-1 to their dueling rolls) and some are using one-handed weapons (no penalty to their dueling roll)?
  • What happens if some models have Might that they can use to boost their roll and others don't have Might?
  • What about models (like Balin, Lord of Moria) who might be able to reroll both of their dice (but not other dice)?

None of these critiques are in any way saying that the calculator that we built is bad - it's actually quite good (and I think quite elegant for what it was trying to do - but I'm biased). But the calculator isn't robust enough to handle complicated actions - and ALL wounding roll calculations are complicated. So, before we can think about handling the wounding problem, we need to make a few changes to the dueling calculator - changes that will help us answer questions about wounding more easily. We're still going to keep our calculator limited to one model on each side - we'll tackle multiple friendly models some other time.

Wounding Rolls: What Question Are We Trying To Answer?

When it comes to determining who wins a fight, the only question we're really trying to answer is this:

How likely am I to win the roll?

There may be knobs that need to be turned and tweaked (Is Feinting a good idea? Is Striking a good idea? Should I shield? Should I two-hand?) but by an large, these are all pursuing the same question - what am I gaining or giving up in order to win the dueling roll (and do the penalties I'm suffering or the advantages I'm gaining really matter).

When it comes to wounding, there are actually two questions we might be trying to answer:

How many wounds should I reasonably expect to get?
How likely am I to deal X wounds?

These are, in fact, two VERY different questions and which one you're trying to answer determines what we need to compute. The first question is much simpler, so we're going to answer that one today.

Wounding Rolls: Computing Average Expected Wounds

We use the metric of "average expected wounds" (or the number of wounds we can reasonably expect to get) a lot in MESBG - here are a few situations where knowing it comes in handy:

  • If you're thinking about calling a Heroic Combat and you want to see how many wounds you are expected to deal to the model (or models) you're fighting (though this is only the rough order of magnitude consideration for Heroic Combats - the more precise answer will be covered next week);
  • When you're trying to determine how useful calling a Heroic Strike or Heroic Defense is (calling a Strike when you're not that likely to wound vs. calling a Defense and "just staying alive");
  • When you're trying to determine how useful calling a Heroic Strength is when you can also Piercing Strike (and I know, a lot of people don't believe in Heroic Strength, but I do in some situations - particularly for models with access to Piercing Strike); and
  • When we have a lot of variables in play thanks to the models you have in the fight (a mixture of cavalry and infantry, perhaps with mixed Strength values and bonuses to wound).

It's important to note that when we're working this out, we're going to assume that the models we need to wound all have the same wounding difficulty level - we COULD try to handle wounding both D5 and D6 models with S3 or S4 models, but that's a level of complexity that our simple metric for today isn't going to handle well. Have no fear though - we'll get to it in the future (it's a real thinker).

Before we can dive into the actual math, we need to talk for a little bit about how the probability of wounding is determined in this game - it's not as intuitive as you think from a computational standpoint.

Wounding Rolls: Understanding Your Probability of Wounding

In MESBG, your probability of wounding something is usually determined by both the Strength of your model(s) AND the Defense of the opposing model(s). Based on the interplay of Strength and Defense, we have a few different wounding probabilities:

  • 6/6+ = 1/6 x 1/6 = 1/36 = 0.0278
  • 6/5+ = 1/6 x 1/3 = 1/18 = 0.05
  • 6/4+ = 1/6 x 1/2 = 1/12 = 0.1250
  • 6+                         = 1/6   = 0.1667
  • 5+                         = 1/3   = 0.3333
  • 4+                         = 1/2   = 0.5000
  • 3+                         = 2/3   = 0.6667
  • 2+                         = 5/6   = 0.8333
  • 1+                                     = 1.0000 (NOTE: this is really rare but DOES happen in the game)

Surely this makes computing your probabilities of wounding simple - just look up the Strength value, look up the Defense value, then look up the difficulty, then out comes your answer. Simple, right?

Well, sort of. In the simplest cases, this will be sufficient for determining our wounding probability, but there are a few other factors that we need to use to adjust. First and foremost, we have models that can ignore the normal interplay of Strength and Defense (such as Aragorn with Anduril, Azog's I Am The Master rule, anyone with Blades of the Dead, or models with the Rend Brutal Power Attack). When these are in play, we would need to do some pretty fancy manipulation of our "Strength" and "Defense" values - which sounds like something we should avoid.

We also have to deal with rerolls, which are far more complicated in the wounding roll than they are in the dueling roll (since a model with 2+ Attacks can reroll the lowest dueling die without any risk of it affecting his highest roll, thereby basically just adding an extra die to his total). Here, we need to handle not only rerolls of dice from rules like Bane of Kings, Venom, or Lord of the West ("one full reroll" or "reroll any number of dice"), but we also need to account for rules like Ancient Enemies or the Feint/Stab special strikes, which allow you to reroll 1s (but not anything other than 1s).

Finally, while the listed wounding rolls are correct, there are some uncommon difficulty values you can get with To Wound bonuses (such as 5+/3+) that need to be added to the list. Thankfully, this is a short list of additional values (I have gone out to +3 To Wound because I've found models that can do it, but I have not gone with +4 To Wound - if anyone knows of a way to do it, drop it in the comments below - since it would only add one value to the list, so I don't feel bad excluding it):

    • 5/5+ = 1/3 x 1/3 = 1/9 = 0.1111     (6/6+ with +1 To Wound)
    • 4/4+ = 1/2 x 1/2 = 1/4 = 0.2500     (6/6+ with +2 To Wound)
    • 3/3+ = 2/3 x 2/3 = 4/9 = 0.4444     (6/6+ with +3 To Wound)
    • 5/4+ = 1/3 x 1/2 = 1/6 = 0.1667     (6/5+ with +1 To Wound)
    • 4/3+ = 1/2 x 2/3 = 1/3 = 0.3333     (6/5+ with +2 To Wound)
    • 3/2+ = 2/3 x 5/6 = 10/18 = 0.5556 (6/5+ with +3 To Wound)
    • 5/3+ = 1/3 x 2/3 = 2/9 = 0.2222     (6/4+ with +1 To Wound)
    • 4/2+ = 1/2 x 5/6 = 5/12 = 0.4167   (6/4+ with +2 To Wound)
    • 3/1+ = 2/3 x 1 = 2/3 = 0.6667        (6/4+ with +3 To Wound) - this is just a 3+, so it's not unique!

    Once you have these figured out, you're good to go. Let's get this builder put together!

    Wounding Rolls: Foundation Data

    So first off, we need to get our 17 distinct wounding conditions into a table - 17 entries with two wounding difficulties to look up (single die rolls will have a 1+ as their second value):

    We then need to specify in our input section what our final wounding value is - we're not just going to look up Strength and Defense values. This requires us to have the following options:

    • Number of Attacks that can be used for wounding;
    • Picking a Wounding Difficulty;
    • Identifying if the enemy is trapped;
    • How many full rerolls we have; and
    • How many rerolls of 1s we have.

    Our GUI looks like this (new fields in red) - to illustrate the setup, we once again have Elrond fighting against a Cave Drake:

    Notice that we didn't set a single "Attacks" value in this calculator - instead, we opted to have a "number of dice used for dueling" and a "number of Attacks used for wounding." We could have added a field for the number of rerolls we have for dueling rolls and use a single Attacks value that would be used for both dueling and wounding, but I've opted not to do because this methodology makes accounting for models that can't wound much easier than adding yet another toggle to set. Models that defend by shielding will just double their dice rolled for dueling and set their Wounding dice to 0. Easy.

    We can then lookup the wounding difficulties easily by using the wounding difficulty provided and looking up the value in the table. With our wounding values set, we turn to rerolls. 

    Rerolls are, in fact, quite complicated to compute for wounding when two rolls are involved, but they're pretty easily computed with a single value. Because we only reroll a die when we fail, we can take the probability that we fail the first roll (1 - <probability_of_success>) and multiply that by the probability of success we were looking for on the second roll. If we wound our opponent on a 5+, we would then multiply the 2/3 of the time that we fail to wound on the first roll (1-4 rolled) by the 1/3 of the time we succeed on the second roll (5-6). This, added to our original probability of success, gives us our rerolled probability of success. Mathematically, it looks like this:

    P(Wound_with_reroll)=(<Pwound> + ((1 - <Pwound>) x <Pwound>)

    We can make a lookup table that looks like this to reflect it:

    Since we know what the wounding probability is for rerolling a die, we know that if we need two rolls (6/4+, for example) we just multiply both of the above probabilities together (since we get to reroll both rolls). If we need a 6/4+, that would be 0.306 x 0.750. Easy, right?

    Now this, of course, is for full, unqualified rerolls ("reroll all failed To Wound rolls" instead of "rerolling 1s To Wound"). To compute rerolling just 1s, we don't want to use our probability of failure - we want to use 1/6 instead. Our <probability_of_success> + (<one_sixth> x <probability_of_success>) doesn't seem like it will make much of a difference - and things like Poison or Feint rarely do in small numbers - but as that probability of success increases (we get to a 4+ or 3+ To Wound), rerolling 1s becomes a BIG deal (as I've come to appreciate with the Balrog in recent months). Here's what our chart of rerolling 1s looks like (the second column is rerolling all failed rolls, while the third column is rerolling ones only):

    Okay, we have all of the foundation data we need to compute your probability of wounding - let's wrap it up!

    Wounding Rolls: Computing Average Expected Wounds

    The only thing we haven't done yet is use the "Attacks" value of the attacker - and this is really just a multiplier on our probability values for the computation we're doing today. Recall that there are several questions you can try to answer when talking about wounding things and the question we're going to answer is, "How many wounds am I supposed to get?" This is called the "average expected wounds" that we'll deal, which is literally just the <number_of_dice_rolled> x <probability_of_wounding>.

    We want to compute two values for Average Expected Wounds - one for full rerolls and one for the "other dice". We do that with the following computations (I've tucked them off to the right of my calculator):

    AEW_Rerolls=<full_rerolls>*((VLOOKUP(VLOOKUP(<wounding_difficulty>,<difficulty_table>,2,FALSE),<reroll_probability_table>,2,FALSE))*(VLOOKUP(VLOOKUP(<wounding_difficulty>,<difficulty_table>,3,FALSE),<reroll_probability_table>,2,FALSE)))

    AEW_Others=IF(<rerolling_ones>="Yes",((IF(<trapped_boolean>="Yes",2,1)*<all_attacks>)-<full_rerolls>)*((VLOOKUP(VLOOKUP(<wounding_difficulty>,<difficulty_table>,2,FALSE),<reroll_probability_table>,3,FALSE))*(VLOOKUP(VLOOKUP(<wounding_difficulty>,<difficulty_table>,3,FALSE),<reroll_probability_table>,3,FALSE))),((IF(<trapped_boolean>="Yes",2,1)*<all_attacks>)-<full_rerolls>)*(VLOOKUP(<wounding_difficulty>,<difficulty_table>,4,FALSE)))

    To illustrate this (because Elrond and the Cave Drake are boring), let's look at two models - Glorfindel on Asfaloth charging Shagrat with all his gear (155pts vs. 115pts).

    Between this series and my Slayer evaluations, you might think I don't like Shagrat . . . I could be picking on Easterlings though. ;-)

    Our GUI has an input for the number of Attacks the attacker has and a boolean value for whether or not the defender is trapped (which will deal 2x the number of attacks). If we have a 3 Attack mounted model on the charge (like Glorfindel), we would choose 4 Attacks and specify that the model is Trapped. Because Glorfindel also has Lord of the West (one reroll), we'd need to specify 1 "full reroll" as well (and we could be Feinting as well, which is why Rolling 1s is its own category).

    Assuming that neither model called a Heroic Strike (very unlikely), here's what the table would look like (we could find out what the probabilities are for each Fight Value pairing if Strike were in the picture - do that if you want):

    If Glorfindel keeps the Fight Value advantage (not an unlikely situation), Glorfindel has a 0.7878 probability of winning the duel and whenever he wins, he's expected to get 1.4722 wounds (1 die getting a full reroll looking for a 6+ and 7 dice without rerolls looking for a 6+). The "AEW_win_V" value is the Average Expected Wounds that we computed multiplied by the probability of winning the duel (so it's a bit lower). Shagrat, by contrast, doesn't win very often, but because he wounds Glorfindel on a 4+, he is expected to deal 1.5 wounds to him whenever he wins (about the same as Glorfindel is expected to do to him). This translates, though, into a much lower expected number of wounds given winning the fight (0.3183 - a quarter of the wounds Glorfindel will do to him).

    It's important to note that Glorfindel could have opted to spend Might to boost his roll (as could Shagrat), Glorfindel could have gone two-handed in order to wound on a 5+ (increasing his damage output if he wins), and Shagrat could have shielded (see the note earlier in this post for why we did the dueling/wounding dice separately for how to do this). The great thing about this calculator, though, is that it's lightweight and computes very quickly, so you can easily change values to see how minor changes like these affect the wounds you expect to deal or receive.

    Conclusion

    Computing the average expected wounds is a fairly simple calculation, but it's one that we constantly use in MESBG when determining whether or not it's a good idea to call a Heroic Combat or if we're trying to see whether it's better to call a Strike or a Defense. It's important to note that this is an average - half the time it will be this good or better, and half the time it will be worse.

    Next time, we'll turn our attention to answering another very common wounding question: "How likely am I to deal X wounds?" Unlike the average expected wounds we computed here, this question wrestles with a set threshold of wounds that we need to deal (which is also useful if we're about to call a Heroic Combat or determining if we should call a Strike or Defense). Tune in next time to see how we do that - and until then, happy hobbying!

    No comments:

    Post a Comment