Custom Combat antidote use causing aborts when antidote unavailable
If your custom combat script is set to cure poison via the special commands, then it will automatically try to buy anti-anti-antidote from galaktik and keep some in stock for mid combat use.
If galaktik is unavailable (ex: zombie slayer, nuclear autumn, or kingdom of exploathing paths) it will result in an error when trying to buy which results in aborted automation. As well as aborting something like
"adv * Daily Dungeon"
with the error message:
You need 1 more anti-anti-antidote to continue.
What do you want to happen instead?
I see two ways to fix it:
Originally Posted by fronobulax
1. If CCS fails to buy an antidote from galaktic, just give a warning instead of aborting. This does mean that if you are in a path that allows galaktic but are too poor to buy antidote that it could potentially go into combat without one which mean the attempt to get rid of poison mid combat fails. But that seems like a very rare case, and even if it does happened all that happens is that automation stops in the combat and you have to finish said combat manually. And its not like you could have bought one manually anyways in that scenario.
2. The CCS related function that automatically buys antidote should check path, and if it is in zombie slayer, nuclear autumn, or kingdom of exploathing then it should skip trying to buy antidote. This will need to be updated whenever a new path that doesn't allow galaktic is added
3. If you are relying on this setting to avoid getting beaten up, and antidotes are not available, forcing you to deal with it might save a lot more headache than pretending you don't actually care just because they aren't available. Forcing user interaction, likely leading to disabling the setting for that ascension, could be the best option.
I think I agree with that. If you can't buy antidotes, turn off that option in the Custom Combat window. Problem solved.
While I agree that this can be handled by changing settings, I will note that there are a couple places already where the path short circuits any attempt to consider antidotes. GLover is one such path.
That said, if I am correct in my belief that they can drop from a Cubeling in KoE or be pulled in softcore, then IMO mafia should not prevent one from being considered for use, if they are available.
A. I am not "pretending" that I don't care, I think that antidotes are cheap enough and used rarely enough that it is really not an issue. Additionally as I said, even if it happened it just results in auto combat aborting and you manually finishing the combat.
Originally Posted by lostcalpolydude
B. Option 2 is the one that addressed the possibility that it is actually an issue. Which was to only skip buying an antidote only in challange paths where buying antidotes is impossible. While still using them if you have one in inventory.
Exactly, yes. Even in paths where you can't buy antidotes you can sometimes get one as a drop or as a pull.
Originally Posted by fronobulax
Hence my suggestion to just not try to buy them from galaktik in paths where it is impossible, while still allowing their usage if you got one anyways.
To clarify a bit further.
Have a function canGalaktik();
That function determines if your path allows galaktik or not.
Then for the CCS, still have the function where it uses antidote if you are poisoned, but change the function that auto buys antidotes to only attempt buying if canGalaktik() == true
because otherwise it is attempting to buy from a non existent merchant and erroring out, aborting whatever you are doing at the time.
And its not like there is any reason why you would want to try and fail to buy from a shop you know doesn't exist in the path you are in.
At most you would want to include an option that aborts intentionally with a clear error message saying something like "CCS tried to buy an antidote but it cannot be bought in this path, disable CCS antidote use and try again". But even then that is not ideal as fronobulax pointed out as you could get antidote as a drop or a pull. (although I really wouldn't get antidote as a pull)
Last edited by taltamir; 11-12-2019 at 09:03 PM.
You are ignoring the scenario where a player will get beaten up, repeatedly, if they assume they can remove poison but fail to do so. Making it impossible to actually run turns without addressing the situation saves them from wasting lots of turns, since they can change their CCS, their gear, or something else. That is the type of player I assume the setting is for. Your solution of only skipping the purchase when they can't be bought doesn't prevent them from getting beaten up repeatedly.
You know you can just use moods to do this right? You don't need to rely on CCS. Hell write a .ash which deals with this yourself & set it to your preAdventureScript & you don't even need to use moods. There you go, full control over literally everything.
Unpoisoning between fights can be handled with moods or scripts, but the CCS special actions - including using antidotes to remove poisoning - are used while you are in combat. The "buying antidotes" thing happens between battles, of course, since you can't just run of to Galaktik in the middle of combat. Stocking up on antidotes between fights will abort automation if you can't get an antidote, which is what the OP was pointing out.
Personally, I've never wanted to use that; if a monster poisons me, I prefer to just kill the poisoner faster and unpoison myself with a mood or something when the combat is done, rather than spending a round using an antidote, only to get immediately poisoned again. Especially since I can unpoison myself with a skill, rather than buying an antidote.
But, KoLmafia tries to cater to many kinds of playstyle - not just mine.