Hey, hi!
I am writing about Heroism can go for infinite both with "- die at" and with duration.
In the code:
local bonus = 1 + (1 - self.life / self.max_life)
self:setEffect(self.EFF_HEROISM, math.floor(data.dur * bonus), {die_at=(data.die_at + data.inc_stat * 30) * bonus})
And that means, the effect's duration and die_at are both gets stronger if i have lower life at the point of activation.
There is no cap.
If I have 2 Heroism infusions and have Harmony to reset infusion saturation, then I can go for an infinite long
herosim effect and the "-die_at" can also go to infinite negative.
First I activate 1st Herosim at low life. That lasts ~10 turns and gives ~ -900 die at.
Several turns later, when I took some damage, I can activate my 2nd Heroism at ~ -750 life.
That will give a ~ 17 turn duration effect with ~ - 1500 die at.
Several turns after I cast One with Nature to lower CD's and clear saturation.
Several turns after when I took some damage, I activate 1st Heroism again at around - 1300 life.
(CD's are ~25-35. With Harmony, it is 20-25 after reduction)
Now the duration will be ~ 24 turns and the "-die at" will be ~ -2100.
So on...
So, basically there is infinity for all characters.
It would be nice if this would be removed.
Maybe there should be a cap in Heroism.
Thanks.
Heroism
Moderator: Moderator
Re: Heroism
I can see your point, it takes a bit of work since the scaling seems to be linear, and then there's the point that you'll have to end the cycle to actually benefit from it, but you could eventually set a heroism infusion to last hundreds of turns for an incredible value.
Fixing should only require adding a math.max to local bonus I think. Heroism won't get benefits past 0 hp that way (capped at 2x effect):
local bonus = 1 + math.max(1 - self.life / self.max_life, 1)
Fixing should only require adding a math.max to local bonus I think. Heroism won't get benefits past 0 hp that way (capped at 2x effect):
local bonus = 1 + math.max(1 - self.life / self.max_life, 1)
Re: Heroism
I've used the pain suppression salve plus heroism to good effect to get a character through madness/rl, since some enemies could hit for close to or sometimes more than max HP, and Heroism rewards activation AFTER health loss. So i'd activate the pain suppression as buffer, engage the fight, THEN activate Heroism when i got deep.
Cutting off the effect below 0 health also cripples the synergy between "die at" mods on equipment and Heroism, in turn slightly nerfing the equipment mods.
I'd argue for a solution where Heroism just can't chain off itself, so if it replaces a current Heroism infusion, it disregards the current buff's health bonus for the purpose of calculation.
Might be a bit more difficult to do than just a math.max tho
Cutting off the effect below 0 health also cripples the synergy between "die at" mods on equipment and Heroism, in turn slightly nerfing the equipment mods.
I'd argue for a solution where Heroism just can't chain off itself, so if it replaces a current Heroism infusion, it disregards the current buff's health bonus for the purpose of calculation.
Might be a bit more difficult to do than just a math.max tho

Re: Heroism
I've never really coded in LUA (or anything, really), but maybe something like this would work:
local bonus = 1 + (1 - (self.life + (self.tmp.EFF_HEROISM.die_at or 0)) / self.max_life)
edit: wait no... i think that doesn't really work
a local health adjustment?
Note, i do not know whether that math.max line actually works from a programming syntax standpoint, but logically it should clamp the life value to the lowest it could be without the Heroism buff.
local bonus = 1 + (1 - (self.life + (self.tmp.EFF_HEROISM.die_at or 0)) / self.max_life)
edit: wait no... i think that doesn't really work
a local health adjustment?
Code: Select all
function(self, t)
local data = self:getInscriptionData(t.short_name)
local adjust = math.max( self.die_at or 0 + (self.tmp.EFF_HEROISM.die_at or 0 ), self.life )
local bonus = 1 + (1 - adjust / self.max_life)
self:setEffect(self.EFF_HEROISM, math.floor(data.dur * bonus), {die_at=(data.die_at + data.inc_stat * 30) * bonus})
return true
end
-
- Thalore
- Posts: 182
- Joined: Sat Oct 05, 2019 8:55 pm
Re: Heroism
Hey, hi!
Heroism's linearity or non-linearity is given by the input parameters:
a, your character's MAX HP and b, the stats of the infusion (original "-die_at")
In the following table I want to illustrate 3 different cases.
1st case: when your MAX HP is higher then the infusion's original "-die_at"
In this case, you can not go to infinite.
The effect will be weaker & weaker at every new activation.
2nd case: when your MAX HP is equal to the infusion's original "-die_at".
Theoratically, in this case, the function is linear.
If you also have a little "-die_at" from gear too, you can go infinite.
The effect's power will be equal at every new activation.
AND THE REAL PROBLEM IS THE THIRD CASE:
When your MAX HP is lower than the infusion's original "-die_at".
Then the effect will be greatly more & more powerful at every new activation.
So, basically Yeeks and low-life classes too can be real GODS.
As long as enemies can not purge the physical effect from your Yeek, you just can not die.
(Ofc, in higher difficulties, you have to play well too)
As you see, just the 4th Heroism activation could give a 26 400 "-die at" and a 176 turn duration effect!
The 5th activation could give a 55 200 "-die at" and a 368 turn effect!
The 6th activation could give a 112 800 "-die at" and a 752 turn duration...
If your MAX HP is half than the infusion's original "-die at", then the effect can be two times stronger at every new actiation!
I am playing on madness, and due to this I am continously searching for tactics that could make me finally beating the game.
(With a non-adventurer, non-possessor class)
But when I tried my Yeek, I just started to feel bad ...
So I stopped playing with a Yeek, after I went into god-mode. (and not in dev-mode
)
Heroism's linearity or non-linearity is given by the input parameters:
a, your character's MAX HP and b, the stats of the infusion (original "-die_at")
In the following table I want to illustrate 3 different cases.
1st case: when your MAX HP is higher then the infusion's original "-die_at"
In this case, you can not go to infinite.
The effect will be weaker & weaker at every new activation.
2nd case: when your MAX HP is equal to the infusion's original "-die_at".
Theoratically, in this case, the function is linear.
If you also have a little "-die_at" from gear too, you can go infinite.
The effect's power will be equal at every new activation.
AND THE REAL PROBLEM IS THE THIRD CASE:
When your MAX HP is lower than the infusion's original "-die_at".
Then the effect will be greatly more & more powerful at every new activation.
So, basically Yeeks and low-life classes too can be real GODS.
As long as enemies can not purge the physical effect from your Yeek, you just can not die.
(Ofc, in higher difficulties, you have to play well too)
As you see, just the 4th Heroism activation could give a 26 400 "-die at" and a 176 turn duration effect!
The 5th activation could give a 55 200 "-die at" and a 368 turn effect!
The 6th activation could give a 112 800 "-die at" and a 752 turn duration...
If your MAX HP is half than the infusion's original "-die at", then the effect can be two times stronger at every new actiation!
I am playing on madness, and due to this I am continously searching for tactics that could make me finally beating the game.
(With a non-adventurer, non-possessor class)
But when I tried my Yeek, I just started to feel bad ...
So I stopped playing with a Yeek, after I went into god-mode. (and not in dev-mode
