Skip to content

DPS calculator is inaccurate in many situations due to prayer assumptions #34

@oolong-osrs

Description

@oolong-osrs

Related plugin component(s)
Deserved Damage

Describe the bug
Plugin assumes that the appropriate offensive prayer (from Piety, Rigour, and Augury) is always used when calculating deserved damage. This results in overestimates of deserved damage, as well as overestimates of your expected freeze count. This is especially noticeable in Pure/Zerker LMS, where only the 15% boost prayers are accessible.

To reproduce
Steps to reproduce the behavior:

  1. Start LMS game.
  2. Play your first fight without using offensive prayers at all. Eat to ensure a long fight.
  3. Observe that your expected damage is much higher than your actual damage.

Or just play a lot of LMS and observe the statistics over time. The expected damage does not converge to the actual damage.

Expected behavior
Ideally the plugin actually reads the player's prayers to calculate damage.

I imagine this isn't feasible, so I think that there should be a configurable setting for prayer assumptions.

Current assumptions around prayer usage
Right now, the prayer assumptions are highly opinionated:

// Offensive pray: assume you have valid. Piety for melee, Rigour for range, Augury for mage

// Offensive pray: assume you have valid. Piety for melee, Rigour for range, Augury for mage
...
// Defensive pray: Assume you have one of the defensive prays active, but don't assume you have augury
// while getting maged, since you would likely be planning to range or melee & using rigour/piety instead.

While these settings are certainly a reasonable use-case, it's not at all the behavior that I would expect.
The assumptions are:

  1. Player has access to Piety/Rigour/Augury
  2. Player always uses correct offensive prayer from Piety/Rigour/Augury
  3. When attacking with any style, the opponent is using a +25% def prayer (Piety/Rigour/Augury).
  4. When attacking with magic, opponent is not praying Rigour (optimal tank prayer)

The consequences of these assumptions:

  1. Attack roll is consistently overestimated if a player doesn't have access to Piety/Rigour/Augury (for example, in Pure/Zerker LMS)
  2. Attack roll is consistently overestimated when a player misses an offensive prayer.
  3. Defense roll is consistently overestimated if the target player doesn't have access to Piety/Rigour/Augury. (I think this effect is overshadowed by the attack roll overestimation.)
  4. Mage defense roll is consistently underestimated if target player uses Augury or Mystic Might to tank mage hits.

Thus if you play a lot of LMS and always use the correct offensive prayer, your long term stats will show that deserved damage is higher than actual damage ("unlucky"), because it's assuming that you have access to Piety whenever you're playing Pure/Zerker. If your opponents are using Augury or Mystic Might as defensive prayers against mage, the tracker will also show you as being unlucky on freezes.

The worse you are at using offensive prayers, the more visible this discrepancy will be.

Suggested config options
For offensive prayer assumptions, the following settings are all reasonable:
O1. No offensive prayer.
O2. Always using 15% accuracy prayers.
O3. Always using Piety/Rigour/Augury prayers. (this is current behavior)

For defensive prayer assumptions:
D1. No defensive prayer.
D2. Always praying +15% Def, +15% Mage Def. (optimal tanking for pure/zerk)
D3. Always praying Augury. (optimal tanking for mains)
D4. Always praying Piety. (this is current behavior)
(Note: Piety/Augury/Rigour all have the same def bonus, but Rigour has additional mage def.)

To avoid configuration bloat, we can package these together into sensible presets. For example, we can ignore the use-case where the attacker is using 15% accuracy prayers and the defender is using Augury.
A. Perfect Offense + Defense (Mains): O3 + D2
B. Perfect Offense + Defense (Pure/Zerk): O2 + D2
C. Optimistic Main: O3 + D1
D. Pessimistic Main: O1 + D3
E. Optimistic Zerk/Pure: O2 + D1
F. Pessimistic Zerk/Pure: O1 + D2
G. Prayer Off: O1 + D1
H. Legacy behavior: O3 + D4

Each "optimistic" setting results in expected damage/freezes being overestimated. If you miss a lot of offensive prayers, then you will appear to be particularly unlucky.
Each "pessimistic" setting results in expected damage/freezes being underestimated. Using your offensive prayers well will make your stats appear to be lucky.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthas known solutionThere is a known implementation method

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions