Bug If healing HP fails due to lag, etc., mafia retries with next healing method

antimarty

Member
I occasionally see errors like this when an attempt to heal fails:
Casting Cannelloni Cocoon 1 times...
Encountered lag problems.
Casting Tongue of the Walrus 35 times...
Encountered lag problems.
You ran out of restores.

(where my only checked healing methods were Cocoon and Tongue).

I think the retry on this kind of error should be another attempt at the preferred method (or just quit); there isn't any reason to think the secondary method would somehow work better. One time when the issue went away between tries, it blew through all my MP casting tongue over and over.

This is r10010.
 
I agree. I'd like to see it either retry or abort, rather than potentially waste a ton of resources on an inferior method. This can be especially devastating in-run, when lag converts a few hundred in MMJ to several thousand in Doc Galaktik or something.
 

lostcalpolydude

Developer
Staff member
UseSkillRequest.lastUpdate is set to "Encountered lag problems." RecoveryManager.recover() (line 382) has
Code:
					if ( last >= current )
					{
						++indexToTry;
					}
That block could check UseSkillRequest.lastUpdate.

More generally, I thought mafia moved toward aborting when an empty page was returned as the response, so maybe UseSkillRequest.processResults() could check for that value in lastUpdate. Or UseSkillRequest.parseResponse() could return true instead of false for that case, which would mean removing a chunk of logic from parseResponse().
 

lostcalpolydude

Developer
Staff member
Here is a patch that probably changes this to how it should work, aborting if the first attempt appears to fail.
 

Attachments

  • failedRestore.patch
    726 bytes · Views: 57
Top