25/5: A comparison of options

Feedback relating to the other areas of Arelith, also includes old topics.


Moderators: Active Admins, Forum Moderators, Active DMs

Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

25/5: A comparison of options

Post by Rowlind Salem »

I was curious if the conventional wisdom that falchion/scimitar were the best options for a 25/5 fighter/weaponmaster, so I put together a script to explore whether or not that's the case. I used python to put this together.

imports

Code: Select all

from turtle import color
from matplotlib.colors import hex2color
import numpy
from numpy import random
import statistics
import pandas as pd
import matplotlib.pyplot as plt
functions

Code: Select all

def dice_roll(num):
  dice_roll = random.randint(num) + 1
  return int(dice_roll)

def crit_calc(damage_in, crit_range, crit_multiplier ):
  crit_roll=dice_roll(20)
  if crit_roll >= crit_range :
    damage_out = damage_in * crit_multiplier
  else:
    damage_out = damage_in
  return damage_out

def round_calc(damage_in, crit_range, crit_mult):
  a1 = crit_calc(damage_in, crit_range, crit_mult )
  a2 = crit_calc(damage_in, crit_range, crit_mult )
  a3 = crit_calc(damage_in, crit_range, crit_mult )
  a4 = crit_calc(damage_in, crit_range, crit_mult )
  damage_out = a1+a2+a3+a4
  return damage_out
  
def round_calc_dualweild(damage_in, crit_range, crit_mult):
  a1 = crit_calc(damage_in, crit_range, crit_mult )
  a2 = crit_calc(damage_in, crit_range, crit_mult )
  a3 = crit_calc(damage_in, crit_range, crit_mult )
  a4 = crit_calc(damage_in, crit_range, crit_mult )
  a5 = crit_calc(damage_in, crit_range, crit_mult )
  a6 = crit_calc(damage_in, crit_range, crit_mult )
  damage_out = a1+a2+a3+a4+a5+a6
  return damage_out
  
processing

Code: Select all

axe_hits=list()
flail_hits=list()
falch_hits=list()
great_sword_hits=list()
maul_hits=list()
pike_hits=list()
bastard_hits=list()
quarterstaff_hits=list()
double_axe_hits=list()
double_sword_hits=list()
mistreater_hits=list()
trident_hits=list()

for i in range(1000):
  axe_hits.append(round_calc(dice_roll([4]) + dice_roll([4]) + dice_roll([4]), 18, 4))
  flail_hits.append(round_calc(dice_roll([12]), 15, 3))
  falch_hits.append(round_calc(dice_roll([4]) + dice_roll([4]), 12, 3))
  great_sword_hits.append(round_calc(dice_roll([6]) + dice_roll([6]), 15, 3))
  maul_hits.append(round_calc(dice_roll([6]) + dice_roll([6]), 18, 4))
  pike_hits.append(round_calc(dice_roll([8]), 18, 4))
  bastard_hits.append(round_calc(dice_roll([10]), 15, 3))
  quarterstaff_hits.append(round_calc_dualweild(dice_roll([6]), 15, 3))
  double_axe_hits.append(round_calc_dualweild(dice_roll([4]) + dice_roll([4]) + dice_roll([4]), 18, 4))
  double_sword_hits.append(round_calc_dualweild(dice_roll([8]), 12, 3))
  mistreater_hits.append(round_calc_dualweild(dice_roll([12]), 18, 4))
  trident_hits.append(round_calc(dice_roll([10]), 18, 4))
  
axe_stats = pd.Series(axe_hits)
flail_stats = pd.Series(flail_hits)
falch_stats = pd.Series(falch_hits)
greatsword_stats = pd.Series(great_sword_hits)
maul_stats = pd.Series(maul_hits)
pike_stats = pd.Series(pike_hits)
bastard_stats = pd.Series(bastard_hits)
quarterstaff_stats = pd.Series(quarterstaff_hits)
double_axe_stats = pd.Series(double_axe_hits)
double_sword_stats = pd.Series(double_sword_hits)
mistreater_stats = pd.Series(mistreater_hits)
trident_stats = pd.Series(trident_hits)

plotting

Code: Select all

df = pd.DataFrame
stats_all = [falch_stats, axe_stats, flail_stats, maul_stats, greatsword_stats, pike_stats, trident_stats, bastard_stats, quarterstaff_stats, double_axe_stats, double_sword_stats, mistreater_stats]

labels = ["Falcn\n2d4\n12-20x3 ", "GrtAxe\n3d4\n18-20x4", "HvyFlail\n1d12\n15-20x3", "Maul\n2d6\n18-20x4", "GrtSwrd\n2d6\n15-20x3", "Pike\n1d8\n18-20x4", "Trdnt\n1d0\n18-20x4","BstrdSwrd\n1d10\n15-20x3", "QStaff\n1d6\n6apr\n15-20x3", "DblAxe\n3d4@6apr\n18-20x4", "DblSwrd\n1d8@6apr\n12-20x3", "Mstreatr\n1d12@6apr\n18-20x4"]

fig, axs = plt.subplots()
axs.boxplot(stats_all, labels=labels, notch=True)
plt.legend()
plt.tight_layout()
plt.title("25/5 Base Weapon Damage over 1000 rounds")
plt.ylabel("Damage/Round @ 4 APR")
plt.savefig("Damage Distribution")
plt.show()
plt.close()
Image

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

A couple assumptions that were made:
keened weapons
improved critical feat

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

Barkoneus
Posts: 69
Joined: Mon May 04, 2020 10:37 pm

Re: 25/5: A comparison of options

Post by Barkoneus »

Oh darn, I was hoping this thread was alternatives to Weapon Master for those 5 levels!

That said I don't see AB, AC or crit confirmation anywhere in the calculation, am I missing something? I don't think this is as simple as simply rolling a d20 and comparing to crit range...
TurningLeaf
Arelith Gold Supporter
Arelith Gold Supporter
Posts: 223
Joined: Sat Sep 11, 2021 4:22 am

Re: 25/5: A comparison of options

Post by TurningLeaf »

Curious if I understand your process here. Is it only using base weapon damage with the multipliers?
Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

this is just the baseline damage of the weapons, assuming they're keened and the user has improved crit.

AB across weapons is mostly a wash, except for specialized weapons that hit +4.

What I did was simulate 1000 rounds with each weapon. So, 4 attacks in a round, each attack with a crit roll. Those attacks were summed up and appended to a list. That list contains 1000 rounds of simulated damage and is what is used to produce the boxplots containing the damage spread.

Since MDamask and essences can be applied equally, I simply ignored those. Same with STR scores for damage modifiers. This is just variability of the base damage simulated over 1000 rounds.

The dual-wield weapons underwent a different simulation where they got 6 attacks per round.

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

So, this is all idealized. Assuming every hit lands, what would the damage look like? The conventional wisdom is that the increased crit range of the falchion/scimi make it the ideal weapon for 5wm, but I wanted to test that hypothesis.

From what I can see, it's sort of not. The other big two handers are all pretty comparable, though falchion does have the least amount of variability, albeit a lower overall mean.

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

Here's the data for 23/7. So, just adjusted the crit ranges by 2 each.
Image

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

so what I'm seeing here is that pike is objectively the worst and polearms in general underperform. Though I didn't include halberds on here for some reason, whoops. They would look similar to greataxe and maul though, albeit with greater variability due to the 1d12 instead of the 3d4/2d6.

From this I would say that spear/pike should have scimi ranges instead of being a 20 x3 weapon, trident should probably have greatsword ranges and falchion maybe shouldn't have an exotic weapon feat tax since it really doesn't outperform the standard martial options.

In fact, the damage totals over the long term lag behind greatsword.

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

Quidix
Arelith Gold Supporter
Arelith Gold Supporter
Posts: 436
Joined: Sun Dec 30, 2018 1:49 pm

Re: 25/5: A comparison of options

Post by Quidix »

I might have missed it, but have you adjusted for lower / higher AB from two-hand weapons vs dual-wielding?
Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

no, I didn't actually. This is simply an evaluation of the variability of several different weapons making the following assumptions:

1) every attack hits (idealized obviously, but this is a baseline evaluation)
2) PC has improved critical feat
3) weapon is keened

damage modifiers such as essences, twohanded bonuses, damage bonus from weapon (MDamask) are all ignored.

Think of these numbers as keened bronze weapons hitting bobo for 1000 rounds.

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

TurningLeaf
Arelith Gold Supporter
Arelith Gold Supporter
Posts: 223
Joined: Sat Sep 11, 2021 4:22 am

Re: 25/5: A comparison of options

Post by TurningLeaf »

Rowlind Salem wrote: Tue Nov 01, 2022 10:26 pm this is just the baseline damage of the weapons, assuming they're keened and the user has improved crit.

AB across weapons is mostly a wash, except for specialized weapons that hit +4.

What I did was simulate 1000 rounds with each weapon. So, 4 attacks in a round, each attack with a crit roll. Those attacks were summed up and appended to a list. That list contains 1000 rounds of simulated damage and is what is used to produce the boxplots containing the damage spread.

Since MDamask and essences can be applied equally, I simply ignored those. Same with STR scores for damage modifiers. This is just variability of the base damage simulated over 1000 rounds.

The dual-wield weapons underwent a different simulation where they got 6 attacks per round.
Multiple points of correction are needed then, you need to adjust for 2h str bonus as well as including essences and damask. Not trying to turn this into a math lesson but you'll get different results.
Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

