Bug - Confirmed Maximizer didn't equip a weapon

Found and fixed the password hash.

https://github.com/kolmafia/kolmafia/pull/2203 has a single passing test added that to the best of my ability demonstrates the Maximizer selecting and equipping a weapon. I am hoping for feedback. If that test is the best we can do in a test that doesn't actually execute requests then I need to instrument the code and run it live. Otherwise my quest for a failing test can continue with some hope of success :-)
 
It looks like the test is calling the 2 parameter version of maximize. It looks like Autoscend is calling the 4 param version .

Java:
void equipMaximizedGear()
{
    finalizeMaximize();
    maximize(get_property("auto_maximize_current"), 2500, 0, false);
    // below code is to help diagnose, debug and workaround the intermittent issue where the maximizer fails to equip anything in hand slots
    // if this is confirmed as fixed by mafia devs, remove the below code.
    if (equipped_item($slot[weapon]) == $item[none] && my_path() != $path[Way of the Surprising Fist]) {
        // do we actually have a weapon we can equip?
        item equippableWeapon = $item[none];
        foreach it in get_inventory() {
            if (it.to_slot() == $slot[weapon] && can_equip(it)) {
                // found a weapon and we should be able to equip it.
                equippableWeapon = it;
                break;
            }
        }
        if (equippableWeapon != $item[none]) {
            auto_log_error("It looks like the maximizer didn't equip any weapons for you. Lets dump some debugging info to help the KolMafia devs look into this.");
            addToMaximize("2 dump"); // maximizer will dump a bunch of stuff to the session log with this
            maximize(get_property("auto_maximize_current"), 2500, 0, false);
            removeFromMaximize("2 dump");
            if (equipped_item($slot[weapon]) == $item[none]) {
                // workaround. equip a weapon & re-running maximizer appears to fix the issue.
                equip(equippableWeapon);
                maximize(get_property("auto_maximize_current"), 2500, 0, false);
                auto_log_error("No weapon was equipped by the maximizer. If you want to report this to the mafia devs at kolmafia.us include your session log. We have attempted a work around.");
            }
        }
    }
 
The ash 2 parameter version calls an internal 5 parameter version with zeros for the price data meaning the max price is zero and the maximizer should not consider buying.

The ash 4 parameter version calls an internal 5 parameter version that interprets the third parameter as zero as meaning the maximizer should not consider buying.

Regardless of how it got there the internal five parameter version calls an internal four parameter version which does all of the work.

So both versions get to the same code.

Since zero for price level makes the maximum price irrelevant

maximize(get_property("auto_maximize_current"), 2500, 0, false);

is the same as

maximize(get_property("auto_maximize_current"), 0 , 0, false);

which is the same as the two parameter call

maximize(get_property("auto_maximize_current"), false);

All that said RunTimeLibraryTest in the draft PR now has itShouldMaximizeAndEquipSelectedWeapon4Parameter which is a copy of itShouldMaximizeAndEquipSelectedWeapon that calls the 4 parameter version instead of the two parameter version.

I may have discovered a case where two tests that I think should be identical are not. I will be figuring that out :-)
 
Well. There is a helper, getBoosts that reports what the maximizer recommends. It turns out it references a static member of maximizer and one of my tests was incorrectly constructed as a result. Curious.
 
Current thinking and tests and a PR may change.

There are two obvious causes of the maximizer being run and failing to equip a weapon. One is that the maximizer did not select a weapon. I originally thought the "effective" keyword was involved but I no longer think so. I am pretty sure I do not have data or a test where no weapon is selected and that is the "wrong" answer but in light of things I now believe, I will revisit that.

The other case is the selected weapon is not equipped. I thought I had a lot of instances where this might be happening but it turns out that my tests do not actually allow/force the Equip command to execute to the point that testing whether the item is equipped passes. Checking Boosts will show what was selected but the current implementation is that if the equip command is emitted then the item is no longer listed in Boosts.

So I am going to revisit/clean up tests so that checking Boosts is a surrogate for selection but not actually equipping, investigate failures to select that still exist and see if I can get a repeatable failure to equip test. If not then I guess I need to run live in the debugger or find a test that simulates more aspects of Equip.
 
Cleaned up the PR. One failing, disabled, test that I want to understand. Everything else works as expected. The new tests are probably redundant but someone can ding me on that once it goes back for review :-)

Boosts are not the thing to look at if you are speculating. Once I realized that some of the tests became irrelevant and were deleted. I did keep the change to getBoosts to return a copy of Boosts because there was leakage when I didn't even though none of the current tests fail because of that.
 
  • Like
Reactions: ziz
That was awkward. I had a breakpoint where I thought a weapon had been selected. I had another where the equip command was emitted. The first fired as expected. The second didn't. So now I have to figure out the execution path and decide whether there is unnoticed or unexpected code keeping the second from executing or whether it is just operator error.
 
Debugger was not providing any insight.

The "2, dump" from autoscend was not as helpful as I would like because I wasn't mirroring and the output did not go to the session log. But just running and dumping I notice "2, dump" is offering to put things in places where they don't belong - The Nuge's favorite crossbow as SLOT ACCESSORY3, for example. It could be that I am entirely misunderstanding how to read the dump output. But it could also be that the mapping between equipment and SLOTS is getting hosed.
 
Well the weird slot assignment is deliberate. It is part of a scheme to keep the number of slots manageable.

I keep finding examples where no weapon and weapon score the same and so no weapon is selected.
 
Well the weird slot assignment is deliberate. It is part of a scheme to keep the number of slots manageable.

Someone mentioned recently that this was long-ago decided for early-Mafia memory-efficiency reasons.

Is that still a relevant concern now, fifteen years on? (ref: the commit that says it introduced Modifier Maximizer was made on Jul 13, 2009) That is, obviously memory efficiency is always a concern; is this specific efficiency choice still serving a more valuable purpose than simpler/clearer/easier to debug code would be at this point?
 
Someone mentioned recently that this was long-ago decided for early-Mafia memory-efficiency reasons.

Is that still a relevant concern now, fifteen years on? (ref: the commit that says it introduced Modifier Maximizer was made on Jul 13, 2009) That is, obviously memory efficiency is always a concern; is this specific efficiency choice still serving a more valuable purpose than simpler/clearer/easier to debug code would be at this point?

As a philosophy discussion that is a good question and it is one of several areas where it things were newly done today there would be different decisions. On a practical basis the Maximizer is not something that is easily understood or changed. If I had the resources I would consider reformulating the entire process as a (mathematical) optimization process solvable by any one of several algorithms. But there is no guarantee that all of the existing use cases could be captured in such a formulation.

If I can identify a problem caused by reusing slots then I will certainly consider not reusing them as a possible solution. But that may end up reducing code complexity and in creasing runtime so it might not be practical. I have only scratched the surface but the only bad thing I have observed is that the output from "2 dump" is confusing and hard to interpret.

Right now every case I have found where a weapon is not equipped is caused by the maximizer not choosing a weapon. In most of those cases the maximizer is correct - using the "best" weapon does not produce a better score than not using it. I need to review some of the cases because it is possible that I did not capture them as expected. I am also thinking I need to put in some logging statements since the debugger can get tedious.
 
Everything you think you know is probably wrong.

I went back to the data in the OP and decided to make a test that replicated it. I thought I had done something similar but when you run out of ideas...

I also unconditionally forced "2 dump" for the WEAPON slot only, whenever the code was executed.

So my test chooses to equip a disco ball and correctly emits the commands to do so. But my print only shows NONE and toy accordion being considered as weapons (and suggesting the accordion).

A difference between the command line and the GUI is that the command line will prune the list of recommendations as they are equipped.

So am I looking at the wrong bits of code? Is "2 dump" not the definitive source for what was recommended? In spite of my efforts do my tests exercise a different code path than running live?

Not done yet but...
 
  • Wow
Reactions: ziz
Still here. I do not have a repeatable case - manually or via tests - where the Maximizer recommends a weapon and then it is not equipped. I have several cases where a weapon is not recommended and I believe that recommendation is correct. I have questions about the sequencing of things in code. For example sometimes it seem like "2 dump" doesn't tell me everything I expect and I don't know whether that is my understanding or a code glitch. But I'm not making progress and what I really need to do is block out several hours and decide what I know, what I don't know and what to do about it.
 
  • Like
Reactions: ziz
Welcome to the snail races. As far as I can tell the cases where the maximizer does not equip a weapon are cases where the weapon contributes nothing to whatever is being scored. So now I have to figure out why the weapon does not contribute and then decide whether that is correct or not. For example I wonder if something is prematurely excluding weapons from consideration. No answers yet but not giving up.
 
Accountability.

I still do not have a reproducible case where the maximizer recommends a weapon, is allowed to equip and fails to equip the recommended weapon. Still have some things to try and help find such a case, but...
 
  • Like
Reactions: ziz
Still no viable test case where a weapon is selected but not equipped. I still poke at things once in a while but since I'm not running autoscend a lot I don't get reminded that there is still a concern as often as I perhaps should. My project to make a MiniMaximzer that only considered on hand equipment, basic keywords and iterated through all combinations has stalled because scoring a set of equipment is harder than I first thought. But I'd still like to see it work since some of the issues I have to think about are helping me think about the Real Maximizer and how it should behave.
 
  • Like
Reactions: ziz
My lack of progress contributed to my lack of enthusiasm. But with a new path I have been running autoscend again and it still happens. I remain convinced that there are times when mathematically there is no reason to equip a weapon. So if anyone has a case where they can give me a maximizer string, what it equips and a score, and a weapon that, when equipped, increases the score then I have something to sink my teeth into
 
Hi! Passing ignoramus here, who's interested in and (mildly) affected by this issue.

First of all, thank you for taking time out of your day to think about this. I really appreciate that you are.

I'm in a standard HC Sauceror run. Here's what I see (with boldface added by me). As an ignoramus, I don't understand what the relevance of STICKER3 slot vs the WEAPON slot is, but in an ideal world I'd like Maximiser to equip one of the spell damage weapons, and the numbers for them are higher than being unarmed. Heck, I'd even be happy with it equipping one of the melee weapons so I could stab things more effectively if I had to, and I'm not clear why they're rated equal to being unarmed. Deciding to wield the turtle totem of all things, then straight away taking off seems (again, to me - an ignoramus) to be an odd choice.

