Possessor interactions - Paradox

Where bugs go to lie down and rest

Moderator: Moderator

Post Reply
Message
Author
Dracos
Archmage
Posts: 405
Joined: Sun Jul 13, 2014 4:09 pm

Possessor interactions - Paradox

#1 Post by Dracos »

Alright, due to reports of issues with resting in possessed forms (http://forums.te4.org/viewtopic.php?f=5 ... 1&start=60) with the auto-rest addon, I'm experimenting with resting...

But I admit, I'm not too clear on what actually is and isn't supposed to work with Posessor's so raising what seems weird here:

If you possess something with paradox and spacetime tuning, you don't actually get spacetime tuning, so paradox steadily degrades to 0. But you still have it as a 'talent', so when you rest, it checks and sees the spacetime tuning effect triggered, inside actor:_M:waitTurn(). This seems to cause it to fire a maximum wait duration spacetimeTuning effect to go from 0 to preferred (300 by default). It is tuning toward zero (shedding paradox as a non-paradox mage would) so in reality it doesn't actually change the paradox any, and at the end of the wait, it triggers another right afterwards.

What seems like a bug:
Spacetime tuning doesn't seem to be able to be modified for possessed creatures with Paradox skills.
Spacetime tuning comes across as an effect, but doesn't modify paradox.

What I'm not sure of:
Are you supposed to be able to recover paradox in a possessed form? It's easy enough to check possession and prevent it, but not sure if that'd just be responding to buggy behavior by breaking the interaction totally.

Anyone able to give insight on what's supposed to be going on here?
ToME Tips - auto-generated spoilers for ToME. - someone else made. I find super awesome, so spreading as well.

Snarvid
Spiderkin
Posts: 592
Joined: Mon Mar 28, 2011 12:42 pm

Re: Possessor interactions - Paradox

#2 Post by Snarvid »

Yeah. You do get Spacetime Tuning, it just doesn't affix to your bar. Hit m and you'll see your list of skills, Spacetime Tuning is on there and works. Note that most hosts have inherent regeneration rate for their resources, including Paradox, so you have to set Tuning rather higher than you normally would because the moment you stop Tuning you'll start bleeding away Paradox. (Or at least that's how I interpret the result that it's default set to 300 but will drop to 0 over time.)

Search "Free Skills" in my Possessor Guide for more info on the skills you get that they don't tell you about. Searching "Paradox Mage" in the guide will get a discussion of the above effect.

Dracos
Archmage
Posts: 405
Joined: Sun Jul 13, 2014 4:09 pm

Re: Possessor interactions - Paradox

#3 Post by Dracos »

I see, I expected it to show up on the talent bar.

Hmm. ...

Oh:

I've possessed a weaver spider who has -15.4 regeneration of paradox. Spacetime tuning is +10, which means in actuality, every time it activates it basically fails.

I'm not sure whether that's because I'm cheating to quickly find complex rares or it'd normally have it.

In which case, there's two other things that seem off :)

1) This I think is a legitimate buggy behavior. startTuning defined in chronomancy/other.lua basically presumes that you have a 0 natural regen (because previously, no player character had natural regen of paradox I believe?) So sets itself up to run, presuming that will be that long to get to preferred paradox, but because a possessor can have natural regen, this number of turns can be off or completely wrong:

Code: Select all

	startTuning = function(self, t)
		if self.preferred_paradox and (self:getParadox() ~= self:getMinParadox() or self.preferred_paradox > self:getParadox())then
			local power = t.getTuning(self, t)
			if math.abs(self:getParadox() - self.preferred_paradox) > 1 then
				local duration = (self.preferred_paradox - self:getParadox())/power
				if duration < 0 then duration = math.abs(duration); power = power - (power*2) end
				duration = math.max(1, duration)
				self:setEffect(self.EFF_SPACETIME_TUNING, duration, {power=power})
			end
		end
	end,
Side effects would naturally be:
1) Resting to allow spacetime tuning to bring to desired target would fail.
2) If you do have a higher regen than 10, it basically will constantly be firing and failing.

Recommended (for just that problem anyway):

Code: Select all

	startTuning = function(self, t)
		if self.preferred_paradox and (self:getParadox() ~= self:getMinParadox() or self.preferred_paradox > self:getParadox())then
			local power = t.getTuning(self, t)
			if self.paradox_regen < 0 and power < math.abs(self.paradox_regen) and self.preferred_paradox > self:getParadox() then return end
			if math.abs(self:getParadox() - self.preferred_paradox) > 1 then
				local duration = (self.preferred_paradox - self:getParadox())/power
				if duration < 0 then duration = math.abs(duration); power = power - (power*2) end
				duration = math.max(1, duration)
				self:setEffect(self.EFF_SPACETIME_TUNING, duration, {power=power})
			end
		end
	end,
2) The above thing is almost certainly safe, since it basically prevents spacetime tuning from trying to work when it can't, but there's a further wonkiness:
Monsters probably spawn with 300 paradox (Or at least possessor ones do) and then, if they have higher regen, count down per turn.. basically meaning paradox mages are probably somewhere random with their paradox each turn normally, or 0 if you've done a decent rest anywhere on the floor.

High regen, effectively, means that spacetime tuning ends up broken/useless. Well anyhow:
Should paradox regen respect Preferred Paradox?
if paradox_regen < 0 and paradox > preferred_paradox:
regen
else if paradox_regen > 0 and paradox < preferred_paradox:
regen
else:
do nothing
(Not code since I didn't look where that takes place)

That would give it the effect that if you are possessed thing with high paradox regen, you can indeed run at high paradox, and in fact recover to your preferred paradox quicker.

Problem is that would probably instantly change the balance of almost all paradox mages. The above actually is an interesting reason why paradox mage adventurer/orcs are much more dangerous than run of the mill ones, since they are almost always encountered immediately, without rest.

Does the above reasoning make sense?
ToME Tips - auto-generated spoilers for ToME. - someone else made. I find super awesome, so spreading as well.

Snarvid
Spiderkin
Posts: 592
Joined: Mon Mar 28, 2011 12:42 pm

Re: Possessor interactions - Paradox

#4 Post by Snarvid »

I dunno about coding, above my pay grade. Also am not by computer.

Try setting your Spacetime Tuning between 700-900 and see where it settles when you rest. IIRC should be non-zero.

Dracos
Archmage
Posts: 405
Joined: Sun Jul 13, 2014 4:09 pm

Re: Possessor interactions - Paradox

#5 Post by Dracos »

Without that, it settles at zero, even if set at 1000. It makes sense since spacetime tuning is +/- 10 per turn, and Paradox regen is -15.1 per turn, so any turn it isn't triggering, it goes down a lot, and every turn it goes down, even if it starts at 1000 when swapping into the host.
ToME Tips - auto-generated spoilers for ToME. - someone else made. I find super awesome, so spreading as well.

Snarvid
Spiderkin
Posts: 592
Joined: Mon Mar 28, 2011 12:42 pm

Re: Possessor interactions - Paradox

#6 Post by Snarvid »

Hmmm. Well, I remember it working on some paradox using hosts, but right now the only ones I have on any of my possessors are fixed uniques or bosses and they don't have paradox regeneration (I think regen is set for these characters before their additional classes are determined, unlike Randbosses). It may be that I simply had PM hosts with regen < 10 in the past.

Whatever the fix is (if one is needed at all), it should be able to work for 3 groups:
- everyone who encounters a PM rare and doesn't want to be murdered by anomalies
- PM and TW players
- possessors in paradox using hosts

Probably in that order.

Post Reply