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

I was exceptionally excited about the write up that zarqon did in an old hc ascend script thread (http://kolmafia.us/showthread.php?4144-ascend_HC.ash-%28Work-in-Progress%29&p=29989&viewfull=1#post29989) about making the process as modular and data driven as possible.

Hey I started it! :P

Seriously though, there are two reasons that particular script never got off the ground. For 1, trying to make it fairly "optimal" requires so much background work, such as was discussed in that thread, that the discussion of a framework got to be too complicated for any solid agreements to be reached. For 2, IMO, having a decent fight strategy is a HUGE part of being able to automate an ascension*. Moxie classes can "cheat," as the out-moxie and plink strategy comes pretty dang close to optimal. Muscle classes and myst classes are pretty well handicapped there, as BCC no doubt knows.

I completely agree about the modularity.

Also, in the end, I'm kind of glad I abandoned my ascension script ideas. I really don't want to try to deal with all of the comments, bugs, etc. etc. that have turned up in this thread and the one on GD, and I kinda pity BCC. ;)

* zarqon's scripts seem to be ok for this, except as far as I can see they really aren't set up to "share" the info on what's expected to happen in a fight very well, which is something I intend with the script I'm currently writing. Also, macros are teh awesome, and I fully intend to use them. :P
 
Also, in the end, I'm kind of glad I abandoned my ascension script ideas. I really don't want to try to deal with all of the comments, bugs, etc. etc. that have turned up in this thread and the one on GD, and I kinda pity BCC. ;)

Well, I only comment and report bugs since I find the script to be great and I've learned a lot of how I could play more optimally which I guess is an unintended side effect of the script :)

I've made some small changes to my local copy (such as using a sombrero type familiar instead of the volleyball at higher levels) but other than that I pretty much run it as it is and it is faster than I normally am when ascending by myself :)
 
It would also be nice to have an override to force specific equipment (which would go a long way towards making this softcore usable) and if you did that you really wouldn't want a random maximize to accidentally remove something.

Are you talking about having a variable that gets passed with equip to the maximize command? Or possibly a string that gets passed in general? So if you wanted to, you could have it do a .1 initiative in addition to his moxie, or if you wanted your tie, you could do .1 initiative, -tie as the variable, to increase your chances of pickpocket, but not screw with other gear...
 
This script is a LONG way off being softcore usable. I'll probably not ever bother properly automating softcore, just throwing in some pulls or something and have it do exactly the same as hardcore. Perhaps eat pies or something. Either way, it'll be ascending Mus/Mys well before it properly does softcore.

Though TBH you could probably pull the pies and certain quest items manually and do fairly well in it.
 
Well, if you use obtain to collect the items like the keys/pies, it should pull if in SC, or adventure if in HC, right? Though the problem comes when certain things are more difficult because of form... can't really use obtain on the KLP as you don't adventure for them, you craft them using adventured (sort of) items.
 
Palindrome YOROIDS incident. Against a Tan Gnat It says "this is the wrong monster" on the first round of combat, then says "using Yellow ray since this is the right monster" the very next round.

Code:
[849] Palindome
Encounter: Tan Gnat
Strategy: C:\game\kol\ccs\Lightwolf.ccs [default]
Round 0: lightwolf 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: lightwolf attacks!
BCC: We are using the hebo against the right monster.
Round 2: lightwolf casts POINT AT YOUR OPPONENT!
You acquire an effect: Everything Looks Yellow (duration: 150 Adventures)
You gain 30 Meat
You acquire an item: suntan lotion of moxiousness
You acquire an item: gnatwing
You acquire an item: filet of tangy gnat ("fotelif")
You gain 12 Muscleboundness
You gain 12 Mysteriousness
You gain 17 Roguishness

Request 8 of 197 (Plains: Palindome) in progress...

