You can script your pulls and restocking.I gave up doing SC about a year ago because having to to time my pulls and restocking was such a pain, a lot more fun to do HC imo even if you script parts.
[COLOR=olive]> maximize? +combat min5[/COLOR]
Maximizing...
80 combinations checked, best score 0.00
> Level 8 Starting
Visiting the Trapper
> BCC: We have completed the stage [mining].
Visiting the Trapper
> BCC: Getting some climbing gear.
> BCC: Need moar combat! WAAARGH!
> BCC: Need initiative!
> BCC: Maximizing 'initiative'
maximize 0 beeosity, mainstat 999999999 max, -melee -10 ml +moxie experience +0.5 mp regen min +0.5 mp regen max, initiative -equip hilarious comedy prop
equip hat double-ice cap
equip pants Knob Goblin elite pants
equip acc2 shiny ring
mcd 0
cast 1 Carlweather's Cantata of Confrontation
You acquire an effect: Carlweather's Cantata of Confrontation (duration: 11 Adventures)
[473] Lair of the Ninja Snowmen
if (item_amount($item[boring binder clip]) > 0 && get_property("hiddenOfficeProgress") == "5") use(1,$item[boring binder clip]);
BCC: Maximizing ''
BCC: Switching Familiar for General Use
BCC: Setting the default familiar to your choice of 'squamous gibberer'.
BCC: Nothing to fax according to whatShouldIFax
Cleared mood.
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
Mood swing complete.
Mood swing complete.
BCC: Getting the moss-covered stone sphere.
Conditions list cleared.
BCC: Setting goals of '1 choiceadv'...
Condition added: Choices Left: 1
BCC: We should set the MCD if we can.
BCC: We CAN set the MCD.
Mind control device already at 10
You can't hit anything there.
BCC: Maximizing ''
BCC: Switching Familiar for General Use
BCC: Setting the default familiar to your choice of 'squamous gibberer'.
BCC: Nothing to fax according to whatShouldIFax
Cleared mood.
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
Mood swing complete.
Mood swing complete.
BCC: Getting the moss-covered stone sphere.
Conditions list cleared.
BCC: Setting goals of '1 choiceadv'...
Condition added: Choices Left: 1
BCC: We should set the MCD if we can.
BCC: We CAN set the MCD.
Mind control device already at 10
You can't hit anything there.
If you leave mafia to "attack with weapon" and try to automate in an area where it believes you will not be able to hit anything meaningfully without critical hits, it will give you the "You can't hit anything there." message. This is not a BCA bug... it's a decision on your part.
I highly suggest using WHAM for your automation instead. It will simplify your automating to no end... though it does still get confused sometimes about some of the odder parts of the class revamps. But still... way better than Attack with weapon.
if (contains_text(maxme, "UV-resistant compass")) {
cli_execute("equip UV-resistant compass");
return true;
}
if (contains_text(maxme, "antique machete")) {
cli_execute("equip antique machete");
return true;
}
boolean bcascMacguffinPyramid() {
if (checkStage("macguffinpyramid")) return true;
if (to_int(get_property("desertExploration")) != 100) {
if (my_path() == "Way of the Surprising Fist" || my_path() == "Avatar of Boris" || my_path() == "Zombie Slayer" || my_path() == "KOLHS" || my_path() == "Bugbear Invasion" || my_path() == "Bees Hate You" || my_path() == "Avatar of Jarlsberg" || my_path() == "Bees Hate You")
if (user_confirm("Your path is currently not supported with the new desert. Would you like to stop the script and do it manually? If you choose no you will be at the mercy of randomness."))
abort("You have chosen to do this part manually. Good luck!");
buffer hut;
setFamiliar("");
string maxstring = "+equip antique machete";
if (i_a("UV-resistant compass") < 1 && (item_amount($item[Shore Inc. Ship Trip Scrip]) == 0) ) {
print("BCC: Getting Awesome Compass, hope you do not use a 2-H weapon.", "purple");
adventure(1, $location[The Shore, Inc. Travel Agency]);
}
//"Find" the Oasis
while (!contains_text(visit_url("beach.php"),"oasis.gif")) {
print("BCC: Revealing the Oasis", "purple");
buMax(maxstring);
bumMiniAdv(1, $location[The Arid, Extra-Dry Desert]); //Not sure if KoLMafia counts finding it as a choice adventure and I don't feel like testing it
//bumAdv($location[The Arid, Extra-Dry Desert], maxstring, "", "1 choiceadv", "Revealing the Oasis", "-");
}
//Find Gnasir
if (!contains_text(visit_url("beach.php"), "gnasir.gif")) {
print("BCC: Finding Gnasir.", "purple");
buMax(maxstring);
if (have_effect($effect[Ultrahydrated]) >= 1)
bumMiniAdv(1, $location[The Arid, Extra-Dry Desert]);
else
bumMiniAdv(1, $location[The Oasis]);
if (get_property("lastEncounter") == "A Sietch in Time") //This is an "unsupported" KoLMafia choice adventure so it will throw an error but continue after
visit_url("choice.php?pwd&whichchoice=805&option=1&choiceform1=Whoops.");
}
buffer charpane;
charpane = visit_url("charpane.php");
//Checking to see if you can buy/pull a killing jar if you do not have
if (!contains_text(visit_url("charpane.php"), "<s>a killing jar") && can_interact() && (i_a("killing jar") < 1))
retrieve_item(1, $item[killing jar]);
else if (!contains_text(visit_url("charpane.php"), "<s>a killing jar") && !in_hardcore() && (i_a("killing jar") < 1)) {
if (user_confirm("Do you want to pull Killing Jar? You have" + pulls_remaining() + " pulls remaining.")) {
print("BCC: Pulling Killing Jar", "purple");
take_storage(1, $item[killing jar]);
}
}
//Get the Stone Rose and hopefully a drum machine
if (!contains_text(charpane, "<s>a stone rose") && i_a("stone rose") == 0)
bumAdv($location[The Oasis], "", "items", "1 stone rose", "Getting the stone rose.");
//Get the Can of Black Paint
if (!contains_text(charpane, "<s>a can of black paint") && !retrieve_item(1 , $item[can of black paint]))
print("You need more meat for a can of black paint, how sad.", "red");
//Turn In the Quest Items
if ((i_a("killing jar") > 0) && !contains_text(charpane, "<s>a killing jar")) {
hut = visit_url("place.php?whichplace=desertbeach&action=db_gnasir");
hut = visit_url("choice.php?pwd&whichchoice=805&option=4&choiceform4=I+brought+you+that+killing+jar+you+wanted.");
}
if ((i_a("can of black paint") > 0) && !contains_text(charpane, "<s>a can of black paint")) {
hut = visit_url("place.php?whichplace=desertbeach&action=db_gnasir");
hut = visit_url("choice.php?pwd&whichchoice=805&option=3&choiceform3=I+brought+some+black+paint+for+your+door.");
visit_url("choice.php?pwd&whichchoice=805&option=1&choiceform1=No,+that's+all.");
}
if ((i_a("stone rose") > 0) && !contains_text(charpane, "<s>a stone rose")) {
hut = visit_url("place.php?whichplace=desertbeach&action=db_gnasir");
hut = visit_url("choice.php?pwd&whichchoice=805&option=2&choiceform2=I+found+your+stone+rose.");
visit_url("choice.php?pwd&whichchoice=805&option=1&choiceform1=No,+that's+all.");
}
//Use the Pamphlets
if (i_a("desert sightseeing pamphlet") > 0)
use(i_a("desert sightseeing pamphlet"), $item[desert sightseeing pamphlet]);
//Finish Exploring
buMax(maxstring);
charpane = visit_url("charpane.php");
//This first set will get the drum machine if you do not have and use it
while (to_int(get_property("desertExploration")) < 85) {
if (have_effect($effect[Ultrahydrated]) >= 1)
bumMiniAdv(1, $location[The Arid, Extra-Dry Desert]);
else
bumMiniAdv(1, $location[The Oasis]);
if (i_a("worm-riding manual page") == 15) {
hut = visit_url("place.php?whichplace=desertbeach&action=db_gnasir");
hut = visit_url("choice.php?pwd&whichchoice=805&option=2&choiceform2=I+think+I+found+all+the+missing+pages+of+your+book.");
visit_url("choice.php?pwd&whichchoice=805&option=1&choiceform1=No,+that's+all.");
if ((i_a("worm-riding hooks") > 0) && (i_a("drum machine") > 0))
use(1, $item[drum machine]);
else if (i_a("worm-riding hooks") > 0 && i_a("drum machine") < 1) {
bumAdv($location[The Oasis], "", "items", "1 drum machine", "Getting the drum machine.");
use(1, $item[drum machine]);
}
}
else print("We have currently explored "+get_property("desertExploration")+"% of the desert.", "blue");
}
//Doesn't bother getting the drum machine as you are almost done but will use if you have
while (to_int(get_property("desertExploration")) != 100) { //Could add in a check to see if we have a drum and almost enough pages but meh
if (have_effect($effect[Ultrahydrated]) >= 1)
bumMiniAdv(1, $location[The Arid, Extra-Dry Desert]);
else
bumMiniAdv(1, $location[The Oasis]);
if (i_a("worm-riding manual page") == 15) {
hut = visit_url("place.php?whichplace=desertbeach&action=db_gnasir");
hut = visit_url("choice.php?pwd&whichchoice=805&option=2&choiceform2=I+think+I+found+all+the+missing+pages+of+your+book.");
visit_url("choice.php?pwd&whichchoice=805&option=1&choiceform1=No,+that's+all.");
if ((i_a("worm-riding hooks") > 0) && (i_a("drum machine") > 0))
use(1, $item[drum machine]);
}
print("We have currently explored "+get_property("desertExploration")+"% of the desert.", "blue");
}
print("Desert has been fully explored! Pyramid is in sight.", "green");
return true;
}
else {
checkStage("macguffinpyramid", true);
return true;
}
}
boolean bcascMacguffinHiddenCity() {
if (item_amount($item[ancient amulet]) > 0 || item_amount($item[Headpiece of the Staff of Ed]) > 0 || item_amount($item[Staff of Ed, almost]) > 0 || item_amount($item[Staff of Ed]) > 0) {
return true;
}
else {
boolean tryPull(item it) {
if(pulls_remaining() > 0)
if (take_storage(1, it))
return true;
return false;
}
void openStage(int shrineSnarfblat, string locationName) {
if (contains_text(visit_url("place.php?whichplace=hiddencity"), locationName)) {
return;
}
string maxstring = "+equip antique machete";
bumAdv(to_location(shrineSnarfblat), maxstring, "", "1 choiceadv", "Opening "+locationName, "-");
}
if (checkStage("macguffinhiddencity")) return true;
//1 - Get antique machete.
if (can_interact())
cli_execute("equip antique machete");
else if (!in_hardcore() && i_a("antique machete") < 1 && user_confirm("Do you want to pull Antique Machete? You have" + pulls_remaining() + " pulls remaining.")) {
print("Pulling Antique Machete");
take_storage(1, $item[antique machete]);
cli_execute("equip antique machete");
}
else if (i_a("antique machete") < 1) {
set_property("choiceAdventure789", 2);
print("BCC: Getting the machete.", "purple");
while (i_a("antique machete") < 1) {
buMax("-combat -tie");
bumMiniAdv(1, $location[The Hidden Park], "");
if (get_property("lastEncounter") == "Where Does The Lone Ranger Take His Garbagester?") {
set_property("relocatePygmyJanitor", my_ascensions());
set_property("choiceAdventure789", 1);
}
}
print("We have a machete, going to use it to clear some shrines.", "green");
}
//2 - Clear all vines and unlock hidden city area.
set_property("choiceAdventure781", 1);
set_property("choiceAdventure783", 1);
set_property("choiceAdventure785", 1);
set_property("choiceAdventure787", 1);
set_property("choiceAdventure791", 6);
string maxstring = "+equip antique machete";
openStage(346, "The Hidden Apartment Building");
openStage(347, "The Hidden Hospital");
openStage(348, "The Hidden Office Building");
openStage(349, "The Hidden Bowling Alley");
bumAdv($location[A Massive Ziggurat], maxstring, "", "1 choiceadv", "Opening A Massive Ziggurat", "-");
//3 - Knock over Dumpster.
if (get_property("relocatePygmyJanitor") != my_ascensions()) {
set_property("choiceAdventure789", "2");
while (get_property("lastEncounter") != "Where Does The Lone Ranger Take His Garbagester?") {
bumAdv($location[The Hidden Park], "-combat -tie", "", "1 choiceadv", "Relocating Pygmy Janitors from the buildings to the park.", "-");
}
set_property("choiceAdventure789", 1);
set_property("relocatePygmyJanitor", my_ascensions());
}
//4 - Park until book of matches. (Use them)
if (bcasc_unlockHiddenTavern && item_amount($item[book of matches]) == 0 && !contains_text(visit_url("place.php?whichplace=hiddencity"), "whichshop=hiddentavern")) {
if (item_amount($item[book of matches]) == 0) {
bumAdv($location[The Hidden Park], "+item drop", "items", "1 book of matches", "Getting the book of matches.", "i");
}
use(1, $item[book of matches]);
}
if (item_amount($item[stone triangle]) == 0) {
//5 - Bowling Alley: Adventure until have scorched stone sphere.
while (item_amount($item[scorched stone sphere]) == 0) {
set_property("choiceAdventure788", "1");
bumAdv($location[The Hidden Bowling Alley], "+item drop", "items", "1 scorched stone sphere", "Getting the scorched stone sphere.", "i-");
}
//6 - Hospital: Fight surgeons to get doctor gear, then wear it and defeat spirit.
if (item_amount($item[dripping stone sphere]) == 0) {
set_property("choiceAdventure784", "1");
while (item_amount($item[dripping stone sphere]) == 0) {
if (item_amount($item[bloodied surgical dungarees]) > 0)
cli_execute("equip bloodied surgical dungarees");
if (item_amount($item[surgical apron]) > 0)
cli_execute("equip surgical apron");
if (item_amount($item[head mirror]) > 0)
cli_execute("equip head mirror");
if (item_amount($item[surgical mask]) > 0)
cli_execute("equip surgical mask");
set_property("choiceAdventure784", "1");
bumMiniAdv(1, $location[The Hidden Hospital], "");
}
}
//7 - Apartment: Get cursed three times. If we hit the NC without 3, get cursed, else fight spirit.
while (item_amount($item[moss-covered stone sphere]) == 0) {
set_property("choiceAdventure780", "3");
while (have_effect($effect[Thrice-Cursed]) < 1) {
if (get_property("lastEncounter") == "Action Elevator") {
set_property("choiceAdventure780", "2");
}
bumMiniAdv(1, $location[The Hidden Apartment Building], "");
}
while (have_effect($effect[Thrice-Cursed]) > 0 && item_amount($item[moss-covered stone sphere]) == 0) {
set_property("choiceAdventure780", "1");
bumMiniAdv(1, $location[The Hidden Apartment Building], "");
}
if (have_effect($effect[Thrice-Cursed]) > 0 && i_a("moss-covered stone sphere") > 0)
cli_execute("uneffect Thrice-Cursed");
}
//8 - Office: Get 5 McClusky files, and clip. Then fight spirit.
while (item_amount($item[crackling stone sphere]) == 0) {
while ((i_a("boring binder clip") < 1) && (i_a("McClusky file (complete)") < 1)) {
set_property("choiceAdventure786", "2");
bumAdv($location[The Hidden Office Building], "-combat -tie", "", "boring binder clip", "Getting the boring binder clip.", "-");
}
while (i_a("McClusky file (complete)") < 1) {
set_property("choiceAdventure786", "3");
bumAdv($location[The Hidden Office Building], "-combat -tie", "", "McClusky file (complete)", "Getting the complete file.", "-");
}
set_property("choiceAdventure786", "1");
bumAdv($location[The Hidden Office Building], "-combat -tie", "", "1 choiceadv", "Getting the crackling stone sphere.", "-");
}
}
//9 - Get stone triangles.
if (item_amount($item[moss-covered stone sphere]) == 1) {
bumMiniAdv(1, $location[An Overgrown Shrine (Northwest)], "");
}
if (item_amount($item[dripping stone sphere]) == 1) {
bumMiniAdv(1, $location[An Overgrown Shrine (Southwest)], "");
}
if (item_amount($item[crackling stone sphere]) == 1) {
bumMiniAdv(1, $location[An Overgrown Shrine (Northeast)], "");
}
if (item_amount($item[scorched stone sphere]) == 1) {
bumMiniAdv(1, $location[An Overgrown Shrine (Southeast)], "");
}
//10 - Fight boss.
if (item_amount($item[stone triangle]) == 4) {
set_property("choiceAdventure791", "1");
bumAdv($location[A Massive Ziggurat], "", "meatboss", "1 Spectre scepter", "Defeating the last Protector Spectre.", "");
}
if (i_a("Spectre scepter") > 0)
checkStage("macguffinhiddencity", true);
else return false;
}
return false;
}
cli_execute("equip antique machete");
equip($slot[weapon], $item[antique machete])
It's pretty broken with all the updates, is there a plan to update this script? I love it so much.
Unless you set the script to handle Softcore as Hardcore you may need to micromanage it a bit (to update the bumcheekascend outfit with your pulls and so on) but other than that should work fine.