[INFO] Starting preadventure script...
[DEBUG] Adventuring at The Spooky Forest
[DEBUG] lookupFamiliarDatafile is checking for type [item]
Preference auto_lastFamiliarLookupType changed from stat to item
[DEBUG] lookupFamiliarDatafile is checking for type [drop]
Preference auto_lastFamiliarLookupType changed from item to drop
[DEBUG] Could not find any "drop" type familiars!
[DEBUG] lookupFamiliarDatafile is checking for type [stat]
Preference auto_lastFamiliarLookupType changed from drop to stat
Preference auto_familiarChoice changed from to Miniature Sword & Martini Guy
Preference _auto_thisLoopHandleFamiliar changed from false to true
Familiar weight: KoL = 31 KoLmafia = 30
[INFO] Trying to provide 25 negative combat rate, with equipment
[DEBUG] We currently have 15.0, so we need an extra 10.0
[DEBUG] Adding "-200combat 25max" to current maximizer statement
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,-200combat 25max
Maximizing...
12 combinations checked, best score 4,626.12
[DEBUG] With gear we can get to 15.0
Familiar weight: KoL = 31 KoLmafia = 30
[INFO] I think we're good to go to apply Ur-Kel's Aria of Annoyance
Casting Ur-Kel's Aria of Annoyance 1 times...
You acquire an effect: Ur-Kel's Aria of Annoyance (10)
Ur-Kel's Aria of Annoyance was successfully cast.
Familiar weight: KoL = 31 KoLmafia = 30
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,-200combat 25max
Maximizing...
12 combinations checked, best score 4,665.95
[ERROR] It looks like the maximizer didn't equip any weapons for you. Lets dump some debugging info to help the KolMafia devs look into this.
[DEBUG] Adding "2 dump" to current maximizer statement
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,-200combat 25max,2 dump
Maximizing...
Outfits [Bugbear Costume, Knob Goblin Elite Guard Uniform, Hot and Cold Running Ninja Suit, eXtreme Cold-Weather Gear, Mining Gear, Swashbuckling Getup, Crimbo Duds, Star Garb, 8-Bit Finery, Bow Tux, Gnauga Hides, Cloaca-Cola Uniform, Dyspepsi-Cola Uniform, Arboreal Raiment, Encephalic Ensemble, Glad Bag Glad Rags, Antique Arms and Armor, Terrycloth Tackle, Tropical Crimbo Duds, Bounty-Hunting Rig, Black Armaments, Palmist Paraphernalia, Tapered Threads, Roy Orbison Disguise, Pyretic Panhandler Paraphernalia, Dire Drifter Duds, Dwarvish War Uniform, Pork Elf Prizes, Slimesuit, Primitive Radio Duds, Vestments of the Treeslayer, Frigid Northlands Garb, Legendary Regalia of the Chelonian Overlord, Legendary Regalia of the Groovelord, Legendary Regalia of the Master Squeezeboxer, BRICKOfig Outfit, Knight's Armor, Fancy Tux, Transparent Trappings, Unblemished Uniform, Blasphemous Bedizenment, Uncle Hobo's Rags, Bits o' Honey, Luniform, Sucker Samurai Suit, Wax Wardrobe, Hot Daub Ensemble, Pinata Provisions, Oil Rig, Animelf Apparel, Seafaring Suit, Raiments of the Final Boss, Violent Vestments, Hateful Habiliment, Dreadful Werewolf Suit, Warbear Dress Armor, Space Beast Furs, Xiblaxian Stealth Suit, Topiaria, Synthetic Suit, Ceramic Suit, Wicker Wear, Bakelite Brigandine, Aeroutfit, Gabardine Guise, Fiberglass Finery, Dinsey's Exoskeleton, The Jokester's Costume, Eldritch Equipage, Spant Armor, Meteor Masquerade, FantasyRealm Wizard's Outfit, FantasyRealm Thief's Outfit, Slime Enslamble, Mutant Parts Apparel, Marble Materials, Velour Vestments, Stained Glass Suit, Loofah Loungewear, Flagstone Finery, Whittled Wearables, Mushroom Masquerade, Guzzlr Uniform, Lathed Livery, Trainbot Trappings, Shadow Shuit, Dental Drip, Elf Guard Fatigues, Crimbuccaneer rigging, Moss Mufti]
SLOT HAT
[Hollandaise helmet (4,655), coconut shell (4,659), fire (4,660), chef's hat (4,665)]
[chef's hat]
SLOT WEAPON
[(none) (4,318), toy accordion (4,318), antique accordion (4,318)]

[antique accordion]
SLOT OFFHAND
[stuffed snowy owl (4,318), stuffed scary death orb (4,318), (none) (4,318), magical ice cubes (4,318)]
[magical ice cubes]
SLOT SHIRT
[Jurassic Parka (pterodactyl mode) (4,665)]
[Jurassic Parka (pterodactyl mode)]
SLOT PANTS
[old sweatpants (4,662), Knob Goblin pants (4,665)]
[Knob Goblin pants]
SLOT ACCESSORY1
[continuum transfunctioner (4,665), flask flops (4,665)]
[flask flops, continuum transfunctioner]
SLOT ACCESSORY2
[(none) (4,318), turtle totem (4,318), pasta spoon (4,318), saucepan (4,318), asparagus knife (4,318), skeleton bone (4,318), boot knife (4,318), cardboard katana (4,318), little paper umbrella (4,319), Knob Goblin scimitar (4,319), Knob Goblin tongs (4,319)]
[Knob Goblin tongs]
SLOT FAMILIAR
[astral pet sweater (4,665)]
[astral pet sweater]
SLOT STICKER3
[(none) (4,318), turtle totem (4,318), pasta spoon (4,318), saucepan (4,318), asparagus knife (4,318), skeleton bone (4,318), boot knife (4,318), cardboard katana (4,318), little paper umbrella (4,319), Knob Goblin scimitar (4,319), Knob Goblin tongs (4,319)]
[Knob Goblin tongs, Knob Goblin scimitar]
12 combinations checked, best score 4,665.95
[DEBUG] Removing "2 dump" from current maximizer statement
Wielding turtle totem...
Familiar weight: KoL = 31 KoLmafia = 30
Equipment changed.
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,-200combat 25max
Maximizing...
20 combinations checked, best score 4,665.95
Taking off turtle totem...
Familiar weight: KoL = 31 KoLmafia = 30
Equipment changed.
[ERROR] No weapon was equipped by the maximizer. If you want to report this to the mafia devs at kolmafia.us include your session log. We have attempted a work around.
 
Last edited:
And here's the point (I've been watching it like a hawk!) where it decided it was OK with equipping weapons - when I got 5 turns of Ultrahydrated from Book of Facts, which prompted it to get and equip the UV-resistant compass. If previous experience is any guide, I will adventure unarmed no longer.

[ERROR] No weapon was equipped by the maximizer. If you want to report this to the mafia devs at kolmafia.us include your session log. We have attempted a work around.
Checkpoints cleared.
[DEBUG] Going into High or Standard ML Zone with ML: 22
Preference _auto_tunedElement changed from to sleaze
[INFO] Target hp => 243 - Considering restore options at 162/243 HP with 14/286 MP
[INFO] Active Negative Effects => []
[DEBUG] Recalculating cached restore objective values.
[INFO] Using skill cannelloni cocoon as restore.
[INFO] Target mp => 20 - Considering restore options at 162/243 HP with 14/286 MP
[INFO] Active Negative Effects => []
[DEBUG] Recalculating cached restore objective values.
[INFO] Using item soda water as restore.
Using 1 soda water...
You gain 3 Mana Points
Preference _concoctionDatabaseRefreshes changed from 339 to 340
Finished using 1 soda water.
[DEBUG] Recalculating cached restore objective values.
[INFO] Using item soda water as restore.
Using 1 soda water...
You gain 5 Mana Points
Preference _concoctionDatabaseRefreshes changed from 340 to 341
Finished using 1 soda water.
Casting Cannelloni Cocoon 1 times...
You gain 81 hit points
Cannelloni Cocoon was successfully cast.
[INFO] Target mp => 32 - Considering restore options at 243/243 HP with 2/286 MP
[INFO] Active Negative Effects => []
[DEBUG] Recalculating cached restore objective values.
[INFO] Using item magical mystery juice as restore.
Purchasing magical mystery juice (1 @ 95)...
You spent 95 Meat
You acquire an item: magical mystery juice
Preference _concoctionDatabaseRefreshes changed from 341 to 342
Purchases complete.
Using 1 magical mystery juice...
You gain 22 Mana Points
Preference _concoctionDatabaseRefreshes changed from 342 to 343
Finished using 1 magical mystery juice.
[DEBUG] Recalculating cached restore objective values.
[INFO] Using item magical mystery juice as restore.
Purchasing magical mystery juice (1 @ 95)...
You spent 95 Meat
You acquire an item: magical mystery juice
Preference _concoctionDatabaseRefreshes changed from 343 to 344
Purchases complete.
Using 1 magical mystery juice...
You gain 22 Mana Points
Preference _concoctionDatabaseRefreshes changed from 344 to 345
Finished using 1 magical mystery juice.
Preference auto_priorLocation changed from The Copperhead Club to Noob Cave
[INFO] Pre Adventure at Noob Cave done, beep.
Preference _auto_inf_session_adv changed from 141 to 142
Resetting mind control device...
Mind control device reset.
[INFO] [Sauceror] @ path of [Standard]
[INFO] HP: 243/243, MP: 46/286, Meat: 8132, Soulsauce: 4
[INFO] mus: 68+10. mys: 121+10. mox: 54+6
[INFO] Familiar: Gelatinous Cubeling @ 6 + 25lbs.
[INFO] ML: 32 Encounter: 0.0 Init: 60.0
[INFO] Exp Bonus: 9.9685 Meat Drop: 110.0 Item Drop: 129.29164564412514
[INFO] Resists: 5.0/7.0/5.0/5.0/5.0
[INFO] equipment: hat=[chef's hat]. weapon=[none]. off-hand=[none]. back=[black cloak]. shirt=[Jurassic Parka]. pants=[Knob Goblin pants]. acc1=[Bram's choker]. acc2=[ghost of a necklace]. acc3=[bejeweled pledge pin]. familiar=[astral pet sweater].
[INFO] About to start a combat indirectly at Noob Cave... (3) accesses required.
Preference _genieFightsUsed changed from 2 to 3
Preference lastAdventure changed from The Copperhead Club to None
Preference nextAdventure changed from Noob Cave to None

[143] genie summoned monster
Preference lastAdventure changed from None to The Copperhead Club
Preference _concoctionDatabaseRefreshes changed from 345 to 346
Preference lastEncounter changed from Adjust your Parka to Baa'baa'bu'ran
Encounter: Baa'baa'bu'ran
Preference _lastCombatStarted changed from 20240828174114 to 20240828174209
Round 0: Vulgarian wins initiative!
Round 1: Schluuuurt dissolves some of your opponent's more important bits, leaving him weaker.
Round 1: Baa'baa'bu'ran drops 15 attack power.
Round 1: Baa'baa'bu'ran drops 15 defense.
Round 1: Your toy train moves ahead to the Logging Mill. You hear the saw running and buzzing and a perfectly formed plank slides out.
Preference trainsetPosition changed from 115 to 116
You acquire an item: weirdwood plank
Preference nextAdventure changed from None to The Copperhead Club
[INFO] autoAdvBypass has encountered a combat! (param: 'auto_combatHandler')
Preference _auto_combatTracker_MortarRound changed from 1 to -1
[INFO] auto_combat initialized fighting [Baa'baa'bu'ran]: atk = 87. def = 105. HP = 90. LA = 32
Preference auto_combatHP changed from 122 to 243
Preference _auto_combatState changed from to (sk4034)
Round 1: Vulgarian casts CURSE OF WEAKSAUCE!
Round 2: Baa'baa'bu'ran drops 5 attack power.
Round 2: Baa'baa'bu'ran drops 5 defense.
Preference auto_diag_round changed from 0 to 1
Preference _auto_combatTracker_MortarRound changed from -1 to 1
Preference _auto_combatState changed from (sk4034) to (sk4034)(sk3007)
Round 2: Vulgarian casts STUFFED MORTAR SHELL!
Round 3: Baa'baa'bu'ran drops 6 attack power.
Round 3: Baa'baa'bu'ran drops 6 defense.
Round 3: You lose 7 hit points
Preference auto_combatHP changed from 243 to 236
Preference auto_diag_round changed from 1 to 2
Round 3: Vulgarian uses the seal tooth!
Round 4: Baa'baa'bu'ran takes 1 damage.
Round 4: Baa'baa'bu'ran takes 155 damage.
Round 4: Baa'baa'bu'ran drops 5 attack power.
Round 4: Baa'baa'bu'ran drops 6 defense.
Round 4: Vulgarian wins the fight!
After Battle: You gain 46 Mana Points
After Battle: Nine out of ten cryptozoologists agree that the Baa'baa'bu'ran keeps itself hydrated by storing emergency water in its butt, like a camel.
You acquire an effect: Ultrahydrated (5)
After Battle: Schluuuurt slurps around, picking up discarded trash and bits.
You acquire an item: stone wool
You acquire an item: stone wool
After Battle: Schluuuurt shudders and disgorges an item with a wet squelch.
You acquire an item: soda water
After Battle: You gain 8 Strongness
After Battle: You gain 22 Wizardliness
After Battle: You gain 14 Roguishness
You gain 5 Soulsauce
Preference lastCopyableMonster changed from black panther to Baa'baa'bu'ran
Preference cubelingProgress changed from 38 to 39
Preference _concoctionDatabaseRefreshes changed from 346 to 347
[DEBUG] Running auto_post_adv.ash
You gain 15 Mana Points
Soul Food was successfully cast.
Casting Rage of the Reindeer 1 times...
You acquire an effect: Rage of the Reindeer (10)
Rage of the Reindeer was successfully cast.
Casting Astral Shell 1 times...
You acquire an effect: Astral Shell (5)
Astral Shell was successfully cast.
[DEBUG] Can not get Inscrutable Gaze expression as we are already emoting.
[DEBUG] Can not get Wry Smile expression as we are already emoting.
[DEBUG] Can not get Inscrutable Gaze expression as we are already emoting.
[DEBUG] Can not get Wry Smile expression as we are already emoting.
[DEBUG] Can not get Patient Smile expression as we are already emoting.
[DEBUG] Can not get Knowing Smile expression as we are already emoting.
[INFO] Post Adventure done, beep.
Preference auto_copies changed from (1:War Frat 151st Infantryman:Calculate the Universe:0), (1:Recall Facts. Monster Habitats:modern zmobie:51) to (1:War Frat 151st Infantryman:Calculate the Universe:0), (1:Recall Facts. Monster Habitats:modern zmobie:51), (1:Baa'baa'bu'ran:pocket wish:143)
Preference auto_wishes changed from to (1:pocket wish:to fight a Baa'baa'bu'ran:143)
[DEBUG] Did summon Baa'baa'bu'ran via wishing
[INFO] Turn(143): Starting with 16 left at Level: 11
[INFO] Encounter: 0.0 Exp Bonus: 33.9485
[INFO] Meat Drop: 110.0 Item Drop: 129.29164564412514
[INFO] HP: 238/243, MP: 75/286, Meat: 8132
[INFO] Tummy: 15/15 Liver: 11/14 Spleen: 1/15
[INFO] ML: 32 control: 10
[INFO] Soulsauce: 4
[INFO] Ultrahydrated: 4
[INFO] Delay between adventures... beep boop...
Countdown: 1 second...
Waiting completed.
Preference _auto_thisLoopHandleFamiliar changed from true to false
Preference auto_familiarChoice changed from Gelatinous Cubeling to
Preference _auto_tunedElement changed from sleaze 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,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent
[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
[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] Thinking about summoning ninja snowman assassin
[DEBUG] Checking if we can summon ninja snowman assassin
[DEBUG] Checking if we can summon smut orc pervert
[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
Verifying ingredients for UV-resistant compass (1)...
Purchasing UV-resistant compass (1 @ 1 Shore Inc. Ship Trip Scrip)...
Visiting the The Shore, Inc. Gift Shop...
You acquire an item: UV-resistant compass
Preference _concoctionDatabaseRefreshes changed from 347 to 348
The Shore, Inc. Gift Shop successfully looted!
Successfully created UV-resistant compass (1)
[INFO] Turn(143): Starting with 16 left at Level: 11
[INFO] Encounter: 0.0 Exp Bonus: 33.9485
[INFO] Meat Drop: 110.0 Item Drop: 129.29164564412514
[INFO] HP: 238/243, MP: 75/286, Meat: 8132
[INFO] Tummy: 15/15 Liver: 11/14 Spleen: 1/15
[INFO] ML: 32 control: 10
[INFO] Soulsauce: 4
[INFO] Ultrahydrated: 4
[INFO] Delay between adventures... beep boop...
Countdown: 1 second...
Waiting completed.
[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,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent
[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
[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] Thinking about summoning ninja snowman assassin
[DEBUG] Checking if we can summon ninja snowman assassin
[DEBUG] Checking if we can summon smut orc pervert
[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
[INFO] Searching for the pyramid
Using 1 hair spray...
You acquire an effect: Butt-Rock Hair (3)
Preference _concoctionDatabaseRefreshes changed from 348 to 349
Finished using 1 hair spray.
[INFO] expectedOasis: 8
[INFO] equivProgress: 16
[INFO] need: 100
[INFO] Equipping UV-resistant compass to slot off-hand
Preference _auto_maximize_equip_off-hand changed from to UV-resistant compass
[INFO] Need for desert: 100
[INFO] Worm riding: 0
Preference auto_diag_round changed from 2 to 0
nextAdventure => The Arid, Extra-Dry Desert
Preference nextAdventure changed from The Copperhead Club to The Arid, Extra-Dry Desert

[INFO] Starting preadventure script...
[DEBUG] Adventuring at The Arid, Extra-Dry Desert
[DEBUG] lookupFamiliarDatafile is checking for type [drop]
Preference auto_lastFamiliarLookupType changed from item to drop
[DEBUG] Could not find any "drop" type familiars!
[DEBUG] lookupFamiliarDatafile is checking for type [stat]
Preference auto_lastFamiliarLookupType changed from drop to stat
Preference auto_familiarChoice changed from to Miniature Sword & Martini Guy
Preference _auto_thisLoopHandleFamiliar changed from false to true
Putting Schluuuurt the Gelatinous Cubeling back into terrarium...
Taking Old Gavin the Miniature Sword & Martini Guy out of terrarium...
astral pet sweater is better than (none). Switching items...
Stealing astral pet sweater from Schluuuurt the Gelatinous Cubeling...
Unequipping Schluuuurt the Gelatinous Cubeling...
Familiar unequipped.
Putting on astral pet sweater...
Equipment changed.
Casting Pride of the Puffin 1 times...
You acquire an effect: Pride of the Puffin (10)
Pride of the Puffin was successfully cast.
[DEBUG] Removing "-equip UV-resistant compass" from current maximizer statement
[DEBUG] Adding "+equip UV-resistant compass" to current maximizer statement
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,+equip UV-resistant compass
Maximizing...
24 combinations checked, best score 1,902.82
Wielding Knob Goblin tongs...
Equipment changed.
Holding UV-resistant compass...
Equipment changed.

Preference lastEncounter changed from Baa'baa'bu'ran to Adjust your Parka
Encounter: Adjust your Parka
Preference parkaMode changed from kachungasaur to spikolodon
Your parka is now set to spikolodon mode.
Checkpoints cleared.
[DEBUG] Going into High or Standard ML Zone with ML: 75
Preference _auto_tunedElement changed from to sleaze
Preference auto_priorLocation changed from Noob Cave to The Arid, Extra-Dry Desert
[INFO] Pre Adventure at The Arid, Extra-Dry Desert done, beep.
Preference _auto_inf_session_adv changed from 142 to 143
[INFO] [Sauceror] @ path of [Standard]
[INFO] HP: 162/162, MP: 45/286, Meat: 8132, Soulsauce: 4
[INFO] mus: 68+10. mys: 121+10. mox: 54+14
[INFO] Familiar: Miniature Sword & Martini Guy @ 7 + 25lbs.
[INFO] ML: 75 Encounter: 0.0 Init: 40.0
[INFO] Exp Bonus: 44.85500000000001 Meat Drop: 10.0 Item Drop: 20.0
[INFO] Resists: 3.0/3.0/3.0/3.0/5.0
[INFO] equipment: hat=[chef's hat]. weapon=[Knob Goblin tongs]. off-hand=[UV-resistant compass]. back=[black cloak]. shirt=[Jurassic Parka]. pants=[Knob Goblin pants]. acc1=[Bram's choker]. acc2=[ghost of a necklace]. acc3=[bejeweled pledge pin]. familiar=[astral pet sweater].
 
Ah! Actually, I was wrong. It went back to adventuring unarmed until I got the antique machete to clear the Hidden City dense lianas and after that it kept the machete equipped.
 
Back
Top