bumcheekcend.ash - A zero setup semi-automated ascension script!

I'm not sure if it's important or not, but I'm a big fan of the commas to split off between the descriptive bits. I was having problems setting outfits and items and so on before I started doing that. Maybe it just hates me or I might have changed something else around the same time. Ah well. :)
 
This means that once the drywall axe is available, it will often be used for moxie classes, causing some major trauma.

I ran into this as well - as a disco bandit, maximize equipped the diamond-studded cane once it came available, and I suddenly couldn't hit anything ; ) I think the idea of constraining to ranged damage is a good one.

@Theraze - note, this script is defined by the author to handle only moxie classes (see the OP)...

Th3y thank you...
 
True... but -melee will take care of that. :D And I've been using Rinn's quest scripts to do all 6 classes... I just run the ballroom a bit as muscle/myst to reduce damage taken later. Optimal? Nope. Easy? Quite. :)
 
Thanks for the input, theraze. I call the maximize function a ridiculous amount, yes, but because the script makes a RnR legend, I've never encountered the problem with equipping non-ranged weapons. I'll fix that for 0.5. For the moment, I simply recommend autoselling the few weapons which would cause the problem.

And I'm also planning to expand the script into both Mus and Myst classes, but that will take more work, because I really want it to be highly unattended. I'll spin a stable release of 1.0 and post in GD before I do that though.

Edit: I have just completed a 6/1185 run using this script.
 
Last edited:
Spinning version 0.5, which automates beer pong, does daily dungeon stuff and makes innaboxen to save (a substantial amount) of turns. This is the version I'm announcing on GD now.
 
running HC no path Disco Bandit. Moonsign Wombat. keeps stopping at the temple step.

Code:
******************
Ascending     Starting
******************
Level     1 Starting
BCC: Switching Familiar for     General Use
Spleen: 0 Agua: 0 Stick: 0     Token: 0
Total Spleen: 0
Conditions     list cleared.
Condition set: Knob Goblin encryption key
Knob Goblin     encryption key
BCC: Let's get the Encryption Key
Mood     swing complete.
Maximizing...
1 combinations checked, best score 5.99
Need     to Level up a bit to get 7 Moxie
Conditions list cleared.
Condition     already met: Substats: 0 / 0 / 0

Request 1 of 40 (Woods: Hidden     Temple) in progress...
You can't get to that area.
 
So, ran v0.5 mid-run to see what would happen... (I didn't play or consume yesterday, so this run is toast as far as daycount/turncount anyhow.) The script promptly made a Rock and Roll Legend to supplement my Squeezebox of the Ages :D -- probably a rare issue (AT with a better accordion), but I'm suggesting the following code change:

Code:
554: 	if (my_basestat(my_primestat()) > 10 && i_a("Rock and Roll Legend") == 0 [B]&& i_a("Squeezebox of the Ages") == 0 && i_a("The Trickster's Trikitixa") == 0)[/B] {
...
}

============================
It also had trouble yellow raying a hippy -- I'm not sure if it was because of winning initiative or my ccs... (Or some other reason?)

Code:
[171] Hippy Camp
Encounter: crusty hippy Vegan chef
Strategy: N:\KOLmafia_jambosque\ccs\oasis.ccs [default]
Round 0: jambosque wins initiative!
(unable to macrofy due to combat filter)
Unexpected error, debug log printed.

Unexpected error, debug log printed.

Unexpected error, debug log printed.

....

ccs:
Code:
[ blur ]
skill transcendent olfaction
attack with weapon

[ default ]
summon pastamancer ghost
attack with weapon

[ malevolent ]
skill fearful fettucini

[ neptune ]
skill entangling noodles
item anti-anti-antidote, divine can of silly string
attack with weapon

[ possessed ]
skill fearful fettucini

[ stuffing ]
skill fearful fettucini

[ yam golem ]
skill fearful fettucini

Edit: BCC already fixed it in the next version... Hooray! :)
=========================
Okay, back to running it!

=========================
Edit: And wow, I guess I'll be spending quite a bit of time in the Temple? Yeah, some different choices than I would have made manually... Hmm. It would be nice if an available yellow ray would take priority over other stuff... (For example, it prioritized swashbuckling getup over 2nd yellow-raying for the mining gear.)

I definitely like the script, though...it probably saved me 1.5-3 hours of thinking and clicking today. :)
 
Last edited:
halfvoid: This is caused by your initial moxie not being high enough to be safe [MLofStrongestMonster+4], and the fact that you can't level in the temple. I've fixed that in 0.6.

jambosque: This YOROIDS issue has already been fixed in 0.6. The squeezebox one hasn't come up, so I'll add the code you suggest to sort that.
 
Got stuck looking for a wand today...as far as I can tell, it could be an issue of insufficient meat (3351 meat at the moment -- probably my fault for buying a mushroom plot at a point where the script had stopped... :D). My encounter listing has "Ouch! You bump into a door!" 5 times, and the choice adventure was set to "dead mimic".

