loathers / autoscend

An ascension script for KoLMafia
Other
45 stars 70 forks source link

Autoscend aborting out on Normal Palindome because it's out of pulls for Wet Stew #1487

Open VuvuzelaVirtuoso opened 3 months ago

VuvuzelaVirtuoso commented 3 months ago

Context

Expected/Desired Behavior

If unable to complete a portion of a quest, and with other doable quests remaining, Autoscend should move on to the next quest.

Current Behavior

When autoscend gets to task 50 (L11_palindome) and is in normal/softcore and lacks available pulls for Wet Stew, rather than bypassing task 50 and moving on to other ones like it does with other tasks (i.e. bypassing filthworms when you are afflicted with ELY), it aborts out with a generic error:

[ERROR] Palindome failure:
[ERROR] You probably just need to get a Mega Gem to fix this.
We have made too much progress in the Palindome and should not be here.

Failure Logs

[INFO] Turn(329): Starting with 5 left and 0 pulls left at Level: 13
[INFO] Encounter: -25.0 Exp Bonus: 36.244
[INFO] Meat Drop: 185.0 Item Drop: 85.0
[INFO] HP: 882/882, MP: 339/534, Meat: 73916
[INFO] Tummy: 15/15 Liver: 14/14 Spleen: 0/15
[INFO] ML: 118 control: 0
[INFO] Everything Looks Yellow: 95
[INFO] Delay between adventures... beep boop... 
Countdown: 1 second...
Waiting completed.
Preference _auto_thisLoopHandleFamiliar changed from true to false
Preference auto_familiarChoice changed from Adorable Seal Larva to
Preference _auto_tunedElement changed from cold to
[DEBUG] Resetting auto_maximize_current to 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,1.5weapon damage,0.75weapon damage percent,1.5elemental damage,2familiar weight,-equip little bitty bathysphere
Preference _auto_maximize_equip_acc1 changed from spring shoes to
[DEBUG] Attempting to execute task 0 LX_freeCombatsTask
[DEBUG] Attempting to execute task 1 woods_questStart
[DEBUG] Attempting to execute task 2 LX_unlockPirateRealm
[DEBUG] Attempting to execute task 3 catBurglarHeist
[DEBUG] Attempting to execute task 4 auto_breakfastCounterVisit
[DEBUG] Attempting to execute task 5 chateauPainting
[DEBUG] Attempting to execute task 6 LX_setWorkshed
[WARNING] You have no workshed to change to so leaving it as model train set
[DEBUG] Attempting to execute task 7 LX_galaktikSubQuest
[DEBUG] Attempting to execute task 8 L9_leafletQuest
[DEBUG] Attempting to execute task 9 L5_findKnob
[DEBUG] Attempting to execute task 10 L12_sonofaPrefix
[DEBUG] Attempting to execute task 11 LX_burnDelay
[DEBUG] Attempting to execute task 12 LX_summonMonster
[DEBUG] Attempting to execute task 13 LM_edTheUndying
[DEBUG] Attempting to execute task 14 LX_bugbearInvasion
[DEBUG] Attempting to execute task 15 LX_lowkeySummer
[DEBUG] Attempting to execute task 16 L11_aridDesert
[DEBUG] Attempting to execute task 17 L11_shenStartQuest
[DEBUG] Attempting to execute task 18 finishBuildingSmutOrcBridge
[DEBUG] Attempting to execute task 19 LX_goingUnderground
[DEBUG] Attempting to execute task 20 LX_useBreathitinCharges
[DEBUG] Attempting to execute task 21 LX_guildUnlock
[DEBUG] Attempting to execute task 22 LX_unlockDesert
[DEBUG] Attempting to execute task 23 LX_lockPicking
[DEBUG] Attempting to execute task 24 LX_fatLootToken
[DEBUG] Attempting to execute task 25 LX_steelOrgan
[DEBUG] Attempting to execute task 26 LX_spookyravenManorFirstFloor
[DEBUG] Attempting to execute task 27 L5_getEncryptionKey
[DEBUG] Attempting to execute task 28 L5_findKnob
[DEBUG] Attempting to execute task 29 L12_islandWar
[INFO] Delaying filthworms because Everything Looks Yellow
[DEBUG] Attempting to execute task 30 L11_blackMarket
[DEBUG] Attempting to execute task 31 L11_forgedDocuments
[DEBUG] Attempting to execute task 32 L11_mcmuffinDiary
[DEBUG] Attempting to execute task 33 L11_getBeehive
[DEBUG] Attempting to execute task 34 L2_mosquito
[DEBUG] Attempting to execute task 35 LX_unlockHiddenTemple
[DEBUG] Attempting to execute task 36 L6_dakotaFanning
[DEBUG] Attempting to execute task 37 L11_unlockHiddenCity
[DEBUG] Attempting to execute task 38 L11_hiddenCityZones
[DEBUG] Attempting to execute task 39 L11_hiddenCity
[INFO] Target hp => 882 - Considering restore options at 882/882 HP with 339/534 MP
[INFO] Active Negative Effects => []
[INFO] The idden [sic] apartment!
[INFO] Hidden Apartment Progress: 0
[DEBUG] Don't know how to unlock The Hidden Apartment Building
[WARNING] Can't get to The Hidden Apartment Building right now.
[DEBUG] Attempting to execute task 40 LX_spookyravenManorSecondFloor
[INFO] Spookyraven: Bathroom
[DEBUG] Attempting to execute task 41 L11_mauriceSpookyraven
[DEBUG] Attempting to execute task 42 L11_talismanOfNam
[DEBUG] Attempting to execute task 43 L10_plantThatBean
[DEBUG] Attempting to execute task 44 L10_rainOnThePlains
[INFO] Castle (Top Floor) - Finishing L10 Quest.
[DEBUG] Attempting to execute task 45 L9_chasmBuild
[DEBUG] Attempting to execute task 46 L9_highLandlord
[DEBUG] Attempting to execute task 47 L8_trapperQuest
[DEBUG] Attempting to execute task 48 L7_crypt
[DEBUG] Attempting to execute task 49 L6_friarsGetParts
[DEBUG] Attempting to execute task 50 L11_palindome
[INFO] In the palindome : emodnilap eht nI
[ERROR] Palindome failure:
[ERROR] You probably just need to get a Mega Gem to fix this.
We have made too much progress in the Palindome and should not be here.
Stack trace:
at L11_palindome (level_11.ash:3074)
at process_tasks (autoscend.ash:1692)
at doTasks (autoscend.ash:1925)
at auto_begin (autoscend.ash:2041)
at safe_preference_reset_wrapper (autoscend.ash:2071)
at safe_preference_reset_wrapper (autoscend.ash:2078)
at safe_preference_reset_wrapper (autoscend.ash:2078)
at safe_preference_reset_wrapper (autoscend.ash:2078)
at main (autoscend.ash:2109)

