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

Good luck with the waters. My sister just escaped Texas last week for a few months, so she's avoiding the unexpected rivers by proximity.

The best way to get new familiars added is to give me the full list of familiars - old and new - in a code block like fewyn did. That's just [code]Familiars with number order[/code]and then if people object to its specifics, we can modify it.

I know that we have new familiars that should be added. I haven't had the time to sit and try to come up with the proper foreach it in $familiars numeric_modifier(stuff) to get relative weight on them.

Keep in mind that KoL and mafia will filter out anything that restrictions limit from you - in some ways, older familiars are better to have higher in the list, because their drops are less common nowadays. In other ways, the newer familiars are better because you'll be able to sell their drops in the mall to people not running restricted runs. Which way should we tilt it when the familiars are identical? Great question... someone with a bunch of Mr. A familiars who mallsells extra spleeners want to take that one?
 
bcs_fam_items.txt
Code:
1    jumpsuited hound dog
2    Pair of Stomping Boots
3    slimeling
4    Reagnimated Gnome
5    Coffee Pixie
6    Attention-Deficit Demon
7    Jitterbug
8    Casagnova Gnome
9    Psychedelic Bear
10  Gelatinous Cubeling
11    Angry Jung Man
12    Blavious Kloop
13    Adventurous Spelunker
14    Green Pixie
15    Dancing Frog
16    Grouper Groupie
17    Piano Cat
18    baby gravy fairy
19    Dandy Lion

bc_fam_hebo.txt
Code:
1    he-boulder
2    jumpsuited hound dog
3    slimeling
4.  Nanorhino
5.  Crimbo Shrub

bc_fam_init.txt
Code:
1    oily woim
2    happy medium
3   Xiblaxian Holo-Companion

thats three so far i have some more you when work slows down
 
So... <coughs> Three little problems with the way you did those.
One, spaces and tabs are not the same. :)
Two, bc_ is not the same as bcs_ though that was easily noticed.
Three, you removed at least some of the default drop-through familiars at the end of the lists. Unless there's a reason to remove the familiar because it's actively negative, please do not remove them even if it isn't your preferred familiar.

Anyways, updating the familiar lists. Taking longer since I can't just copy-paste, but at least I have ordering now.
 
So, quick changes list:
1) We don't remove the end-drop-familiar in hebo. If we need drops and we can't guarantee it, use a BGF to at least improve our +item.
2) Since the spleener familiars are useful every day, which is better than the once-per-ascension cubeling, use them preferentially. If you want to farm familiar drops, your BBS can always override us.
3) Also add the cubeling to the +non-combat item familiar list.
 
Last edited:
One and two are stupid mistakes. the lost one I didn't remove anything. They were direct copies from the data files unless something got lost when I did a copy/paste. So your changes list is fine. I hadn't done the +nc item list yet so go ahead and add the cubeling there.
 
The baby gravy fairy had been number 4, but your hebo only had 1, 2, 3, and then 2 new additions to stop at 5, rather than ending at 6. Anyways, the Nanorhino ended up lower than the Crimbo Shrub, since you not only need to have either a full charge and a moxie skill, or enough pre-charged turns of the buff. Checking the text of the page for yellow availability is much easier. :)
 
Not a problem. I noticed it and didn't wipe it, and then I thought through why it had actually been there despite not providing any hebo functionality. We could actually clone the itemsnc into the 6+ hebo section if we wanted, or not...
 
Since the spleen familiar handling is hardcoded, I added the spleen FOTYs that were missing.

