doadin / Plexus

Other
9 stars 2 forks source link

[Request] Change the way incoming heals are handled Classic Era? #85

Closed dabadoo closed 7 months ago

dabadoo commented 1 year ago

I have read Help->Incoming HoTs but I don't think the current implementation is very good. At least for Classic Era. As a druid my max rank reju + reju does close to 3k healing. Seeing 3k incoming healing, and not realising the majority is from HoTs could lead to some bad moments.

The minimum value for incoming healing doesn't do much either and I've decided to just turn it off. Once again. A max rank reju does around 1.5k. Some downranked casted spells from myself and other classes do less than that. So the casted heals would get filtered while my max rank reju would be the only thing showing until it has ticked once or twice.

I fixed this for now on my end by changing from ALL.HEALS to CASTED_HEALS but this would obviously not be a solution for everyone and tbh I would love to see just a little bit of my HoTs as incoming healing.

This addon is something I used in the past: https://github.com/dev7355608/ClassicHealPrediction. iirc the option to "Set threshhold for imminent healing to... seconds" also worked on HoTs. So if I set it to 6 seconds, and a reju ticks every 3 seconds in classic, it would at most show 2 incoming ticks from my reju.

If all classic versions vanilla->wrath uses healcomm and this implementation would be possible, I think it would be a great improvement on the current handling of HoTs.

I understand Retail WoW is different and it doesn't distinguish between HoTs and direct healing. Would looking at cast time of the incoming heal also not be possible with the Retail system?

Also, I'm sorry for opening so many issues. Despite all my reports or suggestions I am really enjoying Plexus.

doadin commented 1 year ago

So in retail, it does distinguish between hots and casted heals and shows a value including both. The problem is in classic versions at first this info was not available from the game like it is in retail so the community made code to do. Then blizzard decided well if they are just gonna do it anyways and they had the code for retail that they would just include it. The problem is back a while ago it had bugs and didn't include HoTs. I think now it might be fixed? I never really played classic so I have not been able to test. I will look into this.

doadin commented 1 year ago

So a lot to take in here, but for what I can tell the behaviour is the same as is with retail, i cast rejuv then healing touch and the incoming heal shows the rejuv + healing touch amount, via libhealcomm in classic(1.14.x) so im not sure what you want different? Sorry.

doadin commented 1 year ago

Also I don't mind suggestions at all. Some times people makes suggestions for things I find useful but didn't think of and im sure there are probably other that feel the same, so thank you!

dabadoo commented 1 year ago

Showing healing touch + reju total incoming heal might be "correct" but I don't think it's "optimal"? At least not for the kind of game Classic is. I will not dare to comment on retail/wrath.

The suggestion was based on ClassicHealPredictions implementation. You can set it to ignore heals that take x amount of seconds to cast. But it also applies to HoTs. So if you set it to 3. It will only show your first rejuvenation tick. It will then keep showing only 1 incoming reju tick until reju runs out.

I'm unsure how retail handles incoming healing. But I think for classicm it showing 3k incoming healing when all of it are from 2 HoTs, can give healers the wrong impression that a big casted heal is about to land.

I don't know what the best / easiest way of limiting HoT heals shown is. I just mentioned ClassicHealPrediction because that is what I remembered.

The current implementation of setting a minimum value doesn't do much either. Classic uses a lot of downranked healing. Those downranked heals might total for less than a full rejuvenation showing all of it's ticks as 1 incoming heal. So using this option is no good.

Apologies if I'm failing explain my thoughts properly.

doadin commented 7 months ago

I know this is super old and sorry, but if there is still an issue let me know but libhealcomm handles heals so if it is showing full hot heals and not the ticks value thats an issue for them. The minimum value should show like every heal if its set to 0% because any heal should be greater than 0% of a units health because that should be 0.

if (incoming / maxHealth) > settings.minimumValue then

so even if incoming is 1 1/304(max hp of a level 5 in retail) = 0.003 which would be greater than 0 in classic a level 4 druid has 95 hp and a rejuv ticks for 8 so 8/95 = 0.08 which would be greater than 0 so even if you used a rank 1 rejuv on a character with 1mil hp thats still 0.000008 which would be greater than 0 a max level classic druid has 3883 hp(with whatever this "marshal's Dragonhide Gauntlets ilvl is) so 8/3883 = 0.002 still greater than 0