LightsHope / issues

48 stars 22 forks source link

Hunter Pet AP Not Converting to DPS at 14 AP = 1 DPS #1208

Open watchyoursixx opened 5 years ago

watchyoursixx commented 5 years ago

Hey any who looks into this. Firstly, thanks for all the hard work you guys do its pretty amazing how this thing runs. I have thoroughly enjoyed my time here playing the game and theorycrafting.

Issue: Hunter PET AP not converting 14 AP = 1 DPS as stated in the tooltip, instead using a different value of AP depending on level, and a fixed 20.54~ AP = 1 DPS at level 60.

So here's some background to how I stumbled upon this issue. I've started making a DPS spreadsheet for hunters that compares buffs and gear to generate an estimated DPS value. So with that I needed to know the in's and out's of exact damage numbers, formulas and the like. When investigating PET dps and using the Pet character sheet, I noticed something was off when trying to find out the formula for Pet DPS.

Pets have a few % modifiers to their tooltip DPS, as well as a flat value, and a bonus from AP. So first thing was to make sure the pet was from a family with a 0% damage modifier. I chose crocodile. Then I kept the pet 100% happy, not 75% or 125% happy. Then I made sure to be untalented in all my tests. Lastly I wanted to eliminate AP from the equation using debuffs to give it 0 AP. This determined to find that pets have a 28.7~ base DPS at level 60 currently on the LH repack, LH servers, as well as several other pservers. So now we have 28.7 as a baseline, and want to add AP to raise the DPS.

So at level 60 a crocodile has 40.9 DPS on the tooltip, doing a damage range of 72-92, with 252 AP contributing to the value above 28.7 baseline. 40.9 minus 28.7 gives me 12.2 DPS difference, which is purely from the AP. So in a conventional setting 252 AP should be... 252/14=18 DPS added. This is reflected in the tooltip for Attack Power on a Pet's character sheet. What I see here is that 252 AP is actually only adding 12.2 DPS for a clip of 20.65, which after multiple different values and testing I found to be closer to 20.54~ when accounting for more than 1 decimal place.

https://imgur.com/83xbWuT

Now this is on the repack, so I'm not 100% sure it should be the same since I can't find a source for the AP tooltip, however I have found a source for the DPS calculated, and I'll get into that below.

The source I found specifically is talking about pet attack speeds, which is irrelevant to what I am talking about, HOWEVER it does show multiple screenshots of a pet character sheet, which is what I wanted. This is from Nov 3, 2006 a month after 1.12.1 dropped.

http://web.archive.org/web/20061103033825/http://tkasomething.com/attackspeeds.php

Looking at the 3rd picture in the article, we can see a wolf (which has a 0% damage modifier) as well as 252 AP, and the tooltip DPS of said wolf. So in the picture the DPS of the wolf is 58.8. Now here I'm doing a little bit of assuming in order to back-calculate and check if AP is correctly being 14=1 DPS. The first assumption is that the 28.7 number found on the LH core is possibly wrong or slightly higher or lower. I cannot confirm nor deny that since there does not seem to be any screenshots of a pet with 0 AP. The 2nd assumption is that this wolf was properly identified as 0% modifier per it's family (referenced on a petopia archive for confirmation as well as other sites stating the same info) http://web.archive.org/web/20070408161247/http://petopia.brashendeavors.net/index.shtml clicking on the pet type on the left list will show the modifiers at the top of the page. Wolf has a 0% modifier to damage.

