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

Ferdawoon

Member
v15 as an Accordion Thief during the lvl12 quest.
After doing the Son of a beach it want me to use the Drowsy sword instead of a ranged weapon. When I restart the script it get me the didgeridooka instead and continue on as usual.
Code:
Conditions satisfied after 25 adventures.
Putting on outfit: Frat Warrior Fatigues
Equipment changed.
Visiting the lighthouse keeper with 5 barrels of gunpowder.
Visiting the lighthouse keeper with 0 barrel of gunpowder.
You acquire an item: tequila grenade
You acquire molotov cocktail cocktail (2)
BCC: Switching Familiar for General Use
Putting Gon the Jumpsuited Hound Dog back into terrarium...
Taking Trog the Frumious Bandersnatch out of terrarium...
Maximizing...
468 combinations checked, best score 198.0
Wielding Drowsy Sword...
Equipment changed.
Stealing ant pitchfork from Gon the Jumpsuited Hound Dog...
Putting on ant pitchfork...
Equipment changed.

EDIT: The same after doing the orchard stand. This time, restarting the script was not enough to make it use Ranged weapons and changing to the didgeridooka on my own and thens tarting the script, the script will then change the weapon back to the Drowsy sword. The text that is still in the Maximizer show: mainstat +outfit frat war -ml -tie. Nothing about ranged weapon =S
Code:
Conditions satisfied after 1 adventures.
Putting on outfit: Frat Warrior Fatigues
Equipment changed.
You gain 4,441 Meat
BCC: Switching Familiar for General Use
Maximizing...
468 combinations checked, best score 201.0
Wielding Drowsy Sword...
Equipment changed.
Stealing sugar shield from Gon the Jumpsuited Hound Dog...
Putting on sugar shield...
Equipment changed.

Ehhm, not completly related but, ehhm, what is the script doing here?
I dont have the Boris key, or the guitarrr apparently (I thought the script had the guitarrr as a goal when getting the talisman o' nam?), yet the script seem to think that I did get through the whole cave and the script decide to go do.. something.. with my gear.
EDIT: nvm.. I saw now that it try to maximize HP. I just found it a bit wierd that it want me to try to beat the hedge monsters using a Goblin scimitar. Guess it is the Ranged Weapon restriction that is missing from the maximizer command again. Still, the script think I'm through the cave while I'm not =)
Code:
Saving outfit: Backup
Outfit saved
Taking off everything...
Everything removed.
Crossing mirror puzzle...
You acquire an item: huge mirror shard
Putting on outfit: Backup
Equipment changed.
Inserting skeleton key...
You lose 46 hit points
Inserting skeleton key...
You lose 47 hit points
Inserting skeleton key...
You lose 41 hit points
Casting Cannelloni Cocoon 1 times...
You gain 186 hit points
Cannelloni Cocoon was successfully cast.
Inserting skeleton key...
You lose 43 hit points
Inserting skeleton key...
You lose 44 hit points
Inserting skeleton key...
You lose 48 hit points
Inserting skeleton key...
You acquire an item: stone tablet (Really Evil Rhythm)
Wielding star crossbow...
Equipment changed.
Putting on star hat...
Equipment changed.
Taking Twinkle the Star Starfish out of terrarium...
Inserting Richard's star key...
You acquire an item: stone tablet (Sinister Strumming)
Inserting digital key...
You acquire an item: stone tablet (Squeezings of Woe)
You need 1 more Boris's key to continue.
Inserting Jarlsberg's key...
You acquire an item: fishtank
Inserting Sneaky Pete's key...
You acquire an item: fish hose
Verifying ingredients for makeshift SCUBA gear (1)...
You need 1 more fishbowl to continue.
Putting Twinkle the Star Starfish back into terrarium...
Taking Gon the Jumpsuited Hound Dog out of terrarium...
You need 1 more acoustic guitarrr to continue.
You need 1 more Boris's key to continue.
Putting on beer helmet...
Equipment changed.
Wielding didgeridooka...
Equipment changed.
BCC: We got through the whole entryway. That's fairly unlikely at this point....
BCC: We have completed the stage [lair1] and need to set it as so.
bcasc_stage_lair1 => 86
BCC: We have completed the stage [lair1].
BCC: We have not completed the stage [lair2].
BCC: We are doing the Mariachi part.
Maximizing...
1560 combinations checked, best score 318.0
Putting on mesh cap...
Equipment changed.
Wielding Knob Goblin scimitar...
Equipment changed.
Holding black shield...
Equipment changed.
Putting on Knob Goblin elite shirt...
Equipment changed.
Putting on black greaves...
Equipment changed.
Putting on pirate fledges...
Equipment changed.
Putting on Nickel Gamma of Frugality...
Equipment changed.
Stealing sugar shield from Aslan the Dandy Lion...
Round 0: ferdawoon
Putting on sugar shield...
Adjusting familiar weight by -10 pounds
You don't have the item you're trying to equip.
 