Starts on line 2265:
Code:
	//Spleen Familiar Handling
	print("BCC: Switching Familiar for General Use", "aqua");
	//Setting max spleen to determine how much spleen to acquire and use
	int maxspleen = 12;
	if (have_skill($skill[Spleen of Steel])) maxspleen = 20;
	
	//Checks what spleen familiars are usable in-path
	if (have_path_familiar($familiar[Rogue Program]) || have_path_familiar($familiar[Baby Sandworm]) || have_path_familiar($familiar[Bloovian Groose]) || have_path_familiar($familiar[Unconscious Collective]) || have_path_familiar($familiar[Grim Brother]) || have_path_familiar($familiar[Golden Monkey])) {
		//Before we do anything, let's check if there's any spleen to do. May as well do this as we go along.

		//Consume IOTY spleen items first because it doesn't have a level requirement
		if (my_spleen_use() <= maxspleen-4 && get_property("bcasc_doNotUseSpleen") != "true" && !can_interact()) {
			print("BCC: Going to try to use some spleen items if you have them.", "purple");

			while (my_spleen_use()  <= maxspleen-4 && item_amount($item[groose grease]) > 0) {
				chew(1, $item[groose grease]);
				cli_execute("uneffect just the best anapests");
			}
			while (my_spleen_use()  <= maxspleen-4 && item_amount($item[unconscious collective dream jar]) > 0) {
				chew(1, $item[unconscious collective dream jar]);
			}
			while (my_spleen_use()  <= maxspleen-4 && item_amount($item[grim fairy tale]) > 0) {
				chew(1, $item[grim fairy tale]);
			}
			while (my_spleen_use()  <= maxspleen-4 && item_amount($item[powdered gold]) > 0) {
				chew(1, $item[powdered gold]);
			}
		}
		
		//Level requirement spleen is consumed after IOTY spleen items are gone
		if (my_spleen_use() <= maxspleen-4 && my_level() >= 4 && get_property("bcasc_doNotUseSpleen") != "true" && !can_interact()) {
			print("BCC: Going to try to use some spleen items if you have them.", "purple");
			
			while (my_spleen_use()  <= maxspleen-4 && item_amount($item[agua de vida]) > 0) {
				chew(1, $item[agua de vida]);
			}
			
			while (bootsSpleenThing() != $item[none] && my_spleen_use()  <= maxspleen-4) {
				chew(1, bootsSpleenThing());
			}
			
			//Acquire Game Grid spleen items since they're not dropped directly
			visit_url("place.php?whichplace=town_wrong");
			while (my_spleen_use()  <= maxspleen-4 && (available_amount($item[coffee pixie stick]) > 0 || item_amount($item[Game Grid token]) > 0)) {
				if (available_amount($item[coffee pixie stick]) == 0) {
					visit_url("arcade.php?action=skeeball&pwd="+my_hash());
				}
				chew(1, $item[coffee pixie stick]);
			}
		}
		
		//If they have these, then check for spleen items that we have. 
		//Checks if there are enough spleen items to fill our remaining spleen
		if (my_spleen_use() + (i_a("agua de vida") + i_a("coffee pixie stick") + i_a("Game Grid token") + i_a("Game Grid ticket")/10 + i_a("groose grease") + i_a("unconscious collective dream jar") + i_a("grim fairy tale") + i_a("powdered gold")) * 4 < maxspleen + 4) {
			print("Spleen: "+my_spleen_use()+" Agua: "+i_a("agua de vida")+" Stick: "+i_a("coffee pixie stick")+" Token: "+i_a("Game Grid token") + " Grease: " + i_a("groose grease") + " Dream Jar: " + i_a("unconscious collective dream jar") + " Fairy Tale: " + i_a("grim fairy tale") + " Powdered Gold: " + i_a("powdered gold"), "purple");
			print("Total Spleen: "+(my_spleen_use() + (i_a("agua de vida") + i_a("coffee pixie stick") + i_a("Game Grid token") + i_a("groose grease") + i_a("unconscious collective dream jar") + i_a("grim fairy tale") + i_a("powdered gold")) * 4), "purple");
			
			//Then we have space for some spleen items.
			//Prioritizes Golden Monkey because it's marginally better than other IOTY spleen familiars due to the golden nugget drops
			if (have_path_familiar($familiar[Golden Monkey])) {
				use_familiar($familiar[Golden Monkey]);
				return true;
			} else if (have_path_familiar($familiar[Unconscious Collective]) && have_path_familiar($familiar[Bloovian Groose])) {
				if (to_int(get_property("_dreamJarDrops")) <= to_int(get_property("_grooseDrops"))) {
					use_familiar($familiar[Unconscious Collective]);
					return true;
				} else {
					use_familiar($familiar[Bloovian Groose]);
					return true;
				}
			} else if (have_path_familiar($familiar[Unconscious Collective])) {
				use_familiar($familiar[Unconscious Collective]);
				return true;
			} else if (have_path_familiar($familiar[Bloovian Groose])) {
				use_familiar($familiar[Bloovian Groose]);
				return true;
			} else if (have_path_familiar($familiar[Grim Brother])) {
				use_familiar($familiar[Grim Brother]);
				return true;
			} else if (have_path_familiar($familiar[Rogue Program]) && have_path_familiar($familiar[Baby Sandworm])) {
				//Then randomly pick between the two.
				if (to_int(get_property("_tokenDrops")) <= to_int(get_property("_aguaDrops"))) {
					use_familiar($familiar[Rogue Program]);
					return true;
				} else {
					use_familiar($familiar[Baby Sandworm]);
					return true;
				}
			} else if (have_path_familiar($familiar[Rogue Program])) {
				use_familiar($familiar[Rogue Program]);
				return true;
			} else if (have_path_familiar($familiar[Baby Sandworm])) {
				use_familiar($familiar[Baby Sandworm]);
				return true;
			}
		}
	}
 
Last edited:
Q1: Is there a reason why we leave 3 spleen for normal runs, but 0 for ocy-core? I expect them both to use similar levels - either you're going to use spleen for adventures or health. If you're using the terrible stat spleens, and you have access to more adventures, something probably went terribly wrong. Probably with your planning. It might just be to do round sets of 4, but... we can let mafia use its intelligence on math-ing it if that's the only reason.
Q2: Is there a good reason not to use the awesome new familiar drop code handling? Especially with a new point run, it should be widely available...
 
I've been adventuring in the Spooky Forest for a very, very long time now. Is this normal? I am talking about 300-500 turns burned.

Depends on why. If it's trying to level you up to a safe level and that happens to be its choice... maybe? Anything else, we'd need more info on what happened.

Anyways, greatly simplified version of the spleen farming should be getting uploaded shortly. If you want any more, just let me know and we'll add them to the listing. Order of the familiars is the order it will try them, and it should stop using a familiar after it's fully dropped-out.

We could always farm spleeners if we wanted. Currently it only farms if you actually have spleen space available. Which seems a little off, but hey... I don't have any spleeners, so doesn't affect me. :)
 
Q1: Is there a reason why we leave 3 spleen for normal runs, but 0 for ocy-core? I expect them both to use similar levels - either you're going to use spleen for adventures or health. If you're using the terrible stat spleens, and you have access to more adventures, something probably went terribly wrong. Probably with your planning. It might just be to do round sets of 4, but... we can let mafia use its intelligence on math-ing it if that's the only reason.
Q2: Is there a good reason not to use the awesome new familiar drop code handling? Especially with a new point run, it should be widely available...

Functionally, there is no difference between having the max spleen be 12 or 15 for normal runs, since every familiar spleen drop is size 4 and the script only consumes them. That is, unless someone manually consumes a spleen item (such as a wad or the stat spleens), so I agree, changing the max to 15 is a better idea.

We definitely should use the drop code handling! I only implemented the additions this way because this is how spleen had been hardcoded and it only took a few minutes to add the newer familiars. I'm looking forward to rework you've done, though!
 
Yeah, it's done. The whole actual farming code is simplified to just these two lines:
Code:
			foreach it in $familiars[Golden Monkey, Unconscious Collective, Grim Brother, Bloovian Groose, Rogue Program, Baby Sandworm] {
				if (have_path_familiar(it) && it.drops_today < it.drops_limit) return use_familiar(it);
It will switch through the familiars listed in the order given.

Historically as well as currently, it will only farm spleen items if you haven't filled your spleen. That seems silly, but then again, I don't have any spleeners, so I don't personally care. But... that's a question someone with actual skin in the game needs to answer. :)
 
Yeah, it's done. The whole actual farming code is simplified to just these two lines:
Code:
			foreach it in $familiars[Golden Monkey, Unconscious Collective, Grim Brother, Bloovian Groose, Rogue Program, Baby Sandworm] {
				if (have_path_familiar(it) && it.drops_today < it.drops_limit) return use_familiar(it);
It will switch through the familiars listed in the order given.

Historically as well as currently, it will only farm spleen items if you haven't filled your spleen. That seems silly, but then again, I don't have any spleeners, so I don't personally care. But... that's a question someone with actual skin in the game needs to answer. :)

I believe only farming drops when you still need spleen is correct since it would be suboptimal to have a spleen familiar out for longer than it needs to be when another familiar could be out instead.
 
Why does this script insist on using my OCRS dice items? BCA/CCC is not good enough to fight untouchable + huge monsters etc. Can I stop it equipping these, somehow? I tried closeting the items, but it dragged them back out.

I'm in HC.
 
Why does this script insist on using my OCRS dice items?

Presumably (wild guess on my part)
1) turncount is leaderboard-irrelevant
2) more combats with more dice = more fun (the leaderboard kind)
3) more dice = more solid gold, more fratty, more hippy, more pixellated, more drunk, more yuletide, ...
(and also more lazy, frozen, ...)
 
Unfortunately using the OCRS items is breaking my automation every 4-6 turns as I'm playing a low-skill moxie class, so the electrified etc, cloned, throbbing, huge, untouchable monsters make it difficult for the batbrain to figure out combat. Can I make it so that BCA can't access the dice items somehow?
 
Back
Top