Advertisement
Guest User

Untitled

a guest
Aug 29th, 2015
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 41.11 KB | None | 0 0
  1. script "Automatic 2-day Hardcore Community Service";
  2. //courtesy of yojimboS_LAW's 2-day HC guide
  3.  
  4. //woulda liked a #define or const here but hey I'll take what I can get
  5. int HPTEST = 1;
  6. int MUSTEST = 2;
  7. int MYSTTEST = 3;
  8. int MOXTEST = 4;
  9. int FAMTEST = 5;
  10. int WPNTEST = 6;
  11. int SPELLTEST = 7;
  12. int COMTEST = 8;
  13. int ITEMTEST = 9;
  14. int HOTTEST = 10;
  15. int COILTEST = 11;
  16.  
  17. boolean actuallyrun = false;
  18.  
  19. ////Needs crimbo shrub logic for YR use
  20. ////make bitchin meatcar
  21. ////switch chateau to moxie for a rest or two if need to get to 35 for hot equip....or powerlevel before hot test?
  22. ////allow running before ascending to check prereqs then
  23. ////if have both 70s volcano and dinsey and got fish DNA before elemental, switch to barf mountain for elemental
  24.  
  25. void setFamiliar() { //idk about this but something's better than nothing...I'd throw puck-man here but then I'd have to unlock the woods so meh
  26.     if (my_familiar() == $familiar[none]) {
  27.         if (have_familiar($familiar[Fist Turkey])) {
  28.             use_familiar($familiar[Fist Turkey]);
  29.         } else if (have_familiar($familiar[Golden Monkey])) {
  30.             use_familiar($familiar[Golden Monkey]);
  31.         } else if (have_familiar($familiar[Grim Brother])) {
  32.             use_familiar($familiar[Grim Brother]);
  33.         } else if (have_familiar($familiar[Unconscious Collective])) {
  34.             use_familiar($familiar[Unconscious Collective]);
  35.         } else if (have_familiar($familiar[Galloping Grill])) {
  36.             use_familiar($familiar[Galloping Grill]);
  37.         } else if (have_familiar($familiar[Crimbo Shrub])) {
  38.             use_familiar($familiar[Crimbo Shrub]);
  39.         } else if (have_familiar($familiar[Smiling Rat])) {
  40.             use_familiar($familiar[Smiling Rat]);
  41.         }
  42.     }
  43. }
  44.  
  45. void newSave() {
  46.     int [string] statemap;
  47.     statemap["questStage"] = 0;
  48.     statemap["skippingIsland"] = 0;
  49.     statemap["run"] = get_property("knownAscensions").to_int();
  50.     map_to_file(statemap, "AutoHCCSvars.txt");
  51. }
  52.  
  53. void saveProgress(int questStage) {
  54.     int [string] statemap;
  55.     file_to_map("AutoHCCSvars.txt", statemap);
  56.     statemap["questStage"] = questStage;
  57.     map_to_file(statemap, "AutoHCCSvars.txt");
  58. }
  59.  
  60. void skipIsland() {
  61.     int [string] statemap;
  62.     file_to_map("AutoHCCSvars.txt", statemap);
  63.     statemap["skippingIsland"] = 1;
  64.     map_to_file(statemap, "AutoHCCSvars.txt");
  65. }
  66.  
  67. boolean islandSkipped() {
  68.     int [string] statemap;
  69.     file_to_map("AutoHCCSvars.txt", statemap);
  70.     if (statemap["skippingIsland"] == 1) {
  71.         return true;
  72.     } else {
  73.         return false;
  74.     }
  75. }
  76.  
  77. int savedAscNum() {
  78.     int [string] statemap;
  79.     file_to_map("AutoHCCSvars.txt", statemap);
  80.     return statemap["run"];
  81. }
  82.  
  83. int questStage() {
  84.     int [string] statemap;
  85.     file_to_map("AutoHCCSvars.txt", statemap);
  86.     return statemap["questStage"];
  87. }
  88.  
  89. void unlockSkeletonStore() {
  90.     visit_url("shop.php?whichshop=meatsmith&action=talk");
  91.     visit_url("choice.php?pwd&whichchoice=1059&option=1&choiceform1=Sure%2C+I%27ll+go+check+it+out.");
  92. }
  93.  
  94. boolean get_property_boolean(string property) {
  95.     return get_property(property).to_boolean();
  96. }
  97.  
  98. int get_property_int(string property) {
  99.     return get_property(property).to_int();
  100. }
  101.  
  102. void checkPrereq() {
  103.     if (!have_skill($skill[The Ode to Booze])) {
  104.         abort("You need Ode to Booze first.");
  105.     } else if (!have_skill($skill[Summon Smithsness])) {
  106.         abort("You need Summon Smithsness first.");
  107.     } else if (!have_skill($skill[Advanced Saucecrafting])) {
  108.         abort("You need Advanced Saucecrafting first.");
  109.     } else if (!get_property_boolean("chateauAvailable")) {
  110.         abort("You need access to Chateau Mantegna first.");
  111.     } else if ($item[Clan VIP Lounge key].available_amount() == 0) {
  112.         abort("You need access to your clan's VIP lounge first.");
  113.     } else if ($item[Deck of Every Card].available_amount() == 0) {
  114.         abort("You need the Deck of Every Card first.");
  115.     } else if (my_class() != $class[sauceror]) {
  116.         abort("You're supposed to be a sauceror.");
  117.     } else if (!knoll_available()) {
  118.         abort("You're supposed to have access to the (friendly) Degrassi Knoll. You know, muscle sign.");
  119.     }
  120. }
  121.  
  122. void sellJewels() {
  123.     print("Selling jewels...");
  124.     foreach stone in $items[hamethyst, baconstone, porquoise]
  125.     autosell(item_amount(stone), stone);
  126. }
  127.  
  128. int advCost(int whichtest) {
  129.     buffer page = visit_url("council.php");
  130.     string teststr = "name=option value="+ whichtest +">";
  131.     if (contains_text(page, teststr)) {
  132.         int chars = 140; //chars to look ahead
  133.         string pagestr = substring(page, page.index_of(teststr)+length(teststr), page.index_of(teststr)+length(teststr)+chars);
  134.         string advstr = substring(pagestr, pagestr.index_of("(")+1, pagestr.index_of("(")+3);
  135.         advstr = replace_string(advstr, " ", ""); //removes whitespace, if the test is < 10 adv
  136.         return to_int(advstr);
  137.     } else {
  138.         print("Didn't find specified test on the council page. Already done?");
  139.         return 99999;
  140.     }
  141. }
  142.  
  143. int free_rests_left() {
  144.     return total_free_rests() - get_property_int("timesRested");
  145. }
  146.  
  147. boolean useIfHave(int howmany, item what) {
  148.     if(what.available_amount() >= howmany) {
  149.         use(howmany, what);
  150.         return true;
  151.     } else {
  152.         return false;
  153.     }
  154. }
  155.  
  156. boolean free_rest() {
  157.     if (free_rests_left() > 0) {
  158.         visit_url("place.php?whichplace=chateau&action=chateau_restlabelfree");
  159.         return true;
  160.     } else {
  161.         return false;
  162.     }
  163. }
  164.  
  165. void calderaMood() {
  166.     cli_execute("mood CalderaMood");
  167.     cli_execute("mood clear");
  168.     if (have_skill($skill[Elemental Saucesphere])) {
  169.         cli_execute("trigger lose_effect, Elemental Saucesphere, cast 1 Elemental Saucesphere");
  170.     } else if (have_skill($skill[Astral Shell])) {
  171.         cli_execute("trigger lose_effect, Astral Shell, cast 1 Astral Shell");
  172.     } else if (have_skill($skill[Reptilian Fortitude])) {
  173.         cli_execute("trigger lose_effect, Reptilian Fortitude, cast 1 Reptilian Fortitude");
  174.     } else if (have_skill($skill[Springy Fusilli])) {
  175.         cli_execute("trigger lose_effect, Springy Fusilli, cast 1 Springy Fusilli");
  176.     } else if (have_skill($skill[The Power Ballad of the Arrowsmith])) {
  177.         cli_execute("trigger lose_effect, The Power Ballad of the Arrowsmith, cast 1 The Power Ballad of the Arrowsmith");
  178.     } else if (have_skill($skill[Suspicious Gaze])) {
  179.         cli_execute("trigger lose_effect, Suspicious Gaze, cast 1 Suspicious Gaze");
  180.     } else if (have_skill($skill[Cletus's Canticle of Celerity])) {
  181.         cli_execute("trigger lose_effect, Cletus's Canticle of Celerity, cast 1 Cletus's Canticle of Celerity");
  182.     } else if (have_skill($skill[Sauce Contemplation])) {
  183.         cli_execute("trigger lose_effect, Sauce Contemplation, cast 1 Sauce Contemplation");
  184.     } else if (have_skill($skill[Patience of the Tortoise])) {
  185.         cli_execute("trigger lose_effect, Patience of the Tortoise, cast 1 Patience of the Tortoise");
  186.     } else if (have_skill($skill[Moxie of the Mariachi])) {
  187.         cli_execute("trigger lose_effect, Moxie of the Mariachi, cast 1 Moxie of the Mariachi");
  188.     }
  189.     cli_execute("mood execute");
  190. }
  191.  
  192. void chateauCast(skill which) { //casts the skill as normal (if you have it), unless you don't have the MP, in which case it will use a free rest at the chateau first
  193.     if (have_skill(which)) {
  194.         if (my_mp() >= mp_cost(which)) {
  195.             use_skill(which);
  196.         } else if (free_rest()) {
  197.             if (my_mp() >= mp_cost(which)) {
  198.                 use_skill(which);
  199.             } else {
  200.                 abort("Failed to cast " + to_string(which) + " even after a Chateau rest...");
  201.             }
  202.         } else {
  203.             restore_mp(mp_cost(which));
  204.             print("Ran out of MP and free rests; had to restort to meat-MP instead", "red");
  205.             if (my_mp() >= mp_cost(which)) {
  206.                 use_skill(which);
  207.             } else {
  208.                 abort("Failed to cast " + to_string(which) + " even after restoring MP...");
  209.             }
  210.         }
  211.     }
  212. }
  213.  
  214. boolean doTest(int which) {
  215.     if (my_adventures() >= advCost(which)) {
  216.         visit_url("choice.php?whichchoice=1089&option="+which+"&pwd="+my_hash());
  217.         return true;
  218.     } else {
  219.         abort("Failed to generate enough adventures to complete test " + which);
  220.         return false;
  221.     }
  222. }
  223.  
  224. int hotdogStock(int which) { //returns how many of the item to 'unlock' a dog is currently stocked
  225.     buffer page = visit_url("clan_viplounge.php?action=hotdogstand");
  226.     string dogstr = substring(page, page.index_of(which.to_string()), page.index_of(which.to_string())+550);
  227.     string stockstr = substring(dogstr, dogstr.index_of("in stock")-6, dogstr.index_of("in stock"));
  228.     return substring(stockstr, stockstr.index_of("(")+1, stockstr.index_of(" ")).to_int();
  229. }
  230.  
  231. boolean hotdogAvailable(int which) { //returns true if you don't have to restock to eat the specified hotdog
  232.     buffer page = visit_url("clan_viplounge.php?action=hotdogstand");
  233.     string dogstr = substring(page, page.index_of(which.to_string()), page.index_of(which.to_string())+10);
  234.     if (contains_text(dogstr, "_food")) { //if _food is the first match, the hotdog is disabled.
  235.         return false;
  236.     } else {
  237.         return true;
  238.     }
  239. }
  240.  
  241. void restockHotdog(int which) {
  242.     int target;
  243.     item restockitem;
  244.     switch(which) {
  245.         case -101: //sleeping dog
  246.             target = 10;
  247.             restockitem = $item[gauze hammock];
  248.             break;
  249.         case -100: //wet dog
  250.             target = 25;
  251.             restockitem = $item[sleaze wad];
  252.             break;
  253.         case -99: //junkyard dog
  254.             target = 25;
  255.             restockitem = $item[stench wad];
  256.             break;
  257.         default:
  258.             abort("Unsupported hotdog");
  259.             break;
  260.     }
  261.     int amtneeded = target - hotdogStock(which);
  262.     if (amtneeded < 1) {
  263.         abort("Got confused while trying to restock hotdog.");
  264.     } else if (storage_amount(restockitem) < amtneeded) {
  265.         buy_using_storage(amtneeded - storage_amount(restockitem), restockitem, -1);
  266.     }
  267.     visit_url("clan_viplounge.php?preaction=hotdogsupply&hagnks=1&whichdog="+which+"&quantity="+amtneeded);
  268. }
  269.  
  270. void eatHotdog(int which) {
  271.     if (!hotdogAvailable(which)) {
  272.         restockHotdog(which);
  273.     }
  274.     visit_url("clan_viplounge.php?preaction=eathotdog&whichdog="+which);
  275. }
  276.  
  277. void cast(skill which) { //just casts it if you have it.
  278.     if (have_skill(which)) {
  279.         use_skill(which);
  280.     }
  281. }
  282.  
  283. void summonDailyStuff() {
  284.     use_skill(3, $skill[Summon Smithsness]);
  285.     chateauCast($skill[Advanced Saucecrafting]);
  286.     chateauCast($skill[Advanced Cocktailcrafting]);
  287.     chateauCast($skill[Pastamastery]);
  288.     chateauCast($skill[Grab a Cold One]);
  289.     chateauCast($skill[Spaghetti Breakfast]);
  290.     visit_url("campground.php?action=garden");
  291.     visit_url("campground.php?action=workshed");
  292. }
  293.  
  294. int advToSemirare() {
  295.     for i from 0 to 200 { //this is ridiculous.
  296.         if (get_counters("Fortune Cookie", i, i) != "") {
  297.             return i; //if 0 then semirare is imminent
  298.         }
  299.     }
  300.     return 99999;
  301. }
  302.  
  303. string checkGarden() {
  304.     buffer page = visit_url("campground.php");
  305.     if (contains_text(page, "A Winter Garden")) {
  306.         return "winter";
  307.     } else if (contains_text(page, "A Beer Garden")) {
  308.         return "beer";
  309.     } else if (contains_text(page, "A Pumpkin Patch")) {
  310.         return "pumpkin";
  311.     } else if (contains_text(page, "A Peppermint Patch")) {
  312.         return "peppermint";
  313.     } else if (contains_text(page, "A Bone Garden")) {
  314.         return "bone";
  315.     } else {
  316.         return "none";
  317.     }
  318. }
  319.  
  320. int g9val() { //useless in hindsight; we get g9 on day 1 and use it on day 2 so its values are irrelevant. maybe I'll move g9 farming to day 2 if you got the SR between shore trips
  321.     buffer page = visit_url("desc_effect.php?whicheffect=af64d06351a3097af52def8ec6a83d9b");
  322.     return substring(page, page.index_of("+")+1, page.index_of("%")).to_int();
  323. }
  324.  
  325. boolean giantGrowth() {
  326.     if(!have_skill($skill[Giant Growth]) || $item[Louder Than Bomb].available_amount() == 0 || $item[green mana].available_amount() == 0) {
  327.         return false;
  328.     } else {
  329.         familiar curfam = my_familiar();
  330.         use_familiar($familiar[none]);
  331.         adventure(1, $location[The Dire Warren], "combat");
  332.         use_familiar(curfam);
  333.         if(have_effect($effect[Giant Growth]) > 0) {
  334.             return true;
  335.         } else {
  336.             return false;
  337.         }
  338.     }
  339. }
  340.  
  341. string combatYR() {
  342.     if (have_skill($skill[Open a Big Yellow Present])) {
  343.         return "skill Open a Big Yellow Present";
  344.     } else if ($item[Golden Light].available_amount() > 0) {
  345.         return "use Golden Light";
  346.     } else {
  347.         abort("No yellow ray available when trying to use one");
  348.         return "I really shouldn't have to specify a return value after an abort";
  349.     }
  350. }
  351.  
  352. string combat(int round, string opp, string text) { //always uses your own custom combat script after first doing whatever you're supposed to
  353.     if (opp.contains_text("pirate") && $item[DNA extraction syringe].available_amount() > 0) { //pirate DNA
  354.         if(round == 1) {
  355.             return "use DNA extraction syringe";
  356.         } else {
  357.             return get_ccs_action(round - 1);
  358.         }
  359.     } else if (opp == $monster[lavatory].to_string()) { //elemental DNA
  360.         if ($item[Gene Tonic: Elemental].available_amount() == 0) {
  361.             if(round == 1) {
  362.                 return "use DNA extraction syringe";
  363.             } else {
  364.                 return get_ccs_action(round - 1);
  365.             }
  366.         } else {
  367.             return get_ccs_action(round);
  368.         }
  369.     } else if (opp == $monster[lava lamprey].to_string()) { //fish DNA
  370.         if (have_effect($effect[Human-Fish Hybrid]) == 0) {
  371.             if(round == 1) {
  372.                 return "use DNA extraction syringe";
  373.             } else {
  374.                 return get_ccs_action(round - 1);
  375.             }
  376.         } else {
  377.             return get_ccs_action(round);
  378.         }
  379.     } else if (opp == $monster[dairy goat].to_string()) { //beast DNA and milk of magnesium
  380.         if(round == 1 && $item[DNA extraction syringe].available_amount() > 0 && $item[Gene Tonic: Beast].available_amount() == 0) {
  381.             return "use DNA extraction syringe";
  382.         } else if ($item[Golden Light].available_amount() > 0) {
  383.             return combatYR();
  384.         } else {
  385.             return get_ccs_action(round - 1);
  386.         }
  387.     } else if (opp == $monster[super-sized Cola Wars soldier].to_string() || opp == $monster[lab monkey].to_string() || opp == $monster[creepy little girl].to_string()) {
  388.         return "run away"; ////no idea if this works, lol
  389.     } else if (opp == $monster[government scientist].to_string()) {
  390.         if (have_effect($effect[On the Trail]) == 0) {
  391.             return "skill Transcendent Olfaction";
  392.         } else if (have_effect($effect[On the Trail]) == 40) { //used it this combat
  393.             return get_ccs_action(round - 1);
  394.         } else {
  395.             return get_ccs_action(round);
  396.         }
  397.     } else if (opp.contains_text("hippy") || opp.contains_text("Frat Boy") || opp == $monster[novelty tropical skeleton].to_string() || opp == $monster[factory worker (female)].to_string() || opp == $monster[factory overseer (female)].to_string()) {
  398.         return combatYR();
  399.     } else if (opp == $monster[fluffy bunny].to_string()) {
  400.         if (round == 1) {
  401.             return "skill Giant Growth";
  402.         } else {
  403.             return "use Louder Than Bomb";
  404.         }
  405.     } else { //no special case, just use your CCS
  406.         return get_ccs_action(round);
  407.     }
  408. }
  409.  
  410. boolean getSRifCan() { //returns true if got it
  411.     if (advToSemirare() == 0) {
  412.         if (checkGarden() == "winter") {
  413.             adventure(1, $location[The Limerick Dungeon], "combat");
  414.         } else {
  415.             adventure(1, $location[The Outskirts of Cobb's Knob], "combat");
  416.             use(1, $item[Knob Goblin lunchbox]);
  417.         }
  418.         return true;
  419.     } else {
  420.         return false;
  421.     }
  422. }
  423.  
  424. boolean pulverize(item which) {
  425.     if (!have_skill($skill[Pulverize]) || which.available_amount() == 0) {
  426.         return false;
  427.     } else {
  428.         cli_execute("pulverize " + which);
  429.         return true;
  430.     }
  431. }
  432.  
  433. void getG9Serum() { //like 0-7 turns prolly
  434.     if(questStage() >= 8) {
  435.         return;
  436.     }
  437.     if (get_property_boolean("spookyAirportAlways") && have_skill($skill[Transcendent Olfaction])) {
  438.         if (my_mp() < mp_cost($skill[Transcendent Olfaction])) {
  439.             if (!free_rest()) {
  440.                 restore_mp(mp_cost($skill[Transcendent Olfaction]));
  441.                 print("Had to restort to meat-MP instead of chateau rest", "red");
  442.             }
  443.         }
  444.         while($item[experimental serum G-9].available_amount() < 2) {
  445.             if (!getSRifCan()) {
  446.                 adventure(1, $location[The Secret Government Laboratory], "combat");
  447.             }
  448.         }
  449.     }
  450.     saveProgress(8);
  451. }
  452.  
  453. boolean hasScalingZone() {
  454.     if (get_property_boolean("hotAirportAlways") || get_property_boolean("spookyAirportAlways") || get_property_boolean("sleazyAirportAlways") || get_property_boolean("sleazyAirportAlways") || $item[GameInformPowerDailyPro walkthru].available_amount() > 0 || $item[GameInformPowerDailyPro magazine].available_amount() > 0) {
  455.         return true;
  456.     } else {
  457.         return false;
  458.     }
  459. }
  460.  
  461. void eatHotFood() {
  462.     use(1, $item[milk of magnesium]);
  463.     eat(1, $item[sausage without a cause]);
  464.     if (hotdogAvailable(-99)) { //junkyard dog
  465.         visit_url("clan_viplounge.php?preaction=eathotdog&whichdog=-99");
  466.     } else if (hotdogAvailable(-100)) { //wet dog
  467.         visit_url("clan_viplounge.php?preaction=eathotdog&whichdog=-100");
  468.     } else {
  469.         if (hotdogStock(-99) >= hotdogStock(-100)) {
  470.             eatHotdog(-99);
  471.         } else {
  472.             eatHotdog(-100);
  473.         }
  474.     }
  475.     if ($item[ice harvest].available_amount() > 0) {
  476.         eat(1, $item[ice harvest]);
  477.     }
  478.     if ($item[snow crab].available_amount() > 0) {
  479.         eat(1, $item[snow crab]);
  480.     } else if ($item[snow berries].available_amount() >= 2) {
  481.         create(1, $item[snow crab]);
  482.         eat(1, $item[snow crab]);
  483.     }
  484.     if (my_fullness() < 14) {
  485.         if ($item[limp broccoli].available_amount() > 0) {
  486.             eat(1, $item[limp broccoli]);
  487.         } else if ($item[gooey lava globs].available_amount() > 0) {
  488.             eat(1, $item[gooey lava globs]);
  489.         }
  490.     }
  491.     while (my_fullness() < 15) {
  492.         if ($item[Knob pasty].available_amount() > 0) {
  493.             eat(1, $item[Knob pasty]);
  494.         } else if ($item[tasty tart].available_amount() > 0) {
  495.             eat(1, $item[tasty tart]);
  496.         } else {
  497.             print("Resorting to eating a fortune cookie for remaining fullness.", "red");
  498.             buy(1, $item[fortune cookie]);
  499.             eat(1, $item[fortune cookie]);
  500.         }
  501.     }
  502. }
  503.  
  504. void hotTest() {
  505.     if(questStage() == 21) {
  506.         pulverize($item[dirty rigging rope]);
  507.         pulverize($item[sewage-clogged pistol]);
  508.         pulverize($item[dirty hobo gloves]);
  509.         if ($item[lava-proof pants].available_amount() > 0) {
  510.             equip($item[lava-proof pants]);
  511.         }
  512.         if ($item[perfume-soaked bandana].available_amount() > 0) {
  513.             equip($slot[acc1], $item[perfume-soaked bandana]);
  514.         }
  515.         if ($item[heat-resistant necktie].available_amount() > 0) {
  516.             equip($slot[acc2], $item[heat-resistant necktie]);
  517.         }
  518.         if ($item[heat-resistant gloves].available_amount() > 0) {
  519.             equip($slot[acc3], $item[heat-resistant gloves]);
  520.         }
  521.         if ($item[stench powder].available_amount() > 0 && $item[scrumptious reagent].available_amount() > 0) {
  522.             create(1, $item[lotion of stench]);
  523.             use(1, $item[lotion of stench]);
  524.         }
  525.         if ($item[sleaze powder].available_amount() > 0 && $item[scrumptious reagent].available_amount() > 0) { //not that I have any idea what I could pulverize for this.
  526.             create(1, $item[lotion of sleaziness]);
  527.             use(1, $item[lotion of sleaziness]);
  528.         }
  529.         useIfHave(1, $item[scroll of Protection from Bad Stuff]);
  530.         useIfHave(1, $item[Gene Tonic: Elemental]);
  531.         if (have_familiar($familiar[Exotic Parrot])) {
  532.             use_familiar($familiar[Exotic Parrot]);
  533.             chateauCast($skill[Leash of Linguini]);
  534.             chateauCast($skill[Empathy of the Newt]);
  535.         }
  536.         saveProgress(22);
  537.     }
  538.    
  539.     if(questStage() == 22) {
  540.         eatHotFood();
  541.         chateauCast($skill[Elemental Saucesphere]);
  542.         chateauCast($skill[Astral Shell]);
  543.         if (!hasScalingZone()) {
  544.             if (have_effect($effect[Ode to Booze]) < 2) {
  545.                 chateauCast($skill[The Ode to Booze]);
  546.             }
  547.             visit_url("clan_viplounge.php?preaction=speakeasydrink&drink=7&pwd="+my_hash()); //ish kabibble
  548.         }
  549.         saveProgress(23);
  550.     }
  551.    
  552.     if(questStage() >= 24) {
  553.         return;
  554.     }
  555.     doTest(HOTTEST);
  556.     saveProgress(24);
  557. }
  558.  
  559. void weaponTest() {
  560.     if(questStage() == 8) {
  561.         //chataeau rest while buffing dmg
  562.         chateauCast($skill[The Ode to Booze]);
  563.         visit_url("clan_viplounge.php?preaction=speakeasydrink&drink=6&pwd="+my_hash()); //sockadollager
  564.         chateauCast($skill[Rage of the Reindeer]);
  565.         chateauCast($skill[Jackasses' Symphony of Destruction]);
  566.         chateauCast($skill[Tenacity of the Snapper]);
  567.         chateauCast($skill[Song of the North]);
  568.         while (my_level() < 8 && free_rest()) {} //expends free rests until level 8 or running out
  569.         if (my_level() < 8) {
  570.             print("Failed to reach level 8 with chateau rests...oh well", "red");
  571.         } else if (free_rests_left() > 0) {
  572.             print("Reached level 8 with "+ free_rests_left() +" free rests left", "green");
  573.         } else {
  574.             print("Reaced level 8, but ran out of free rests", "blue");
  575.         }
  576.         saveProgress(9);
  577.     }
  578.    
  579.     if(questStage() == 9) {
  580.         //consume astrals
  581.         if ($item[astral energy drink].available_amount() > 0) {
  582.             chew(1, $item[astral energy drink]);
  583.         } else if ($item[astral pilsner].available_amount() > 0) {
  584.             while (my_inebriety() < 14 && my_adventures() < advCost(WPNTEST)) {
  585.                 if (have_effect($effect[Ode to Booze]) == 0) {
  586.                     chateauCast($skill[The Ode to Booze]);
  587.                 }
  588.                 drink(1, $item[astral pilsner]);
  589.             }
  590.         }
  591.         saveProgress(10);
  592.     }
  593.    
  594.     if(questStage() >= 11) {
  595.         return;
  596.     }
  597.     doTest(WPNTEST);
  598.     saveProgress(11);
  599. }
  600.  
  601. void itemTest() {
  602.     if(questStage() == 11) {
  603.         //eat food
  604.         use(1, $item[milk of magnesium]);
  605.         eatHotdog(-101); //sleeping dog
  606.         eat(1, $item[weird gazelle steak]);
  607.         eat(1, $item[This Charming Flan]);
  608.         if ($item[snow crab].available_amount() > 0) {
  609.             eat(1, $item[snow crab]);
  610.         } else if ($item[Knob pasty].available_amount() > 0) {
  611.             eat(1, $item[Knob pasty]);
  612.         } else {
  613.             print("Resorting to eating a fortune cookie for last point of fullness.", "red");
  614.             buy(1, $item[fortune cookie]);
  615.             eat(1, $item[fortune cookie]);
  616.         }
  617.         saveProgress(12);
  618.     }
  619.    
  620.     if(questStage() == 12) {
  621.         //buff item drop
  622.         useIfHave(1, $item[Gene Tonic: Pirate]);
  623.         useIfHave(1, $item[tin cup]);
  624.         useIfHave($item[pulled yellow taffy].available_amount(), $item[pulled yellow taffy]);
  625.         if ($item[Agitated Turkey].available_amount() > 0 && my_inebriety() < 14) {
  626.             if (have_effect($effect[Ode to Booze]) == 0) {
  627.                 chateauCast($skill[The Ode to Booze]);
  628.             }
  629.             use(1, $item[Agitated Turkey]);
  630.         }
  631.         chateauCast($skill[Fat Leon's Phat Loot Lyric]);
  632.         chateauCast($skill[Singer's Faithful Ocelot]);
  633.         saveProgress(13);
  634.     }
  635.     if(questStage() >= 14) {
  636.         return;
  637.     }
  638.     doTest(ITEMTEST);
  639.     saveProgress(14);
  640. }
  641.  
  642. void allStatBuffs() {
  643.     if (have_effect($effect[Song of Bravado]) == 0) {
  644.         chateauCast($skill[Song of Bravado]);
  645.     }
  646.     if (have_effect($effect[Tomato Power]) == 0) {
  647.         useIfHave(1, $item[tomato juice of powerful power]);
  648.     }
  649.     if (have_effect($effect[Experimental Effect G-9]) == 0) {
  650.         useIfHave(1, $item[experimental serum G-9]);
  651.     }
  652.     if (have_effect($effect[Stevedave's Shanty of Superiority]) == 0) {
  653.         chateauCast($skill[Stevedave's Shanty of Superiority]);
  654.     }
  655.     if (have_effect($effect[Expert Oiliness]) == 0) {
  656.         useIfHave(1, $item[oil of expertise]);
  657.     }
  658.     if (have_effect($effect[Smithsness Presence]) == 0) {
  659.         useIfHave(1, $item[handful of Smithereens]);
  660.     }
  661.     if (get_property_int("_speakeasyDrinksDrunk") < 3 && have_effect($effect[On the Trolley]) == 0) {
  662.         if (have_effect($effect[Ode to Booze]) < 2) {
  663.             chateauCast($skill[The Ode to Booze]);
  664.         }
  665.         visit_url("clan_viplounge.php?preaction=speakeasydrink&drink=5&pwd="+my_hash()); //bee's knees
  666.     }
  667. }
  668.  
  669. void hpTest() {
  670.     if(questStage() == 26) {
  671.         cli_execute("cheat strength");
  672.         use(1, $item[oil of expertise]);
  673.         useIfHave(1, $item[scroll of Puddingskin]);
  674.         useIfHave(1, $item[philter of phorce]);
  675.         if (have_effect($effect[Tomato Power]) == 0) {
  676.             useIfHave(1, $item[tomato juice of powerful power]);
  677.         }
  678.         if (have_effect($effect[Experimental Effect G-9]) == 0) {
  679.             useIfHave(1, $item[experimental serum G-9]);
  680.         }
  681.         buy(2, $item[Ben-Gal&trade; Balm]);
  682.         use(1, $item[Ben-Gal&trade; Balm]);
  683.         chateauCast($skill[Song of Starch]);
  684.         chateauCast($skill[Stevedave's Shanty of Superiority]);
  685.         chateauCast($skill[Reptilian Fortitude]);
  686.         chateauCast($skill[The Power Ballad of the Arrowsmith]);
  687.         chateauCast($skill[Sauce Contemplation]);
  688.         chateauCast($skill[Patience of the Tortoise]);
  689.         chateauCast($skill[Moxie of the Mariachi]);
  690.         chateauCast($skill[Rage of the Reindeer]);
  691.         saveProgress(27);
  692.     }
  693.    
  694.     if(questStage() == 27) {
  695.         maximize("hp", false);
  696.         if(doTest(HPTEST)) {
  697.             chew(1, $item[blood-drive sticker]);
  698.         }
  699.         saveProgress(28);
  700.     }
  701. }
  702.  
  703. void spellTest() { //buffing for this test is actually handled at the end of day 2 so there's not much here.
  704.     if(questStage() >= 19) {
  705.         return;
  706.     }
  707.     maximize("spell damage", false);
  708.     doTest(SPELLTEST);
  709.     saveProgress(19);
  710. }
  711.  
  712. void coilTest() {
  713.     if(questStage() >= 4) {
  714.         return;
  715.     }
  716.     if (my_adventures() >= 60) {
  717.         doTest(COILTEST);
  718.         use(1, $item[a ten-percent bonus]);
  719.     } else {
  720.         abort("Failed to generate enough adventures to coil wire.");
  721.     }
  722.     saveProgress(4);
  723. }
  724.  
  725. void muscleTest() {
  726.     if(questStage() == 28) {
  727.         if (have_effect($effect[Power Ballad of the Arrowsmith]) == 0) {
  728.             chateauCast($skill[The Power Ballad of the Arrowsmith]);
  729.         }
  730.         if (have_effect($effect[Rage of the Reindeer]) == 0) {
  731.             chateauCast($skill[Rage of the Reindeer]);
  732.         }
  733.         chateauCast($skill[Seal Clubbing Frenzy]);
  734.         chateauCast($skill[Patience of the Tortoise]);
  735.         useIfHave(1, $item[jar of &quot;Creole Lady&quot; marrrmalade]);
  736.         useIfHave(1, $item[dollop of barbecue sauce]);
  737.         if (have_effect($effect[Phorcefullness]) == 0) {
  738.             useIfHave(1, $item[philter of phorce]);
  739.         }
  740.         allStatBuffs();
  741.         giantGrowth();
  742.         saveProgress(29);
  743.     }
  744.     if(questStage() == 29) {
  745.         maximize("muscle", false);
  746.         doTest(MUSTEST);
  747.         saveProgress(30);
  748.     }
  749. }
  750.  
  751. void mystTest() {
  752.     if(questStage() == 30) {
  753.         chateauCast($skill[The Magical Mojomuscular Melody]);
  754.         chateauCast($skill[Sauce Contemplation]);
  755.         chateauCast($skill[Manicotti Meditation]);
  756.         useIfHave(1, $item[ointment of the occult]);
  757.         allStatBuffs();
  758.         giantGrowth();
  759.         useIfHave(1, $item[bag of grain]);
  760.         saveProgress(31);
  761.     }
  762.     if(questStage() == 31) {
  763.         maximize("myst", false);
  764.         doTest(MOXTEST);
  765.         saveProgress(32);
  766.     }
  767. }
  768.  
  769. void moxieTest() {
  770.     if(questStage() == 32) {
  771.         chateauCast($skill[The Moxious Madrigal]);
  772.         chateauCast($skill[Disco Fever]);
  773.         chateauCast($skill[Moxie of the Mariachi]);
  774.         chateauCast($skill[Disco Aerobics]);
  775.         useIfHave(1, $item[dollop of barbecue sauce]);
  776.         useIfHave(1, $item[pressurized potion of pulchritude]);
  777.         useIfHave(1, $item[serum of sarcasm]);
  778.         allStatBuffs();
  779.         giantGrowth();
  780.         useIfHave(1, $item[pocket maze]);
  781.         saveProgress(33);
  782.     }
  783.     if(questStage() == 33) {
  784.         maximize("moxie", false);
  785.         doTest(MOXTEST);
  786.         saveProgress(34);
  787.     }
  788. }
  789.  
  790. void famTest() {
  791.     if(questStage() == 34) {
  792.         chateauCast($skill[Empathy of the Newt]);
  793.         chateauCast($skill[Leash of Linguini]);
  794.         if($item[vintage smart drink].available_amount() > 0) {
  795.             chateauCast($skill[The Ode to Booze]);
  796.             chateauCast($skill[The Ode to Booze]);
  797.             use(1, $item[vintage smart drink]);
  798.         }
  799.         saveProgress(35);
  800.     }
  801.     if(questStage() == 35) {
  802.         maximize("familiar weight", false);
  803.         doTest(FAMTEST);
  804.         saveProgress(36);
  805.     }
  806. }
  807.  
  808. void noncombatTest() {
  809.     if(questStage() == 37) {
  810.         chateauCast($skill[The Sonata of Sneakiness]);
  811.         chateauCast($skill[Smooth Movement]);
  812.         if ($item[snow berries].available_amount() > 0) {
  813.             create(1, $item[snow cleats]);
  814.             use(1, $item[snow cleats]);
  815.         }
  816.         useIfHave(1, $item[deodorant]);
  817.         useIfHave(1, $item[shady shades]);
  818.         useIfHave(1, $item[squeaky toy rose]);
  819.         saveProgress(38);
  820.     }
  821.     if(questStage() == 38) {
  822.         maximize("-combat -tie", false);
  823.         doTest(COMTEST);
  824.         saveProgress(39);
  825.     }
  826.    
  827. }
  828.  
  829. void powerlevel() {
  830.     if(questStage() == 24 || questStage() == 25) {
  831.         if (!hasScalingZone()) {
  832.             print("No scaling zone found...skipping powerleveling.", "red");
  833.             saveProgress(26);
  834.         } else {
  835.             //powerlevel
  836.             if(questStage() == 24) {
  837.                 useIfHave(1, $item[ointment of the occult]);
  838.                 useIfHave(1, $item[experimental serum G-9]);
  839.                 if ($item[hot ashes].available_amount() > 1) {
  840.                     create(1, $item[ash soda]);
  841.                     use(1, $item[ash soda]);
  842.                 }
  843.                 chateauCast($skill[The Ode to Booze]);
  844.                 visit_url("clan_viplounge.php?preaction=speakeasydrink&drink=5&pwd="+my_hash()); //bee's knees
  845.                 chateauCast($skill[Ur-Kel's Aria of Annoyance]);
  846.                 chateauCast($skill[Ur-Kel's Aria of Annoyance]);
  847.                 chateauCast($skill[Pride of the Puffin]);
  848.                 chateauCast($skill[Drescher's Annoying Noise]);
  849.                 chateauCast($skill[Leash of Linguini]);
  850.                 chateauCast($skill[Empathy of the Newt]);
  851.                 chateauCast($skill[Empathy of the Newt]);
  852.                 chateauCast($skill[Wry Smile]);
  853.                 chateauCast($skill[Aloysius' Antiphon of Aptitude]);
  854.                 chateauCast($skill[Aloysius' Antiphon of Aptitude]);
  855.                 while (free_rests_left() > 1) {
  856.                     free_rest();
  857.                 }
  858.                 if (have_familiar($familiar[Hovering Sombrero])) {
  859.                     use_familiar($familiar[Hovering Sombrero]);
  860.                 } else if (have_familiar($familiar[Golden Monkey])) {
  861.                     use_familiar($familiar[Golden Monkey]);
  862.                 } else if (have_familiar($familiar[Grim Brother])) {
  863.                     use_familiar($familiar[Grim Brother]);
  864.                 } else if (have_familiar($familiar[Unconscious Collective])) {
  865.                     use_familiar($familiar[Unconscious Collective]);
  866.                 } else if (have_familiar($familiar[Galloping Grill])) {
  867.                     use_familiar($familiar[Galloping Grill]);
  868.                 } else if (have_familiar($familiar[Smiling Rat])) {
  869.                     use_familiar($familiar[Smiling Rat]);
  870.                 }
  871.                 maximize("myst", false);
  872.                 saveProgress(25);
  873.             }
  874.             if(questStage() == 25) {
  875.                 location farmzone;
  876.                 if (get_property_boolean("stenchAirportAlways")) {
  877.                     farmzone = $location[Uncle Gator's Country Fun-Time Liquid Waste Sluice];
  878.                     calderaMood(); //same deal here
  879.                 } else if (get_property_boolean("spookyAirportAlways")) {
  880.                     farmzone = $location[The Deep Dark Jungle];
  881.                     if ($item[Coinspiracy].available_amount() > 0) {
  882.                         buy($coinmaster[The Canteen], 1, $item[Jungle Juice]);
  883.                         drink(1, $item[Jungle Juice]);
  884.                     }
  885.                 } else if (get_property_boolean("sleazyAirportAlways")) {
  886.                     farmzone = $location[Sloppy Seconds Diner];
  887.                 } else if (get_property_boolean("hotAirportAlways")) {
  888.                     farmzone = $location[The SMOOCH Army HQ];
  889.                 } else {
  890.                     farmzone = $location[Video Game Level 1];
  891.                 }
  892.                 int turnsfarmed = 0;
  893.                 while (my_level() < 9 && turnsfarmed < 10) {
  894.                     adventure(1, farmzone, "combat");
  895.                     if (have_effect($effect[beaten up]) > 0) {
  896.                         abort("Getting beaten up when trying to powerlevel. Consider changing custom combat script?");
  897.                     }
  898.                     restore_hp(my_maxhp());
  899.                     turnsfarmed += 1;
  900.                 }
  901.                 saveProgress(26);
  902.             }
  903.         }
  904.     }
  905. }
  906.  
  907. void getTurtleTotem() {
  908.     while($item[turtle totem].available_amount() < 1) {
  909.         buy(1, $item[chewing gum on a string]);
  910.         use(1, $item[chewing gum on a string]);
  911.     }
  912. }
  913.  
  914. void getMilk() {
  915.     if(questStage() >= 3) {
  916.         return;
  917.     }
  918.     if (get_property("chateauMonster") == "dairy goat") { //I don't know how to pipe this through my combat function so I just handled it manually here
  919.         visit_url("place.php?whichplace=chateau&action=chateau_painting");
  920.         if ($item[DNA extraction syringe].available_amount() > 0 && $item[Gene Tonic: Beast].available_amount() == 0) {
  921.             if (have_skill($skill[Ambidextrous Funkslinging])) {
  922.                 visit_url("fight.php?action=useitem&whichitem=7383&whichitem2=7013&useitem=Use+Item%28s%29"); //7383 = syringe, 7013 = golden light
  923.             } else {
  924.                 visit_url("fight.php?action=useitem&whichitem=7383&whichitem2=0&useitem=Use+Item%28s%29");
  925.                 visit_url("fight.php?action=useitem&whichitem=7013&whichitem2=0&useitem=Use+Item%28s%29");
  926.             }
  927.         } else {
  928.             visit_url("fight.php?action=useitem&whichitem=7013&whichitem2=0&useitem=Use+Item%28s%29");
  929.         }
  930.     }
  931.     saveProgress(3);
  932. }
  933.  
  934. void getPirateDNA() {
  935.     if(questStage() >= 5) {
  936.         return;
  937.     }
  938.     if (get_property_boolean("stenchAirportAlways") && $item[DNA extraction syringe].available_amount() > 0) {
  939.         adventure(1, $location[Pirates of the Garbage Barges], "combat");
  940.         visit_url("campground.php?action=dnapotion");
  941.     }
  942.     saveProgress(5);
  943. }
  944.  
  945. void getCalderaDNA() {
  946.     if(questStage() >= 6) {
  947.         return;
  948.     }
  949.     if (get_property_boolean("hotAirportAlways") && $item[DNA extraction syringe].available_amount() > 0) {
  950.         calderaMood();
  951.         while($item[Gene Tonic: Elemental].available_amount() == 0 || have_effect($effect[Human-Fish Hybrid]) == 0) {
  952.             restore_hp(my_maxhp());
  953.             adventure(1, $location[The Bubblin' Caldera], "combat");
  954.             if (have_effect($effect[Beaten Up]) > 0) {
  955.                 print("You got whupped...", "red");
  956.                 visit_url("clan_viplounge.php?action=hottub");
  957.             }
  958.             buffer page = visit_url("campground.php?action=workshed");
  959.             if (contains_text(page, "Human-Elemental Hybrid") && $item[Gene Tonic: Elemental].available_amount() == 0) {
  960.                 visit_url("campground.php?action=dnapotion");
  961.             } else if (contains_text(page, "Human-Fish Hybrid") && have_effect($effect[Human-Fish Hybrid]) != 2147483547) {
  962.                 visit_url("campground.php?action=dnainject");
  963.             }
  964.         }
  965.         cli_execute("mood clear");
  966.     }
  967.     saveProgress(6);
  968. }
  969.  
  970. void getDeodorant() {
  971.     if(questStage() >= 37) {
  972.         return;
  973.     }
  974.     if(!islandSkipped() && $item[Golden Light].available_amount() > 0) {
  975.         chateauCast($skill[Musk of the Moose]);
  976.         chateauCast($skill[Carlweather's Cantata of Confrontation]);
  977.         useIfHave(1, $item[reodorant]);
  978.         while($item[deodorant].available_amount() > 0) {
  979.             adventure(1, $location[Orcish Frat House], "combat");
  980.         }
  981.         if(have_effect($effect[Carlweather's Cantata of Confrontation]) > 0) {
  982.             cli_execute("uneffect " + $effect[Carlweather's Cantata of Confrontation].to_string());
  983.         }
  984.     }
  985.     saveProgress(37);
  986. }
  987.  
  988. void maybeUnlockIsland() { //either unlocks island or decides to just do skeleton store instead later
  989.     if(questStage() >= 7) {
  990.         return;
  991.     }
  992.     getSRifCan();
  993.     if ((advToSemirare() % 3 == 0 && advToSemirare() < 10) || (get_property_boolean("spookyAirportAlways") && advToSemirare() > 9)) { //if the SR is perfectly between shore trips OR it'll come up during G9 farming
  994.         while ($item[Shore Inc. Ship Trip Scrip].available_amount() < 3) {
  995.             visit_url("choice.php?"+my_hash()+"&whichchoice=793&option=2&choiceform2=Tropical+Paradise+Island+Getaway");
  996.             getSRifCan();
  997.         }
  998.     } else { //1, 2, 4, 5, 7, or 8 adv to semirare; skeleton store instead...loses cherry/olive but saves initial turns so whatever
  999.         skipIsland();
  1000.     }
  1001.     saveProgress(7);
  1002. }
  1003.  
  1004. void getPotionIngredients() {
  1005.     if(questStage() >= 15) {
  1006.         return;
  1007.     }
  1008.     if (islandSkipped()) {
  1009.         while ($item[cherry].available_amount() == 0) {
  1010.             adventure(1, $location[The Skeleton Store], "combat");
  1011.         }
  1012.     } else {
  1013.         while ($item[filthy knitted dread sack].available_amount() == 0 || $item[filthy corduroys].available_amount() == 0) {
  1014.             adventure(1, $location[The Hippy Camp], "combat");
  1015.         }
  1016.         item prevhat = equipped_item($slot[hat]);
  1017.         item prevpants = equipped_item($slot[pants]);
  1018.         equip($item[filthy knitted dread sack]);
  1019.         equip($item[filthy corduroys]);
  1020.         while ($item[cherry].available_amount() == 0) {
  1021.             if ($item[disassembled clover].available_amount() > 0) {
  1022.                 use(1, $item[disassembled clover]);
  1023.                 adventure(1, $location[The Hippy Camp], "combat");
  1024.                 use(1, $item[fruit basket]);
  1025.             } else {
  1026.                 abort("Failed to get cherry from fruit baskets before running out of clovers.");
  1027.             }
  1028.         }
  1029.         equip(prevhat);
  1030.         if (prevpants != $item[none]) {
  1031.             equip(prevpants);
  1032.         }
  1033.     }
  1034.     saveProgress(15);
  1035. }
  1036.  
  1037. void getHotResistGear() {
  1038.     if(questStage() >= 20) {
  1039.         return;
  1040.     }
  1041.     if ($item[Saucepanic].available_amount() > 0) {
  1042.         equip($slot[weapon], $item[Saucepanic]);
  1043.     }
  1044.     if ($item[Staff of the Headmaster's Victuals].available_amount() > 0) {
  1045.         pulverize($item[Staff of the Headmaster's Victuals]);
  1046.     }
  1047.     if (get_property_boolean("hotAirportAlways")) {
  1048.         if ($item[handful of Smithereens].available_amount() > 0 && $item[Golden Light].available_amount() < 1) {
  1049.             create(1, $item[Golden Light]);
  1050.         }
  1051.         while($item[lava-proof pants].available_amount() == 0) {
  1052.             adventure(1, $location[LavaCo&trade; Lamp Factory], "combat");
  1053.         }
  1054.     }
  1055.     saveProgress(20);
  1056. }
  1057.  
  1058. void makePotionsDay1() {
  1059.     if(questStage() >= 16) {
  1060.         return;
  1061.     }
  1062.     create(1, $item[oil of expertise]);
  1063.     int crafts = 2;
  1064.     if ($item[grapefruit].available_amount() > 0) {
  1065.         create(1, $item[ointment of the occult]);
  1066.         crafts += 1; //++ doesn't work? aw c'mon
  1067.     }
  1068.     if ($item[lemon].available_amount() > 0 && $item[scrumptious reagent].available_amount() > 0) { //you've run out of reagants by now without way of sauce
  1069.         create(1, $item[philter of phorce]);
  1070.         crafts += 1;
  1071.     }
  1072.     if ($item[tomato].available_amount() > 0 && $item[scrumptious reagent].available_amount() > 0) { //not available in skeleton store
  1073.         create(1, $item[tomato juice of powerful power]);
  1074.         crafts += 1;
  1075.     }
  1076.     if ($item[olive].available_amount() > 0 && $item[scrumptious reagent].available_amount() > 0 && crafts < 5) { //also not in skeleton store; if you had everything so far you've also run out of free crafts
  1077.         create(1, $item[serum of sarcasm]);
  1078.     }
  1079.     saveProgress(16);
  1080. }
  1081.  
  1082. void makePotionsDay2() {
  1083.     if(questStage() >= 21) {
  1084.         return;
  1085.     }
  1086.     if ($item[olive].available_amount() > 0 && $item[serum of sarcasm].available_amount() == 0) {
  1087.         create(1, $item[serum of sarcasm]);
  1088.     }
  1089.     if ($item[lemon].available_amount() > 0 && $item[philter of phorce].available_amount() < 2) {
  1090.         create(1, $item[philter of phorce]);
  1091.     }
  1092.     if ($item[tomato].available_amount() > 0 && $item[tomato juice of powerful power].available_amount() < 4) {
  1093.         create(1, $item[tomato juice of powerful power]);
  1094.     }
  1095.     saveProgress(21);
  1096. }
  1097.  
  1098. void endDay1() { //final actions of day 1; spell test buffing goes here
  1099.     if(questStage() >= 17) {
  1100.         return;
  1101.     }
  1102.     cast($skill[Simmer]);
  1103.     chateauCast($skill[The Ode to Booze]);
  1104.     chateauCast($skill[The Ode to Booze]);
  1105.     chateauCast($skill[Jackasses' Symphony of Destruction]);
  1106.     chateauCast($skill[Song of Sauce]);
  1107.     while (free_rest()) {} //expends all free rests
  1108.     drink(1, $item[emergency margarita]);
  1109.     saveProgress(17);
  1110. }
  1111.  
  1112. void day1setup() {
  1113.     if(questStage() >= 1) {
  1114.         return;
  1115.     }
  1116.     setFamiliar();
  1117.     visit_url("tutorial.php?action=toot"); //get letter
  1118.     if ($item[Letter from King Ralph XI].available_amount() > 0) {
  1119.         use(1, $item[Letter from King Ralph XI]); //get sack of jewels
  1120.         use(1, $item[pork elf goodies sack]); //get jewels
  1121.     } else if ($item[pork elf goodies sack].available_amount() > 0) {
  1122.         use(1, $item[pork elf goodies sack]); //get jewels
  1123.     }
  1124.     sellJewels();
  1125.     if ($item[astral six-pack].available_amount() == 1) {
  1126.         use(1, $item[astral six-pack]);
  1127.     }
  1128.     unlockSkeletonStore();
  1129.     cli_execute("cheat mickey");
  1130.     autosell(1, $item[1952 Mickey Mantle card]);
  1131.     cli_execute("cheat giant growth");
  1132.     cli_execute("cheat empress");
  1133.     summonDailyStuff();
  1134.     create(1, $item[Hairpiece on Fire]);
  1135.     equip($item[Hairpiece on Fire]);
  1136.     create(1, $item[Saucepanic]);
  1137.     equip($item[Saucepanic]);
  1138.     create(1, $item[A Light That Never Goes Out]);
  1139.     equip($item[A Light That Never Goes Out]);
  1140.     use(3, $item[Flaskfull of Hollow]);
  1141.     create(2, $item[Golden Light]);
  1142.     create(1, $item[This Charming Flan]);
  1143.     buy (1, $item[frilly skirt]);
  1144.     if (equipped_item($slot[pants]) == $item[none]) {
  1145.         if (my_basestat($stat[moxie]) > 1) {
  1146.             equip($item[frilly skirt]);
  1147.         } else {
  1148.             equip($item[old sweatpants]);
  1149.         }
  1150.     }
  1151.     cli_execute("breakfast");
  1152.     if (have_skill($skill[Empathy of the Newt]) || have_skill($skill[Astral Shell])) {
  1153.         getTurtleTotem();
  1154.     }
  1155.     if ($item[detuned radio].available_amount() == 0) {
  1156.         buy(1, $item[detuned radio]);
  1157.         change_mcd(11);
  1158.     }
  1159.     if($item[GameInformPowerDailyPro magazine].available_amount() > 0) {
  1160.         use(1, $item[GameInformPowerDailyPro magazine]);
  1161.         visit_url("place.php?whichplace=faqdungeon");
  1162.         visit_url("adventure.php?snarfblat=319");
  1163.         if ($item[dungeoneering kit].available_amount() > 0) {
  1164.             use(1, $item[dungeoneering kit]);
  1165.         } else {
  1166.             print("Failed to get dungeoneering kit for some reason", "red");
  1167.         }
  1168.        
  1169.     }
  1170.     saveProgress(1);
  1171. }
  1172.  
  1173. void day2setup() {
  1174.     if(questStage() >= 18) {
  1175.         return;
  1176.     }
  1177.     summonDailyStuff();
  1178.     cli_execute("breakfast");
  1179.     cli_execute("cheat forest");
  1180.     cli_execute("cheat giant growth");
  1181.     use(1, $item[Flaskfull of Hollow]);
  1182.     create(3, $item[Louder Than Bomb]);
  1183.     create(1, $item[Saucepanic]);
  1184.     if (!have_skill($skill[Double-Fisted Skull Smashing])) {
  1185.         pulverize($item[Saucepanic]);
  1186.     }
  1187.     create(1, $item[Vicar's Tutu]);
  1188.     equip($item[Vicar's Tutu]);
  1189.     create(1, $item[Staff of the Headmaster's Victuals]);
  1190.     if (!have_skill($skill[Spirit of Rigatoni])) {
  1191.         pulverize($item[Staff of the Headmaster's Victuals]);
  1192.     }
  1193.     saveProgress(18);
  1194. }
  1195.  
  1196. void initialDrinks() { //drinking after day 1 setup but before coiling wire
  1197.     if(questStage() >= 2) {
  1198.         return;
  1199.     }
  1200.     chateauCast($skill[The Ode to Booze]);
  1201.     if (checkGarden() == "winter") {
  1202.         create(1, $item[Ice Island Long Tea]);
  1203.         drink(1, $item[Ice Island Long Tea]);
  1204.         create(1, $item[snow crab]);
  1205.     } else if (checkGarden() == "beer") {
  1206.         create(3, $item[Can of Drooling Monk]);
  1207.         drink(3, $item[Can of Drooling Monk]);
  1208.         create(1, $item[tin cup]);
  1209.     }
  1210.     visit_url("clan_viplounge.php?preaction=speakeasydrink&drink=4&pwd="+my_hash()); //lucky lindy
  1211.     saveProgress(2);
  1212. }
  1213.  
  1214. void doRun() { //main function
  1215.     if (my_daycount() == 1 && actuallyrun) {
  1216.         print("Running HCCS Day 1...");
  1217.         if(get_property("knownAscensions").to_int() != savedAscNum()) {
  1218.             newSave();
  1219.         }
  1220.         day1setup();
  1221.         initialDrinks();
  1222.         getMilk(); //of magnesium
  1223.         coilTest();
  1224.         getPirateDNA();
  1225.         getCalderaDNA(); //elemental DNA tonic and fish hybrid
  1226.         maybeUnlockIsland();
  1227.         getG9Serum();
  1228.         weaponTest();
  1229.         itemTest();
  1230.         getPotionIngredients();
  1231.         makePotionsDay1();
  1232.         endDay1();
  1233.         print("Day 1 complete!!", "green");
  1234.     } else if (my_daycount() == 2 && actuallyrun) {
  1235.         print("Running HCCS Day 2...");
  1236.         day2setup();
  1237.         spellTest();
  1238.         getHotResistGear();
  1239.         makePotionsDay2();
  1240.         hotTest();
  1241.         powerlevel();
  1242.         hpTest();
  1243.         muscleTest();
  1244.         mystTest();
  1245.         moxieTest();
  1246.         famTest();
  1247.         getDeodorant();
  1248.         noncombatTest();
  1249.         print("Run complete!!!", "green");
  1250.         newSave();
  1251.     } else if (!actuallyrun) {
  1252.         print("The \"actuallyrun\" variable is set to false. Turn it on.", "red");
  1253.     } else {
  1254.         print("You're too slow!");
  1255.     }
  1256. }
  1257.  
  1258. checkPrereq();
  1259. doRun();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement