Feature - Implemented Spelunky Helper

If the adventuring link was clicked from fight.php, choice.php, or charpane.php, warn with the following message: "A choice adventure is ready, so you might want to adventure somewhere else. Proceed anyway?" This encourages me to visit the map first.
The Spelunky helper as currently submitted does this:

It displays a warning screen which tells you that you have a phase X noncombat available.
At the top of the frame is the map image of the area you clicked; if you click that, you go there.
Beneath that is a table of all the areas you have unlocked.
The first column is a clickable map image of the area
The second column is a list of all the options that are available to you in that area at this phase, taking items you have equipped and/or have in inventory into account. For each option, it tells you what you need to have equipped.
If you like one of the available options, it is up to you to use the Gear Changer (or chat commands, or whatever) to equip the right stuff to enable that option before clicking on the map image to go there.

I have CSS turned off, so the clickable map spots are already in a linear list. Next to each spot, I summarize the benefits of the choice adventure corresponding to that location, and star the ones I usually prefer to visit. I handle the traps specially so that the summary text changes once a branch has been unlocked for that area (removing the star).
That sounds very similar to what KoLmafia displays on its noncombat warning screen.

Choice adventure warnings:
  • "You might not be prepared to collect the idol treasure safely. Proceed anyway?"
  • "You might not be prepared to unlock the city. Proceed anyway?"
  • "Crates are safer and cheaper, but are not as beneficial as shops are. Proceed anyway?"
  • "You might not be prepared to unlock the burial grounds. Proceed anyway?"
  • "You might not be prepared to collect the Clown Crown. Proceed anyway?"
  • "You might not be prepared to collect the treasure chest safely. Proceed anyway?"
  • "You haven't visited the city yet, so unlocking the altar might be unproductive. Proceed anyway?"
I believe that my scheme supersedes these individual warnings; it's up to the player to look at the option, see what we say the requirements are, and suit up (or not) as desired before clicking on the map image to take the noncombat.

Other combat warnings I have:
  • "You might be heading into combat to summon a Skeleton, but you already have one. Proceed anyway?"
  • "You might not be prepared for a boss fight in the city. Proceed anyway?"
  • "You might want to explore the city instead of the temple. Proceed anyway?"
  • "You might want to explore the underworld instead of the temple. Proceed anyway?"
  • "You might be entering the lair unnecessarily early since you don't have a key. Proceed anyway?"
  • "You might want to summon a Skeleton to make the most of the fight, since you appear to be underpowered. Proceed anyway?"
  • "You might want to equip the cursed coffee cup to make the most of the fight, since you appear to be underpowered. Proceed anyway?"
  • "This might be your best chance or last chance to unlock the lair. Proceed anyway?"
  • "This might be your best chance or last chance to fight in the lair. Proceed anyway?"
  • "This is your last chance to explore the underworld to unlock the throne. Proceed anyway?"
  • "This is your last chance to fight at the throne. Proceed anyway?"
My helper is coded to easily allow combat warnings, too. I think a lot of these are exactly the kind of thing that a script would want to take care of, but, perhaps, are specific to your specific strategy - which is good, obviously. :)

For example, "you are underpowered" so, consider such-and-such. Or "You might be entering the lair too early".

One reminder I have frequently wished I had was to equip something other than Bananubis's staff if I already have a skeleton. And the corollary, to equip the staff after I have just sacrificed a skeleton.
 
I just did a Spelunky run on a computer that doesn't have Bale's Spelunky Helper loaded. I know what all the noncombats do, by now, but it was nice to click on an adventuring area when the ghost was waving and have KoLmafia itself tell me what all my options were. I think the noncombat helper is everything that I want it to be.

I guess that leaves dealing with Bananubis's staff sensibly, to finish this thread.

Is there ever a time when you have the staff but no skeleton buddy and you wouldn't want to be reminded to get another skeleton? Why would you ever sacrifice a skeleton and NOT get another?
 
Possibly if you don't need more stats, and you'd rather not suffer the luck penalty since you're done with everything and just farming gold?
 
I wasn't seeing the noncombat phase tracking in the character pane after setting spelunkyHints = true. A clannie with the same issue told me I should set a non-apathetic mood, and that seems to have fixed it.
 
That was me! :p Thanks so much for adding all this spelunky support to mafia, it makes playing a lot more enjoyable.

One other bug I just ran across is that the +5ml from the quartet song seems to be applied to all the monsters (so e.g. cultists are displayed as 65 attack, 65 defense, and it affect all damage calculations resulting from it), even though it's clearly not supposed to be the case.

Edit: One more. +weapon damage from the joke book doesn't seem to be applied to the damage range display.
 
Last edited:
I wasn't seeing the noncombat phase tracking in the character pane after setting spelunkyHints = true. A clannie with the same issue told me I should set a non-apathetic mood, and that seems to have fixed it.
I don't know what "noncombat phase tracking" you expect to be in the charpane. I don't see anything built in to KoLmafia to decorate the Spelunky charpane with anything at all.

According to the code, the only thing spelunkyHints does is determine if we give you a "your noncombat is coming. Are you sure you want to go to that zone?" warnings.

Are you running Chit or something which modifies the charpane?
 
One other bug I just ran across is that the +5ml from the quartet song seems to be applied to all the monsters (so e.g. cultists are displayed as 65 attack, 65 defense, and it affect all damage calculations resulting from it), even though it's clearly not supposed to be the case.
I haven't figured out why that would happen, yet. Looking.

Edit: I assume you don't have Manuel? I do, and it picks up the monster stats from whatever Manuel says, for me.

Edit: One more. +weapon damage from the joke book doesn't seem to be applied to the damage range display.
Yeah. we are looking for +weapon damage only on the weapon, not on the offhand item. I'll fix that.
 
Are you running Chit or something which modifies the charpane?

ChIT provides Mafia's phase tracking, reporting the values of spelunkyNextNoncombat and spelunkyWinCount in a friendly way. That's almost certainly what he's talking about.
 
Revision 16322 should not use ML when annotating Spelunky monsters. It also takes into account the ghost's 50% physical resistance. Not to mention the bonus Weapon Damage from the Joke Book of the Dead.
 
Ok, I've got another (small) problem. Whenever you throw a rock, mafia still believes it is in your inventory - available_amount($item[rock]) returns 1 (and then 2 and then 3, etc). I assume it's the same for skulls and torches, but didn't try. The refresh button in the item manager (general tab) will correct the problem, but I don't know how to call that from a script.
 
Now that I'm testing it again, it's not actually happening every time, I'll report back if I can pin down when it goes wrong.
 
"rock" is item 2108
the spelunky rock is item "8042"

I just found and auto-equipped a rock in a spelunky game.

Code:
[color=green]> ash available_amount($item[rock])[/color]

Returned: 1

[color=green]> ash available_amount($item[2108])[/color]

Returned: 0

[color=green]> ash available_amount($item[8042])[/color]

Returned: 1

[color=green]> ash equipped_amount($item[8042])[/color]

Returned: 1

[color=green]> ash item_amount($item[8042])[/color]

Returned: 0
I happen to have a non-spelunky rock in my non-spelunky inventory - but during the game, you can't see that. It's not clear to me why it happened to find the spelunky rock when I just said $item[rock], but, so far so good.

I threw it in battle:

Code:
[color=green]> ash available_amount($item[rock])[/color]

Returned: 0

[color=green]> ash available_amount($item[2108])[/color]

Returned: 0

[color=green]> ash available_amount($item[8042])[/color]

Returned: 0
It is gone from equipment and inventory.

This is exactly how it has always behaved for me. I will be very interested to see what you do differently.
 
Back
Top