A robust examination of weapon effectiveness would have to account for AB/AC/DR/etc.

Now, given an agreed upon standard AB and AC maybe that could be done. I'd have to get an AB schedule for two handed, 1 handed (bastard sword and spear), and dual wield and then model that against something like, 50 AC.

Doable I think, but I'd need people better versed than I in what the right numbers should be for that examination. The point about lower ab for the dual wield weapons is interesting and I think there's something to it.

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

TurningLeaf wrote: Tue Nov 01, 2022 11:35 pm
Rowlind Salem wrote: Tue Nov 01, 2022 10:26 pm this is just the baseline damage of the weapons, assuming they're keened and the user has improved crit.

AB across weapons is mostly a wash, except for specialized weapons that hit +4.

What I did was simulate 1000 rounds with each weapon. So, 4 attacks in a round, each attack with a crit roll. Those attacks were summed up and appended to a list. That list contains 1000 rounds of simulated damage and is what is used to produce the boxplots containing the damage spread.

Since MDamask and essences can be applied equally, I simply ignored those. Same with STR scores for damage modifiers. This is just variability of the base damage simulated over 1000 rounds.

The dual-wield weapons underwent a different simulation where they got 6 attacks per round.
Multiple points of correction are needed then, you need to adjust for 2h str bonus as well as including essences and damask. Not trying to turn this into a math lesson but you'll get different results.
2h str bonus would apply equally across all weapons and wouldn't be a variable in this experiment. Just a constant and the only effect it would have would be to move the damage numbers up across the board. I wanted to reduce this down to the strictly variable components.

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

User avatar
Mattamue
Arelith Silver Supporter
Arelith Silver Supporter
Posts: 468
Joined: Mon Dec 10, 2018 1:45 am

Re: 25/5: A comparison of options

Post by Mattamue »

I love python and I love charts.

I thought this was dead, but it is back: http://www.afterlifeguild.org/Thott/nwn/

Lets you compare things and include extra damage, and plot out damage VS AC.

Example:
Image

Who is the audience for this post?

Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

Mattamue wrote: Tue Nov 01, 2022 11:48 pm I love python and I love charts.

I thought this was dead, but it is back: http://www.afterlifeguild.org/Thott/nwn/

Lets you compare things and include extra damage, and plot out damage VS AC.

Example:
Image
this is amazing

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

23/7 adjusted for MDamask.
Image

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

TurningLeaf
Arelith Gold Supporter
Arelith Gold Supporter
Posts: 223
Joined: Sat Sep 11, 2021 4:22 am

Re: 25/5: A comparison of options

Post by TurningLeaf »

Rowlind Salem wrote: Tue Nov 01, 2022 11:40 pm
2h str bonus would apply equally across all weapons and wouldn't be a variable in this experiment. Just a constant and the only effect it would have would be to move the damage numbers up across the board. I wanted to reduce this down to the strictly variable components.
Ahem. Am I forgetting my NwN fundamentals, or does the 2h STR bonus not apply to double weapons, and the STR bonus in general counts half on the off-hand attacks? This may explain some of the skewed results for the double weapons.
Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

23/7 with Mdamask, +4 perm, 1d6 temp

Image

25/5 with Mdamask, +4 perm, 1d6 temp.

Image

I stand corrected, including the damage did change how the spreads looked. Shout out to the poster that corrected me. My math has always been a little suspect lol, glad to get it fixed.

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

Rowlind Salem
Posts: 94
Joined: Mon Jul 13, 2020 8:31 pm

Re: 25/5: A comparison of options

Post by Rowlind Salem »

TurningLeaf wrote: Wed Nov 02, 2022 12:13 am
Rowlind Salem wrote: Tue Nov 01, 2022 11:40 pm
2h str bonus would apply equally across all weapons and wouldn't be a variable in this experiment. Just a constant and the only effect it would have would be to move the damage numbers up across the board. I wanted to reduce this down to the strictly variable components.
Ahem. Am I forgetting my NwN fundamentals, or does the 2h STR bonus not apply to double weapons, and the STR bonus in general counts half on the off-hand attacks? This may explain some of the skewed results for the double weapons.
I trust your fundamentals more than I do mine. This is more of a learning experience for me than anything.

Rowlind Salem (rolled)
Eddie Salem (rolled)
Houndaer Rylyn'yrvs [Drow House Really Nervous] (rolled)
Alcibiades (active-ish)

TurningLeaf
Arelith Gold Supporter
Arelith Gold Supporter
Posts: 223
Joined: Sat Sep 11, 2021 4:22 am

Re: 25/5: A comparison of options

Post by TurningLeaf »

