William758 / ZetAspects

4 stars 1 forks source link

"His Reassurance" Poach nerf #46

Closed thejanjan closed 2 years ago

thejanjan commented 2 years ago

https://github.com/William758/ZetAspects/blob/58e98210e65bd39048d9ea1bf5224dc74b05c014/Hooks/EffectHooks.cs#L1147

Hi there,

I think it is worth nerfing the lifesteal/poach lifesteal of the Poach debuff that His Reassurance applies. As of now, 10% of the damage dealt comes back as healing to the plaer, which seems egregiously overpowered; having a consistent 1,000+ DPS (guaranteed through looping) comes back as 100+ health per second, and hitting strong attacks that deal over 10k damage become 1k health to the player.

While the percent heal may be configurable, I'd like to suggest changing the life steal to be more logarithmic instead of percentage-based, so that strong hits don't guarantee a full heal.

self.healthComponent.Heal(amount, damageInfo.procChainMask, true); into something like self.healthComponent.Heal(Mathf.Log(amount, 5.0), damageInfo.procChainMask, true); (This heal should only happen when amount > 1, to ensure the log doesn't cause any crashes.)

This nerfs the healing as such (note, the proposed healing values also assume AspectEarthMonsterLeechMult = 1.0): Damage Healing (Current) Healing (Proposed)
1 0.1 0
5 0.5 1
10 1 1.43
25 2.5 2.0
50 5 2.43
100 10 2.86
250 25 3.43
500 50 3.86
1000 100 4.29
2500 250 4.86
5000 500 5.29
10000 1000 5.72

which puts it more in line with leeching seeds (which is fine, as it's a buff that applies to all allies that attack that target). (The base argument in the Log call can be adjusted to change the healing amount. It may be a good number to have open as a config value.)

William758 commented 2 years ago

The leech values are based on the values of Leeching Elites from LostInTransit. I do think that the leech amount is very strong so by default the leach amount is Mathf.Pow(amount, 0.65) * 2. This reduces leeching to a more reasonable amount. There is also a config to change the Pow into Log and configs to change the other values in the leech modification formula.