ereinion icon

Meatfarming

ereinion | PRO | 10/17/17 12:46:32 AM UTC | 0 ⭐ | 340 👁️ | Never ⏰ | []
JavaScript |

28.08 KB

|

None

|

0 👍

/

0 👎

###############################################################################################################################################################
#                                                                                                                                                                                                                                                                                                                           #
# [01.] Global variables:                                                                                                                                                                                                                                                                           #
#                   - buffer VIP_LOUNGE                                                                                                                                                                                                                                                                 #
# [02.] item choose_familiar_equipment(string currently_farming)                                                                                                                                                                                            #
# [03.] boolean get_meat_buffs(boolean get_all) (bruker VIP_LOUNGE)                                                                                                                                                                                     #
# [04.] boolean get_item_buffs(boolean get_all) (bruker VIP_LOUNGE)                                                                                                                                                                                     #
# [05.] boolean get_buffs(string what_to_farm) kaller 03 og 04 basert på kva me er på jakt etter.                                                                                                                         #
# [06.] void get_ode()                                                                                                                                                                                                                                                                              #
# [07.] void consumption() - kaller eatdrink med riktige parametre                                                                                                                                                                                      #
# [08.] boolean wear_pantsgiving() - Return false if we've gained all we can from pantsgiving                                                                                                                                   #
# [09.] string create_maximizer_string(string what_to_farm)                                                                                                                                                                                                     #
# [10.] location choose_location(string what_to_farm)                                                                                                                                                                                                                   #
# [11.] familiar choose_familiar(string what_to_farm)                                                                                                                                                                                                                   #
# [12.] void farm(string modifier_string, int adventures_to_save)  - må brytes opp!                                                                                                                                                        #
# [13.] void choose_bjornify_familiar()
# [14.] free_fights_outfit()
# [15.] free_fights()
# [16.] void simple_farming(string what_to_farm, int adventures_to_save, boolean overdrink_after_farming) - skal kalle alle underliggande funksjonar
# [17.] void main(string what_to_farm) - kaller simple_farming                                                                                                                                                                                              #
#                                                                                                                                                                                                                                                                                                                           #
###############################################################################################################################################################
import <AT_song_support.ash>;
import <canadv.ash>;
import <EatDrink.ash>;
import <Expanders.ash>;
import <fishbot.ash>;
import <OCD Inventory Control.ash>;
import <UberPvPOptimizer.ash>;
import <VampOut.ash>;
import <clanhop.ash>;
import <manaburn.ash>;
import <manual_buffs.ash>;
import <pvploot.ash>;
import <zlib.ash>;
 