Last edited:

th3y

Member
Line 2896 is
Code:
		buMax("outfit swash");
I believe that needs to be
Code:
		buMax("+outfit swash");
At least, without that "+" it's not equipping the outfit for me.

-Th3y thank you
 

alfagetti

New member
v 0.15 as moxie in the hidden city

[1006] Hidden City (Square 4)
Encounter: pygmy blowgunner
Round 0: alfagetti loses initiative!
(unable to macrofy due to action: consult SmartStasis.ash)
Round 1: alfagetti casts ENTANGLING NOODLES!
BCC: Finished the combat. Let's carry on.
Encounter: pygmy blowgunner
Round 0: alfagetti loses initiative!
KoLmafia thinks it is round 1 but KoL thinks it is round 2
You're still in the middle of a combat!

It had previously encountered a combat (pygmy headhunter) on square 1, and combat proceeded normally at that point.

Continued manually, proceeded to get my ass whupped! i have the drowsy sword equipped...why?

Is it possible to equip a + elemental damage weapon for the hidden city?

Thanks!
 

Winterbay

Active member
I believe it runs with the hippy outfit in the hidden city which gives some elemental damage. Also, the only doing 1 round/combat is a very infrequent bug that seems to be hard to replicate for the developers and to pin down.
 

PadainFain

New member
Hidden City?

Here's a weird one..

In both 14.1 and 15.0 the script is not doing the Hidden City for me. It does the temple then SpookyRaven Manor and the Desert. Then it tries to open the Pyramid and fails. It never tries to do the City. So I've had to do it manually.

Reproduced it three times. I'll take a look at the script and see if I can work out why when I get back from work.

Here's it exiting the desert:

Wielding worm-riding hooks...
Equipment changed.
Using 1 drum machine...
Don't forget to equip a weapon!
Finished using 1 drum machine.
Wielding didgeridooka...
Equipment changed.
BCC: We have completed the stage [macguffinpyramid] and need to set it as so.
bcasc_stage_macguffinpyramid => 3
BCC: We have completed the stage [macguffinpyramid].
BCC: We have not completed the stage [macguffinhiddencity].
BCC: We have completed the stage [macguffinhiddencity] and need to set it as so.
bcasc_stage_macguffinhiddencity => 3
BCC: We have completed the stage [macguffinhiddencity].
BCC: We have not completed the stage [macguffinfinal].

