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

Ok, this might be a mafia problem I saw with the binder clip. I manually did the office building and my choice adventure (with r14581) said "get a random item" but when I clicked it, I got the boring binder clip.
 

xKiv

Active member
I saw the same thing there, and also was told that the first option would fight the spectre even though I didn't have the complete binder yet.
And also was told that the first option in sunken yacht would give me random items, when I was in fact due an UMD.

This suggest to me that there is soem sort of a general problem with choice decorators no longer detecting/applying current state properly.
 

Ethelred

Member
I have a couple of multis that have just been burning turns with an aftercore script for over a year. I've decided the only way I'm ever going to get them ascending again is to automate the process as much as possible. So I'm looking into using bumcheekascend.ash to complete some AoSP runs with them. I haven't used the KoLmafia SVN feature before and am a little confused by the whole process. I used the checkout command for bumcheekascend and it duly downloaded some files and created some folders. When I execute "svn update" in the gCLI, it reports that "bumcheekascend-bumcheekascend is at HEAD (r527)". However, when I look at the bumcheekascend.ash source file in my scripts folder, it contains the line
Code:
string bcasc_version = "0.56";
Does that sound right? Is the bcasc_version just an out of date relic?

I plan to do HC AoSP runs and scanned thru the bumcheekascend forum thread and found some suggestions on support scripts, such as WHAM and Bale's counter checker, but fear I may have missed some others. I also see that a between battle or after adventure script is also recommended. I've never used any of those scripts so am not sure of the best way to begin. Is there a guide someplace that lists the complete recommended suite of scripts to use? If I missed it in my scan of the bumcheekascend thread, I apologize and would appreciate a link.

There seems to be a lot of things to assemble and integrate to get this whole enterprise off the ground, so I'd be grateful for any advice or helpful hints to get underway. Thanks, in advance, for any insights you care to share.
 

Crowther

Active member
Those are just two different version numbers. The bcasc_version gets updated manually when there are significant changes. The SVN version number gets updated with every single change no matter how tiny.

There are threads in the forums for WHAM, CounterChecker, BatBrain and BBB. The first post in those will explain how to install them and set them up. I highly recommend getting all of them. The first post here lists the scripts that are required, but there are more that are helpful.

Scan through this thread for AoSP advice. The subject has come up a number of times and the script works fairly well for it, but you will need to abort and switch combat scripts at times for improved speed. Or you can just let it run and not worry about going faster.

EDIT: You'll also want Bale's Universal Recovery (UR) script.
 
Did something break the ballroom? I fired up the script, using r14660, HC BIG! AT, and it's telling me I need to open the ballroom.


I'm really not up to speed on the revamp and what I need to do there, and I've never had it stop there before...suggestions?


I manually got the necklace and then was able to go upstairs, but the script still wants me to unlock the ballroom on my own.

I tried setting the various stages to false, because for some reason bedroom, gallery, and bathroom were set to true, even though I couldn't go upstairs, but when I fire it back up it still wants me to do the ballroom on my own.
 

Theraze

Active member
Actually, bcasc_version is used to decide when a new version of the automatic aliases need to be installed again. Whenever new aliases are added, the number should be bumped. Not until then though.

Regarding the ballroom issue, there was a bug when you ran SC where it would mark the library as done before it was started. I shifted to using the quest values, but mafia has a 'bug' where if you try to visit the page for turning in the necklace before you have it, mafia believes that it's done. It only does it if something goes wrong, as mentioned before, but... if you get that message, make sure you're using the latest BCA and set the manor stage bits to 0 and then you should be able to have it automate again...
 

Theraze

Active member
Regardless of whether or not you actually turn in the necklace, mafia bumps the quest status to finished when you visit that page. Guessing that many other quests do similar things if you do stupid things like visit_url the right page at the wrong time.

Is marking the quest improperly a bug? Probably. Is it something worth trying to patch, since refresh quest fixes it and it only happens when you have sloppy code? Probably not.
 

lostcalpolydude

Developer
Staff member
It looks like the functions for the second floor
Code:
		bcascManorBathroom();
		bcascManorBedroom();
		bcascManorGallery();
		bcascManorBallroom();
could all use a check for questM20Necklace = finished, since mafia looks for whichplace=manor2 or manor3 in the visited URL.
 

Razorsoup

Member
Back in post #4623 I reported an issue with the levelMe function trying to use the ballroom when it wasn't unlocked yet. Here are the changes I made to my local copy to try to alleviate that.

Lines 2943-2945:
Changed from
Code:
	boolean canBallroom() {
		return get_property("lastBallroomUnlock") == my_ascensions();
	}
to
Code:
	boolean canBallroom() {
		return get_property("questM21Dance") == "finished";
	}

Line 3141:
Changed from
Code:
			} else if (my_path() != "way of the surprising fist" && my_buffedstat($stat[Moxie]) < 120 && canBarr()) {
to
Code:
			} else if (my_path() != "way of the surprising fist" && (!canBallroom() || my_buffedstat($stat[Moxie]) < 120) && canBarr()) {

This seems to have worked for me.
 
Maybe I'm doing it wrong. I haven't been a programmer since DOS was popular...

Code:
> ashq import bumcheekascend.ash; checkStage("manorbathroom", false);

BCC: We have completed the stage [manorbathroom].

> ashq import bumcheekascend.ash; checkStage("manorbedroom", false);

BCC: We have completed the stage [manorbedroom].

> ashq import bumcheekascend.ash; checkStage("manorgallery", false);

BCC: We have completed the stage [manorgallery].

> ashq import bumcheekascend.ash; checkStage("manorballroom", false);

BCC: We have not completed the stage [manorballroom].

But...it says they're completed...it's not setting them to not completed. If I change "false" to "true" it tells the script to mark it complete, but if I change it back to false it's not saying it's not complete...and still doesn't fire back up and actually do anything.


Is there a master IDKFA code I can put in that will reset all the stages and have it check all of them again? That'd be a lot more useful if it got stuck and needed one tiny thing unstuck to start back up. :D
 

Crowther

Active member
Well, you don't say exactly what you're trying to do. I believe you want to set the stages to unfinished, then complete them. You seem to understand the first step. To actually complete them, you'll need to run the script or run one of the functions within the script that actually plays the game.
 
Well, you don't say exactly what you're trying to do. I believe you want to set the stages to unfinished, then complete them. You seem to understand the first step. To actually complete them, you'll need to run the script or run one of the functions within the script that actually plays the game.


I did run the script again...and it gave me the exact same end message, open the ballroom yourself. Nothing changed in the output from what I could tell.

I've tried running the various parts manually that are listed under the level 11 section, but it does the same thing...it says bathroom is done, gallery is done, bedroom is done and I need to open the ballroom myself, even though I have not adventured anywhere on the 2nd floor yet.

I did talk to the ghost and she said she needs her dancing things, but that's where I left it.
 

Crowther

Active member
Oh, sorry. I failed to realize this was a continuation of your problem, not a new problem. I also misunderstood how checkStage worked until I looked at the code just now. You're missing one variable: bedroom. BCA won't look at those others if "bedroom" is done. Note, "bedroom" and "manorbedroom" both exist. They are not the same.

What I'd do is look at your quest log and see which manor quest parts you've finished and which you haven't and see if there is any mismatch. With what BCA things. It's possible the quest status detection is off and marking something done when it isn't. Even if you mark it undone, that detection will just set it back again when you run the script.
 
The only reason I'm still beating on this is because if it happened to me once, it could happen to someone else also and the script should be fixed so it doesn't happen.

I tried adding 'bedroom' and here's what I got (no joy still).

Code:
> ashq import bumcheekascend.ash; checkStage("manorbathroom", false);

BCC: We have completed the stage [manorbathroom].

> ashq import bumcheekascend.ash; checkStage("manorbedroom", false);

BCC: We have completed the stage [manorbedroom].

> ashq import bumcheekascend.ash; checkStage("bedroom", false);

BCC: We have not completed the stage [bedroom].

> ashq import bumcheekascend.ash; checkStage("manorgallery", false);

BCC: We have completed the stage [manorgallery].

> ashq import bumcheekascend.ash; checkStage("manorballroom", false);

BCC: We have not completed the stage [manorballroom].

> call scripts\bumcheekascend.ash

******************************************************************************************
******************************************************************************************
******************************************************************************************
Thankyou for using bumcheekcity's ascension script. Please report all bugs on the KoLMafia thread with a copy+paste from the CLI of the problematic points, and your username. Also ask on the thread on the kolmafia.us forum for help and assistance with the script, particularly first time problems, and issues setting it up. 
******************************************************************************************
******************************************************************************************
******************************************************************************************

BCC: Ensuring that warnings that you don't have enough stats are disabled.
BCC: Trying to check bcs_aliases on the Bumcheekcity servers.
******************
Ascending Starting
******************
Conditions list cleared.
BCC: Trying to check bcsrelay_settings on the Bumcheekcity servers.
BCC: We have not completed the stage [lair0].
Doing a check for Telescope Items
BCC: We have not completed the stage [lair0].
BCC: Please get stick of dynamite for telescope part 7 from 'Muscle Vacation' yourself
Level 1 Starting
BCC: We have completed the stage [toot].
BCC: We have completed the stage [guild].
BCC: We have completed the stage [knob].
BCC: levelMe(5, true) called.
Level 2 Starting
BCC: We have completed the stage spookyforest
BCC: levelMe(8, true) called.
Level 3 Starting
BCC: We have completed the stage tavern
BCC: levelMe(13, true) called.
Level 4 Starting
BCC: We have completed the stage [bats1].
BCC: We have completed the stage [meatcar].
BCC: We have completed the stage [bats2].
BCC: We have completed the stage [8bit].
BCC: levelMe(20, true) called.
Level 5 Starting
BCC: We have completed the stage [knobking].
BCC: We have completed the stage [dinghy].
BCC: We have completed the stage [manorbilliards].
BCC: levelMe(29, true) called.
Level 6 Starting
BCC: We have completed the stage [friars].
BCC: We have completed the stage [knobking].
BCC: We have completed the stage [friarssteel].
BCC: We have not completed the stage [ManorBilliards].
BCC: levelMe(40, true) called.
Level 7 Starting
BCC: We have completed the stage [friarssteel].
BCC: We have completed the stage [cyrpt].
BCC: We have completed the stage [innaboxen].
BCC: We have completed the stage [manorbilliards].
BCC: We have completed the stage [manorlibrary].
BCC: We have completed the stage [manorbathroom].
BCC: We have completed the stage [manorbedroom].
BCC: We have completed the stage [manorgallery].
BCC: We have not completed the stage [manorballroom].
BCC: levelMe(53, true) called.
Level 8 Starting
BCC: We have completed the stage Trapper
BCC: We have completed the stage [wand].
BCC: We have completed the stage [piratefledges].
BCC: levelMe(68, true) called.
Level 9 Starting
BCC: We have completed the stage [chasm].
BCC: levelMe(85, true) called.
Level 10 Starting
BCC: We have completed the stage [airship].
BCC: We have completed the stage [castle].
BCC: levelMe(104, true) called.
Level 11 Starting
BCC: We have not completed the stage [macguffinprelim].
BCC: Maximizing 'items'
Maximizing (1st time may take a while)...
96 combinations checked, best score 1,010.22
BCC: Trying to check bcs_fam_itemsnc on the Bumcheekcity servers.
Checking for familiar 'Pair of Stomping Boots' where x=1
Cleared mood.
Set mood trigger: When I get Just the Best Anapests, uneffect just the best anapests
Set mood trigger: When I run low on Butt-Rock Hair, use 5 hair spray
BCC: Need less combat, brave Sir Robin!
Set mood trigger: When I run low on Smooth Movements, cast 1 Smooth Movement
Set mood trigger: When I run low on The Sonata of Sneakiness, cast 1 The Sonata of Sneakiness
Set mood trigger: When I get Carlweather's Cantata of Confrontation, uneffect Carlweather's Cantata of Confrontation
BCC: Need items!
Set mood trigger: When I run low on Fat Leon's Phat Loot Lyric, cast 1 Fat Leon's Phat Loot Lyric
Set mood trigger: When I run low on The Ballad of Richie Thingfinder, cast 1 The Ballad of Richie Thingfinder
Set mood trigger: When I run low on Leash of Linguini, cast 1 Leash of Linguini
Set mood trigger: When I run low on Empathy, cast 1 Empathy of the Newt
Set mood trigger: When I run low on Singer's Faithful Ocelot, cast 1 Singer's Faithful Ocelot
Set mood trigger: When I run low on Peeled Eyeballs, use 1 Knob Goblin eyedrops
You'll need to open the Ballroom

Quest log:

Code:
Council Quests:

    Gotta Worship Them All
    Solve the mystery of the Hidden City.

    Just Deserts
    Explore the Arid, Extra-Dry Desert to find the pyramid mentioned in your father's journal.

    Of Mice and Shen
    Go to the Copperhead Club and find Shen, the man mentioned in your father's diary.

    Merry-Go-Ron
    Search for Ron Copperhead on the Red Zeppelin.

    In a Manor of Spooking
    Find your way into the cellar of Spookyraven Manor.

    Chef_Rannos and the Quest for the Holy MacGuffin
    You've picked up your father's diary, and things just got a whole lot more complicated. Oh dear.

    Make War, Not... Oh, Wait
    The Council has gotten word of tensions building between the hippies and the frat boys on the Mysterious Island of Mystery.

    They suspect that the two factions are about to go to war, and they want to make sure it's a big war. They want you to head down there and see if you can't stir up some trouble.

Guild Quests:

    Me and My Nemesis
    One of your guild leaders has tasked you to recover a mysterious and unnamed artifact stolen by your Nemesis. Your first step is to smith an Epic Weapon.

    Two parts of the Epic Weapon can be had from the two oldest and wisest men in the kingdom, one of whom runs the casino. You weren't told where the third part is.

Other Quests:

    What's Up, Doc?
    Doc Galaktik needs some medicinal herbs:
       * Swindleblossoms from the Cobb's Knob Harem (2/3)
       * Fraudwort from ninjas in Hey Deze (1/3)
       * Shysterweed from a a graveyard (2/3)

    Lady Spookyraven's Dance
    Lady Spookyraven wants to dance again, but first she needs:
       * her powder puff from the Haunted Bathroom
       * her gown from the Haunted Bedroom
       * her shoes from the Haunted Gallery

    A Quest, LOL
    The Highland Lord told you that the Baron Rof L'm Fao, in his valley in the Big Mountains, has been overrun by monsters. Maybe you should try to fight your way through them to the gates of the Baron's fortress.


It's also a minor annoyance, but why doesn't it get the crates to get the last tower item? It can adventure and buy the planks...but never gets the last lair item for me, even though there is code in there for it (it may be old code that no longer works).
 

Crowther

Active member
Okay, so your quest log says you haven't done any of the three Dance parts, while your variables say they've all been done.
This will reset them:
Code:
                set_property("bcasc_stage_manorbathroom", my_ascensions()-1);
                set_property("bcasc_stage_manorbedroom", my_ascensions()-1);
                set_property("bcasc_stage_manorgallery", my_ascensions()-1);
That should reset things and probably make them work.

Well, I found one minor bug. Not your problem, but this line:
Code:
        if (checkstage("ManorBilliards")) bcascManorLibrary();
Should say "manorbilliards" in all lowercase.

There's something odd about the way that quest is marked. If it is started too early, those rooms will be marked done, because the quest won't be on the quest page. Also, why are these different
@level 7:
Code:
        if(bcasc_bedroom) {
                bcascManorBilliards();
                bcascManorLibrary();
                bcascManorBathroom();
                bcascManorBedroom();
                bcascManorGallery();
                bcascManorBallroom();
        }
@ level 11:
Code:
        if(!bcasc_bedroom) {
                bcascManorBilliards();
                bcascManorLibrary();
                bcascManorBathroom();
                bcascManorBedroom();
                bcascManorGallery();
                bcascManorBallroom();
        }
Note the "!" on the second one.
 

Winterbay

Active member
That setting was there in case you wanted to do the bedroom later than the script thought was a good idea. The idea was that it should abort the first time it wanted to go to the bedroom (i.e. at level 11). I am pretty certain that that functionality was lost in the revamping of the manor and this is a lingering bug from that...
 
Yup, running these commands got it moving again. :)

Code:
ashq import bumcheekascend.ash; set_property("bcasc_stage_manorbathroom", my_ascensions()-1);
ashq import bumcheekascend.ash; set_property("bcasc_stage_manorbedroom", my_ascensions()-1);
ashq import bumcheekascend.ash; set_property("bcasc_stage_manorgallery", my_ascensions()-1);
 
Top