# [01.] CONSTANTS
buffer VIP_LOUNGE = visit_url("clan_viplounge.php?whichfloor=1").append(visit_url("clan_viplounge.php?whichfloor=2"));
string stance = "Who's the Boss?";
# [02.]
item choose_familiar_equipment(string currently_farming) {
    item[12] priority_of_fam_eq;
    string satisfy_with_mall;
    item chosen_item;
    
    if (my_familiar()  == $familiar[Li'l Xenomorph]) {
        return $item[tiny top hat and cane];
    }
    if (item_amount($item[snow suit]) > 0 &&  to_int(get_property("_snowSuitCount")) < 3) {
        return $item[snow suit];
    }
    
    priority_of_fam_eq[0] = $item[Mayflower bouquet];
    if (to_lower_case(currently_farming).contains_text("meat")) {
        priority_of_fam_eq[1] = $item[lucky Tam O'Shanter];
        priority_of_fam_eq[2] = $item[lucky Tam O'Shatner];
    } else if (to_lower_case(currently_farming).contains_text("item")) {
        priority_of_fam_eq[1] = $item[miniature gravy-covered maypole];
        priority_of_fam_eq[2] = $item[none];
    }
    priority_of_fam_eq[3] = $item[ittah bittah hookah];
    priority_of_fam_eq[4] = $item[flaming familiar doppelg&auml;nger];
    priority_of_fam_eq[5] = $item[astral pet sweater];
    priority_of_fam_eq[6] = $item[Li'l Businessman Kit];
    priority_of_fam_eq[7] = $item[little box of fireworks];
    priority_of_fam_eq[8] = $item[moveable feast];
    priority_of_fam_eq[9] = $item[plastic pumpkin bucket];
    priority_of_fam_eq[10] = familiar_equipment(my_familiar());
    priority_of_fam_eq[11] = $item[lead necklace];
    
    satisfy_with_mall = get_property("autoSatisfyWithMall");
    set_property("autoSatisfyWithMall", "false");
    for i from 0 to 11 {
        if (have_equipped(priority_of_fam_eq[i])) {
            chosen_item = priority_of_fam_eq[i];
            break;
        } else if (retrieve_item(1, priority_of_fam_eq[i])) {
            chosen_item = priority_of_fam_eq[i];
            break;
        } else if (get_price(priority_of_fam_eq[i], 0.5) < to_int(get_property("autoBuyPriceLimit"))) {
            if (buy (1, priority_of_fam_eq[i], get_price(priority_of_fam_eq[i], 0.5)*1.2) > 0) {
                chosen_item = priority_of_fam_eq[i];
                break;
            }
        }
    }
    set_property("autoSatisfyWithMall", satisfy_with_mall);
    
    return chosen_item;
}
# [03.]
boolean get_meat_buffs(boolean get_all) {
    string current_clan;
    effect[5] meat_buffs;
    meat_buffs[0] = $effect[Billiards Belligerence];
    meat_buffs[1] = $effect[Dances with Tweedles];
    meat_buffs[2] = $effect[Brother Flying Burrito's Blessing];
    meat_buffs[3] = $effect[Winklered];
    meat_buffs[4] = $effect[Optimist Primal];
    
    foreach i in meat_buffs {
        if (my_effects() contains meat_buffs[i] && !get_all) {
            return true;
        }
    }
    // Pool table
    if (item_amount($item[Clan VIP Lounge key]) > 0 && to_int(get_property("_poolGames")) < 3) {
        if (!VIP_LOUNGE.contains_text("pooltable.gif")) {
            current_clan = get_clan_name();
            clanhop("Bonus Adventures from Hell");
        }
        for i from 1 to (3 - to_int(get_property("_poolGames"))) {
            cli_execute("pool 1");
        }
        if (current_clan.length() > 0) {
            clanhop(current_clan);
        }
        return true;
    }
    // Hatter
    if (!to_boolean(get_property("_madTeaParty"))) {
        if (item_amount($item[&quot;DRINK ME&quot; potion]) < 1) {
            buy(1, $item[&quot;DRINK ME&quot; potion], 500);
        }
        cli_execute("hatter 22");
        return true;
    }
    // Friars
    if (!to_boolean(get_property("friarsBlessingReceived")) && friars_available()) {
        cli_execute("friars food");
        return true;
    }
    // Island Arena
    if (get_property("sidequestArenaCompleted") == "fratboy" && !to_boolean(get_property("concertVisited"))) {
        cli_execute("concert winklered");
        return true;
    }
    if (get_property("sidequestArenaCompleted") == "fratboy" && !to_boolean(get_property("concertVisited"))) {
        cli_execute("concert optimist primal");
        return true;
    }
    return false;
}
# [04.]
boolean get_item_buffs(boolean get_all) {
    string current_clan;
    effect[5] item_buffs;
    item_buffs[0] = $effect[Hustlin'];
    item_buffs[1] = $effect[Clyde's Blessing];
    item_buffs[2] = $effect[Quadrilled];
    item_buffs[3] = $effect[Brother Smothers's Blessing];
    item_buffs[4] = $effect[Dilated Pupils];
    
    foreach i in item_buffs {
        if (my_effects() contains item_buffs[i] && !get_all) {
            return true;
        }
    }
    // Pool table
    if (item_amount($item[Clan VIP Lounge key]) > 0 && to_int(get_property("_poolGames")) < 3) {
        if (!VIP_LOUNGE.contains_text("pooltable.gif")) {
            current_clan = get_clan_name();
            clanhop("Bonus Adventures from Hell");
        }
        for i from 1 to (3 - to_int(get_property("_poolGames"))) {
            cli_execute("pool 3");
        }
        print(current_clan.length(), "red");
        print(to_boolean(current_clan.length() > 0), "red");
        if (current_clan.length() > 0) {
            clanhop(current_clan);
        }
        return true;
    }
    // Legendary Beat
    if (item_amount($item[The Legendary Beat]) > 0 && !to_boolean(get_property("_legendaryBeat"))) {
        use(1, $item[The Legendary Beat]);
    }
    // Hatter
    if (!to_boolean(get_property("_madTeaParty"))) {
        if (item_amount($item[&quot;DRINK ME&quot; potion]) < 1) {
            buy(1, $item[&quot;DRINK ME&quot; potion], 500);
        }
        cli_execute("hatter 28");
        return true;
    }
    // Friars
    if (!to_boolean(get_property("friarsBlessingReceived")) && friars_available()) {
        cli_execute("friars booze");
        return true;
    }
    // Island Arena
    if (get_property("sidequestArenaCompleted") == "hippy" && !to_boolean(get_property("concertVisited"))) {
        cli_execute("concert dilated pupils");
        return true;
    }
    return false;
}
# [05.]
boolean get_buffs(string what_to_farm) {
    boolean return_value;
    if (to_lower_case(what_to_farm).contains_text("meat")) {
        return_value = get_meat_buffs(false);
        if (!return_value) {
            return_value = get_item_buffs(false);
        }
    } else if (to_lower_case(what_to_farm).contains_text("item")) {
        return_value = get_item_buffs(false);
        if (!return_value) {
            return_value = get_meat_buffs(false);
        }
    }
    return return_value;
}
# [06.]
void get_ode() {
    // Get ode from some other source
    int[string] otherBuffbotsPrices;
    otherBuffbotsPrices["kolabuff"] = 2;
    otherBuffbotsPrices["testudinata"] = 11;
    otherBuffbotsPrices["noblesse oblige"] = 16;
    otherBuffbotsPrices["iocainebot"] = 23;
    otherBuffbotsPrices["notbot"] = 40;
    otherBuffbotsPrices["tinkerballa"] = 67;
    
    if (!have_equipped($item[Brimstone Beret]) && available_amount($item[Brimstone Beret]) > 0 && can_equip($item[Brimstone Beret])) {
        equip($slot[hat], $item[Brimstone Beret]);
    } else if (!have_equipped($item[plexiglass pendant]) && available_amount($item[plexiglass pendant]) > 0 && can_equip($item[plexiglass pendant])) {
        equip($slot[acc3], $item[plexiglass pendant]);
    } else {
        maximize("+four songs", false);
    }
    
    cli_execute("refresh effects");
    if (!(have_effect($effect[Ode to Booze]) > 15)) {
        while (available_song_slots() <= 0) {
            open_song_spot();
        }
        if (is_online("buffy")) {
            chat_private("buffy", "ode");
            wait(30);
        }
        foreach buffbot in otherBuffbotsPrices {
            cli_execute("refresh effects");
            if (have_effect($effect[Ode to Booze]) > 0) {
                return;
            } else if (available_song_slots() <= 0) {
                open_song_spot();
            }
            if (is_online(buffbot) && !(have_effect($effect[Ode to Booze]) > 0)) {
                kmail(buffbot, "", otherBuffbotsPrices[buffbot]);
                wait(20);
            }
        }
    }
}
# [07.]
void consumption() {
    SIM_CONSUME = false;
    
    if (my_inebriety() < inebriety_limit() || my_fullness() < fullness_limit() || my_spleen_use() < spleen_limit()) {
        if (!(have_effect($effect[Ode to Booze]) > 0) && my_inebriety() < inebriety_limit()) {
            get_ode();
        }
        eatdrink(fullness_limit(), inebriety_limit(), spleen_limit(), false);
    }
    // Increase fullness/drunkenness limits.
    if (!to_boolean(get_property("_syntheticDogHairPillUsed")) && item_amount($item[synthetic dog hair pill]) >= 1) {
        use(1, $item[synthetic dog hair pill]);
    }
    if (!to_boolean(get_property("_distentionPillUsed")) && item_amount($item[distention pill]) >= 1) {
        // If pantsgiving is available, delay using distention pill.
        if ((item_amount($item[pantsgiving]) == 0 && !have_equipped($item[pantsgiving])) || to_int(get_property("_pantsgivingFullness")) >= 2) {
            use(1, $item[distention pill]);
        }
    }
    if (my_inebriety() < inebriety_limit() || my_fullness() < fullness_limit()) {
        if (!(have_effect($effect[Ode to Booze]) > 0) && my_inebriety() < inebriety_limit()) {
            get_ode();
        }
        eatdrink(fullness_limit(), inebriety_limit(), spleen_limit(), false);
    }
}
# [08.] Return false if we've gained all we can from pantsgiving
boolean wear_pantsgiving () {
    int pant_turns = to_int(get_property("_pantsgivingCount"));
    int pant_fullness = to_int(get_property("_pantsgivingFullness"));
    float expected_advs_per_fullness = 6; float expected_advs_per_drunkenness = 6; float expected_advs_per_spleen = 1.5;
    int remaining_adventures;
    
    if (can_equip ($item[pantsgiving])) {
        remaining_adventures =  my_adventures() + (fullness_limit() - my_fullness())*expected_advs_per_fullness + (inebriety_limit() - my_inebriety())*expected_advs_per_drunkenness + (spleen_limit() - my_spleen_use())*expected_advs_per_spleen;
        
        switch {
            case (pant_turns >= 498 && remaining_adventures + pant_turns < 4997):
            case (pant_turns >= 49 && remaining_adventures + pant_turns < 498):
            case (pant_turns >= 5 && remaining_adventures + pant_turns < 49):
                consumption();
            default:
        }
        if (pant_turns >= 48) {
        #   user_confirm (pant_fullness + " - " + to_string(remaining_adventures + pant_turns) + " - " + to_boolean(pant_fullness >= 1 && remaining_adventures + pant_turns < 49));
        }
        switch {
            case (pant_fullness >= 4):
            case (pant_fullness >= 3 && remaining_adventures + pant_turns < 4997):
            case (pant_fullness >= 2 && remaining_adventures + pant_turns < 498):
            case (pant_fullness >= 1 && remaining_adventures + pant_turns < 49):
            case (remaining_adventures + pant_turns < 5):
                return false;
            default:
                return true;
        }
    }
    return false;
}
# [09.]
string create_maximizer_string(string what_to_farm) {
    buffer maximizer_string;
    
    if (what_to_farm == "Meat Drop") {
        maximizer_string.append(what_to_farm + ", 0.1 Item Drop, 0.01 mp regen, -tie, -current, -familiar");
    } else if (what_to_farm == "Item Drop") {
        maximizer_string.append(what_to_farm + ", 0.1 Meat Drop, 0.01 mp regen, -tie, -current, -familiar");
    }
    if (!have_equipped($item[Mr. Cheeng's spectacles]) && can_equip($item[Mr. Cheeng's spectacles]) && available_amount($item[Mr. Cheeng's spectacles]) > 0) {
        if (equip ($slot[acc1], $item[Mr. Cheeng's spectacles])) {
            maximizer_string.append(", -acc1");
        }
    }
    // Equip pantsgiving, in case it's not already worn
    if (wear_pantsgiving()) {
        if (have_equipped ($item[Pantsgiving]) || equip ($slot[pants], $item[Pantsgiving])) {
            maximizer_string.append(", -pants");
        }
    }
    // Equip hamster, in case the maximizer tries to use the garbage detector (!)
    if (item_amount($item[Hodgman\'s imaginary hamster]) > 0 && my_path() != "Avatar of Boris" && my_path() != "Way of the Surprising Fist" && can_equip($item[Hodgman\'s imaginary hamster])) {
        if (weapon_hands(equipped_item($slot[weapon])) > 1) {
            equip($slot[weapon], $item[none]);
        }
        equip($slot[off-hand], $item[Hodgman\'s imaginary hamster]);
    }
    return to_string(maximizer_string);
}
# [10.]
location choose_location(string what_to_farm) {
    int[string] currentPVPMinis = current_pvp_stances();
    
    #return $location[An Eldritch Fissure];
    // If PVP
    if (hippy_stone_broken()) {
        if (currentPVPMinis contains "Visiting the Cousins" && knoll_available()) {
        #   return $location[The Bugbear Pen];
        }
        if (currentPVPMinis contains "Basket Reaver") {
            return $location[The Black Forest];
        }
    }
    // Else
    if (to_lower_case(what_to_farm).contains_text("meat")) {
        if (to_boolean(get_property("stenchAirportAlways")) || to_boolean(get_property("_stenchAirportToday"))) {
            return $location[Barf Mountain];
        } else if (to_boolean(get_property("sleazeAirportAlways")) || to_boolean(get_property("_sleazeAirportToday"))) {
            return $location[Sloppy Seconds Diner];
        } else {
            if (!get_property("banishedMonsters").contains_text("drunk pygmy")) {
                buy (11 - item_amount($item[bowl of scorpions]), $item[bowl of scorpions], to_int(get_property("valueOfAdventure")));
            }
            return $location[The Hidden Bowling Alley];
        }
    } else if (to_lower_case(what_to_farm).contains_text("item")) {
        if (can_adv($location[Spectral Pickle Factory])) {
            return $location[Spectral Pickle Factory];
        } else if (my_name() == "ereinion" && canadia_available()) {
            #return $location[The Ruins of the Fully Automated Crimbo Factory];
            return $location[Camp Logging Camp];
        } else if (to_boolean(get_property("spookyAirportAlways")) || to_boolean(get_property("_spookyAirportToday"))) {
            if (my_name() == "ereinion") {
                return $location[The Haunted Billiards Room];
            }
            return $location[The Deep Dark Jungle];
        } else if (to_boolean(get_property("stenchAirportAlways")) || to_boolean(get_property("_stenchAirportToday"))) {
            return $location[The Toxic Teacups];
        } else {
            #return $location[The Ruins of the Fully Automated Crimbo Factory];
            return $location[The Haunted Library];
            #whereToAdv = $location[The Haunted Wine Cellar];
        }
    }
    return $location[none];
}
# [11.]
familiar choose_familiar(string what_to_farm) {
    int goal;
    familiar fam;
    familiar chosen_familiar;
    familiar[13] familiars_which_drop_items;
    
    familiars_which_drop_items[0] = $familiar[Adventurous Spelunker];                           // Item, meat
    familiars_which_drop_items[1] = $familiar[Angry Jung Man];                                      // Item, meat
    familiars_which_drop_items[2] = $familiar[Blavious Kloop];                                      // Item, meat
    familiars_which_drop_items[3] = $familiar[Bloovian Groose];                                     // Meat
    familiars_which_drop_items[4] = $familiar[Fist Turkey];                                             // Item
    familiars_which_drop_items[5] = $familiar[Golden Monkey];                                           // Meat
    familiars_which_drop_items[6] = $familiar[Green Pixie];                                             // Item
    familiars_which_drop_items[7] = $familiar[Grim Brother];                                            // Meat
    familiars_which_drop_items[8] = $familiar[Grimstone Golem];                                     // Item, meat
    familiars_which_drop_items[9] = $familiar[Li'l Xenomorph];                                      // Item, meat
    familiars_which_drop_items[10] = $familiar[Pair of Stomping Boots];                     // Item
    familiars_which_drop_items[11] = $familiar[Unconscious Collective];                     // Meat
    familiars_which_drop_items[12] = $familiar[Machine Elf];                                            // 
        
    // Choose default
    if (to_lower_case(what_to_farm).contains_text("meat")) {
        if (have_familiar($familiar[xo skeleton])) {
            chosen_familiar = $familiar[xo skeleton];
        } else if (have_familiar($familiar[hobo monkey])) {
            chosen_familiar = $familiar[hobo monkey];
        } else {
            chosen_familiar = $familiar[leprechaun];
        }
    } else if (to_lower_case(what_to_farm).contains_text("item")) {
        if (have_familiar($familiar[xo skeleton])) {
            chosen_familiar = $familiar[xo skeleton];
        } else if (have_familiar($familiar[jumpsuited hound dog])) {
            chosen_familiar = $familiar[jumpsuited hound dog];
        } else {
            chosen_familiar = $familiar[baby gravy fairy];
        }
    }
    
    // Check for what item-dropping familiars are options
    foreach i in familiars_which_drop_items {
        // Have it, correct drop modifier, adventuresleft
        fam = familiars_which_drop_items[i];
        if(have_familiar(fam) && numeric_modifier(fam, what_to_farm, 20, familiar_equipment(fam)) > 0) {
            if (to_int(fam.drops_today) < to_int(fam.drops_limit)) {
                chosen_familiar = fam;
                break;
            }
        }
    }
    if (my_name() == "ereinion") {
#       chosen_familiar = $familiar[Robortender];
    }
    print ("Best familiar found for " + what_to_farm + " is the " + to_string (chosen_familiar) + ".", "green");
    return chosen_familiar;
}
# [12.]
void farm(string modifier_string, int adventures_to_save) {
    // No need to run this if out of adventures
    if (my_adventures() == 0) {
        return;
    }
    location whereToAdv = choose_location(modifier_string);
    familiar fam_to_use;
    item fam_eq;
    boolean already_optimized = false;
    boolean changes_done = false;
    boolean pantsgiving_best = false;
    int i;
    
    // Special cases
    switch (my_path()) {
        case "Avatar of Boris":
            if (item_amount($item[Clancy's lute]) > 0) {
                use(1, $item[Clancy's lute]);
            }
            if (item_amount($item[Trusty]) > 0) {
                equip($slot[weapon], $item[Trusty]);
            }
        case "Avatar of Sneaky Pete":
        case "Avatar of Jarlsberg":
            if (my_companion() != "Eggman" && have_skill($skill[Egg Man]) && item_amount($item[Cosmic Egg]) > 0) {
                use_skill(1, $skill[Egg Man]);
            }
        case "Acctually Ed the Undying":
            if (to_lower_case(modifier_string).contains_text("meat")) {
                if (have_servant($servant[maid]) && my_servant() != $servant[maid]) {
                    use_servant($servant[maid]);
                }
            } else if (to_lower_case(modifier_string).contains_text("item")) {
                if (have_servant($servant[cat]) && my_servant() != $servant[maid]) {
                    use_servant($servant[cat]);
                }
            }
            already_optimized = true;
        // Bleed over into "default"  paths, but no need to "optimize" if that already has been done.
        default:
            changes_done = true;
            i = 30;
            while (my_adventures() > adventures_to_save) {
                if (i == 30) {
                    //  Pool buffs, hatter, etc.
                    get_buffs(modifier_string);
                    i = 0;
                }
                if (!already_optimized) {
                    // Choose familiar
                    fam_to_use = choose_familiar(modifier_string);
                    if (fam_to_use != my_familiar()) {
                        use_familiar(fam_to_use);
                        // Choose familiar eq
                        fam_eq = choose_familiar_equipment(modifier_string);
                        if (fam_eq != $item[none] && !have_equipped(fam_eq)) {
                            equip ($slot[familiar], fam_eq);
                        }
                        changes_done = true;
                    }
                }
                if (have_equipped($item[Pantsgiving]) && !wear_pantsgiving() && !pantsgiving_best) {
                    changes_done  = true;
                }
                // Maximize if any changes
                if (changes_done) {
                    maximize (create_maximizer_string(modifier_string), false);
                    if (have_equipped($item[Pantsgiving])) {
                        pantsgiving_best = true;
                    }
                    changes_done = false;
                }
                if (my_name() != "algen") {
                    adventure (1, whereToAdv);
                } else {
                    fish_function(min(max(1, my_adventures() - adventures_to_save), 10));
                }
                
                i = i + 1;
            }
    }
}
# [13.]
void after_overdrinking(int fites_to_save) {
    buffer maximizer_string;
    
    // Vamp out
    if (available_amount($item[plastic vampire fangs]) > 0) {
        vamp_out(13);
    }
    
    // PVP
    if (hippy_stone_broken()) {
        cli_execute("refresh inv");
        main@pvploot();
        main@UberPvPOptimizer();
        cli_execute("pvp " + to_string(pvp_attacks_left()-fites_to_save) + " flowers " + stance);
    }
    
    // Libram-summoning
    manaburn();
    
    // Pajamas
    if (have_familiar($familiar[Trick-or-Treating Tot])) {
        use_familiar($familiar[Trick-or-Treating Tot]);
    }
    if (hippy_stone_broken()) {
        maximizer_string.append("0.1 adv, pvp fights, -current, -tie");
    } else {
        maximizer_string.append("adv, -current, -tie");
    }
    if (have_familiar($familiar[Disembodied Hand])) {
        maximizer_string.append(", switch disembodied hand");
    }
    maximize(maximizer_string, false);
    
    // Sell stuff
    ocd_inventory_control();
    
    // Get Jick Jar
    if (item_amount($item[psychoanalytic jar]) > 0) {
        if(visit_url("showplayer.php?who=1&action=jung&whichperson=jick").contains_text("Use psychoanalytic jar on him")) {
            visit_url("showplayer.php?who=1&action=jung&whichperson=jick");
        }
        print("Checked for Jick Jar", "green");
    }
    
}
# [13.]
void choose_bjornify_familiar() {
    familiar fa;
    fa = $familiar[grim brother];
    if (have_familiar(fa) && to_int(get_property("_grimFairyTaleDropsCrown")) < 2) {
        if (my_bjorned_familiar() != fa) {
            bjornify_familiar(fa);
        }
        return;
    }
    fa = $familiar[grimstone golem];
    if (have_familiar(fa) && to_int(get_property("_grimstoneMaskDropsCrown")) < 1) {
        if (my_bjorned_familiar() != fa) {
            bjornify_familiar(fa);
        }
        return;
    }
    fa = $familiar[el vibrato megadrone];
    if (have_familiar(fa)) {
        if (my_bjorned_familiar() != fa) {
            bjornify_familiar(fa);
        }
        return;
    }
}
# [14.]
void free_fights_outfit() {
    item it;
    familiar fa;
    buffer maximizer_string;
    
    maximizer_string.append("item Drop, 0.1 meat Drop, 0.01 mp regen, -tie, -current");
    
    it = $item[Pantsgiving];
    if (available_amount(it) > 0) {
        equip($slot[pants], it);
        maximizer_string.append(", -pants");
    }
    it = $item[KoL Con 13 snowglobe];
    if (available_amount(it) > 0) {
        equip($slot[off-hand], it);
        maximizer_string.append(", -offhand");
        it = $item[time-twitching toolbelt];
        if (available_amount(it) > 0) {
            equip($slot[acc2], it);
            maximizer_string.append(", -acc2");
        }
    }
    it = $item[Mr. Cheeng's spectacles];
    if (available_amount(it) > 0) {
        equip($slot[acc1], it);
        maximizer_string.append(", -acc1");
    }
    fa = $familiar[Rogue Program];
    if (have_familiar(fa)) {
        use_familiar(fa);
    }
    it = $item[snow suit];
    if (available_amount(it) > 0) {
        equip($slot[familiar], it);
        maximizer_string.append(", -familiar");
    }
    it = $item[buddy bjorn];
    if (available_amount(it) > 0) {
        equip($slot[back], it);
        choose_bjornify_familiar();
        maximizer_string.append(", -back");
    }
    maximize(maximizer_string, false);
}
# [15.]
void free_fights() {
    int i = 0;
    familiar f;
    string choice_adv;
    
    
    if (!to_boolean(get_property("_loveTunnelUsed")) || to_boolean(get_property("snojoAvailable")) || to_int(get_property("_machineTunnelsAdv")) < 5 || to_int(get_property("_witchessFights")) < 5) {
        
        free_fights_outfit();
        
        // L.O.V.E. tunnel
        if (!to_boolean(get_property("_loveTunnelUsed")) && to_boolean(get_property("loveTunnelAvailable"))) {
            visit_url("place.php?whichplace=town_wrong&action=townwrong_tunnel");
            run_choice(1);
            run_choice(1);
            visit_url("choice.php");
            // 1 = Eardigan, 2 = Epaulettes, 3 = Earring
            run_choice(3);
            run_choice(1);
            visit_url("choice.php");
            // 1 = Lovebotamy, 2 = Open Heart Surgery, 3 = Wandering Eye Surgery
            run_choice(2);
            run_choice(1);
            // 1 = Enamorang, 2 = Emotionizer, 3 = Extraterrestrial Chocolate, 4 = Echinacea Bouquet, 5 = Elephant, 6 = 2 pieces of toast
            run_choice(2);
        }
 
        choose_bjornify_familiar();
        // Snojo
        if (to_boolean(get_property("snojoAvailable"))) {
            while (to_int(get_property("_snojoFreeFights")) < 10 && i <= 15) {
                adv1($location[The X-32-F Combat Training Snowman], -1, "");
                i = i + 1;
            }
        }
        
        choose_bjornify_familiar();
        // Machine elf tunnels
        if (have_familiar($familiar[Machine Elf]) && to_int(get_property("_machineTunnelsAdv")) < 5){
            f = my_familiar();
            i = 0;
            use_familiar($familiar[Machine Elf]);
            while (to_int(get_property("_machineTunnelsAdv")) < 5 && i <= 15) {
                adv1($location[The Deep Machine Tunnels], -1, "");
                i = i + 1;
            }
            use_familiar(f);
        }
        
        choose_bjornify_familiar();
        // Witchess
        if(get_campground() contains $item[Witchess Set] && to_int(get_property("_witchessFights")) < 5) {
            i = 0;
            while(to_int(get_property("_witchessFights")) < 5 && i < 10) {
                // Witchess knight
                choice_adv = "1936";
                if (to_int(get_property("_witchessFights")) == 4 && have_skill($skill[Frigidalmatian])) {
                    // Witchess ox
                    if (use_skill(1, $skill[Frigidalmatian])) {
                        choice_adv = "1937";
                    }
                }
                visit_url("campground.php?action=witchess");
                run_choice(1);
                visit_url("choice.php?option=1&pwd="+my_hash()+"&whichchoice=1182&piece=" + choice_adv, false);
                run_combat();
                i = i + 1;
            }
        }
    }
}
 
 
# [16.]
void simple_farming(string what_to_farm, int adventures_to_save, int fites_to_save, boolean overdrink_after_farming) {
    int swagger; int meat;
    buffer maximizer_string;
    
    if (item_amount($item[Time-Spinner]) > 0 && !to_boolean (get_property ("_timeSpinnerReplicatorUsed"))) {
        cli_execute("timespinner shot");
    }
    // If overdrunk or not in aftercore, exit script
    if (my_inebriety() <= inebriety_limit() && can_interact()) {
        // Exit on invalid input
        string modifier_string; 
        if (to_lower_case(what_to_farm).contains_text("meat")) {
            modifier_string = "Meat Drop";
        } else if (to_lower_case(what_to_farm).contains_text("item")) {
            modifier_string = "Item Drop";
        } else {
            print("Error in input; \'" + what_to_farm + "\'. The string given to the script should be either \'meat\' or \'item'. Try again.", "red");
            exit;
        }
        
        // Free_fights
        free_fights();
        
        // Initial meat and swagger values
        meat = my_meat(); swagger = to_int(get_property("availableSwagger"));
        
        // Consume
        if (my_inebriety() < inebriety_limit()) {
            get_ode();
            manual_buffs(false);
            wait(30);
        }
        consumption();
        
        if (my_adventures() >= 30) {
            // If no dog hair/distention pills left, get new ones
            if (item_amount($item[distention pill]) < 1 || item_amount($item[synthetic dog hair pill]) < 1) {
                expanders();
            }
        }
        
        // Farm
        farm(modifier_string, adventures_to_save);
        
        // Overdrink
        if (overdrink_after_farming) {
            get_ode();
            eatdrink(0, inebriety_limit(), 0, true);
        }
        
        after_overdrinking(fites_to_save);
        
        meat = my_meat() - meat; swagger = to_int(get_property("availableSwagger")) - swagger;
        print("Gained " + meat + " meat.", "blue");
        print("Gained " + swagger + " swagger. Current swagger is: " + get_property("availableSwagger"), "blue");
        
    } else if (!can_interact()) {
        print("Wait till you are out of ronin before running this script.", "red");
    } else {
        after_overdrinking(fites_to_save);
        print("You are overdrunk.", "red");
    }
}
# [17.]
void main(string what_to_farm) {
    simple_farming(what_to_farm, 0, 0, true);
}

Comments