The line where it declares it has completed the hidden city is untrue. :(
 
Last edited:

Winterbay

Active member
That should only really happen if you have all parts of the staff. Also, you got the war started before this? (seeing as you have a didgeridooka)
 

PadainFain

New member
interesting...

From bcasc_11

bcascMacguffinPyramid();
bcascMacguffinHiddenCity();

I see it exit the first. Good.

I see it call the second. Good.

boolean bcascMacguffinHiddenCity() {
if (checkStage("macguffinhiddencity")) return true;

}

//Returns true if we've completed this stage of the script.
boolean checkStage(string what, boolean setAsWell) {
if (setAsWell) {
print("BCC: We have completed the stage ["+what+"] and need to set it as so.", "navy");
set_property("bcasc_stage_"+what, my_ascensions());
}
if (get_property("bcasc_stage_"+what) == my_ascensions()) {
print("BCC: We have completed the stage ["+what+"].", "navy");
return true;
}
print("BCC: We have not completed the stage ["+what+"].", "navy");
return false;
}
boolean checkStage(string what) { return checkStage(what, false); }

The first test is the one that is causing this because the text contains "and need to set it as so".

But it should be going to the second definition of the function because it only has been passed one argument and setting the second arg to false? That is a weird construction that I have never seen before, declaring a function twice with two different sets of inputs...

My initial reaction is that it is in fact calling the two argument version and SetAsWell evaluates as true. I can't see any other explanation.

Assuming it's ok in ASH to declare a function like this even so perhaps this would work better with only one definition and always passing false where required instead of relying on the other definition to set it.
 

Winterbay

Active member
Well, since the script is intended for use in Hardcore you're pretty much on your own then :)

The first call checks if the stage is passed and returns true if so. You need the two parameter version in order to set the stage to finished. That one is used at the bottom of the macguffin-fucntion.

For the sake of tings: Do you have either a "spectre scepter", an "ancient amulet" or "the staff of ed" in your inventory?
If the amount of any of those are above 1 you are declared to have passed the stage and it sets it as so. I am guessing that since you are in Softcore you have access to your stash of spectre scepters and since you do the script will always believe that you have passed the protector spirit.

As stated in the first post (and at the top of this respone): The script is only intended for hardcore.

Also: And having the same function with different calls is called "overloading" it can be really useful when you have something that is similar but not exactly the same or want to call a fucntion with a specific parameter set all the time a lot fo the time but not always. Saves on typing.
 

Winterbay

Active member
There is another error in the telescope part, or at least i don't think that razor-sharp can lids drop in the Sleazy back alley, but rather in the Haunted Pantry. I may be wrong though... :)
 

PadainFain

New member
Well, since the script is intended for use in Hardcore you're pretty much on your own then :)

The first call checks if the stage is passed and returns true if so. You need the two parameter version in order to set the stage to finished. That one is used at the bottom of the macguffin-fucntion.

For the sake of tings: Do you have either a "spectre scepter", an "ancient amulet" or "the staff of ed" in your inventory?
If the amount of any of those are above 1 you are declared to have passed the stage and it sets it as so. I am guessing that since you are in Softcore you have access to your stash of spectre scepters and since you do the script will always believe that you have passed the protector spirit.

As stated in the first post (and at the top of this respone): The script is only intended for hardcore.

Also: And having the same function with different calls is called "overloading" it can be really useful when you have something that is similar but not exactly the same or want to call a fucntion with a specific parameter set all the time a lot fo the time but not always. Saves on typing.

Thanks for the info. I appreciate you taking the time. Apart from that one little thing it seems to be working really well for me in softcore. And a workaround for that is trivial. I don't have enough skills for Hardcore yet (or for a decent speed run). I did do two runs but they took me over 40 days! :)

Simply running the script and watching how it approaches the game has taught me more than reading any forums managed and for that I'm very grateful!

So the problem is:

while (i_a("spectre scepter") == 0 &&...

And a neat workaround would be:

if (in_hardcore()) {
scepters=0;
}
else {
scepters=my_ascensions()
}
while (i_a("spectre scepter") == scepters &&...
 

StDoodle

Minion
Except, then the script would need another way of checking whether that part of the quest has been done. Which would involve a lot of text processing, which I happen to know is both a pain, and slow. So...
 

Winterbay

Active member
Thanks for the info. I appreciate you taking the time. Apart from that one little thing it seems to be working really well for me in softcore. And a workaround for that is trivial. I don't have enough skills for Hardcore yet (or for a decent speed run). I did do two runs but they took me over 40 days! :)

If you never do a hardcore run, you'll never get any skills for hardcore :)
 

PadainFain

New member
If you never do a hardcore run, you'll never get any skills for hardcore :)

Sure, but I might at least be able to save up for a HeBoulder first! :)

StDoodle said:
Except, then the script would need another way of checking whether that part of the quest has been done. Which would involve a lot of text processing, which I happen to know is both a pain, and slow. So...

I don't expect the script to be modified to accommodate my softcore whines, but that bit of script I put would work in both softcore and hardcore. In hardcore it would break out at 1 scepter and in softcore it would break out when you had my_ascensions()+1, both correct.
 

Theraze

Active member
I thought that available_amount only counted ones that were available regarding your current settings... so if it's in storage, and you have storage set to not allow automatic pulls, available wouldn't return those items...

Edit: And just looked, and the script specifically looks at item_amount, closet_amount, and equipped_amount. Anything outside those gets skipped... so with your modification, if someone put any of those into their display case, they'd have failure forever, because the count will never equal my_ascensions unless they pull it from their case again...

If you really wanted to make it easier for softcore, what you should ask for is a "resetstage" function that can be called against one of the stages. Call whichever, it says that you haven't properly finished it and that it needs to be reexamined. Problem is that won't solve your "but I have the items that are being used as the check" issue, but...

Edit2: Could possibly make the check look for the staff construction items instead of the items that stick around... have it check for
PHP:
if (i_a("ancient amulet") + i_a("headpiece of the staff of ed") + i_a("staff of ed, almost") + i_a("staff of ed") == 0)
but... that's 4 checks instead of 1 (though against your own inventory, so it shouldn't be server hits)...
 
Last edited:

PadainFain

New member
Ah right... see I'm such a n00b I didn't even know you COULD put one in your displaycase! :) But you could add display_amount into the check in softcore only.