Rowlind Salem wrote: Wed Nov 02, 2022 12:26 am
I trust your fundamentals more than I do mine. This is more of a learning experience for me than anything.
Still missing the STR. Also while I'm not a programmer the syntax looks pretty straightforward, so apologies if being dense here but I also wanted to ask, it seems like you never defined "damage_in". Is this correct?
AllPizzasArePersonal
Arelith Platinum Supporter
Arelith Platinum Supporter
Posts: 33
Joined: Sun Sep 18, 2022 11:09 pm

Re: 25/5: A comparison of options

Post by AllPizzasArePersonal »

Rowlind Salem wrote: Tue Nov 01, 2022 11:40 pm
TurningLeaf wrote: Tue Nov 01, 2022 11:35 pm
Rowlind Salem wrote: Tue Nov 01, 2022 10:26 pm this is just the baseline damage of the weapons, assuming they're keened and the user has improved crit.

AB across weapons is mostly a wash, except for specialized weapons that hit +4.

What I did was simulate 1000 rounds with each weapon. So, 4 attacks in a round, each attack with a crit roll. Those attacks were summed up and appended to a list. That list contains 1000 rounds of simulated damage and is what is used to produce the boxplots containing the damage spread.

Since MDamask and essences can be applied equally, I simply ignored those. Same with STR scores for damage modifiers. This is just variability of the base damage simulated over 1000 rounds.

The dual-wield weapons underwent a different simulation where they got 6 attacks per round.
Multiple points of correction are needed then, you need to adjust for 2h str bonus as well as including essences and damask. Not trying to turn this into a math lesson but you'll get different results.
2h str bonus would apply equally across all weapons and wouldn't be a variable in this experiment. Just a constant and the only effect it would have would be to move the damage numbers up across the board. I wanted to reduce this down to the strictly variable components.
This is incorrect, and it's what accounts for why your analysis is so wrong. Using your idealized scenario, a mdamask falchion crits 40% of the time while e.g., a scythe crits 15% of the time. So for 40% of the falchion's hits, you deal an extra ~60 damage (15 str mod × 1.5 × 3). You can't just say that modifiers apply evenly across the board when they're effected by a crit multiplier a different percentage of the time due to threat range.
stoneheart-
Posts: 142
Joined: Thu Mar 04, 2021 6:07 pm

Re: 25/5: A comparison of options

Post by stoneheart- »

don't use bastard sword as an example. use CAVALRY sword. same thing, much better sword lol (also looks cooler: hidden bonus)
malcolm_mountainslayer
Posts: 1060
Joined: Thu May 16, 2019 5:08 am

Re: 25/5: A comparison of options

Post by malcolm_mountainslayer »

yeah using base weapon damage only and not adding full modifiers like str seems realy really jank.

I am sure others can do the literal math, but conceptually it should be obvious. The damage advantage if large die weapon vs a large crit range weapon diminishes the more bonuse damages you add. Like a long sword for example does an avg damage of 1 more than scimitar. That 1 becomes nothing when you add a thousand bonus damage and the increased crit range becomes everything.

It's well known that if you are always hitting, then high crit range weapon always perform better, and if you only crit when rolling high, then low crit range weapons with bigger multipliers perform better. Your math showing otherwise just shows how crucial it is factor in modifiers like strength and epic weapon specialization.

*EDIT*

I also noticed in your second chart that supposeldy had the corrections, that your crit range was for 23 fifghter and 7 weaponmaster, not 25 fighter and 5 weaponmaster. 7 weaponmater is what increases the crit range more. 25/5 is onyl viable because the threat range is so large to begin with on high crit range weapons. When using a high crit multiplier, you got for 7 wm and some plus 4 variant to have roughly the same ab.
User avatar
WanderingPoet
Posts: 759
Joined: Sat Apr 22, 2017 5:51 am

Re: 25/5: A comparison of options

Post by WanderingPoet »

Mattamue wrote: Tue Nov 01, 2022 11:48 pm I love python and I love charts.

I thought this was dead, but it is back: http://www.afterlifeguild.org/Thott/nwn/

Lets you compare things and include extra damage, and plot out damage VS AC.

Example:
Image
How did you get the graph to show? I've only gotten a blank page for a long while.
Path_of_Play wrote:Fear, intimidation, anger - All these, the tyrant's tools.
Laughter, encouragement, play - not simply just for fools.
These tools reveal,
More is learned,
From another in an hour of play,
Than in a year of contention.
User avatar
Mattamue
Arelith Silver Supporter
Arelith Silver Supporter
Posts: 468
Joined: Mon Dec 10, 2018 1:45 am

Re: 25/5: A comparison of options

Post by Mattamue »

WanderingPoet wrote: Fri Nov 11, 2022 3:31 pm How did you get the graph to show? I've only gotten a blank page for a long while.
Sorry, guess it is broken again.

Who is the audience for this post?

Post Reply