ChthonVII / d2r_24ptr2_wereform_calculator

Wereform IAS Calculator for Diablo 2 Resurrected 2.4 PTR2
GNU General Public License v3.0
4 stars 0 forks source link

Sorc/Zon Starting Frame Behavior Needs Testing #3

Closed ChthonVII closed 2 years ago

ChthonVII commented 2 years ago

Presently, the calculator is pro-rating the zon and sorc startframe values into the slowing factor. This is simply a guess because it seems like the sensible way to do it. Of course, there's no guarantee Blizzard does what's sensible. So, some empirical data points would be much appreciated.

Warren1001 commented 2 years ago

The slowing factor does not use startframe values. I tested Sorceress's Werebear Normal Attack wielding a Mighty Scepter (1HS so startframe=2) (0 WSM) with 0 additional EIAS. When startframe=2, EIAS=0 gives 15 FPA. When startframe=0, EIAS=0 gives 16 FPA. I tested for 16 FPA at 0 EIAS and that is what I found. Here's the testing, though it doesn't really have any more information that what I've listed here: https://docs.google.com/spreadsheets/d/1eo3VeIrSG3PvE0woLRqtG3tofafjaXEaBDsCU0uETvU/edit#gid=2053047957

ChthonVII commented 2 years ago

Sorc's 1HS has a whopping 20 framesperdirection. In order to match the observed data, I had to remove the startframe term from the nerf factor, but then use the human startframe value instead of the wereform's startframe value when doing the animation loop.

In my opinion, this is buggy in two respects:

  1. It makes the bear sorc animation faster than the analogous human sorc animation. Skipping 1/6 of the total length due to startframe instead of 1/10. This goes against Blizz's stated intent to equalize the speeds. (That said, Blizz's stated intent is dumb, and this is already a huge nerf to bear sorcs anyway, so I'm not planning on telling them.)
  2. It makes the bear sorc animation look janky since werebear's A1 was not meant to be played with a non-zero startframe. Though the remastered graphics probably smooth this out, so it's likely only a problem for legacy graphics mode.

There remains an open question here, but it's only relevant to modders: Does the startframe come from the human's A1 animation or from its current animation? (I.e., if a mod made it possible to use Hunger as a bear sorc, where would the startframe value be borrowed from?) That's probably not worth the time and effort to answer, so I plan on closing this issue unless you want to look into it.

Warren1001 commented 2 years ago

I wasn't aware there were startframe values for wereforms. They weren't used in the original calculator (d2.lc/IAS). It may be erroneous to test only one breakpoint assuming it uses the human's startframe when a wereform's startframe might be used (even though the human's values are used everywhere else).

I'm not interested in testing things that don't apply to the live (or soon-to-be live) game. I'll let someone else handle that if they want to.

ChthonVII commented 2 years ago

Everything has a startframe value, it's just usually zero. All the wereform stuff has startframe=0.

If the 0 EIAS speed on a 1HS is 16 fpa, then I only see one way to get there: The human framesperdirection is 20. So not using the human startframe in any way should give 19 fpa at 0 EIAS (with a possible off-by-one). If we pro-rate the human startframe value, either by subtracting it from human_framesperdirection when computing the slow factor or by setting the initial counter value to (human_startframe 256 slow factor), then we'd get 17 fpa at 0 EIAS (the same as a human sorc). In order to get to 16 fpa, we need to use the human startframe value without pro-rating it -- set the initial counter value to (human_startframe * 256).