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

KapmK

New member
I'm sure somewhere in here it's been asked about, but I'll ask again for my own convenience, how does the script handle familiars? I have several FoTMs and the script seems to still use my baby gravy fairy sometimes. Is there any easy way to fix this?

I just started using this script recently, and was fiddling around with it to get it to stop changing from my emilio to a lower weight smiling rat. There are some txt documents in the data folder of kolmafia, and tweaking them seemed to do the trick. The relevant files all start with bcs_fam. It seems there are places where the script calls to equip a certain familiar, and instead of directly checking to see if you have it, it goes to these lists to find the one with the highest priority that you have. Adding your familiars to these lists might do the trick. Of course, I don't know a whole lot about the code for the script, so this is mostly conjecture. But at least my emilio hasn't been randomly switched out with a smiling rat.
 

bumcheekcity

Active member
I don't quite understand, the relavent part of the script is this:

Code:
if (my_familiar() == $familiar[He-Boulder]) {
			print("BCC: We are using the hebo against the right monster.", "purple");
			if (contains_text(text, "yellow eye")) {
				return "skill point at your opponent";
			} else {
				switch (my_class()) {
					case $class[turtle tamer] : return "skill toss"; break;
					case $class[seal clubber] : return "skill clobber"; break;
					case $class[pastamancer] : return "skill Spaghetti Spear"; break;
					case $class[sauceror] : return "skill salsaball"; break;
					case $class[Disco Bandit] : return "skill suckerpunch"; break;
					case $class[Accordion Thief] : return "skill sing"; break;
					default: abort("unsupported class"); break;
				}
			}
		} else if (item_amount($item[unbearable light]) > 0) {
			print("BCC: We are trying to use the HeBoulder, but you don't have one (or perhaps are on a 100% run), so I'm using an unbearable light.", "purple");
			return "item unbearable light";
		} else if (item_amount($item[pumpkin bomb]) > 0) {
			print("BCC: We are trying to use the HeBoulder, but you don't have one (or perhaps are on a 100% run), so I'm using a pumpkin bomb.", "purple");
			return "item pumpkin bomb";
		} else {
			print("BCC: We are trying to use the HeBoulder, but you don't have one (nor a pumpkin bomb), so I'm attacking.", "purple");
			return ((my_primestat() == $stat[Mysticality] && in_hardcore()) ? consultMyst(round, opp, text) : get_ccs_action(round)); 
		}

Which uses familiar, THEN light, THEN pumpkin bomb, then attacks. The script didn't make an unbearable light automatically, but if you made it manually then ran it, it should have used it. What version were you using?
 

Winterbay

Active member
I don't quite understand, the relavent part of the script is this:

Code:
if (my_familiar() == $familiar[He-Boulder]) {
			print("BCC: We are using the hebo against the right monster.", "purple");
			if (contains_text(text, "yellow eye")) {
				return "skill point at your opponent";
			} else {
				switch (my_class()) {
					case $class[turtle tamer] : return "skill toss"; break;
					case $class[seal clubber] : return "skill clobber"; break;
					case $class[pastamancer] : return "skill Spaghetti Spear"; break;
					case $class[sauceror] : return "skill salsaball"; break;
					case $class[Disco Bandit] : return "skill suckerpunch"; break;
					case $class[Accordion Thief] : return "skill sing"; break;
					default: abort("unsupported class"); break;
				}
			}
		} else if (item_amount($item[unbearable light]) > 0) {
			print("BCC: We are trying to use the HeBoulder, but you don't have one (or perhaps are on a 100% run), so I'm using an unbearable light.", "purple");
			return "item unbearable light";
		} else if (item_amount($item[pumpkin bomb]) > 0) {
			print("BCC: We are trying to use the HeBoulder, but you don't have one (or perhaps are on a 100% run), so I'm using a pumpkin bomb.", "purple");
			return "item pumpkin bomb";
		} else {
			print("BCC: We are trying to use the HeBoulder, but you don't have one (nor a pumpkin bomb), so I'm attacking.", "purple");
			return ((my_primestat() == $stat[Mysticality] && in_hardcore()) ? consultMyst(round, opp, text) : get_ccs_action(round)); 
		}

Which uses familiar, THEN light, THEN pumpkin bomb, then attacks. The script didn't make an unbearable light automatically, but if you made it manually then ran it, it should have used it. What version were you using?

Also, I've had it happen that the script wanted to use 2 exploding items and so it first used my light and then 150 turns later the pumpkin.
Also, I think the problem was not that it used the pumpkin bomb up, but that it built the bomb (which I believe it will still do even if you have a light). If that was the case the problem can be solved by untinkering the pumpkin bomb and using your pumpkin for whatever you want it fot.
 

KapmK

New member
Specifically, what item drop familiar did you think it should have used in preference to your baby gravy fairy?

Alternatively, do you have a snapshot?

I know you weren't asking me, but I might be able to give some semblance of an answer. Most of the lists of familiars that relate to maximizing items go through the whole list of fairychauns before reaching the baby gravy fairy. Hebo checks for a few special fairy familiars (hound, slimeling), but none of the fairychauns. In addition to this, none of these lists currently contain the pair of stomping boots. Also, the lists that switch your familiar out with a smiling rat don't a lot of checking for other volleyball type familiars first. After spending several seconds looking through the code, it would appear that, in the case of the hipster, you'd only be adventuring in a noncombat zone anyway, so the smiling rat is just a placeholder familiar. But some people might see the script changing their familiar out for a much worse familiar, and not know why. And that can be somewhat aggravating. Though I don't really know what meatbossbat does, I notice it doesn't look through any fairychauns/volleychauns before defaulting to the normal leprechaun. Even if situations that use that list aren't aided in any way by the functionality of those dual-type familiars, some people might see the script default to these familiars and say, "I could have just used one familiar for these two situations, it would have slightly more experience!" But I guess that isn't really a top priority adjustment.

If I were to list specific familiars that I would like to see added to these lists in a future update, I would say the Stomping Boots and Tickle-Me-Emilio. Then again, those are the only two familiars I actually have that are any better than the base familiars, so there might be some bias there.

I realize there might be a good reason for a lot of these choices in familiar selection that I don't see, so I apologize if I'm just annoying you with stupid comments.
 
Last edited:

Winterbay

Active member
If you want a different "standard familiar" than your rat you can always set the property "default familiar" in the relay script. It should then use that instead.
 

KapmK

New member
I don't think the default familiar setting has much to do with the change. There are several places in the code where it starts looking through the list, and changes your familiar to the first one on the list that you have, without accounting for your default at all. That's why my Emilio was switched out for the smiling rat, even though I had him set as my default. It didn't really cause major problems, but it was just slightly aggravating to have the script change my familiar to the smiling rat for no reason immediately before fighting the bonerdagon.
 

Winterbay

Active member
IIRC the stat familiars are not in any of the lists which is why the default familiar may help. The stat familiars are hardcoded into the script and it goes for basic volleybals only I believe (on my phone so can't check source).
 
candy credit?

Since Crimbo is basically over, I have went back to my normal routine and everytime that I try to run this script again, I get this message..."Don't know how to retrieve a candy credit". I'm not sure what I'm doing wrong...maybe I have something set up wrong? I need help.
 
The solution is to use a text editor, open the script file, search for the line:

cli_execute("make meatcar")

... and replace it as recommended.
 

Lolzor

New member
Tried this script today. I like it,though it doesn't seem to use the latest familiars (the boots and scarecrow) to get spleen or more stat/+item/e.t.c. ,than regular fams.
Anyway,it got me to level 6 on day 1 of trendy hc despite that (i think it also misused unbearable light on Knob Goblin Madam for some reason),so it's good.
UPD - day 2 , no daily dungeon keys or tokens. Oh well,those are easy to get manually.
 
Last edited:
no familiar?

Upgraded to the new updated script and for some reason in parts of the script running it is adventuring without a familiar equipped. I'm not sure where to fix this at. Everytime I manually equip a familiar it will unequip it.
 

Theraze

Active member
Wild guess... you don't have a smiling rat yet. And you haven't changed the default familiar using the relay script.
 

bumcheekcity

Active member
Upgraded to the new updated script and for some reason in parts of the script running it is adventuring without a familiar equipped. I'm not sure where to fix this at. Everytime I manually equip a familiar it will unequip it.

Your first step will be in giving a more detailed description of the problem. CLI output and which areas for a start.
 
Top