Edit: yeah, <5k meat was the problem. I auto-sold enough junk, and it worked on the 6th time. Hmm...maybe just by-passing the wand until 5k meat happens to be had? Also, would there be a similar issue with the plus sign @ <1k meat?

Code:
904:	//Check for a wand. Any wand will do. 
	if (i_a("aluminum wand") + i_a("ebony wand") + i_a("hexagonal wand") + i_a("marble wand") + i_a("pine wand") == 0) {
		//Use the plus sign if we have it. Just in case someone's found the oracle but forgotten to use the plus sign.
		if (i_a("plus sign") > 0) { if (cli_execute("use plus sign")) {} }
	
		//Check for the DoD image. 
		if (index_of(visit_url("dungeons.php"), "greater.gif") > 0) {
			//Then we need to check for the plus sign. 
			if (i_a("plus sign") == 0) {
				cli_execute("set choiceAdventure451 = 3");
				bumAdv($location[Greater-Than Sign], "", "items", "1 plus sign", "Getting the Plus Sign");
			}
			cli_execute("set choiceAdventure451 = 5");
			bumAdv($location[Greater-Than Sign], "", "items", "1 choiceadv", "Getting Teleportitis");
			abort("Woah, man. You got teleportitis. Better stop and adventure to know what the plus sign is!");
		}
		//Then we have to get the wand itself.
                [B]if(my_meat()>5000){[/B]
		         cli_execute("set choiceAdventure25 = 2");
		         bumAdv($location[Dungeons of Doom], "", "items", "1 dead mimic", "Getting a Dead Mimic");
               [B] }[/B]
	}

Hmm...that probably isn't a total fix, since meat could be spent on buffs while looking for it, depending on user mood -- also, haven't looked at bumAdv() yet, so I don't know if that's a better place to check for the condition... Uh, maybe a factor of safety above 5k meat? Or like your insult solution, while loop and 1 adv at a time?

Response edit: Ah sweet, v0.6!!!

YAEdit: Oh, Oracle costs 1k meat, not plus sign...maybe another condition for the teleportitis part?

Code:
[B]if(my_meat()>1200){[/B] 
   cli_execute("set choiceAdventure451 = 5");
   bumAdv($location[Greater-Than Sign], "", "items", "1 choiceadv", "Getting Teleportitis");
   abort("Woah, man. You got teleportitis. Better stop and adventure to know what the plus sign is!");
[B]}[/B]
 
Last edited:
BCC: I haven't had a chance to test, but I think you could call the following to go through the tavern cellar.

EDIT 5: NEVERMIND! It doesn't work at all, hangs on the non-combats... I'm sure it would be easy to fix if I had a tavern I could run through, but...

Code:
boolean tavern_cellar() {
    int s = 0;
    boolean [int] squares = $ints[4,3,2,1,6,11,16,21,22,23,24,25,17,18,19,20,12,13,14,15,7,8,9,10];
    visit_url("tavern.php&place=barkeep&pwd");
    foreach sq in squares {
        visit_url("cellar.php?action=explore&whichspot=" + sq.to_string() + "&pwd");
        if (form_field("whichchoice") != "")
            visit_url("choice.php?pwd&whichchoice=" + form_field("whichchoice") + "&option=1&pwd");
        if (get_property("lastEncounter") == "Of Course!") return true;
    }
    return false;
}
Edit 2: I think that will work, but not in a position to test. Note that it assumes you don't have the +20 or more elemental damage to skip certain non-combats, which I feel is safe for your script, but less useful for others, possibly. Note that this script will likely break as soon as Tavern Cellar support is added to mafia (as the choice adventures would then be handled).

Edit 3: Added the initial visit to the barkeeper to unlock. This script assumes it will get called when you are level 3 & have been assigned the quest, but haven't yet visited the bartender.

Edit 4: I'm a moron. This one should work, and should return true if quest was completed, false if not. Could use to be a bit more robust, but should get the job done.
 
Last edited:
Bug on line 1240 (if you have a single character set up):