So many ways to skin a cat (and they deserve it too). I'll probably hack this into my script but I completely understand keeping the real one for hardcore only.
 

picklish

Member
I see why you had it set to use an item familiar on the beach--the hound has +combat. Oops, my mistake. Maybe that shouldn't be reverted. Alternatively, maybe it'd make more sense to have a list of +combat familiars, so if somebody doesn't have one, it'll default to a more useful familiar.

Also, there's a whole bunch of location string problems in the telescope function. https://github.com/quisquous/bumcheekcend/commit/f932517d9f9a3cddea7bb15ff5ead94a0c050dae
 

tgetgel

Member
I think the best bet is to just maximize your +items while adventuring normally at any location with a tower goal, overriding the use of stat familiars and such until said goal is met, but beyond that, backfarm. Honestly, this shouldn't change much, since most of the places with scope items are places you already want lots of +items anyway. Either that, or they're places you won't spend any time in (ninja stars, g-string).
I have the same opinion about bounty hunting - if you have olefaction and the hound already, do a bounty only if it will help you get the items you do not yet have.
 

bumcheekcity

Active member
No, the war isn't started. I have the didgeridooka because I'm in softcore.

This fact actually becomes pretty important to the writers of hardcore ascension scripts. Usually I would just insult your choice of ascension and infer your lack of sexual potency and mothers' promiscuity without further discussion. However, I'd like this to work for softcore too, so the check I have would be insufficient for that. I've changed it to hit the questlog in 0.16, which TBH is a much better idea.

Let me know if there are any other quirks in softcore, because I intend it to work in both.

There is another error in the telescope part, or at least i don't think that razor-sharp can lids drop in the Sleazy back alley, but rather in the Haunted Pantry. I may be wrong though... :)

Fixed in 0.16.

I see why you had it set to use an item familiar on the beach--the hound has +combat. Oops, my mistake. Maybe that shouldn't be reverted. Alternatively, maybe it'd make more sense to have a list of +combat familiars, so if somebody doesn't have one, it'll default to a more useful familiar.

Also, there's a whole bunch of location string problems in the telescope function. https://github.com/quisquous/bumcheekcend/commit/f932517d9f9a3cddea7bb15ff5ead94a0c050dae

Yeah, I got that when I started adventuring there on this run, and put it back. Also fixed those locations, in 0.16.
 

bumcheekcity

Active member
Unless anyone reports any glaring terrible errors that need urgent fixing, I'll spin 0.16 tomorrow because it fixes the maximize bugs, and they're pretty big.
 
Top