Page 1 of 1

[1.6.7] Mindrot may not trigger from fast non-instant action

Posted: Fri Aug 28, 2020 8:57 pm
by minmay
Mindrot's description states "Every time you act, all enemies in your gloom take X mind damage and Y darkness damage." However, it's implemented with a callbackOnActEnd, which is only called after using energy and not having enough energy left to take another action:

Code: Select all

function _M:useEnergy(val)
	mod.class.Actor.useEnergy(self, val)
	if self.player and self.energy.value < game.energy_to_act then
		game.paused = false
		self:fireTalentCheck("callbackOnActEnd")
	end
end
This means that if you have a lot of extra energy and/or your action was very fast, Mindrot can fail to trigger, even though you did act. This is actually quite impactful in practice on Cursed, because Rampage + movement infusions will often take your movement speed above 1000%, which will mean that you can move more than once in the same game tick, which will only trigger Mindrot once. This is quite confusing to players that encounter it!

I am struggling a bit to come up with a good solution though. The bug itself is easily fixed by moving the fireTalentCheck outside the if block (and add a check that val > 0, I guess), that's not the problem. The problem is, I'm worried that just fixing the bug and doing nothing else... would make "take Through the Crowd and swap with summoned Wayists 200 times per game turn to kill things with Mindrot" into a viable strategy, and that is an unfun strategy that should remain unviable.

Re: [1.6.7] Mindrot may not trigger from fast non-instant ac

Posted: Tue Sep 08, 2020 5:55 pm
by whitelion
Why not just cap it at something like 15 times per turn, like Raze?

Re: [1.6.7] Mindrot may not trigger from fast non-instant ac

Posted: Wed Sep 09, 2020 7:33 pm
by Elkan
It works differently in 1.7 beta so this is already addressed