Code:
bumAdv($location[Giant's Castle], "", "itemsnc", goalsForCastle+"[b],[/b] castle map items", "Opening up the HitS by adventuring in the Castle", "-");

The comma before castle map items was added by me - it needs to be there or you get an error:
Code:
[choiceadv castle map items] has no matches.

It also managed to lose a fight to an Alphabet giant (which has abnormally high ML). It may just have been horrible luck, but it may be worth checking.
 
Another issue - it couldn't beat the Protector Spectre and then got caught in an infinite loop when it went back to the Hidden City (it cleared the remaining squares looking for the spheres it had already placed on altars, then once it ran out of squares it just got in an infinite loop).

Anyway, with my guidance through the bits it failed at (including most of day 1), and me handling turn generation SRs, it looks like it could well be on track to make a 5-day ascension using 3-4 stat days. This was the end of day 4, I'm level 12.5 and in the Palindome.

The yellow ray handling is still pretty heavily dodgy - changed its mind about whether left Bob was right or not mid-fight and then didn't realise it'd wasted the ray.
Code:
[903] Palindome
Encounter: Racecar Bob
Strategy:     C:\Users\Steve\Desktop\kolmafia\kolmafia\dist\ccs\default.ccs [default]
Round     0: hippoking wins initiative!
(unable to macrofy due to combat filter)
BCC:     We are trying to use the HeBoulder, but this is not the right monster, so     I'm attacking.
Round 1: hippoking attacks!
Round 2: racecar     bob takes 21 damage.
Round 2: Buttes's red eye sears a nearby patch of     sand into glass.
BCC: We are trying to use the     HeBoulder, but this is not the right monster, so I'm attacking.
Round     2: hippoking attacks!
Round 3: racecar bob takes 54 damage.
Round 3:     Buttes looks at a flower with his blue eye. The flower's petals brown and     curl, rimmed in frost.
BCC: We are trying to use     the HeBoulder, but this is not the right monster, so I'm attacking.
Round     3: hippoking attacks!
Round 4: racecar bob takes 30 damage.
Round 4:     Buttes's red eye alights on a short guy with a huge, red, handlebar     mustache. The guy screams, "my biscuits are burnin'!" and leaps into a     pond.
BCC: We are trying to use the HeBoulder, but     this is not the right monster, so I'm attacking.
Round 4:     hippoking attacks!
Round 5: racecar bob takes 25 damage.
Round 5:     Buttes's yellow eye gazes upon a passing hippy. There's a gentle *pop,*     then just the lingering scent of patchouli.
BCC:     We are using the hebo against the right monster.
Round 5:     hippoking casts POINT AT YOUR OPPONENT!

Round 6: Buttes swings his eyestalk around and unleashes a massive ray of     yellow energy, completely disintegrating your opponent.
After Battle:     Buttes winks at you with his giant central eye.
You gain 251 Meat
You     acquire an item: mesh cap
You acquire an item: enormous belt buckle
You     acquire an item: leather chaps
You acquire an item: stunt nuts
You     gain 9 Strongness
You gain 7 Enchantedness
You gain 29 Roguishness

Request     6 of 6 (Plains: Palindome) in progress...

[904] Palindome
Encounter:     Bob Racecar
Strategy:     C:\Users\Steve\Desktop\kolmafia\kolmafia\dist\ccs\default.ccs [default]
Round     0: hippoking wins initiative!
(unable to macrofy due to combat filter)
BCC:     We are using the hebo against the right monster.
Round 1:     hippoking casts SING!
Round 2: bob racecar takes 2 damage.
Round 2:     Buttes glances at a puddle with his red eye. The puddle starts to get     steamed. Not, like, mad -- I mean, the puddle's hot enough that the water     is actually boiling.
You lose 14 hit points
BCC:     We are using the hebo against the right monster.
Round 2:     hippoking casts SING!
Round 3: bob racecar takes 2 damage.
Round 3:     Buttes glares with his yellow eye at a passing pigeon. There's a gentle     *pop* as air rushes into the pigeon-shaped hole in reality.
BCC:     We are using the hebo against the right monster.
Round 3:     hippoking casts POINT AT YOUR OPPONENT!
Round 4: Buttes blasts him with     a yellow beam which causes 22 damage and leaves your opponent with an     amusing new hairstyle.
Round 4: bob racecar takes 22 damage.
Round     4: bob racecar takes 3 damage.
BCC: We are using     the hebo against the right monster.
Round 4: hippoking casts     SING!
Round 5: bob racecar takes 3 damage.
BCC:     We are using the hebo against the right monster.
Round 5:     hippoking casts SING!
Round 6: bob racecar takes 3 damage.
BCC:     We are using the hebo against the right monster.
Round 6:     hippoking casts SING!
Round 7: bob racecar takes 3 damage.
BCC:     We are using the hebo against the right monster.
Round 7:     hippoking casts SING!
Round 8: bob racecar takes 3 damage.
 
That's strange, it's just yellow rayed bob racecar perfectly for me. I'll give it further testing.

And yeah, I'm hoping for a 5-day myself. I'm at 4 days with Ed defeated, and 31 turns including overdrinking for tomorrow (so I'll obviously start with 71) and a lunchbox I haven't used.

I've decided to abort on the final protector spectre for the time being. His noodles attack can really fuck up automation.
 
I've decided to abort on the final protector spectre for the time being. His noodles attack can really fuck up automation.

Sounds like a smarter combat script would really help with running your ascension script! I'm fairly sure that as soon as the deleveling changes get sorted, both zarqon & I will be able to help with this.
 
"[choiceadv castle map items] has no matches."

Code:
1254:   bumAdv($location[Giant's Castle], "", "itemsnc", goalsForCastle+"[B][SIZE="6"][COLOR="DarkRed"],[/COLOR][/SIZE][/B] castle map items,", "Opening up the HitS by adventuring in the Castle", "-");

Heh...I was mystified by the error message, at first. :) Yeah, missing comma before castle map items.

Edit: Damn ninjas. :)
 
Last edited:
Back
Top