[850] Palindome
Encounter: Bob Racecar
Strategy: C:\game\kol\ccs\Lightwolf.ccs [default]
Round 0: lightwolf loses initiative!
(unable to macrofy due to combat filter)
BCC: We would LIKE to use a Yellow Ray somewhere in this zone, but we can't because Everything Looks Yellow.
Round 1: lightwolf attacks!
BCC: We would LIKE to use a Yellow Ray somewhere in this zone, but we can't because Everything Looks Yellow.
Round 2: lightwolf attacks!
BCC: We would LIKE to use a Yellow Ray somewhere in this zone, but we can't because Everything Looks Yellow.
Round 3: lightwolf attacks!
BCC: We would LIKE to use a Yellow Ray somewhere in this zone, but we can't because Everything Looks Yellow.
Round 4: lightwolf attacks!
BCC: We would LIKE to use a Yellow Ray somewhere in this zone, but we can't because Everything Looks Yellow.
Round 5: lightwolf attacks!
BCC: We would LIKE to use a Yellow Ray somewhere in this zone, but we can't because Everything Looks Yellow.
Round 6: lightwolf attacks!
You gain 6 hit points
You gain 12 Mojo Points
You gain 157 Meat
You acquire an item: leather chaps
You acquire an item: stunt nuts
You acquire an item: ketchup hound
You acquire an item: a butt tuba
You gain 9 Beefiness
You gain 7 Mysteriousness
You gain 25 Chutzpah

Happy ending in the end I guess, but weird behavior.



Also noticed, in the Hidden City when searching the blocks I saw the following after each combat... (truncated)

Code:
You gain 8 hit points
Finished using 1 Doc Galaktik's Ailment Ointment.
Restoring     MP! Currently at 91 of 91 HP, 54 of 133 MP, current meat: 4337 ... Target     MP = 106.
Using 1 magical mystery juice...
You gain 22 Mojo     Points
Finished using 1 magical mystery juice.
Searching for     "magical mystery juice"...
Purchasing magical mystery juice     (2 @ 100)...
You acquire magical mystery juice (2)
You spent 200 Meat
Purchases     complete.
Using 2 magical mystery juice...
You gain 44 Mojo Points
Finished     using 2 magical mystery juice.
Exploring square : 1 / 25

[880]     Hidden City (Square 1)
BCC:     Finished the combat. Let's carry on.
BCC:     Continuing to adventure in the Hidden City.
Mood swing complete.
Restoring     MP! Currently at 91 of 91 HP, 120 of 133 MP, current meat: 4160 ... Target     MP = 121.
Searching for "magical mystery juice"...
Purchasing     magical mystery juice (1 @ 100)...
You acquire an item: magical mystery     juice
You spent 100 Meat
Purchases complete.
Using 1 magical     mystery juice...
You gain 20 Mojo Points
Finished using 1 magical     mystery juice.
Exploring square : 2 / 25

[881] Hidden City     (Square 2)
BCC:     Finished the combat. Let's carry on.
BCC:     Continuing to adventure in the Hidden City.
Restoring     MP! Currently at 91 of 91 HP, 133 of 134 MP, current meat: 3945 ... Target     MP = 134.
Searching for "magical mystery juice"...
Purchasing     magical mystery juice (1 @ 100)...
You acquire an item: magical mystery     juice
You spent 100 Meat

My mood setup dose not attempt to recover MP normally. The target MP restore level each round keeps increasing though, until notably it attempts to buy a MMJ to restore 1 mp.

Why is it even restoring mp at this point, or should i be concerned about setting my ccs to handle protector spirits with my permed magic?

