[b21] Shield of Light doesn't play well with burning hex

Where bugs go to lie down and rest

Moderator: Moderator

Post Reply
Message
Author
eulf
Cornac
Posts: 37
Joined: Sun Feb 13, 2011 6:53 am

[b21] Shield of Light doesn't play well with burning hex

#1 Post by eulf »

After being hit with a burning hex and curse of death, after trying to use one of my skills I got hit with a massive spike of lag, and ended up with about +4k max positive energy each time. I'm guessing it's due to Shield of Light and Burning Hex going into a bit of a loop, with the +max positive energy coming from Shield of Lights deactivations. I was unable to actually deactivate Shield of Light until I had cleared the curses off, afterwards everything was peachy.

edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Re: [b21] Shield of Light doesn't play well with burning hex

#2 Post by edge2054 »

I think there's a way to fix Shield of Light so it doesn't do this but upon testing I think the real issue is that Burning Hex triggers when sustains are deactivated (which has caused issues for people when leveling up and may cause problems with other talents that deactivate on damage).

If Burning Hex shouldn't trigger when sustains deactivate this is just a matter of removing the trigger lines from all the ab.sustain deactivates in actor (lines 1840 - 1868).

I'll look at Shield of Light though and see if I can figure out a way to fix it so it doesn't cause any future recursions.

*edit* And this should fix Shield of Light for anyone that wants to fix their local copy (Actor 1018). I'm going to send DG a diff with an updated Shield of Light though that will include a gamelog message when it crumbles and won't heal when positive energy is already zero.

Code: Select all

	if value > 0 and self:isTalentActive(self.T_SHIELD_OF_LIGHT) then
		if value <= 2 then
			drain = value
		else
			drain = 2
		end
		self:incPositive(- drain)
		if self:getPositive() <= 0 then
			self:forceUseTalent(self.T_SHIELD_OF_LIGHT, {ignore_energy=true})
			self:heal(self:combatTalentSpellDamage(self.T_SHIELD_OF_LIGHT, 5, 25), self)
		else
			self:heal(self:combatTalentSpellDamage(self.T_SHIELD_OF_LIGHT, 5, 25), self)
		end
	end

Post Reply