So if I assume the pet is fully fed at the time of that screenshot and has a 125% happy damage modifier, (which really has no way of confirming or denying it but for the sake of calculations I've pretty much confirmed it...) I found that 88+112 divided by the given speed, 1.7, divided by 2 to give the DPS is 58.8235~ which is the tooltip value without rounding. So if I remove the 125% modifier I get a DPS of 47.0588~. Then subtracting 252/14 from that number, I get a value of 29.0588~ which is 0.3~ off from the calculated base DPS from above.

Now I know this isnt exact, which makes it hard to judge whether it is accurate 100% or not, but I believe the evidence is enough given the values provided and the sources provided. As well as the widely known information that 14 AP is 1 DPS for "everything". I do not see why Pets should be any different in this regard.

Note that it isn't a significant increase to DPS overall unless a pet has a significant amount of AP, so if this is implemented EVERY pet will do more damage, though more pronounced at level 60.

If you would like me to do more research and/or provide more calculations or information please let me know here or on the LH discord @Watchyoursixx#0872 Edit: my discord is 0872 not 872..

Phorin commented 5 years ago

As a Hunter of over 10 years (main) and a developer, I'm very interested in this. Something seemed definitely fishy with Hunter pets when I started to play on Light's Hope (my first private server) compared to when vanilla was retail. I have a few other Hunter related defects I've found and confirmed, although not relating to pet DPS, so I'm interested in as much research as you can provide in order for me to focus on the code aspect. Thanks!

watchyoursixx commented 5 years ago

Is there anything specific you'd like me to add to this? I've pretty much done all the testing I can do on what's available so now it's just finding more accurate representation of what it is supposed to be. As listed above I found a source but I did have to make a couple of assumptions to determine if AP was giving 14:1 or not. Short of having a screenshot showing talents, pet sheet, and food status, it can't be confirmed to be 100% the case.

Though blizzard stated multiple times that 14 AP is equivalent to 1 DPS for all classes, why pets would have their own random formula based on level beats me. So one would think it should be the same as the tooltip and known conversion..

Phorin commented 5 years ago

I agree that there are ultimately some things we simply cannot, "know," in regards to the 14:1 AP:DPS and there comes a time when we must accept those assumptions as fact until proven otherwise. I think for that point it's acceptable given Blue's previous comments on the matter.

As for the information, what I think would be helpful is a way to visualize your concern better. Perhaps organize it in a chart? Also, I'd be interested how pet levels and player levels factor into this since my observations about pet DPS was that it was significantly higher than it should be, but that was all at lower levels (Hunter isn't 60 yet). That may come down to how it scales with level.

I'll do some more research on where this information is stored and get back. I believe it has its own database table.

watchyoursixx commented 5 years ago

Alright will do. I'll make a fancy chart :) I'll even exaggerate it to the extremes to show the impact that it has (potentially) on pet DPS.

If you could find that db lemme know or make it a spreadsheet or something. I have HeidiSQL for viewing/editing my repack

Phorin commented 5 years ago

Great, thanks!

To find stats for pets, look in the table (in the main, 'mangos' database) called, 'pet_levelstats'. Although to get something a bit more friendly and usable you'd have to join against a few other tables to get things like mob name/class/etc.

watchyoursixx commented 5 years ago

ahh found it :) how do I join against other tables?

Edit: it looks like all hunter pets use the same entry. I've checked multiple families and they are all the same base stats (excluding hp modifiers) and unfortunately this list doesn't have base DPS included. Wonder if that is buried somewhere

watchyoursixx commented 5 years ago

So I made a spreadsheet showing the differences between each level and their respective tooltip DPS, base DPS (that which has 0 AP applied), STR converted to AP using AP = (STR-10)*2 for pets, and a calculated AP:DPS ratio for each level. Graphed below is the disparity between a seemingly random ratio (more on that below) vs a steady ratio. Note that the orange line is not linear, which is what you would expect as you gain more AP per level increase. You notice the biggest jump at around the 40-45 mark. That is because each level gains about 5 STR which is 10 AP. The blue line however, stays at a very linear increase. I'm not really sure why that is, but the difference between each level is about 0.69~ DPS.

capture411

Below is a graph created to show the impact this COULD have in a worst case scenario. It may be possible to get it worse, though I couldnt think of more buffs to add at the moment to make it worse. Note this is just the TOOLTIP dps. I used several buffs to give BrokenTooth 1162 AP, as well as specced BM for Unleashed Fury, Frenzy, and Bestial Wrath. My pet was 125% happy as well, giving a total of 247.5% modifiers to the tooltip.

capture412

Attached as well is the spreadsheet used for reference to each individual data point. This was from the LH core repack.

Hunter Pet DPS Data Per Level.xlsx