vuvuzela_virtuoso_20240824.txt

VuvuzelaVirtuoso commented 3 months ago

I rambled a bunch already about this in the autoscend channel, but I tried to mess around with things like, under if(!in_hardcore() && (item_amount($item[Wet Stunt Nut Stew]) == 0) && canPull($item[wet stew])) in level_11.ash, adding a boolean delayStew and stuff like

    if(pulls_remaining() == 0)
                {
                    auto_log_info("No pulls available");
                    delayStew = true;
                }   
                if(delayStew)
                {
                    auto_log_info("Delaying Palindome because I'm out of pulls for Wet Stew");
                    return false;

But unfortunately, I haven't been able to figure out how to placate the script to not error out because it's stuck at pref questL11Palindome = step3 and unable to get the Mega Gem due to lack of pulls, let alone display the correct debug info in the GCLI and skip to the next task.

VuvuzelaVirtuoso commented 3 months ago

...as an aside, I noticed while looking at this that some of the other tasks have a little less "elegant" of (mostly debug comment) handling than Filthworms for when they're unable to be completed and are thus bypassed, primarily due to lacking pulls to tackle them with. Notably:

task 40 LX_spookyravenManorSecondFloor which, when bypassed, just says [INFO] Spookyraven: Bathroom rather than giving any info (but is seemingly daylocked, looking at level_11.ash) task 39 L11_hiddenCity which just seems to get bypassed on virtue of the fact that it can't get to the Hidden Apartment Building because in softcore, it won't proceed unless it has a machete, which it ran out of pulls for in my run, but based on the error message it doesn't get bypassed because it recognizes that it doesn't have pulls but rather solely because it can't get to the Hidden Apartment when it tries to adventure there anyway--functionally it works anyway, but could maybe be made a bit more resilient. task 44 L10_rainOnThePlains which just says [INFO] Castle (Top Floor) - Finishing L10 Quest. but then continues on to the next task anyway, when in reality I believe it's just being skipped here because of being out of NC forces+being out of pulls for a Mohawk Wig.

Mostly just noting this here for documentation's sake since they're not breaking anything; I'll gladly try my hand at fixing some of these myself when I have some more time next week to try to address the specific conditions leading to them being skipped, rather than filing a separate issue for them (...and when I maybe have a better idea on how to solve them).