*edit* it seems to have equipped the hippy suit for stench damage, but ignored the imp unity ring, butt tuba, and grungy bandanna which (which might of put me below safe moxie as i was at 178 at that point... except the grungy banadana should have beat the bonus of the hippy outfit hat in that case. I'm not sure if it is manually selecting elemental damage items, or if the maximizer script from mafia is doing something funny here.)


Also also: at the start of the level 12 quest it equipped the Heboulder even though I still had the "everything is yellow" debuff. If that debuff is currently on you shouldn't it switch to a item drop familiar instead?
 
Last edited:
I am unable to replicate the bug with the HeBo and the tan gnat, although you aren't the first to report it. If anyone has any ideas, let me know.

The hidden city restores HP/MP between each round because it doesn't use mafia's adventure() function and it would hence never restore HP/MP otherwise.

The hidden city just equips the hippy suit as that's the only thing I'm sure you'll have and I can't be bothered to do anything else. You should be at pretty safe moxie anyway, even with it on.

Oh, and the script will continue to equip the HeBo even if you have Everything Looks Yellow. It's not an optimal script, and it'd probably save about 2 turns per ascension.
 
What are the issues you're having that are making you not want to support flyering Cyrus instead of the GMoB?
 
This is a fun error:

Code:
Request 1 of 9 (Knob: King's Chamber) in progress...
Using 1 Knob     Goblin perfume...
You acquire an effect: Knob Goblin Perfume (duration:     1 Adventure)
Finished using 1 Knob Goblin perfume.

[376] King's     Chamber
Encounter: The Knob Goblin King
Strategy: M:\Privat\KoL     Mafia\ccs\AT.ccs [default]
Round 0: winterbay loses initiative!
(unable     to macrofy due to action: consult smartstasis.ash)
Monster     value: 0
Profit per round: 0
Checking     for unidentified potions...
This monster is     not your huckleberry.
Round 1: winterbay attacks!
Round 2:     the knob goblin king takes 47 damage.
Round 2: winterbay attacks!
Round     3: the knob goblin king takes 38 damage.
You acquire an item: dense     meat stack
You acquire an item: dense meat stack
You acquire an     item: Crown of the Goblin King
You acquire an item: Cobb's Knob lab key
After     Battle: Brog smiles approvingly.
You gain 17 Fortitude
You gain 21     Enchantedness
You gain 39 Cheek

BBB: No     need to eat a cookie given the present counters.
Autoselling     items to NPCs...
You gain 2,000 Meat
Items sold.
You     don't have any spooky putty monsters.
MCD:     Sensitive location, not adjusting.

Request 2 of 9 (Knob:     King's Chamber) in progress...
You need 1 more Knob     Goblin perfume to continue.
That area is not     available.

Why did it try to kill the king twice? COuld it be because it is looking for some other drop than the crown? BEcause it also failed to set the MCD to any other value than 0 when fighting the king (as well as the bat king, set that manually and it still reset it to 0 before fighting it).

Also, it tried to get the steel margarita twice, i.e. when it allreday had used it to get to 19 max drunkenness. Perhaps use a check for max drunkenness somewhere?
 
It didn't try to kill the king twice. It can't, so it's irrelevant that I adventure there my_adventures() times. I've just uploaded 0.10 which fixes the MCD problem and the steel bug.

- Check for the He-Boulder BEFORE making the pumpkin bomb. Not after. That would be a stupid idea.
- Force MCD=0 in Junkyard. Maximize DR/DA as well. Force MCD=4,7 in Boss Bat, King's Chamber.
- Fix bug where it'd continue to get the steel items.
- Made a slight change to the way the script checks for clovers.
- Set the library choice adventures.
- Also set moods if we have >100MP or >7000 meat.
- Start moving things into separate functions per quests.
- Set moods when trying to level.
 
Actually, I think the only issue you would have with cyrus is that mafia doesn't track how many amino acids you've consumed. If it did there wouldn't be any problems, you'd basically do:

Code:
set choiceadv 350 to 1 // enter combat with cyrus

while
use as many amino acids as you have up to 3
if you've used zero:
         set choiceadv 349 to 3 // get a single amino acid
else if you've used more then zero
         set choiceadv 349 to 1 // unlock combat adventures
if you've used less then 3 and want to use a clover
         use a clover
adventure(1)
endwhile
Clovers don't get used up until after you unlock the combat adventures, you have to get at least one from the noncombat unless you already have access to some (sc pull, out of ronin).
 
Last edited:
Does this skip trying to set for bad moon and first ascension players? Also, is it worth setting for the scary cyrpt boss?

Yes. It only EVER sets the MCD if you can, and never sets it in Bad Moon. And no, not for the bonerdagon.

Rinn, you have a point. Tracking the amino acids would help cyrus massively, particularly starting halfway through.
 
Is there any way to force this to temporarily not use clovers? This way it could be used for a BM leadin run.
I know I have seen a setting in the script regarding just that.
A setting that stop it from using clovers and also a setting if you want to use a 100% familiar run.

EDIT:
Yup, there it is:
Code:
//Set this to true if you want to do a cloverless ascension. 
bcasc_cloverless = false;
 
Last edited:
Just out of curiosity, why do you have this:
Code:
switch (my_name()) {
	case "bumcheekcity":
		bcasc_100familiar = "";
		bcasc_doWarAs = "frat";
		bcasc_doSideQuestArena = true;
		bcasc_doSideQuestJunkyard = true;
		bcasc_doSideQuestBeach = true;
		bcasc_doSideQuestOrchard = true;
		bcasc_doSideQuestNuns = true;
		bcasc_doSideQuestDooks = false;
	break;
	
	case "bumcheekasctest" :
	case "bumcheekasctest2" :
		bcasc_doWarAs = "hippy";
		bcasc_cloverless = true;
		bcasc_doSideQuestArena = false;
		bcasc_doSideQuestJunkyard = false;
		bcasc_doSideQuestBeach = false;
		bcasc_doSideQuestOrchard = true;
		bcasc_doSideQuestNuns = true;
		bcasc_doSideQuestDooks = true;
	break;
when you further down have this:
Code:
		//String "frat" or "hippy" in lowercase.
		bcasc_doWarAs = "frat";

		//Indicate whether or not you want to do each of the sidequests.
		bcasc_doSideQuestArena = true;
		bcasc_doSideQuestJunkyard = true;
		bcasc_doSideQuestBeach = true;
		bcasc_doSideQuestOrchard = true;
		bcasc_doSideQuestNuns = false;
		bcasc_doSideQuestDooks = false;
	break;

And, which one is it that really counts? Atm I edit both of them to the way I want to do the lvl12 quest.
 
Just out of curiosity, why do you have this:
Code:
switch (my_name()) {
	case "bumcheekcity":
		bcasc_100familiar = "";
		bcasc_doWarAs = "frat";
		bcasc_doSideQuestArena = true;
		bcasc_doSideQuestJunkyard = true;
		bcasc_doSideQuestBeach = true;
		bcasc_doSideQuestOrchard = true;
		bcasc_doSideQuestNuns = true;
		bcasc_doSideQuestDooks = false;
	break;
	
	case "bumcheekasctest" :
	case "bumcheekasctest2" :
		bcasc_doWarAs = "hippy";
		bcasc_cloverless = true;
		bcasc_doSideQuestArena = false;
		bcasc_doSideQuestJunkyard = false;
		bcasc_doSideQuestBeach = false;
		bcasc_doSideQuestOrchard = true;
		bcasc_doSideQuestNuns = true;
		bcasc_doSideQuestDooks = true;
	break;
when you further down have this:
Code:
		//String "frat" or "hippy" in lowercase.
		bcasc_doWarAs = "frat";

		//Indicate whether or not you want to do each of the sidequests.
		bcasc_doSideQuestArena = true;
		bcasc_doSideQuestJunkyard = true;
		bcasc_doSideQuestBeach = true;
		bcasc_doSideQuestOrchard = true;
		bcasc_doSideQuestNuns = false;
		bcasc_doSideQuestDooks = false;
	break;

And, which one is it that really counts? Atm I edit both of them to the way I want to do the lvl12 quest.

It is a switch based on the user logged in running the script. BCC wants to use different settings for his different characters and if you want to do the same you create cases for those as well, or exchange the ones there for your characters.
The one at the bottom is the default case which will be used if nothing else matches (i.e. zero setup).
 
Back
Top