-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Suggestion: weapon description - show average damage per round, and comparison with current weapon, if other #2239
Comments
This comment has been minimized.
This comment has been minimized.
This is a long-requested feature with a mock-up and some discussion on our dev wiki. The big obstacles are implementation time (patches very welcome for this feature!) and clear communication of good information Regarding displaying a single number, see the discussion here in a previous issue. Before slaying bonus damage and brands, crawl's melee damage formula is a (rounded to integer at a particular scale quotient of a) product of three uniform random variables. The random rounding doesn't matter so much, but products aren't easy to do for summary statistics: they are not approximately normal (where averages and maximums are helpful summary statistics). I've thought about this a bit more since the discussion in #2007, so I've got a bit more to say. Not sure if it's enough for an implementer to start hacking. An approach to displaying a good list of numbers is to observe that as a product of random variables, it's approximately truncated lognormal. So the key^1 numbers are E(log(damage)), Var(log(damage)), and the range of values. The main damage roll in crawl can always roll 0, so the range really cares about the max. Since crawl is a video game and not a statistics homework the real missing ingredient from this implementable is a nice way of accurately communicating the helpful information (E(log(damage)), Var(log(damage)), max(damage)) to the player without mentioning logarithms. As an aside: UI mockups that exclude console are generally unhelpful; console is an equally important interface mode. In this case it's just a description box, but do keep that in mind. [1] key numbers means something precise here: the truncated lognormal distribution is the distribution of maximal entropy for the truncation range subject to the constraints given by E(log(x)) and Var(log(x)); there is no further information to be learned about the distribution. |
Me, I would be perfectly happy just seeing "avg dam" as mocked up in the rapier / war axe comparison in issue 2007 : ) --as long as "avg dam" takes into account relative weapon speeds, ie it should represent average damage over some fixed period of time as wielded by the character at their current speed, not counting time-limited enchantments such as being temporarily hasted by a spell or something. |
What about displaying maximum-per-hit, average-per-round, and variability? That gives an idea if a weapon might do a lot of damage or little, or average at a medium, or the like, without being formulae or curve graphs. And it can be displayed on the console. |
I'm a somewhat simple player, and personally am looking for a single number that is easily spotted at a glance (color bolding might help). I can't completely object to other, related numbers being somewhere in the vicinity as well--though I might like to ;)--but let's not forget that there are already a lot of numbers on weapon info screens (and perhaps some of them, like all the training time numbers, aren't as necessary to have there). |
This comment has been minimized.
This comment has been minimized.
For my money, even range is too much information. : ) As a recent actual example, Infra Arcana's latest released build switched from representing weapons by average base damage--a single number--to damage range, and I've been surprised by how much less useful this is to me; if you show me damage range, that just means I have to do the math in my head to get the average, and I have to do three calculations rather than just one to compare two weapons, which is almost always the reason why I want to know a weapon's damage in the first place. So with damage range, each time I still have to calculate
whereas, if you show me just average damage, all I have to calculate each time is
And even better, as I mentioned earlier, DCSS's own armor info display also does that type of calculation for the player--between AC wearing their current armor vs AC if they replaced that with the currently viewed armor piece--and, in addition to showing those two numbers, shows the difference between them, boiling it all down to one beautiful single number. : D (And if you did it that way, you'd have the added bonus of having the weapon info display be consistent with the armor info display. : ) |
This is mostly done in 52719c1 and onward. It's not a "damage over time" number (which is what I think is meant by "per round" here?), and it doesn't have a comparison to the current held weapon. |
Closing this - weapons now have damage ratings displayed as per PF's previous comment. |
PLATFORM and OS or BROWSER:
SSH - PuTTY 0.76 64-bit x86 Windows
DCSS VERSION AND GAME INFORMATION:
0.28-a0-906-g0406aca
DESCRIPTION:
Coming to DCSS from Angband--where I was also a horrible noob--I miss the feature of the weapon information screen in that game showing a simple number for "Average damage/round"; Crawl's weapon information screen, on the other hand (i for inventory, select a weapon), does not have a single number that sums up an average of the damage the weapon and any modifiers, status effects, etc it has will inflict; it shows "Base damage," "Base attack delay," any occurrence rates and damage ranges from status effects, etc, as separate numbers, and leaves it up to the player to do the complicated math to try to figure out if the weapon will do more damage than, say, their current weapon, as wielded by their character--including taking into account the character's damage modifiers, speed, accuracy, and so on. This is not always easy to calculate or even estimate on the fly.
(Angband's figure, for instance, takes into account the character's STR and DEX modifiers to damage and speed; it also incorporates added damage from inflicted effects--say, a 1d6 electrical effect occurring on 5% of successful hits would be averaged and added to the total.)
It would be helpful to have a single number shown for the average total damage per round the weapon will inflict on a non-resistant target, in the character's hands.
(For quick legibility, it might be useful to have such a number highlighted in a different text color.)
Going one step further, it would be very useful to have the weapon information screen also show a comparison of this average damage per round number with the average damage per round of the player's current weapon, if they're examining a different weapon. Armor information screens in Crawl already do this: examining another piece of armor will tell you something like "If you switch to wearing this armour, your AC would decrease by 9 (20 -> 11)"; something similar for weapons ("your damage/round would increase by 5.6 (17.1 -> 22.7") would be similarly helpful.
Possibly such calculations are complicated in Crawl by a character's differing weapon skill levels and so forth, I don't know. In any case, I find estimating weapon efficacy much trickier in Crawl, and any means of alleviating my ignorant confusion would be appreciated. : )
(Crawl does devote a significant chunk of its weapon info screen to skill training time estimates, which in my ignorance seem much more esoteric and less immediately useful than a damage estimate--and I have no idea what "in about 1.0 XLs" in relation to training time means, for instance.)
EXTRA FILES:
![angband](https://user-images.githubusercontent.com/91744319/143090316-efd08c17-0c83-4623-ac43-be5d717cd8b2.jpg)
Angband weapon information screen:
Crawl weapon information screen:
![crawl](https://user-images.githubusercontent.com/91744319/143090432-23b25d02-830c-4512-b6e5-3a99d61e2308.jpg)
Crawl armor information screen, with comparison:
![crawl_a](https://user-images.githubusercontent.com/91744319/143094293-3531e17b-9b7e-42ad-8f88-541a5fe7511a.jpg)
The text was updated successfully, but these errors were encountered: