From a094a6f9ac3e2201c23a60036cdc1bcd31f5006b Mon Sep 17 00:00:00 2001 From: Malibu Stacey <50261170+Malibu-Stacey@users.noreply.github.com> Date: Thu, 12 Oct 2023 09:20:17 -0700 Subject: [PATCH 1/7] respect autoBuyPriceLimit for purchases (#1371) --- RELEASE/scripts/autoscend.ash | 18 ++-- RELEASE/scripts/autoscend/auto_acquire.ash | 83 +++++++++---------- RELEASE/scripts/autoscend/auto_bedtime.ash | 18 ++-- RELEASE/scripts/autoscend/auto_buff.ash | 4 +- RELEASE/scripts/autoscend/auto_consume.ash | 10 +-- RELEASE/scripts/autoscend/auto_post_adv.ash | 2 +- RELEASE/scripts/autoscend/auto_pre_adv.ash | 4 +- RELEASE/scripts/autoscend/auto_util.ash | 2 +- .../scripts/autoscend/autoscend_header.ash | 4 +- RELEASE/scripts/autoscend/iotms/mr2013.ash | 6 +- RELEASE/scripts/autoscend/iotms/mr2015.ash | 2 +- RELEASE/scripts/autoscend/iotms/mr2019.ash | 4 +- .../paths/actually_ed_the_undying.ash | 2 +- RELEASE/scripts/autoscend/paths/casual.ash | 2 +- .../scripts/autoscend/paths/dark_gyffte.ash | 4 +- .../autoscend/paths/gelatinous_noob.ash | 2 +- .../scripts/autoscend/paths/heavy_rains.ash | 4 +- .../autoscend/paths/license_to_adventure.ash | 2 +- RELEASE/scripts/autoscend/paths/wildfire.ash | 2 +- RELEASE/scripts/autoscend/quests/level_04.ash | 2 +- RELEASE/scripts/autoscend/quests/level_05.ash | 6 +- RELEASE/scripts/autoscend/quests/level_07.ash | 4 +- RELEASE/scripts/autoscend/quests/level_09.ash | 2 +- RELEASE/scripts/autoscend/quests/level_10.ash | 4 +- RELEASE/scripts/autoscend/quests/level_11.ash | 20 ++--- RELEASE/scripts/autoscend/quests/level_12.ash | 6 +- RELEASE/scripts/autoscend/quests/level_13.ash | 6 +- .../scripts/autoscend/quests/level_any.ash | 16 ++-- RELEASE/scripts/autoscend/quests/optional.ash | 6 +- 29 files changed, 118 insertions(+), 129 deletions(-) diff --git a/RELEASE/scripts/autoscend.ash b/RELEASE/scripts/autoscend.ash index 80dcb1ab4..c4c50bb90 100644 --- a/RELEASE/scripts/autoscend.ash +++ b/RELEASE/scripts/autoscend.ash @@ -815,12 +815,12 @@ void initializeDay(int day) //Try to get Antique Accordion early if we possibly can. if(isUnclePAvailable() && ((my_meat() > npc_price($item[Antique Accordion])) && (npc_price($item[Antique Accordion]) != 0)) && !in_glover()) { - buyUpTo(1, $item[Antique Accordion]); + auto_buyUpTo(1, $item[Antique Accordion]); } // Removed "else". In some situations when mafia or supporting scripts are behaving wonky we may completely fail to get an accordion if((isArmoryAvailable()) && (item_amount($item[Antique Accordion]) == 0)) { - buyUpTo(1, $item[Toy Accordion]); + auto_buyUpTo(1, $item[Toy Accordion]); } } acquireTotem(); @@ -895,13 +895,13 @@ void initializeDay(int day) while(acquireHermitItem($item[11-Leaf Clover])); if((item_amount($item[Antique Accordion]) == 0) && (item_amount($item[Aerogel Accordion]) == 0) && isUnclePAvailable() && ((my_meat() > npc_price($item[Antique Accordion])) && (npc_price($item[Antique Accordion]) != 0)) && (auto_predictAccordionTurns() < 10) && !(is_boris() || is_jarlsberg() || is_pete() || isActuallyEd() || in_darkGyffte() || in_plumber() || !in_glover())) { - buyUpTo(1, $item[Antique Accordion]); + auto_buyUpTo(1, $item[Antique Accordion]); } if(is_boris()) { if((item_amount($item[Clancy\'s Crumhorn]) == 0) && (minstrel_instrument() != $item[Clancy\'s Crumhorn])) { - buyUpTo(1, $item[Clancy\'s Crumhorn]); + auto_buyUpTo(1, $item[Clancy\'s Crumhorn]); } } if(auto_have_skill($skill[Summon Smithsness]) && (my_mp() > (3 * mp_cost($skill[Summon Smithsness])))) @@ -911,7 +911,7 @@ void initializeDay(int day) if(item_amount($item[handful of smithereens]) >= 2) { - buyUpTo(2, $item[Ben-Gal™ Balm], 25); + auto_buyUpTo(2, $item[Ben-Gal™ Balm]); cli_execute("make 2 louder than bomb"); } @@ -1175,7 +1175,7 @@ boolean Lsc_flyerSeals() { if((item_amount($item[imbued seal-blubber candle]) == 0) && guild_store_available()) { - buyUpTo(1, $item[seal-blubber candle]); + auto_buyUpTo(1, $item[seal-blubber candle]); cli_execute("make imbued seal-blubber candle"); } if(item_amount($item[Imbued Seal-Blubber Candle]) > 0) @@ -1187,8 +1187,8 @@ boolean Lsc_flyerSeals() } else if(guild_store_available() && isHermitAvailable()) { - buyUpTo(1, $item[figurine of an armored seal]); - buyUpTo(10, $item[seal-blubber candle]); + auto_buyUpTo(1, $item[figurine of an armored seal]); + auto_buyUpTo(10, $item[seal-blubber candle]); if((item_amount($item[Figurine of an Armored Seal]) > 0) && (item_amount($item[Seal-Blubber Candle]) >= 10)) { handleSealNormal($item[Figurine of an Armored Seal]); @@ -1199,7 +1199,7 @@ boolean Lsc_flyerSeals() { if((item_amount($item[Tenderizing Hammer]) == 0) && ((my_meat() >= (npc_price($item[Tenderizing Hammer]) * 2)) && (npc_price($item[Tenderizing Hammer]) != 0))) { - buyUpTo(1, $item[Tenderizing Hammer]); + auto_buyUpTo(1, $item[Tenderizing Hammer]); } if(item_amount($item[Tenderizing Hammer]) > 0) { diff --git a/RELEASE/scripts/autoscend/auto_acquire.ash b/RELEASE/scripts/autoscend/auto_acquire.ash index 78cbfe12f..288f9070d 100644 --- a/RELEASE/scripts/autoscend/auto_acquire.ash +++ b/RELEASE/scripts/autoscend/auto_acquire.ash @@ -194,7 +194,32 @@ boolean pullXWhenHaveYCasual(item it, int howMany, int whenHave) { return false; } - return buy_item(it, howMany, get_property("autoBuyPriceLimit").to_int()); + if(inAftercore()) + { + take_storage(storage_amount(it), it); + } + int maxprice = get_property("autoBuyPriceLimit").to_int(); + while((item_amount(it) < howMany) && (auto_mall_price(it) < maxprice)) + { + if(auto_mall_price(it) > my_meat()) + { + abort("Don't have enough meat to restock, big sad"); + } + if(buy(1, it, maxprice) == 0) + { + auto_log_info("Price of " + it + " exceeded expected mall price of " + maxprice + ".", "blue"); + return false; + } + } + if(item_amount(it) < howMany) + { + if(auto_mall_price(it) >= maxprice) + { + auto_log_info("Price of " + it + " exceeded expected mall price of " + maxprice + ".", "blue"); + } + return false; + } + return true; } boolean pullXWhenHaveY(item it, int howMany, int whenHave) @@ -327,45 +352,10 @@ boolean buyableMaintain(item toMaintain, int howMany, int meatMin, boolean condi return false; } - return buyUpTo(howMany, toMaintain); -} - -boolean buy_item(item it, int quantity, int maxprice) -{ - take_closet(closet_amount(it), it); - if(inAftercore()) - { - take_storage(storage_amount(it), it); - } - while((item_amount(it) < quantity) && (auto_mall_price(it) < maxprice)) - { - if(auto_mall_price(it) > my_meat()) - { - abort("Don't have enough meat to restock, big sad"); - } - if(buy(1, it, maxprice) == 0) - { - auto_log_info("Price of " + it + " exceeded expected mall price of " + maxprice + ".", "blue"); - return false; - } - } - if(item_amount(it) < quantity) - { - if(auto_mall_price(it) >= maxprice) - { - auto_log_info("Price of " + it + " exceeded expected mall price of " + maxprice + ".", "blue"); - } - return false; - } - return true; -} - -boolean buyUpTo(int num, item it) -{ - return buyUpTo(num, it, 20000); + return auto_buyUpTo(howMany, toMaintain); } -boolean buyUpTo(int num, item it, int maxprice) +boolean auto_buyUpTo(int num, item it) { if(item_amount(it) >= num) { @@ -381,6 +371,7 @@ boolean buyUpTo(int num, item it, int maxprice) } int missing = num - item_amount(it); + int maxprice = get_property("autoBuyPriceLimit").to_int(); if(can_interact() && shop_amount(it) > 0 && mall_price(it) < maxprice) //prefer to buy from yourself { take_shop(min(missing, shop_amount(it)), it); @@ -391,7 +382,7 @@ boolean buyUpTo(int num, item it, int maxprice) buy(missing, it, maxprice); if(item_amount(it) < num) { - auto_log_warning("Could not buyUpTo(" + num + ") of " + it + ". Maxprice: " + maxprice, "red"); + auto_log_warning("Could not auto_buyUpTo(" + num + ") of " + it + ". Maxprice: " + maxprice, "red"); } } return (item_amount(it) >= num); @@ -432,7 +423,7 @@ boolean acquireGumItem(item it) auto_log_info("Gum acquisition of: " + it, "green"); while((have == item_amount(it)) && (my_meat() >= npc_price($item[Chewing Gum on a String]))) { - buyUpTo(1, $item[Chewing Gum on a String]); + auto_buyUpTo(1, $item[Chewing Gum on a String]); use(1, $item[Chewing Gum on a String]); } @@ -500,7 +491,7 @@ boolean acquireHermitItem(item it) } if((item_amount($item[Hermit Permit]) == 0) && (my_meat() >= npc_price($item[Hermit Permit]))) { - buyUpTo(1, $item[Hermit Permit]); + auto_buyUpTo(1, $item[Hermit Permit]); } if(item_amount($item[Hermit Permit]) == 0) { @@ -534,7 +525,7 @@ boolean acquireHermitItem(item it) } else { - buyUpTo(1, $item[Chewing Gum on a String]); + auto_buyUpTo(1, $item[Chewing Gum on a String]); use(1, $item[Chewing Gum on a String]); } } @@ -859,7 +850,7 @@ boolean LX_craftAcquireItems() if(knoll_available() && (item_amount($item[Detuned Radio]) == 0) && (my_meat() >= npc_price($item[Detuned Radio])) && auto_is_valid($item[Detuned Radio])) { - buyUpTo(1, $item[Detuned Radio]); + auto_buyUpTo(1, $item[Detuned Radio]); auto_setMCDToCap(); } @@ -886,7 +877,7 @@ boolean LX_craftAcquireItems() if(buyAntiqueAccordion) { - buyUpTo(1, $item[Antique Accordion]); + auto_buyUpTo(1, $item[Antique Accordion]); } } @@ -918,12 +909,12 @@ boolean LX_craftAcquireItems() } if((get_power(equipped_item($slot[pants])) < 70) && !possessEquipment($item[Demonskin Trousers]) && (my_meat() >= npc_price($item[Pants Kit])) && (item_amount($item[Demon Skin]) > 0) && (item_amount($item[Tenderizing Hammer]) > 0) && knoll_available()) { - buyUpTo(1, $item[Pants Kit]); + auto_buyUpTo(1, $item[Pants Kit]); autoCraft("smith", 1, $item[Pants Kit], $item[Demon Skin]); } if(!possessEquipment($item[Tighty Whiteys]) && (my_meat() >= npc_price($item[Pants Kit])) && (item_amount($item[White Snake Skin]) > 0) && (item_amount($item[Tenderizing Hammer]) > 0) && knoll_available()) { - buyUpTo(1, $item[Pants Kit]); + auto_buyUpTo(1, $item[Pants Kit]); autoCraft("smith", 1, $item[Pants Kit], $item[White Snake Skin]); } diff --git a/RELEASE/scripts/autoscend/auto_bedtime.ash b/RELEASE/scripts/autoscend/auto_bedtime.ash index 66ea62993..db7414e79 100644 --- a/RELEASE/scripts/autoscend/auto_bedtime.ash +++ b/RELEASE/scripts/autoscend/auto_bedtime.ash @@ -21,7 +21,7 @@ void bedtime_still() //tonic water is an excellent MP restorer and also can be used to craft some drinks. if(target == $item[none] && my_meat() > meatReserve() + 100 && isGeneralStoreAvailable()) { - if(buyUpTo(1, $item[soda water])) + if(auto_buyUpTo(1, $item[soda water])) { target = $item[tonic water]; } @@ -629,31 +629,31 @@ boolean doBedtime() if((my_daycount() == 1) && (my_level() >= 6) && isHermitAvailable()) { cli_execute("make figurine of an ancient seal"); - buyUpTo(3, $item[seal-blubber candle]); + auto_buyUpTo(3, $item[seal-blubber candle]); ensureSealClubs(); handleSealAncient(); summoned = true; } else if(my_level() >= 9) { - buyUpTo(1, $item[figurine of an armored seal]); - buyUpTo(10, $item[seal-blubber candle]); + auto_buyUpTo(1, $item[figurine of an armored seal]); + auto_buyUpTo(10, $item[seal-blubber candle]); ensureSealClubs(); handleSealNormal($item[Figurine of an Armored Seal]); summoned = true; } else if(my_level() >= 5) { - buyUpTo(1, $item[figurine of a Cute Baby Seal]); - buyUpTo(5, $item[seal-blubber candle]); + auto_buyUpTo(1, $item[figurine of a Cute Baby Seal]); + auto_buyUpTo(5, $item[seal-blubber candle]); ensureSealClubs(); handleSealNormal($item[Figurine of a Cute Baby Seal]); summoned = true; } else { - buyUpTo(1, $item[figurine of a Wretched-Looking Seal]); - buyUpTo(1, $item[seal-blubber candle]); + auto_buyUpTo(1, $item[figurine of a Wretched-Looking Seal]); + auto_buyUpTo(1, $item[seal-blubber candle]); ensureSealClubs(); handleSealNormal($item[Figurine of a Wretched-Looking Seal]); summoned = true; @@ -834,7 +834,7 @@ boolean doBedtime() { if((item_amount($item[frilly skirt]) < 1) && knoll_available()) { - buyUpTo(1, $item[frilly skirt]); + auto_buyUpTo(1, $item[frilly skirt]); } if(item_amount($item[frilly skirt]) > 0) { diff --git a/RELEASE/scripts/autoscend/auto_buff.ash b/RELEASE/scripts/autoscend/auto_buff.ash index c8cff0831..52d96b62f 100644 --- a/RELEASE/scripts/autoscend/auto_buff.ash +++ b/RELEASE/scripts/autoscend/auto_buff.ash @@ -104,7 +104,7 @@ boolean buffMaintain(item source, effect buff, int uses, int turns, boolean spec { if(!speculative) { - buy(numToBuy, source); + auto_buyUpTo(numToBuy, source); } else { @@ -117,7 +117,7 @@ boolean buffMaintain(item source, effect buff, int uses, int turns, boolean spec { if(!speculative) { - buy(numToBuy, source, meatAvailableToBuy / numToBuy); + auto_buyUpTo(numToBuy, source); } else { diff --git a/RELEASE/scripts/autoscend/auto_consume.ash b/RELEASE/scripts/autoscend/auto_consume.ash index b86031f51..8930f983b 100644 --- a/RELEASE/scripts/autoscend/auto_consume.ash +++ b/RELEASE/scripts/autoscend/auto_consume.ash @@ -131,7 +131,7 @@ boolean autoDrink(int howMany, item toDrink, boolean silent) { if((have_effect($effect[Drunk and Avuncular]) < expectedInebriety) && (item_amount($item[Drunk Uncles Holo-Record]) == 0)) { - buyUpTo(1, $item[Drunk Uncles Holo-Record]); + auto_buyUpTo(1, $item[Drunk Uncles Holo-Record]); } buffMaintain($effect[Drunk and Avuncular], 0, 1, expectedInebriety); } @@ -324,7 +324,7 @@ boolean autoEat(int howMany, item toEat, boolean silent) { if((have_effect($effect[Record Hunger]) < expectedFullness) && (item_amount($item[The Pigs Holo-Record]) == 0)) { - buyUpTo(1, $item[The Pigs Holo-Record]); + auto_buyUpTo(1, $item[The Pigs Holo-Record]); } buffMaintain($effect[Record Hunger], 0, 1, expectedFullness); } @@ -334,9 +334,9 @@ boolean autoEat(int howMany, item toEat, boolean silent) while(howMany > 0) { buffMaintain($effect[Song of the Glorious Lunch], 10, 1, toEat.fullness); - if((auto_get_campground() contains $item[Portable Mayo Clinic]) && (my_meat() > 11000) && (get_property("mayoInMouth") == "") && auto_is_valid($item[Portable Mayo Clinic])) + if((auto_get_campground() contains $item[Portable Mayo Clinic]) && (my_meat() - meatReserve() > npc_price($item[Mayoflex])) && (get_property("mayoInMouth") == "") && auto_is_valid($item[Portable Mayo Clinic])) { - buyUpTo(1, $item[Mayoflex], 1000); + auto_buyUpTo(1, $item[Mayoflex]); use(1, $item[Mayoflex]); } if(item_amount($item[whet stone]) > 0) //use whet stone if we got one from the rock garden @@ -691,7 +691,7 @@ boolean autoPrepConsume(ConsumeAction action) { auto_log_info("autoPrepConsume: Buying a " + action.it, "blue"); action.howToGet = AUTO_OBTAIN_NULL; - return buy(1, action.it); + return auto_buyUpTo(1, action.it); } else if (action.howToGet == AUTO_OBTAIN_NULL) { diff --git a/RELEASE/scripts/autoscend/auto_post_adv.ash b/RELEASE/scripts/autoscend/auto_post_adv.ash index f5ae6bdaa..e75321f15 100644 --- a/RELEASE/scripts/autoscend/auto_post_adv.ash +++ b/RELEASE/scripts/autoscend/auto_post_adv.ash @@ -349,7 +349,7 @@ boolean auto_post_adventure() } else if(isGeneralStoreAvailable() && auto_is_valid($item[Anti-Anti-Antidote])) { - buyUpTo(1, $item[Anti-Anti-Antidote], 30); + auto_buyUpTo(1, $item[Anti-Anti-Antidote]); use(1, $item[Anti-Anti-Antidote]); } } diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index 16c956bcc..8b7d380fb 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -284,12 +284,12 @@ boolean auto_pre_adventure() { if (0 == have_effect($effect[Uncucumbered])) { - buyUpTo(1, $item[hair spray]); + auto_buyUpTo(1, $item[hair spray]); use(1, $item[hair spray]); } if (0 == have_effect($effect[Minerva\'s Zen])) { - buyUpTo(1, $item[glittery mascara]); + auto_buyUpTo(1, $item[glittery mascara]); use(1, $item[glittery mascara]); } } diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index ba3a26caa..35a46f441 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -1334,7 +1334,7 @@ boolean ovenHandle() if(!get_property("auto_haveoven").to_boolean() && (my_meat() >= (npc_price($item[Dramatic™ range]) + 1000)) && isGeneralStoreAvailable()) { - buyUpTo(1, $item[Dramatic™ range]); + auto_buyUpTo(1, $item[Dramatic™ range]); use(1, $item[Dramatic™ range]); set_property("auto_haveoven", true); } diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 393be203f..1366eadad 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -1220,9 +1220,7 @@ boolean pulverizeThing(item it); boolean buyableMaintain(item toMaintain, int howMany); boolean buyableMaintain(item toMaintain, int howMany, int meatMin); boolean buyableMaintain(item toMaintain, int howMany, int meatMin, boolean condition); -boolean buy_item(item it, int quantity, int maxprice); -boolean buyUpTo(int num, item it); -boolean buyUpTo(int num, item it, int maxprice); +boolean auto_buyUpTo(int num, item it); float npcStoreDiscountMulti(); boolean acquireGumItem(item it); boolean acquireTotem(); diff --git a/RELEASE/scripts/autoscend/iotms/mr2013.ash b/RELEASE/scripts/autoscend/iotms/mr2013.ash index 63164956d..fa4931ce0 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2013.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2013.ash @@ -18,7 +18,7 @@ void makeStartingSmiths() if(knoll_available()) { - buyUpTo(1, $item[maiden wig]); + auto_buyUpTo(1, $item[maiden wig]); } switch(my_class()) @@ -30,14 +30,14 @@ void makeStartingSmiths() } if(!possessEquipment($item[Vicar\'s Tutu]) && (item_amount($item[Lump of Brituminous Coal]) > 0) && knoll_available()) { - buy(1, $item[Frilly Skirt]); + auto_buyUpTo(1, $item[Frilly Skirt]); autoCraft("smith", 1, $item[Lump of Brituminous Coal], $item[Frilly Skirt]); } break; case $class[Turtle Tamer]: if(!possessEquipment($item[Work is a Four Letter Sword])) { - buyUpTo(1, $item[Sword Hilt]); + auto_buyUpTo(1, $item[Sword Hilt]); autoCraft("smith", 1, $item[lump of Brituminous coal], $item[sword hilt]); } if(!possessEquipment($item[Ouija Board\, Ouija Board])) diff --git a/RELEASE/scripts/autoscend/iotms/mr2015.ash b/RELEASE/scripts/autoscend/iotms/mr2015.ash index 22bba2ae0..9cd5208ec 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2015.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2015.ash @@ -280,7 +280,7 @@ boolean auto_mayoItems() } if(item_amount(mayo) == 0) { - buy(1, mayo); + auto_buyUpTo(1, mayo); return true; } } diff --git a/RELEASE/scripts/autoscend/iotms/mr2019.ash b/RELEASE/scripts/autoscend/iotms/mr2019.ash index c0ac33de7..e45392569 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2019.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2019.ash @@ -614,7 +614,7 @@ boolean auto_spoonReadyToTuneMoon() (auto_is_valid($familiar[cookbookbat]) && have_familiar($familiar[cookbookbat]))) { // we want to get the bugbear outfit before switching away for easy bread access - if(!buyUpTo(1, $item[bugbear beanie]) || !buyUpTo(1, $item[bugbear bungguard])) + if(!auto_buyUpTo(1, $item[bugbear beanie]) || !auto_buyUpTo(1, $item[bugbear bungguard])) { return false; } @@ -622,7 +622,7 @@ boolean auto_spoonReadyToTuneMoon() // We want the frilly skirt in LKS if(in_lowkeysummer()) { - if(!buyUpTo(1, $item[frilly skirt])) + if(!auto_buyUpTo(1, $item[frilly skirt])) { return false; } diff --git a/RELEASE/scripts/autoscend/paths/actually_ed_the_undying.ash b/RELEASE/scripts/autoscend/paths/actually_ed_the_undying.ash index 9472dda50..74c7cfd59 100644 --- a/RELEASE/scripts/autoscend/paths/actually_ed_the_undying.ash +++ b/RELEASE/scripts/autoscend/paths/actually_ed_the_undying.ash @@ -1115,7 +1115,7 @@ boolean L1_ed_island() if((my_turncount() <= 1) && (my_meat() > 10000)) { int need = min(4, (my_maxmp() - my_mp()) / 10); - buyUpTo(need, $item[Doc Galaktik\'s Invigorating Tonic]); + auto_buyUpTo(need, $item[Doc Galaktik\'s Invigorating Tonic]); use(need, $item[Doc Galaktik\'s Invigorating Tonic]); cli_execute("auto_post_adv"); } diff --git a/RELEASE/scripts/autoscend/paths/casual.ash b/RELEASE/scripts/autoscend/paths/casual.ash index 9b30a1646..7e8131ba1 100644 --- a/RELEASE/scripts/autoscend/paths/casual.ash +++ b/RELEASE/scripts/autoscend/paths/casual.ash @@ -38,7 +38,7 @@ boolean L8_slopeCasual() foreach it in $items[Ninja Carabiner, Ninja Crampons, Ninja Rope, //ninja climbing gear needed to climb the slope eXtreme scarf, eXtreme mittens, snowboarder pants] //outfit ensures you can reach 5 cold res needed { - if(!buyUpTo(1, it)) //try to buy it or verify we already own it. if fails then do as below + if(!auto_buyUpTo(1, it)) //try to buy it or verify we already own it. if fails then do as below { if(my_meat() < mall_price(it)) { diff --git a/RELEASE/scripts/autoscend/paths/dark_gyffte.ash b/RELEASE/scripts/autoscend/paths/dark_gyffte.ash index 58e9ec791..db3eb5244 100644 --- a/RELEASE/scripts/autoscend/paths/dark_gyffte.ash +++ b/RELEASE/scripts/autoscend/paths/dark_gyffte.ash @@ -413,7 +413,7 @@ int bat_creatable_amount(item desired) } if(item_amount($item[wad of dough]) == 0) { - buyUpTo(1, $item[wad of dough]); + auto_buyUpTo(1, $item[wad of dough]); } return creatable_amount(desired); case $item[blood snowcone]: @@ -423,7 +423,7 @@ int bat_creatable_amount(item desired) } if(item_amount($item[plain snowcone]) == 0) { - buyUpTo(1, $item[plain snowcone]); + auto_buyUpTo(1, $item[plain snowcone]); } return creatable_amount(desired); case $item[blood roll-up]: diff --git a/RELEASE/scripts/autoscend/paths/gelatinous_noob.ash b/RELEASE/scripts/autoscend/paths/gelatinous_noob.ash index 0673438bd..e3b5024ff 100644 --- a/RELEASE/scripts/autoscend/paths/gelatinous_noob.ash +++ b/RELEASE/scripts/autoscend/paths/gelatinous_noob.ash @@ -169,7 +169,7 @@ void gnoob_buySkills() //absorb potted cactus for adventures if(gnoob_absorbsLeft() > 0 && my_adventures() <= 1 + auto_advToReserve() && my_level() >= 12) { - buyUpTo(1, $item[Potted Cactus]); + auto_buyUpTo(1, $item[Potted Cactus]); if(item_amount($item[Potted Cactus]) > 0) { cli_execute("absorb Potted Cactus"); diff --git a/RELEASE/scripts/autoscend/paths/heavy_rains.ash b/RELEASE/scripts/autoscend/paths/heavy_rains.ash index b12a680b0..53df4bf85 100644 --- a/RELEASE/scripts/autoscend/paths/heavy_rains.ash +++ b/RELEASE/scripts/autoscend/paths/heavy_rains.ash @@ -65,7 +65,7 @@ void heavyrains_initializeDay(int day) if(item_amount($item[miniature life preserver]) == 0) { - buyUpTo(1, $item[miniature life preserver]); + auto_buyUpTo(1, $item[miniature life preserver]); } set_property("auto_day1_skills", "finished"); visit_url("main.php"); @@ -445,7 +445,7 @@ boolean L13_heavyrains_towerFinal() //Rain King strips all equipment other than weapon and offhand. //Stripped equipment can only provide you with -ML which is applied before the stripping - buyUpTo(3, $item[water wings for babies]); + auto_buyUpTo(3, $item[water wings for babies]); maximize("-ml, -weapon, -offhand", false); //Fight! diff --git a/RELEASE/scripts/autoscend/paths/license_to_adventure.ash b/RELEASE/scripts/autoscend/paths/license_to_adventure.ash index 96c321700..efdce4fa2 100644 --- a/RELEASE/scripts/autoscend/paths/license_to_adventure.ash +++ b/RELEASE/scripts/autoscend/paths/license_to_adventure.ash @@ -481,7 +481,7 @@ boolean LM_bond() { if(my_meat() > 6000) { - buyUpTo(1, $item[Antique Accordion]); + auto_buyUpTo(1, $item[Antique Accordion]); } } else if((my_mp() > 60) && (my_level() > 8) && (my_adventures() < 10)) diff --git a/RELEASE/scripts/autoscend/paths/wildfire.ash b/RELEASE/scripts/autoscend/paths/wildfire.ash index 88ca7f38e..07a3f33dd 100644 --- a/RELEASE/scripts/autoscend/paths/wildfire.ash +++ b/RELEASE/scripts/autoscend/paths/wildfire.ash @@ -189,7 +189,7 @@ boolean LX_wildfire_grease_pump() pull_meat(npc_price($item[pump grease])); if(my_meat() >= npc_price($item[pump grease])) { - buyUpTo(1, $item[pump grease]); + auto_buyUpTo(1, $item[pump grease]); } else { diff --git a/RELEASE/scripts/autoscend/quests/level_04.ash b/RELEASE/scripts/autoscend/quests/level_04.ash index e0db35c69..a41b1e324 100644 --- a/RELEASE/scripts/autoscend/quests/level_04.ash +++ b/RELEASE/scripts/autoscend/quests/level_04.ash @@ -20,7 +20,7 @@ boolean L4_batCave() { if(item_amount($item[Sonar-In-A-Biscuit]) == 0 && can_interact()) { - buyUpTo(1, $item[Sonar-In-A-Biscuit], get_property("valueOfAdventure").to_int()); + auto_buyUpTo(1, $item[Sonar-In-A-Biscuit]); } if(item_amount($item[Sonar-In-A-Biscuit]) > 0) { diff --git a/RELEASE/scripts/autoscend/quests/level_05.ash b/RELEASE/scripts/autoscend/quests/level_05.ash index 283ea1560..cef328e39 100644 --- a/RELEASE/scripts/autoscend/quests/level_05.ash +++ b/RELEASE/scripts/autoscend/quests/level_05.ash @@ -129,15 +129,15 @@ boolean L5_goblinKing() if(my_primestat() == $stat[Muscle]) { - buyUpTo(1, $item[Ben-Gal™ Balm]); + auto_buyUpTo(1, $item[Ben-Gal™ Balm]); buffMaintain($effect[Go Get \'Em\, Tiger!]); } - buyUpTo(1, $item[Hair Spray]); + auto_buyUpTo(1, $item[Hair Spray]); buffMaintain($effect[Butt-Rock Hair]); if((my_class() == $class[Seal Clubber]) || (my_class() == $class[Turtle Tamer])) { - buyUpTo(1, $item[Blood of the Wereseal]); + auto_buyUpTo(1, $item[Blood of the Wereseal]); buffMaintain($effect[Temporary Lycanthropy]); } //AoSOL buffs diff --git a/RELEASE/scripts/autoscend/quests/level_07.ash b/RELEASE/scripts/autoscend/quests/level_07.ash index e9f8eb135..e850544e3 100644 --- a/RELEASE/scripts/autoscend/quests/level_07.ash +++ b/RELEASE/scripts/autoscend/quests/level_07.ash @@ -336,9 +336,9 @@ boolean L7_crypt() if(my_primestat() == $stat[Muscle]) { - buyUpTo(1, $item[Ben-Gal™ Balm]); + auto_buyUpTo(1, $item[Ben-Gal™ Balm]); buffMaintain($effect[Go Get \'Em\, Tiger!]); - buyUpTo(1, $item[Blood of the Wereseal]); + auto_buyUpTo(1, $item[Blood of the Wereseal]); buffMaintain($effect[Temporary Lycanthropy]); } //AoSOL buffs diff --git a/RELEASE/scripts/autoscend/quests/level_09.ash b/RELEASE/scripts/autoscend/quests/level_09.ash index b34673dd8..0aea96333 100644 --- a/RELEASE/scripts/autoscend/quests/level_09.ash +++ b/RELEASE/scripts/autoscend/quests/level_09.ash @@ -427,7 +427,7 @@ boolean L9_aBooPeak() if(black_market_available() && (item_amount($item[Can of Black Paint]) == 0) && (have_effect($effect[Red Door Syndrome]) == 0) && (my_meat() >= npc_price($item[Can of Black Paint]))) { - buyUpTo(1, $item[Can of Black Paint]); + auto_buyUpTo(1, $item[Can of Black Paint]); coldResist += 2; spookyResist += 2; } diff --git a/RELEASE/scripts/autoscend/quests/level_10.ash b/RELEASE/scripts/autoscend/quests/level_10.ash index 6ccf0ee67..ef7d64380 100644 --- a/RELEASE/scripts/autoscend/quests/level_10.ash +++ b/RELEASE/scripts/autoscend/quests/level_10.ash @@ -155,10 +155,10 @@ boolean L10_basement() if(my_primestat() == $stat[Muscle]) { - buyUpTo(1, $item[Ben-Gal™ Balm]); + auto_buyUpTo(1, $item[Ben-Gal™ Balm]); buffMaintain($effect[Go Get \'Em\, Tiger!]); } - buyUpTo(1, $item[Hair Spray]); + auto_buyUpTo(1, $item[Hair Spray]); buffMaintain($effect[Butt-Rock Hair]); if(in_gnoob() && auto_have_familiar($familiar[Robortender])) diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index bebf905dc..44ed92b10 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -877,7 +877,7 @@ boolean L11_forgedDocuments() pages[1] = "shop.php?whichshop=blackmarket&action=fightbmguy"; return autoAdvBypass(0, pages, $location[Noob Cave], ""); } - buyUpTo(1, $item[Forged Identification Documents]); + auto_buyUpTo(1, $item[Forged Identification Documents]); if(item_amount($item[Forged Identification Documents]) > 0) { return true; @@ -1035,7 +1035,7 @@ boolean L11_aridDesert() if((item_amount($item[Can of Black Paint]) > 0) || ((my_meat() >= npc_price($item[Can of Black Paint])) && canBuyPaint)) { - buyUpTo(1, $item[Can of Black Paint]); + auto_buyUpTo(1, $item[Can of Black Paint]); auto_log_info("Returning the Can of Black Paint", "blue"); auto_visit_gnasir(); visit_url("choice.php?whichchoice=805&option=1&pwd="); @@ -1183,13 +1183,13 @@ boolean L11_aridDesert() } } - buyUpTo(1, $item[hair spray]); + auto_buyUpTo(1, $item[hair spray]); buffMaintain($effect[Butt-Rock Hair]); if(my_primestat() == $stat[Muscle]) { - buyUpTo(1, $item[Ben-Gal™ Balm]); + auto_buyUpTo(1, $item[Ben-Gal™ Balm]); buffMaintain($effect[Go Get \'Em, Tiger!]); - buyUpTo(1, $item[Blood of the Wereseal]); + auto_buyUpTo(1, $item[Blood of the Wereseal]); buffMaintain($effect[Temporary Lycanthropy]); } @@ -1786,7 +1786,7 @@ boolean L11_hiddenCity() L11_hiddenTavernUnlock(true); if(my_ascensions() == get_property("hiddenTavernUnlock").to_int()) { - buyUpTo(cursesNeeded, $item[Cursed Punch]); + auto_buyUpTo(cursesNeeded, $item[Cursed Punch]); if(item_amount($item[Cursed Punch]) < cursesNeeded) { abort("Could not acquire Cursed Punch, unable to deal with Hidden Apartment Properly"); @@ -1878,10 +1878,10 @@ boolean L11_hiddenCity() { if(item_amount($item[Bowl Of Scorpions]) == 0) { - buyUpTo(1, $item[Bowl Of Scorpions]); + auto_buyUpTo(1, $item[Bowl Of Scorpions]); if(in_ocrs()) { - buyUpTo(3, $item[Bowl Of Scorpions]); + auto_buyUpTo(3, $item[Bowl Of Scorpions]); } } } @@ -2378,7 +2378,7 @@ boolean L11_redZeppelin() { if (0 == have_effect($effect[Improprie Tea])) { - buyUpTo(1, $item[Ben-Gal™ Balm], 25); + auto_buyUpTo(1, $item[Ben-Gal™ Balm]); use(1, $item[Ben-Gal™ Balm]); } } @@ -2468,7 +2468,7 @@ boolean L11_ronCopperhead() } else if (my_meat() > npc_price($item[Red Zeppelin Ticket])) { - buy(1, $item[Red Zeppelin Ticket]); + auto_buyUpTo(1, $item[Red Zeppelin Ticket]); } } // For Glark Cables. OPTIMAL! diff --git a/RELEASE/scripts/autoscend/quests/level_12.ash b/RELEASE/scripts/autoscend/quests/level_12.ash index 62ab13e12..730efb1e8 100644 --- a/RELEASE/scripts/autoscend/quests/level_12.ash +++ b/RELEASE/scripts/autoscend/quests/level_12.ash @@ -975,7 +975,7 @@ boolean L12_filthworms() //craft IOTM derivative that gives high item bonus if((!possessEquipment($item[A Light That Never Goes Out])) && (item_amount($item[Lump of Brituminous Coal]) > 0)) { - buyUpTo(1, $item[third-hand lantern]); + auto_buyUpTo(1, $item[third-hand lantern]); autoCraft("smith", 1, $item[Lump of Brituminous Coal], $item[third-hand lantern]); } @@ -1167,7 +1167,7 @@ boolean L12_gremlins() { return false; } - buyUpTo(30, $item[Doc Galaktik\'s Pungent Unguent]); + auto_buyUpTo(30, $item[Doc Galaktik\'s Pungent Unguent]); } } else @@ -1724,7 +1724,7 @@ boolean L12_themtharHills() handleBjornify($familiar[Hobo Monkey]); if((equipped_item($slot[off-hand]) != $item[Half a Purse]) && !possessEquipment($item[Half a Purse]) && (item_amount($item[Lump of Brituminous Coal]) > 0)) { - buyUpTo(1, $item[Loose Purse Strings]); + auto_buyUpTo(1, $item[Loose Purse Strings]); autoCraft("smith", 1, $item[Lump of Brituminous Coal], $item[Loose purse strings]); } diff --git a/RELEASE/scripts/autoscend/quests/level_13.ash b/RELEASE/scripts/autoscend/quests/level_13.ash index 358b57312..9dc84fa55 100644 --- a/RELEASE/scripts/autoscend/quests/level_13.ash +++ b/RELEASE/scripts/autoscend/quests/level_13.ash @@ -193,9 +193,9 @@ void LX_buyStarKeyParts() { return; //no unrestricted mall access } - buyUpTo(1, $item[Star Chart], 1000); - buyUpTo(8, $item[Star], 1000); - buyUpTo(7, $item[line], 1000); + auto_buyUpTo(1, $item[Star Chart]); + auto_buyUpTo(8, $item[Star]); + auto_buyUpTo(7, $item[line]); } boolean LX_getStarKey() diff --git a/RELEASE/scripts/autoscend/quests/level_any.ash b/RELEASE/scripts/autoscend/quests/level_any.ash index 0a98fb440..93a506468 100644 --- a/RELEASE/scripts/autoscend/quests/level_any.ash +++ b/RELEASE/scripts/autoscend/quests/level_any.ash @@ -139,7 +139,7 @@ boolean LX_unlockDesert() if(my_meat() >= (npc_price($item[Desert Bus Pass]) + 1000) && isGeneralStoreAvailable()) { auto_log_info("We're rich, let's take the bus instead of building a car.", "blue"); - buyUpTo(1, $item[Desert Bus Pass]); + auto_buyUpTo(1, $item[Desert Bus Pass]); if(item_amount($item[Desert Bus Pass]) > 0) { return true; @@ -173,7 +173,7 @@ boolean LX_desertAlternate() } if((my_meat() >= npc_price($item[Desert Bus Pass])) && isGeneralStoreAvailable()) { - buyUpTo(1, $item[Desert Bus Pass]); + auto_buyUpTo(1, $item[Desert Bus Pass]); if(item_amount($item[Desert Bus Pass]) > 0) { return true; @@ -199,7 +199,7 @@ boolean LX_islandAccess() if((item_amount($item[Shore Inc. Ship Trip Scrip]) >= 3) && (get_property("lastIslandUnlock").to_int() != my_ascensions()) && (my_meat() >= npc_price($item[dingy planks])) && isGeneralStoreAvailable()) { cli_execute("make dinghy plans"); - buyUpTo(1, $item[dingy planks]); + auto_buyUpTo(1, $item[dingy planks]); use(1, $item[dinghy plans]); return true; } @@ -263,7 +263,7 @@ boolean LX_islandAccess() if((my_meat() >= npc_price($item[dingy planks])) && (item_amount($item[Dinghy Plans]) == 0) && isGeneralStoreAvailable()) { cli_execute("make dinghy plans"); - buyUpTo(1, $item[dingy planks]); + auto_buyUpTo(1, $item[dingy planks]); use(1, $item[dinghy plans]); return true; } @@ -540,11 +540,11 @@ boolean LX_dailyDungeonToken() if(can_interact()) //if you can not use cubeling then mallbuy missing tools in casual and postronin { - buyUpTo(1, $item[Eleven-Foot Pole]); - buyUpTo(1, $item[Pick-O-Matic Lockpicks]); + auto_buyUpTo(1, $item[Eleven-Foot Pole]); + auto_buyUpTo(1, $item[Pick-O-Matic Lockpicks]); if(!possessEquipment($item[Ring of Detect Boring Doors])) //do not buy a second one if already equipped { - buyUpTo(1, $item[Ring of Detect Boring Doors]); + auto_buyUpTo(1, $item[Ring of Detect Boring Doors]); } } @@ -683,7 +683,7 @@ boolean LX_dolphinKingMap() { if(possessEquipment($item[Snorkel]) || ((my_meat() >= npc_price($item[Snorkel])) && isArmoryAvailable())) { - buyUpTo(1, $item[Snorkel]); + auto_buyUpTo(1, $item[Snorkel]); item oldHat = equipped_item($slot[hat]); equip($item[Snorkel]); use(1, $item[Dolphin King\'s Map]); diff --git a/RELEASE/scripts/autoscend/quests/optional.ash b/RELEASE/scripts/autoscend/quests/optional.ash index 13009a5b0..5fce53a42 100644 --- a/RELEASE/scripts/autoscend/quests/optional.ash +++ b/RELEASE/scripts/autoscend/quests/optional.ash @@ -707,7 +707,7 @@ boolean LX_pirateOutfit() { } if (possessOutfit("Swashbuckling Getup")) { if (possessOutfit("Swashbuckling Getup", true) && item_amount($item[The Big Book Of Pirate Insults]) == 0 && my_meat() > npc_price($item[The Big Book Of Pirate Insults])) { - buyUpTo(1, $item[The Big Book Of Pirate Insults]); + auto_buyUpTo(1, $item[The Big Book Of Pirate Insults]); } return false; } @@ -863,7 +863,7 @@ boolean LX_joinPirateCrew() { return false; } if (item_amount($item[The Big Book Of Pirate Insults]) == 0 && my_meat() > npc_price($item[The Big Book Of Pirate Insults])) { - buyUpTo(1, $item[The Big Book Of Pirate Insults]); + auto_buyUpTo(1, $item[The Big Book Of Pirate Insults]); } if (internalQuestStatus("questM12Pirate") == -1 || internalQuestStatus("questM12Pirate") == 1 || internalQuestStatus("questM12Pirate") == 3) { auto_log_info("Findin' the Cap'n", "blue"); @@ -911,7 +911,7 @@ boolean LX_joinPirateCrew() { if (item_amount($item[hot wing]) > 2 && auto_can_equip($item[frilly skirt])) { if (knoll_available() && my_meat() > npc_price($item[frilly skirt])) { auto_log_info("We have hot wings but no frilly skirt. Lets go shopping!", "blue"); - buyUpTo(1, $item[frilly skirt]); + auto_buyUpTo(1, $item[frilly skirt]); autoForceEquip($item[frilly skirt]); infiltrationReady = true; } else { From 64591eb79539886b93ce52e86f81ce74eb9cf2f1 Mon Sep 17 00:00:00 2001 From: Malibu Stacey <50261170+Malibu-Stacey@users.noreply.github.com> Date: Fri, 13 Oct 2023 10:05:24 -0700 Subject: [PATCH 2/7] use 8-bit realm zones for wanderers (#1370) Co-authored-by: Alium58 --- BUILD/monsters/sniff.dat | 2 - BUILD/task_order/Avatar of Jarlsberg.dat | 1 + BUILD/task_order/Legacy of Loathing.dat | 3 +- BUILD/task_order/Quantum Terrarium.dat | 1 + BUILD/task_order/Zombie Slayer.dat | 1 + BUILD/task_order/default.dat | 3 +- RELEASE/data/autoscend_monsters.txt | 90 ++- RELEASE/data/autoscend_task_order.txt | 729 +++++++++--------- RELEASE/scripts/autoscend/auto_pre_adv.ash | 24 + RELEASE/scripts/autoscend/auto_util.ash | 11 +- RELEASE/scripts/autoscend/auto_zone.ash | 24 + .../scripts/autoscend/autoscend_header.ash | 2 +- RELEASE/scripts/autoscend/quests/level_13.ash | 12 +- 13 files changed, 473 insertions(+), 430 deletions(-) diff --git a/BUILD/monsters/sniff.dat b/BUILD/monsters/sniff.dat index abe403943..a1fb3d60f 100644 --- a/BUILD/monsters/sniff.dat +++ b/BUILD/monsters/sniff.dat @@ -2,13 +2,11 @@ pygmy shaman loc:The Hidden Apartment Building;!effect:Thrice-Cursed;prop:hidden Writing Desk prop:writingDesksDefeated<4 cabinet of Dr. Limpieza Dairy Goat loc:The Goatlet -Morbid Skull loc:Fear Man's Level Pygmy Bowler Pygmy Witch Surgeon pygmy witch accountant loc:The Hidden Office Building pygmy witch accountant loc:The Hidden Apartment Building;effect:Thrice-Cursed Pygmy Janitor loc:The Hidden Park;!tavern:true;!itemdropcapped:20=book of matches -Quiet Healer !prop:questL10Garbage=finished Tomb Rat Bob Racecar !sniffed:Racecar Bob Racecar Bob !sniffed:Bob Racecar diff --git a/BUILD/task_order/Avatar of Jarlsberg.dat b/BUILD/task_order/Avatar of Jarlsberg.dat index 33afc0ba7..f2aeb6d33 100644 --- a/BUILD/task_order/Avatar of Jarlsberg.dat +++ b/BUILD/task_order/Avatar of Jarlsberg.dat @@ -1,5 +1,6 @@ LM_jarlsberg LX_freeCombatsTask +woods_questStart LX_unlockPirateRealm auto_breakfastCounterVisit chateauPainting diff --git a/BUILD/task_order/Legacy of Loathing.dat b/BUILD/task_order/Legacy of Loathing.dat index 707fe04a5..42ab0220b 100644 --- a/BUILD/task_order/Legacy of Loathing.dat +++ b/BUILD/task_order/Legacy of Loathing.dat @@ -1,4 +1,5 @@ LX_freeCombatsTask +woods_questStart LX_unlockPirateRealm catBurglarHeist auto_breakfastCounterVisit @@ -91,8 +92,6 @@ L12_finalizeWar L12_clearBattlefield LX_koeInvaderHandler setSoftblockDelay allowSoftblockDelay -LX_getDigitalKey -LX_getStarKey L12_lastDitchFlyer LX_bugbearInvasionFinale L13_towerNSContests diff --git a/BUILD/task_order/Quantum Terrarium.dat b/BUILD/task_order/Quantum Terrarium.dat index 8664fa4ed..0b7183b56 100644 --- a/BUILD/task_order/Quantum Terrarium.dat +++ b/BUILD/task_order/Quantum Terrarium.dat @@ -1,4 +1,5 @@ LX_freeCombatsTask +woods_questStart LX_unlockPirateRealm catBurglarHeist auto_breakfastCounterVisit diff --git a/BUILD/task_order/Zombie Slayer.dat b/BUILD/task_order/Zombie Slayer.dat index 2979dc173..487d930cc 100644 --- a/BUILD/task_order/Zombie Slayer.dat +++ b/BUILD/task_order/Zombie Slayer.dat @@ -1,4 +1,5 @@ LM_zombieSlayer +woods_questStart LX_unlockPirateRealm LX_freeCombatsTask auto_breakfastCounterVisit diff --git a/BUILD/task_order/default.dat b/BUILD/task_order/default.dat index cbbb695db..6e8d2c202 100644 --- a/BUILD/task_order/default.dat +++ b/BUILD/task_order/default.dat @@ -1,4 +1,5 @@ LX_freeCombatsTask +woods_questStart LX_unlockPirateRealm catBurglarHeist auto_breakfastCounterVisit @@ -83,8 +84,6 @@ L12_finalizeWar L12_clearBattlefield LX_koeInvaderHandler setSoftblockDelay allowSoftblockDelay -LX_getDigitalKey -LX_getStarKey L12_lastDitchFlyer LX_bugbearInvasionFinale L13_towerNSContests diff --git a/RELEASE/data/autoscend_monsters.txt b/RELEASE/data/autoscend_monsters.txt index a11d1332e..6f0cf08b9 100644 --- a/RELEASE/data/autoscend_monsters.txt +++ b/RELEASE/data/autoscend_monsters.txt @@ -98,56 +98,54 @@ sniff 0 pygmy shaman loc:The Hidden Apartment Building;!effect:Thrice-Cursed;pro sniff 1 Writing Desk prop:writingDesksDefeated<4 sniff 2 cabinet of Dr. Limpieza sniff 3 Dairy Goat loc:The Goatlet -sniff 4 Morbid Skull loc:Fear Man's Level -sniff 5 Pygmy Bowler -sniff 6 Pygmy Witch Surgeon -sniff 7 pygmy witch accountant loc:The Hidden Office Building -sniff 8 pygmy witch accountant loc:The Hidden Apartment Building;effect:Thrice-Cursed -sniff 9 Pygmy Janitor loc:The Hidden Park;!tavern:true;!itemdropcapped:20=book of matches -sniff 10 Quiet Healer !prop:questL10Garbage=finished -sniff 11 Tomb Rat -sniff 12 Bob Racecar !sniffed:Racecar Bob -sniff 13 Racecar Bob !sniffed:Bob Racecar -sniff 14 Government Scientist class:Ed the Undying -sniff 15 Green Ops Soldier !path:Kingdom of Exploathing;prop:hippiesDefeated>399 -sniff 16 War Hippy Naturopathic Homeopath path:Kingdom of Exploathing;item:filthy poultice<5;!sniffed:War Hippy Homeopath -sniff 17 War Hippy Homeopath path:Kingdom of Exploathing;item:filthy poultice<5;!sniffed:War Hippy Naturopathic Homeopath -sniff 18 Naughty Sorority Nurse path:G-Lover;item:gauze garter<5;!sniffed:Sorority Nurse -sniff 19 Sorority Nurse path:G-Lover;item:gauze garter<5;!sniffed:Naughty Sorority Nurse -sniff 20 Possessed Wine Rack -sniff 21 Blue Oyster cultist -sniff 22 Dirty Old Lihc prop:cyrptNicheEvilness>17 -sniff 23 Possibility Giant loc:The Castle in the Clouds in the Sky (Ground Floor);prop:auto_skipL12Farm=false;prop:chaosButterflyThrown=false;item:chaos butterfly<1;!path:Bees Hate You;!path:Pocket Familiars;!path:G-Lover;!itemdropcapped:20=chaos butterfly -sniff 24 bearpig topiary animal !familiar:Melodramedary;!sniffed:elephant (meatcar?) topiary animal;!sniffed:spider (duck?) topiary animal -sniff 25 elephant (meatcar?) topiary animal !familiar:Melodramedary;!sniffed:bearpig topiary animal;!sniffed:spider (duck?) topiary animal -sniff 26 spider (duck?) topiary animal !familiar:Melodramedary;!sniffed:elephant (meatcar?) topiary animal;!sniffed:bearpig topiary animal -sniff 27 Serialbus item:bus pass<4 -sniff 28 CH Imp item:imp air<4 -sniff 29 Camel Toe !sniffed:Skinflute -sniff 30 Skinflute !sniffed:Camel Toe -sniff 31 Red Butler prop:_glarkCableUses<5;item:glark cable<5 +sniff 4 Pygmy Bowler +sniff 5 Pygmy Witch Surgeon +sniff 6 pygmy witch accountant loc:The Hidden Office Building +sniff 7 pygmy witch accountant loc:The Hidden Apartment Building;effect:Thrice-Cursed +sniff 8 Pygmy Janitor loc:The Hidden Park;!tavern:true;!itemdropcapped:20=book of matches +sniff 9 Tomb Rat +sniff 10 Bob Racecar !sniffed:Racecar Bob +sniff 11 Racecar Bob !sniffed:Bob Racecar +sniff 12 Government Scientist class:Ed the Undying +sniff 13 Green Ops Soldier !path:Kingdom of Exploathing;prop:hippiesDefeated>399 +sniff 14 War Hippy Naturopathic Homeopath path:Kingdom of Exploathing;item:filthy poultice<5;!sniffed:War Hippy Homeopath +sniff 15 War Hippy Homeopath path:Kingdom of Exploathing;item:filthy poultice<5;!sniffed:War Hippy Naturopathic Homeopath +sniff 16 Naughty Sorority Nurse path:G-Lover;item:gauze garter<5;!sniffed:Sorority Nurse +sniff 17 Sorority Nurse path:G-Lover;item:gauze garter<5;!sniffed:Naughty Sorority Nurse +sniff 18 Possessed Wine Rack +sniff 19 Blue Oyster cultist +sniff 20 Dirty Old Lihc prop:cyrptNicheEvilness>17 +sniff 21 Possibility Giant loc:The Castle in the Clouds in the Sky (Ground Floor);prop:auto_skipL12Farm=false;prop:chaosButterflyThrown=false;item:chaos butterfly<1;!path:Bees Hate You;!path:Pocket Familiars;!path:G-Lover;!itemdropcapped:20=chaos butterfly +sniff 22 bearpig topiary animal !familiar:Melodramedary;!sniffed:elephant (meatcar?) topiary animal;!sniffed:spider (duck?) topiary animal +sniff 23 elephant (meatcar?) topiary animal !familiar:Melodramedary;!sniffed:bearpig topiary animal;!sniffed:spider (duck?) topiary animal +sniff 24 spider (duck?) topiary animal !familiar:Melodramedary;!sniffed:elephant (meatcar?) topiary animal;!sniffed:bearpig topiary animal +sniff 25 Serialbus item:bus pass<4 +sniff 26 CH Imp item:imp air<4 +sniff 27 Camel Toe !sniffed:Skinflute +sniff 28 Skinflute !sniffed:Camel Toe +sniff 29 Red Butler prop:_glarkCableUses<5;item:glark cable<5 # Unlocking Knob Menagerie -sniff 32 Knob Goblin Very Mad Scientist loc:Cobb's Knob Laboratory;item:Cobb's Knob Menagerie key<1;turnsspent:Cobb's Knob Laboratory>7 +sniff 30 Knob Goblin Very Mad Scientist loc:Cobb's Knob Laboratory;item:Cobb's Knob Menagerie key<1;turnsspent:Cobb's Knob Laboratory>7 # Pirate quest F'c'le's last missing item -sniff 33 cleanly pirate loc:The F'c'le;item:rigging shampoo==0;item:ball polish>0;item:mizzenmast mop>0;!itemdropcapped:30=rigging shampoo -sniff 34 creamy pirate loc:The F'c'le;item:rigging shampoo>0;item:ball polish==0;item:mizzenmast mop>0;!itemdropcapped:30=ball polish -sniff 35 curmudgeonly pirate loc:The F'c'le;item:rigging shampoo>0;item:ball polish>0;item:mizzenmast mop==0;!itemdropcapped:30=mizzenmast mop +sniff 31 cleanly pirate loc:The F'c'le;item:rigging shampoo==0;item:ball polish>0;item:mizzenmast mop>0;!itemdropcapped:30=rigging shampoo +sniff 32 creamy pirate loc:The F'c'le;item:rigging shampoo>0;item:ball polish==0;item:mizzenmast mop>0;!itemdropcapped:30=ball polish +sniff 33 curmudgeonly pirate loc:The F'c'le;item:rigging shampoo>0;item:ball polish>0;item:mizzenmast mop==0;!itemdropcapped:30=mizzenmast mop # Bugbear Invasion Wanderers -sniff 36 scavenger bugbear path:Bugbear Invasion;!loc:Waste Processing;!prop:statusWasteProcessing=unlocked;!prop:statusWasteProcessing=open;!prop:statusWasteProcessing=cleared -sniff 37 hypodermic bugbear path:Bugbear Invasion;!loc:Medbay;!prop:statusMedbay=unlocked;!prop:statusMedbay=open;!prop:statusMedbay=cleared -sniff 38 batbugbear path:Bugbear Invasion;!loc:Sonar;!prop:statusSonar=unlocked;!prop:statusSonar=open;!prop:statusSonar=cleared;prop:questL04Bat=finished -sniff 39 bugbear scientist path:Bugbear Invasion;!loc:Science Lab;!prop:statusScienceLab=unlocked;!prop:statusScienceLab=open;!prop:statusScienceLab=cleared -sniff 40 bugaboo path:Bugbear Invasion;!loc:Morgue;!prop:statusMorgue=unlocked;!prop:statusMorgue=open;!prop:statusMorgue=cleared;prop:questL07Cyrptic=finished -sniff 41 Black Ops Bugbear path:Bugbear Invasion;!loc:Special Ops;!prop:statusSpecialOps=unlocked;!prop:statusSpecialOps=open;!prop:statusSpecialOps=cleared;prop:questL08Trapper=finished -sniff 42 Battlesuit Bugbear Type path:Bugbear Invasion;!loc:Engineering;!prop:statusEngineering=unlocked;!prop:statusEngineering=open;!prop:statusEngineering=cleared;prop:questL10Garbage=finished -sniff 43 ancient unspeakable bugbear path:Bugbear Invasion;!loc:Navigation;!prop:statusNavigation=unlocked;!prop:statusNavigation=open;!prop:statusNavigation=cleared;prop:questL11Manor=finished -sniff 44 trendy bugbear chef path:Bugbear Invasion;!loc:Galley;!prop:statusGalley=unlocked;!prop:statusGalley=open;!prop:statusGalley=cleared;prop:questL12War=finished +sniff 34 scavenger bugbear path:Bugbear Invasion;!loc:Waste Processing;!prop:statusWasteProcessing=unlocked;!prop:statusWasteProcessing=open;!prop:statusWasteProcessing=cleared +sniff 35 hypodermic bugbear path:Bugbear Invasion;!loc:Medbay;!prop:statusMedbay=unlocked;!prop:statusMedbay=open;!prop:statusMedbay=cleared +sniff 36 batbugbear path:Bugbear Invasion;!loc:Sonar;!prop:statusSonar=unlocked;!prop:statusSonar=open;!prop:statusSonar=cleared;prop:questL04Bat=finished +sniff 37 bugbear scientist path:Bugbear Invasion;!loc:Science Lab;!prop:statusScienceLab=unlocked;!prop:statusScienceLab=open;!prop:statusScienceLab=cleared +sniff 38 bugaboo path:Bugbear Invasion;!loc:Morgue;!prop:statusMorgue=unlocked;!prop:statusMorgue=open;!prop:statusMorgue=cleared;prop:questL07Cyrptic=finished +sniff 39 Black Ops Bugbear path:Bugbear Invasion;!loc:Special Ops;!prop:statusSpecialOps=unlocked;!prop:statusSpecialOps=open;!prop:statusSpecialOps=cleared;prop:questL08Trapper=finished +sniff 40 Battlesuit Bugbear Type path:Bugbear Invasion;!loc:Engineering;!prop:statusEngineering=unlocked;!prop:statusEngineering=open;!prop:statusEngineering=cleared;prop:questL10Garbage=finished +sniff 41 ancient unspeakable bugbear path:Bugbear Invasion;!loc:Navigation;!prop:statusNavigation=unlocked;!prop:statusNavigation=open;!prop:statusNavigation=cleared;prop:questL11Manor=finished +sniff 42 trendy bugbear chef path:Bugbear Invasion;!loc:Galley;!prop:statusGalley=unlocked;!prop:statusGalley=open;!prop:statusGalley=cleared;prop:questL12War=finished # Bugbear Invasion Mothership -sniff 45 creepy eye-stalk tentacle monster path:Bugbear Invasion -sniff 46 anesthesiologist bugbear path:Bugbear Invasion -sniff 47 bugbear mortician path:Bugbear Invasion -sniff 48 N-space Virtual Assistant path:Bugbear Invasion -sniff 49 angry cavebugbear path:Bugbear Invasion +sniff 43 creepy eye-stalk tentacle monster path:Bugbear Invasion +sniff 44 anesthesiologist bugbear path:Bugbear Invasion +sniff 45 bugbear mortician path:Bugbear Invasion +sniff 46 N-space Virtual Assistant path:Bugbear Invasion +sniff 47 angry cavebugbear path:Bugbear Invasion # Gotta get that wig yellowray 0 Burly Sidekick item:Mohawk Wig<1;!skill:Comprehensive Cartography;!itemdropcapped:10=Mohawk wig diff --git a/RELEASE/data/autoscend_task_order.txt b/RELEASE/data/autoscend_task_order.txt index 90dd48277..a18235463 100644 --- a/RELEASE/data/autoscend_task_order.txt +++ b/RELEASE/data/autoscend_task_order.txt @@ -6,384 +6,385 @@ # path name, index, function, condition_function (optional) Avatar of Jarlsberg 0 LM_jarlsberg Avatar of Jarlsberg 1 LX_freeCombatsTask -Avatar of Jarlsberg 2 LX_unlockPirateRealm -Avatar of Jarlsberg 3 auto_breakfastCounterVisit -Avatar of Jarlsberg 4 chateauPainting -Avatar of Jarlsberg 5 LX_setWorkshed -Avatar of Jarlsberg 6 LX_artistQuest -Avatar of Jarlsberg 7 LX_galaktikSubQuest -Avatar of Jarlsberg 8 LX_armorySideQuest -Avatar of Jarlsberg 9 LX_meatsmithSubQuest -Avatar of Jarlsberg 10 L9_leafletQuest -Avatar of Jarlsberg 11 L5_findKnob -Avatar of Jarlsberg 12 L12_sonofaPrefix -Avatar of Jarlsberg 13 LX_burnDelay -Avatar of Jarlsberg 14 LX_summonMonster -Avatar of Jarlsberg 15 LX_dinseylandfillFunbucks -Avatar of Jarlsberg 16 handleRainDoh -Avatar of Jarlsberg 17 L11_shenStartQuest -Avatar of Jarlsberg 18 LX_guildUnlock -Avatar of Jarlsberg 19 LX_unlockDesert -Avatar of Jarlsberg 20 LX_lockPicking -Avatar of Jarlsberg 21 LX_fatLootToken -Avatar of Jarlsberg 22 L5_getEncryptionKey -Avatar of Jarlsberg 23 L5_findKnob -Avatar of Jarlsberg 24 L2_mosquito -Avatar of Jarlsberg 25 LX_unlockHiddenTemple -Avatar of Jarlsberg 26 L6_dakotaFanning -Avatar of Jarlsberg 27 LX_steelOrgan -Avatar of Jarlsberg 28 L12_islandWar -Avatar of Jarlsberg 29 LX_spookyravenManorFirstFloor -Avatar of Jarlsberg 30 L11_blackMarket -Avatar of Jarlsberg 31 L11_forgedDocuments -Avatar of Jarlsberg 32 L11_mcmuffinDiary -Avatar of Jarlsberg 33 L11_getBeehive -Avatar of Jarlsberg 34 L11_unlockHiddenCity -Avatar of Jarlsberg 35 L11_hiddenCityZones -Avatar of Jarlsberg 36 L11_hiddenCity -Avatar of Jarlsberg 37 LX_spookyravenManorSecondFloor -Avatar of Jarlsberg 38 L11_mauriceSpookyraven -Avatar of Jarlsberg 39 L11_talismanOfNam -Avatar of Jarlsberg 40 L10_plantThatBean -Avatar of Jarlsberg 41 L10_rainOnThePlains -Avatar of Jarlsberg 42 L9_chasmBuild -Avatar of Jarlsberg 43 L9_highLandlord -Avatar of Jarlsberg 44 L8_trapperQuest -Avatar of Jarlsberg 45 L6_friarsGetParts -Avatar of Jarlsberg 46 L7_crypt -Avatar of Jarlsberg 47 L11_palindome -Avatar of Jarlsberg 48 L11_aridDesert -Avatar of Jarlsberg 49 L11_unlockPyramid -Avatar of Jarlsberg 50 L11_unlockEd -Avatar of Jarlsberg 51 L11_defeatEd -Avatar of Jarlsberg 52 L5_slayTheGoblinKing -Avatar of Jarlsberg 53 L4_batCave -Avatar of Jarlsberg 54 L3_tavern -Avatar of Jarlsberg 55 setSoftblockDelay allowSoftblockDelay -Avatar of Jarlsberg 56 L13_towerAscent -Avatar of Jarlsberg 57 LX_attemptPowerLevel +Avatar of Jarlsberg 2 woods_questStart +Avatar of Jarlsberg 3 LX_unlockPirateRealm +Avatar of Jarlsberg 4 auto_breakfastCounterVisit +Avatar of Jarlsberg 5 chateauPainting +Avatar of Jarlsberg 6 LX_setWorkshed +Avatar of Jarlsberg 7 LX_artistQuest +Avatar of Jarlsberg 8 LX_galaktikSubQuest +Avatar of Jarlsberg 9 LX_armorySideQuest +Avatar of Jarlsberg 10 LX_meatsmithSubQuest +Avatar of Jarlsberg 11 L9_leafletQuest +Avatar of Jarlsberg 12 L5_findKnob +Avatar of Jarlsberg 13 L12_sonofaPrefix +Avatar of Jarlsberg 14 LX_burnDelay +Avatar of Jarlsberg 15 LX_summonMonster +Avatar of Jarlsberg 16 LX_dinseylandfillFunbucks +Avatar of Jarlsberg 17 handleRainDoh +Avatar of Jarlsberg 18 L11_shenStartQuest +Avatar of Jarlsberg 19 LX_guildUnlock +Avatar of Jarlsberg 20 LX_unlockDesert +Avatar of Jarlsberg 21 LX_lockPicking +Avatar of Jarlsberg 22 LX_fatLootToken +Avatar of Jarlsberg 23 L5_getEncryptionKey +Avatar of Jarlsberg 24 L5_findKnob +Avatar of Jarlsberg 25 L2_mosquito +Avatar of Jarlsberg 26 LX_unlockHiddenTemple +Avatar of Jarlsberg 27 L6_dakotaFanning +Avatar of Jarlsberg 28 LX_steelOrgan +Avatar of Jarlsberg 29 L12_islandWar +Avatar of Jarlsberg 30 LX_spookyravenManorFirstFloor +Avatar of Jarlsberg 31 L11_blackMarket +Avatar of Jarlsberg 32 L11_forgedDocuments +Avatar of Jarlsberg 33 L11_mcmuffinDiary +Avatar of Jarlsberg 34 L11_getBeehive +Avatar of Jarlsberg 35 L11_unlockHiddenCity +Avatar of Jarlsberg 36 L11_hiddenCityZones +Avatar of Jarlsberg 37 L11_hiddenCity +Avatar of Jarlsberg 38 LX_spookyravenManorSecondFloor +Avatar of Jarlsberg 39 L11_mauriceSpookyraven +Avatar of Jarlsberg 40 L11_talismanOfNam +Avatar of Jarlsberg 41 L10_plantThatBean +Avatar of Jarlsberg 42 L10_rainOnThePlains +Avatar of Jarlsberg 43 L9_chasmBuild +Avatar of Jarlsberg 44 L9_highLandlord +Avatar of Jarlsberg 45 L8_trapperQuest +Avatar of Jarlsberg 46 L6_friarsGetParts +Avatar of Jarlsberg 47 L7_crypt +Avatar of Jarlsberg 48 L11_palindome +Avatar of Jarlsberg 49 L11_aridDesert +Avatar of Jarlsberg 50 L11_unlockPyramid +Avatar of Jarlsberg 51 L11_unlockEd +Avatar of Jarlsberg 52 L11_defeatEd +Avatar of Jarlsberg 53 L5_slayTheGoblinKing +Avatar of Jarlsberg 54 L4_batCave +Avatar of Jarlsberg 55 L3_tavern +Avatar of Jarlsberg 56 setSoftblockDelay allowSoftblockDelay +Avatar of Jarlsberg 57 L13_towerAscent +Avatar of Jarlsberg 58 LX_attemptPowerLevel Legacy of Loathing 0 LX_freeCombatsTask -Legacy of Loathing 1 LX_unlockPirateRealm -Legacy of Loathing 2 catBurglarHeist -Legacy of Loathing 3 auto_breakfastCounterVisit -Legacy of Loathing 4 chateauPainting -Legacy of Loathing 5 LX_setWorkshed -Legacy of Loathing 6 LX_artistQuest -Legacy of Loathing 7 LX_galaktikSubQuest -Legacy of Loathing 8 LX_armorySideQuest -Legacy of Loathing 9 LX_meatsmithSubQuest -Legacy of Loathing 10 L9_leafletQuest -Legacy of Loathing 11 L5_findKnob -Legacy of Loathing 12 L12_sonofaPrefix -Legacy of Loathing 13 LX_burnDelay -Legacy of Loathing 14 LX_summonMonster -Legacy of Loathing 15 LM_edTheUndying -Legacy of Loathing 16 LX_bugbearInvasion -Legacy of Loathing 17 LX_lowkeySummer -Legacy of Loathing 18 resolveSixthDMT -Legacy of Loathing 19 LX_dinseylandfillFunbucks -Legacy of Loathing 20 L12_flyerFinish -Legacy of Loathing 21 L12_getOutfit -Legacy of Loathing 22 L12_startWar -Legacy of Loathing 23 LX_loggingHatchet -Legacy of Loathing 24 LX_guildUnlock -Legacy of Loathing 25 LX_bitchinMeatcar LX_bitchinMeatcar_condition -Legacy of Loathing 26 LX_unlockDesert -Legacy of Loathing 27 handleRainDoh -Legacy of Loathing 28 LX_spookyravenManorFirstFloor -Legacy of Loathing 29 L6_friarsGetParts LX_steelOrgan_condition_slow -Legacy of Loathing 30 LX_steelOrgan LX_steelOrgan_condition_slow +Legacy of Loathing 1 woods_questStart +Legacy of Loathing 2 LX_unlockPirateRealm +Legacy of Loathing 3 catBurglarHeist +Legacy of Loathing 4 auto_breakfastCounterVisit +Legacy of Loathing 5 chateauPainting +Legacy of Loathing 6 LX_setWorkshed +Legacy of Loathing 7 LX_artistQuest +Legacy of Loathing 8 LX_galaktikSubQuest +Legacy of Loathing 9 LX_armorySideQuest +Legacy of Loathing 10 LX_meatsmithSubQuest +Legacy of Loathing 11 L9_leafletQuest +Legacy of Loathing 12 L5_findKnob +Legacy of Loathing 13 L12_sonofaPrefix +Legacy of Loathing 14 LX_burnDelay +Legacy of Loathing 15 LX_summonMonster +Legacy of Loathing 16 LM_edTheUndying +Legacy of Loathing 17 LX_bugbearInvasion +Legacy of Loathing 18 LX_lowkeySummer +Legacy of Loathing 19 resolveSixthDMT +Legacy of Loathing 20 LX_dinseylandfillFunbucks +Legacy of Loathing 21 L12_flyerFinish +Legacy of Loathing 22 L12_getOutfit +Legacy of Loathing 23 L12_startWar +Legacy of Loathing 24 LX_loggingHatchet +Legacy of Loathing 25 LX_guildUnlock +Legacy of Loathing 26 LX_bitchinMeatcar LX_bitchinMeatcar_condition +Legacy of Loathing 27 LX_unlockDesert +Legacy of Loathing 28 handleRainDoh +Legacy of Loathing 29 LX_spookyravenManorFirstFloor +Legacy of Loathing 30 L6_friarsGetParts LX_steelOrgan_condition_slow +Legacy of Loathing 31 LX_steelOrgan LX_steelOrgan_condition_slow # *************Following task gives replica Mr A******************** -Legacy of Loathing 31 L4_batCave -Legacy of Loathing 32 L2_mosquito -Legacy of Loathing 33 LX_unlockHiddenTemple -Legacy of Loathing 34 L6_dakotaFanning -Legacy of Loathing 35 LX_lockPicking -Legacy of Loathing 36 LX_fatLootToken +Legacy of Loathing 32 L4_batCave +Legacy of Loathing 33 L2_mosquito +Legacy of Loathing 34 LX_unlockHiddenTemple +Legacy of Loathing 35 L6_dakotaFanning +Legacy of Loathing 36 LX_lockPicking +Legacy of Loathing 37 LX_fatLootToken # *************Following task gives replica Mr A******************** -Legacy of Loathing 37 L5_slayTheGoblinKing +Legacy of Loathing 38 L5_slayTheGoblinKing # *************Following task gives replica Mr A******************** -Legacy of Loathing 38 L8_trapperQuest +Legacy of Loathing 39 L8_trapperQuest # *************Following task gives replica Mr A******************** -Legacy of Loathing 39 L7_crypt -Legacy of Loathing 40 LX_islandAccess -Legacy of Loathing 41 L6_friarsGetParts L6_friarsGetParts_condition_hardcore -Legacy of Loathing 42 LX_spookyravenManorSecondFloor -Legacy of Loathing 43 L3_tavern -Legacy of Loathing 44 L6_friarsGetParts -Legacy of Loathing 45 LX_steelOrgan in_hardcore -Legacy of Loathing 46 fancyOilPainting -Legacy of Loathing 47 LX_steelOrgan -Legacy of Loathing 48 L10_plantThatBean -Legacy of Loathing 49 L12_preOutfit -Legacy of Loathing 50 L10_airship -Legacy of Loathing 51 L10_basement -Legacy of Loathing 52 L10_ground -Legacy of Loathing 53 L11_blackMarket -Legacy of Loathing 54 L11_forgedDocuments -Legacy of Loathing 55 L11_mcmuffinDiary -Legacy of Loathing 56 L10_topFloor -Legacy of Loathing 57 L10_holeInTheSkyUnlock -Legacy of Loathing 58 L9_chasmBuild -Legacy of Loathing 59 L9_highLandlord -Legacy of Loathing 60 L12_flyerBackup -Legacy of Loathing 61 Lsc_flyerSeals +Legacy of Loathing 40 L7_crypt +Legacy of Loathing 41 LX_islandAccess +Legacy of Loathing 42 L6_friarsGetParts L6_friarsGetParts_condition_hardcore +Legacy of Loathing 43 LX_spookyravenManorSecondFloor +Legacy of Loathing 44 L3_tavern +Legacy of Loathing 45 L6_friarsGetParts +Legacy of Loathing 46 LX_steelOrgan in_hardcore +Legacy of Loathing 47 fancyOilPainting +Legacy of Loathing 48 LX_steelOrgan +Legacy of Loathing 49 L10_plantThatBean +Legacy of Loathing 50 L12_preOutfit +Legacy of Loathing 51 L10_airship +Legacy of Loathing 52 L10_basement +Legacy of Loathing 53 L10_ground +Legacy of Loathing 54 L11_blackMarket +Legacy of Loathing 55 L11_forgedDocuments +Legacy of Loathing 56 L11_mcmuffinDiary +Legacy of Loathing 57 L10_topFloor +Legacy of Loathing 58 L10_holeInTheSkyUnlock +Legacy of Loathing 59 L9_chasmBuild +Legacy of Loathing 60 L9_highLandlord +Legacy of Loathing 61 L12_flyerBackup +Legacy of Loathing 62 Lsc_flyerSeals # *************Following task gives replica Mr A******************** -Legacy of Loathing 62 L11_mauriceSpookyraven -Legacy of Loathing 63 L11_unlockHiddenCity -Legacy of Loathing 64 L11_hiddenCityZones -Legacy of Loathing 65 LX_ornateDowsingRod -Legacy of Loathing 66 L11_aridDesert +Legacy of Loathing 63 L11_mauriceSpookyraven +Legacy of Loathing 64 L11_unlockHiddenCity +Legacy of Loathing 65 L11_hiddenCityZones +Legacy of Loathing 66 LX_ornateDowsingRod +Legacy of Loathing 67 L11_aridDesert # *************Following task gives replica Mr A******************** -Legacy of Loathing 67 L11_hiddenCity -Legacy of Loathing 68 L11_talismanOfNam +Legacy of Loathing 68 L11_hiddenCity +Legacy of Loathing 69 L11_talismanOfNam # *************Following task gives replica Mr A******************** -Legacy of Loathing 69 L11_palindome -Legacy of Loathing 70 L11_unlockPyramid -Legacy of Loathing 71 L11_unlockEd -Legacy of Loathing 72 L11_defeatEd -Legacy of Loathing 73 L12_gremlins -Legacy of Loathing 74 L12_sonofaFinish -Legacy of Loathing 75 L12_sonofaBeach -Legacy of Loathing 76 L12_filthworms -Legacy of Loathing 77 L12_orchardFinalize -Legacy of Loathing 78 L12_themtharHills -Legacy of Loathing 79 L12_farm -Legacy of Loathing 80 L11_getBeehive +Legacy of Loathing 70 L11_palindome +Legacy of Loathing 71 L11_unlockPyramid +Legacy of Loathing 72 L11_unlockEd +Legacy of Loathing 73 L11_defeatEd +Legacy of Loathing 74 L12_gremlins +Legacy of Loathing 75 L12_sonofaFinish +Legacy of Loathing 76 L12_sonofaBeach +Legacy of Loathing 77 L12_filthworms +Legacy of Loathing 78 L12_orchardFinalize +Legacy of Loathing 79 L12_themtharHills +Legacy of Loathing 80 L12_farm +Legacy of Loathing 81 L11_getBeehive # *************Following task gives replica Mr A******************** -Legacy of Loathing 81 L12_finalizeWar -Legacy of Loathing 82 L12_clearBattlefield -Legacy of Loathing 83 LX_koeInvaderHandler -Legacy of Loathing 84 setSoftblockDelay allowSoftblockDelay -Legacy of Loathing 85 LX_getDigitalKey -Legacy of Loathing 86 LX_getStarKey -Legacy of Loathing 87 L12_lastDitchFlyer -Legacy of Loathing 88 LX_bugbearInvasionFinale -Legacy of Loathing 89 L13_towerNSContests -Legacy of Loathing 90 L13_towerNSHedge -Legacy of Loathing 91 L13_sorceressDoor -Legacy of Loathing 92 L13_towerNSTower -Legacy of Loathing 93 L13_towerNSNagamar -Legacy of Loathing 94 L13_towerNSFinal -Legacy of Loathing 95 LX_attemptPowerLevel +Legacy of Loathing 82 L12_finalizeWar +Legacy of Loathing 83 L12_clearBattlefield +Legacy of Loathing 84 LX_koeInvaderHandler +Legacy of Loathing 85 setSoftblockDelay allowSoftblockDelay +Legacy of Loathing 86 L12_lastDitchFlyer +Legacy of Loathing 87 LX_bugbearInvasionFinale +Legacy of Loathing 88 L13_towerNSContests +Legacy of Loathing 89 L13_towerNSHedge +Legacy of Loathing 90 L13_sorceressDoor +Legacy of Loathing 91 L13_towerNSTower +Legacy of Loathing 92 L13_towerNSNagamar +Legacy of Loathing 93 L13_towerNSFinal +Legacy of Loathing 94 LX_attemptPowerLevel Quantum Terrarium 0 LX_freeCombatsTask -Quantum Terrarium 1 LX_unlockPirateRealm -Quantum Terrarium 2 catBurglarHeist -Quantum Terrarium 3 auto_breakfastCounterVisit -Quantum Terrarium 4 chateauPainting -Quantum Terrarium 5 LX_setWorkshed -Quantum Terrarium 6 LX_artistQuest -Quantum Terrarium 7 LX_galaktikSubQuest -Quantum Terrarium 8 LX_armorySideQuest -Quantum Terrarium 9 LX_meatsmithSubQuest -Quantum Terrarium 10 L9_leafletQuest -Quantum Terrarium 11 L5_findKnob -Quantum Terrarium 12 L12_sonofaPrefix -Quantum Terrarium 13 LX_burnDelay -Quantum Terrarium 14 LX_summonMonster -Quantum Terrarium 15 resolveSixthDMT -Quantum Terrarium 16 LX_dinseylandfillFunbucks -Quantum Terrarium 17 handleRainDoh -Quantum Terrarium 18 LX_quantumTerrarium -Quantum Terrarium 19 fancyOilPainting -Quantum Terrarium 20 LX_ornateDowsingRod -Quantum Terrarium 21 L11_shenStartQuest -Quantum Terrarium 22 LX_guildUnlock -Quantum Terrarium 23 LX_unlockDesert -Quantum Terrarium 24 LX_lockPicking -Quantum Terrarium 25 LX_fatLootToken -Quantum Terrarium 26 L5_getEncryptionKey -Quantum Terrarium 27 L5_findKnob -Quantum Terrarium 28 L2_mosquito -Quantum Terrarium 29 LX_unlockHiddenTemple -Quantum Terrarium 30 L6_dakotaFanning -Quantum Terrarium 31 LX_steelOrgan -Quantum Terrarium 32 L12_islandWar -Quantum Terrarium 33 LX_spookyravenManorFirstFloor -Quantum Terrarium 34 L11_blackMarket -Quantum Terrarium 35 L11_forgedDocuments -Quantum Terrarium 36 L11_mcmuffinDiary -Quantum Terrarium 37 L11_getBeehive -Quantum Terrarium 38 L11_unlockHiddenCity -Quantum Terrarium 39 L11_hiddenCityZones -Quantum Terrarium 40 L11_hiddenCity -Quantum Terrarium 41 LX_spookyravenManorSecondFloor -Quantum Terrarium 42 L11_mauriceSpookyraven -Quantum Terrarium 43 L11_talismanOfNam -Quantum Terrarium 44 L10_plantThatBean -Quantum Terrarium 45 L10_rainOnThePlains -Quantum Terrarium 46 L9_chasmBuild -Quantum Terrarium 47 L9_highLandlord -Quantum Terrarium 48 L8_trapperQuest -Quantum Terrarium 49 L6_friarsGetParts -Quantum Terrarium 50 L7_crypt -Quantum Terrarium 51 L11_palindome -Quantum Terrarium 52 L11_aridDesert -Quantum Terrarium 53 L11_unlockPyramid -Quantum Terrarium 54 L11_unlockEd -Quantum Terrarium 55 L11_defeatEd -Quantum Terrarium 56 L5_slayTheGoblinKing -Quantum Terrarium 57 L4_batCave -Quantum Terrarium 58 L3_tavern -Quantum Terrarium 59 setSoftblockDelay allowSoftblockDelay -Quantum Terrarium 60 L13_towerAscent -Quantum Terrarium 61 LX_attemptPowerLevel +Quantum Terrarium 1 woods_questStart +Quantum Terrarium 2 LX_unlockPirateRealm +Quantum Terrarium 3 catBurglarHeist +Quantum Terrarium 4 auto_breakfastCounterVisit +Quantum Terrarium 5 chateauPainting +Quantum Terrarium 6 LX_setWorkshed +Quantum Terrarium 7 LX_artistQuest +Quantum Terrarium 8 LX_galaktikSubQuest +Quantum Terrarium 9 LX_armorySideQuest +Quantum Terrarium 10 LX_meatsmithSubQuest +Quantum Terrarium 11 L9_leafletQuest +Quantum Terrarium 12 L5_findKnob +Quantum Terrarium 13 L12_sonofaPrefix +Quantum Terrarium 14 LX_burnDelay +Quantum Terrarium 15 LX_summonMonster +Quantum Terrarium 16 resolveSixthDMT +Quantum Terrarium 17 LX_dinseylandfillFunbucks +Quantum Terrarium 18 handleRainDoh +Quantum Terrarium 19 LX_quantumTerrarium +Quantum Terrarium 20 fancyOilPainting +Quantum Terrarium 21 LX_ornateDowsingRod +Quantum Terrarium 22 L11_shenStartQuest +Quantum Terrarium 23 LX_guildUnlock +Quantum Terrarium 24 LX_unlockDesert +Quantum Terrarium 25 LX_lockPicking +Quantum Terrarium 26 LX_fatLootToken +Quantum Terrarium 27 L5_getEncryptionKey +Quantum Terrarium 28 L5_findKnob +Quantum Terrarium 29 L2_mosquito +Quantum Terrarium 30 LX_unlockHiddenTemple +Quantum Terrarium 31 L6_dakotaFanning +Quantum Terrarium 32 LX_steelOrgan +Quantum Terrarium 33 L12_islandWar +Quantum Terrarium 34 LX_spookyravenManorFirstFloor +Quantum Terrarium 35 L11_blackMarket +Quantum Terrarium 36 L11_forgedDocuments +Quantum Terrarium 37 L11_mcmuffinDiary +Quantum Terrarium 38 L11_getBeehive +Quantum Terrarium 39 L11_unlockHiddenCity +Quantum Terrarium 40 L11_hiddenCityZones +Quantum Terrarium 41 L11_hiddenCity +Quantum Terrarium 42 LX_spookyravenManorSecondFloor +Quantum Terrarium 43 L11_mauriceSpookyraven +Quantum Terrarium 44 L11_talismanOfNam +Quantum Terrarium 45 L10_plantThatBean +Quantum Terrarium 46 L10_rainOnThePlains +Quantum Terrarium 47 L9_chasmBuild +Quantum Terrarium 48 L9_highLandlord +Quantum Terrarium 49 L8_trapperQuest +Quantum Terrarium 50 L6_friarsGetParts +Quantum Terrarium 51 L7_crypt +Quantum Terrarium 52 L11_palindome +Quantum Terrarium 53 L11_aridDesert +Quantum Terrarium 54 L11_unlockPyramid +Quantum Terrarium 55 L11_unlockEd +Quantum Terrarium 56 L11_defeatEd +Quantum Terrarium 57 L5_slayTheGoblinKing +Quantum Terrarium 58 L4_batCave +Quantum Terrarium 59 L3_tavern +Quantum Terrarium 60 setSoftblockDelay allowSoftblockDelay +Quantum Terrarium 61 L13_towerAscent +Quantum Terrarium 62 LX_attemptPowerLevel Zombie Slayer 0 LM_zombieSlayer -Zombie Slayer 1 LX_unlockPirateRealm -Zombie Slayer 2 LX_freeCombatsTask -Zombie Slayer 3 auto_breakfastCounterVisit -Zombie Slayer 4 chateauPainting -Zombie Slayer 5 LX_setWorkshed -Zombie Slayer 6 LX_artistQuest -Zombie Slayer 7 LX_galaktikSubQuest -Zombie Slayer 8 LX_armorySideQuest -Zombie Slayer 9 LX_meatsmithSubQuest -Zombie Slayer 10 L9_leafletQuest -Zombie Slayer 11 L5_findKnob -Zombie Slayer 12 L12_sonofaPrefix -Zombie Slayer 13 LX_burnDelay -Zombie Slayer 14 LX_summonMonster -Zombie Slayer 15 LX_dinseylandfillFunbucks -Zombie Slayer 16 handleRainDoh -Zombie Slayer 17 L11_shenStartQuest -Zombie Slayer 18 LX_guildUnlock -Zombie Slayer 19 LX_unlockDesert -Zombie Slayer 20 LX_lockPicking -Zombie Slayer 21 LX_fatLootToken -Zombie Slayer 22 L5_getEncryptionKey -Zombie Slayer 23 L5_findKnob -Zombie Slayer 24 L2_mosquito -Zombie Slayer 25 LX_unlockHiddenTemple -Zombie Slayer 26 L6_dakotaFanning -Zombie Slayer 27 LX_steelOrgan -Zombie Slayer 28 L12_islandWar -Zombie Slayer 29 LX_spookyravenManorFirstFloor -Zombie Slayer 30 L11_blackMarket -Zombie Slayer 31 L11_forgedDocuments -Zombie Slayer 32 L11_mcmuffinDiary -Zombie Slayer 33 L11_getBeehive -Zombie Slayer 34 L11_unlockHiddenCity -Zombie Slayer 35 L11_hiddenCityZones -Zombie Slayer 36 L11_hiddenCity -Zombie Slayer 37 LX_spookyravenManorSecondFloor -Zombie Slayer 38 L11_mauriceSpookyraven -Zombie Slayer 39 L11_talismanOfNam -Zombie Slayer 40 L10_plantThatBean -Zombie Slayer 41 L10_rainOnThePlains -Zombie Slayer 42 L9_chasmBuild -Zombie Slayer 43 L9_highLandlord -Zombie Slayer 44 L8_trapperQuest -Zombie Slayer 45 L6_friarsGetParts -Zombie Slayer 46 L7_crypt -Zombie Slayer 47 L11_palindome -Zombie Slayer 48 L11_aridDesert -Zombie Slayer 49 L11_unlockPyramid -Zombie Slayer 50 L11_unlockEd -Zombie Slayer 51 L11_defeatEd -Zombie Slayer 52 L5_slayTheGoblinKing -Zombie Slayer 53 L4_batCave -Zombie Slayer 54 L3_tavern -Zombie Slayer 55 setSoftblockDelay allowSoftblockDelay -Zombie Slayer 56 L13_towerAscent -Zombie Slayer 57 LX_attemptPowerLevel +Zombie Slayer 1 woods_questStart +Zombie Slayer 2 LX_unlockPirateRealm +Zombie Slayer 3 LX_freeCombatsTask +Zombie Slayer 4 auto_breakfastCounterVisit +Zombie Slayer 5 chateauPainting +Zombie Slayer 6 LX_setWorkshed +Zombie Slayer 7 LX_artistQuest +Zombie Slayer 8 LX_galaktikSubQuest +Zombie Slayer 9 LX_armorySideQuest +Zombie Slayer 10 LX_meatsmithSubQuest +Zombie Slayer 11 L9_leafletQuest +Zombie Slayer 12 L5_findKnob +Zombie Slayer 13 L12_sonofaPrefix +Zombie Slayer 14 LX_burnDelay +Zombie Slayer 15 LX_summonMonster +Zombie Slayer 16 LX_dinseylandfillFunbucks +Zombie Slayer 17 handleRainDoh +Zombie Slayer 18 L11_shenStartQuest +Zombie Slayer 19 LX_guildUnlock +Zombie Slayer 20 LX_unlockDesert +Zombie Slayer 21 LX_lockPicking +Zombie Slayer 22 LX_fatLootToken +Zombie Slayer 23 L5_getEncryptionKey +Zombie Slayer 24 L5_findKnob +Zombie Slayer 25 L2_mosquito +Zombie Slayer 26 LX_unlockHiddenTemple +Zombie Slayer 27 L6_dakotaFanning +Zombie Slayer 28 LX_steelOrgan +Zombie Slayer 29 L12_islandWar +Zombie Slayer 30 LX_spookyravenManorFirstFloor +Zombie Slayer 31 L11_blackMarket +Zombie Slayer 32 L11_forgedDocuments +Zombie Slayer 33 L11_mcmuffinDiary +Zombie Slayer 34 L11_getBeehive +Zombie Slayer 35 L11_unlockHiddenCity +Zombie Slayer 36 L11_hiddenCityZones +Zombie Slayer 37 L11_hiddenCity +Zombie Slayer 38 LX_spookyravenManorSecondFloor +Zombie Slayer 39 L11_mauriceSpookyraven +Zombie Slayer 40 L11_talismanOfNam +Zombie Slayer 41 L10_plantThatBean +Zombie Slayer 42 L10_rainOnThePlains +Zombie Slayer 43 L9_chasmBuild +Zombie Slayer 44 L9_highLandlord +Zombie Slayer 45 L8_trapperQuest +Zombie Slayer 46 L6_friarsGetParts +Zombie Slayer 47 L7_crypt +Zombie Slayer 48 L11_palindome +Zombie Slayer 49 L11_aridDesert +Zombie Slayer 50 L11_unlockPyramid +Zombie Slayer 51 L11_unlockEd +Zombie Slayer 52 L11_defeatEd +Zombie Slayer 53 L5_slayTheGoblinKing +Zombie Slayer 54 L4_batCave +Zombie Slayer 55 L3_tavern +Zombie Slayer 56 setSoftblockDelay allowSoftblockDelay +Zombie Slayer 57 L13_towerAscent +Zombie Slayer 58 LX_attemptPowerLevel default 0 LX_freeCombatsTask -default 1 LX_unlockPirateRealm -default 2 catBurglarHeist -default 3 auto_breakfastCounterVisit -default 4 chateauPainting -default 5 LX_setWorkshed -default 6 LX_artistQuest -default 7 LX_galaktikSubQuest -default 8 LX_armorySideQuest -default 9 LX_meatsmithSubQuest -default 10 L9_leafletQuest -default 11 L5_findKnob -default 12 L12_sonofaPrefix -default 13 LX_burnDelay -default 14 LX_summonMonster -default 15 LM_edTheUndying -default 16 LX_bugbearInvasion -default 17 LX_lowkeySummer -default 18 resolveSixthDMT -default 19 LX_dinseylandfillFunbucks -default 20 L12_flyerFinish -default 21 L12_getOutfit -default 22 L12_startWar -default 23 LX_loggingHatchet -default 24 LX_guildUnlock -default 25 LX_bitchinMeatcar LX_bitchinMeatcar_condition -default 26 LX_unlockDesert -default 27 handleRainDoh -default 28 LX_spookyravenManorFirstFloor -default 29 L6_friarsGetParts LX_steelOrgan_condition_slow -default 30 LX_steelOrgan LX_steelOrgan_condition_slow -default 31 L4_batCave -default 32 L2_mosquito -default 33 LX_unlockHiddenTemple -default 34 L6_dakotaFanning -default 35 LX_lockPicking -default 36 LX_fatLootToken -default 37 L5_slayTheGoblinKing -default 38 LX_islandAccess -default 39 L6_friarsGetParts L6_friarsGetParts_condition_hardcore -default 40 LX_spookyravenManorSecondFloor -default 41 L3_tavern -default 42 L6_friarsGetParts -default 43 LX_steelOrgan in_hardcore -default 44 L7_crypt -default 45 fancyOilPainting -default 46 L8_trapperQuest -default 47 LX_steelOrgan -default 48 L10_plantThatBean -default 49 L12_preOutfit -default 50 L10_airship -default 51 L10_basement -default 52 L10_ground -default 53 L11_blackMarket -default 54 L11_forgedDocuments -default 55 L11_mcmuffinDiary -default 56 L10_topFloor -default 57 L10_holeInTheSkyUnlock -default 58 L9_chasmBuild -default 59 L9_highLandlord -default 60 L12_flyerBackup -default 61 Lsc_flyerSeals -default 62 L11_mauriceSpookyraven -default 63 L11_unlockHiddenCity -default 64 L11_hiddenCityZones -default 65 LX_ornateDowsingRod -default 66 L11_aridDesert -default 67 L11_hiddenCity -default 68 L11_talismanOfNam -default 69 L11_palindome -default 70 L11_unlockPyramid -default 71 L11_unlockEd -default 72 L11_defeatEd -default 73 L12_gremlins -default 74 L12_sonofaFinish -default 75 L12_sonofaBeach -default 76 L12_filthworms -default 77 L12_orchardFinalize -default 78 L12_themtharHills -default 79 L12_farm -default 80 L11_getBeehive -default 81 L12_finalizeWar -default 82 L12_clearBattlefield -default 83 LX_koeInvaderHandler -default 84 setSoftblockDelay allowSoftblockDelay -default 85 LX_getDigitalKey -default 86 LX_getStarKey -default 87 L12_lastDitchFlyer -default 88 LX_bugbearInvasionFinale -default 89 L13_towerNSContests -default 90 L13_towerNSHedge -default 91 L13_sorceressDoor -default 92 L13_towerNSTower -default 93 L13_towerNSNagamar -default 94 L13_towerNSFinal -default 95 LX_attemptPowerLevel +default 1 woods_questStart +default 2 LX_unlockPirateRealm +default 3 catBurglarHeist +default 4 auto_breakfastCounterVisit +default 5 chateauPainting +default 6 LX_setWorkshed +default 7 LX_artistQuest +default 8 LX_galaktikSubQuest +default 9 LX_armorySideQuest +default 10 LX_meatsmithSubQuest +default 11 L9_leafletQuest +default 12 L5_findKnob +default 13 L12_sonofaPrefix +default 14 LX_burnDelay +default 15 LX_summonMonster +default 16 LM_edTheUndying +default 17 LX_bugbearInvasion +default 18 LX_lowkeySummer +default 19 resolveSixthDMT +default 20 LX_dinseylandfillFunbucks +default 21 L12_flyerFinish +default 22 L12_getOutfit +default 23 L12_startWar +default 24 LX_loggingHatchet +default 25 LX_guildUnlock +default 26 LX_bitchinMeatcar LX_bitchinMeatcar_condition +default 27 LX_unlockDesert +default 28 handleRainDoh +default 29 LX_spookyravenManorFirstFloor +default 30 L6_friarsGetParts LX_steelOrgan_condition_slow +default 31 LX_steelOrgan LX_steelOrgan_condition_slow +default 32 L4_batCave +default 33 L2_mosquito +default 34 LX_unlockHiddenTemple +default 35 L6_dakotaFanning +default 36 LX_lockPicking +default 37 LX_fatLootToken +default 38 L5_slayTheGoblinKing +default 39 LX_islandAccess +default 40 L6_friarsGetParts L6_friarsGetParts_condition_hardcore +default 41 LX_spookyravenManorSecondFloor +default 42 L3_tavern +default 43 L6_friarsGetParts +default 44 LX_steelOrgan in_hardcore +default 45 L7_crypt +default 46 fancyOilPainting +default 47 L8_trapperQuest +default 48 LX_steelOrgan +default 49 L10_plantThatBean +default 50 L12_preOutfit +default 51 L10_airship +default 52 L10_basement +default 53 L10_ground +default 54 L11_blackMarket +default 55 L11_forgedDocuments +default 56 L11_mcmuffinDiary +default 57 L10_topFloor +default 58 L10_holeInTheSkyUnlock +default 59 L9_chasmBuild +default 60 L9_highLandlord +default 61 L12_flyerBackup +default 62 Lsc_flyerSeals +default 63 L11_mauriceSpookyraven +default 64 L11_unlockHiddenCity +default 65 L11_hiddenCityZones +default 66 LX_ornateDowsingRod +default 67 L11_aridDesert +default 68 L11_hiddenCity +default 69 L11_talismanOfNam +default 70 L11_palindome +default 71 L11_unlockPyramid +default 72 L11_unlockEd +default 73 L11_defeatEd +default 74 L12_gremlins +default 75 L12_sonofaFinish +default 76 L12_sonofaBeach +default 77 L12_filthworms +default 78 L12_orchardFinalize +default 79 L12_themtharHills +default 80 L12_farm +default 81 L11_getBeehive +default 82 L12_finalizeWar +default 83 L12_clearBattlefield +default 84 LX_koeInvaderHandler +default 85 setSoftblockDelay allowSoftblockDelay +default 86 L12_lastDitchFlyer +default 87 LX_bugbearInvasionFinale +default 88 L13_towerNSContests +default 89 L13_towerNSHedge +default 90 L13_sorceressDoor +default 91 L13_towerNSTower +default 92 L13_towerNSNagamar +default 93 L13_towerNSFinal +default 94 LX_attemptPowerLevel diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index 8b7d380fb..909ebe28e 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -223,6 +223,30 @@ boolean auto_pre_adventure() prepareForSmutOrcs(); } + if(place == $location[Vanya\'s Castle]) + { + provideInitiative(600, $location[Vanya\'s Castle], true); + addToMaximize("200initiative 800max"); + } + if(place == $location[The Fungus Plains]) + { + buffMaintain($effect[Polka of Plenty], 30, 1, 1); + addToMaximize("200meat drop 550max"); + } + if(place == $location[Megalo-City]) + { + buffMaintain($effect[Ghostly Shell], 30, 1, 1); //+80 DA. 6 MP + buffMaintain($effect[Astral Shell], 30, 1, 1); //+80 DA, 10 MP + buffMaintain($effect[Feeling Peaceful], 0, 1, 1); + addToMaximize("200DA 600max"); + } + if(place == $location[Hero\'s Field]) + { + buffMaintain($effect[Fat Leon\'s Phat Loot Lyric], 30, 1, 1); + buffMaintain($effect[Singer\'s Faithful Ocelot], 30, 1, 1); + addToMaximize("200item 500max"); + } + boolean junkyardML; if($locations[Next to that Barrel with something Burning In It, Near an Abandoned Refrigerator, Over where the Old Tires Are, Out by that Rusted-Out Car] contains place) { diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 35a46f441..bdd0e9e65 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -2687,11 +2687,17 @@ boolean have_skills(boolean[skill] array) } //From Bale\'s woods.ash relay script. -void woods_questStart() +boolean woods_questStart() { + if (internalQuestStatus("questL02Larva") < 0 && internalQuestStatus("questG02Whitecastle") < 0) + { + // distant woods access is gated behind level 2 quest & whitey's grove quest. + // for some reason mafia doesn't track this any other way + return false; + } if(available_amount($item[Continuum Transfunctioner]) > 0) { - return; + return false; } visit_url("place.php?whichplace=woods"); visit_url("place.php?whichplace=forestvillage&action=fv_mystic"); @@ -2707,6 +2713,7 @@ void woods_questStart() { visit_url("place.php?whichplace=forestvillage&preaction=screwquest&action=fv_untinker_quest"); } + return true; } int howLongBeforeHoloWristDrop() diff --git a/RELEASE/scripts/autoscend/auto_zone.ash b/RELEASE/scripts/autoscend/auto_zone.ash index 31ddf1c86..b50d96f30 100644 --- a/RELEASE/scripts/autoscend/auto_zone.ash +++ b/RELEASE/scripts/autoscend/auto_zone.ash @@ -898,6 +898,30 @@ generic_t zone_delay(location loc) value = 40 - get_property("_kolhsAdventures").to_int(); //shared counter of 40 adv between all 4 zones } break; + case $location[Vanya\'s Castle]: + if (possessEquipment($item[Continuum Transfunctioner]) && (get_property("8BitColor") == "black" || get_property("8BitColor") == "")) + { + value = 5 - get_property("8BitBonusTurns").to_int(); + } + break; + case $location[The Fungus Plains]: + if (possessEquipment($item[Continuum Transfunctioner]) && get_property("8BitColor") == "red") + { + value = 5 - get_property("8BitBonusTurns").to_int(); + } + break; + case $location[Megalo-City]: + if (possessEquipment($item[Continuum Transfunctioner]) && get_property("8BitColor") == "blue") + { + value = 5 - get_property("8BitBonusTurns").to_int(); + } + break; + case $location[Hero\'s Field]: + if (possessEquipment($item[Continuum Transfunctioner]) && get_property("8BitColor") == "green") + { + value = 5 - get_property("8BitBonusTurns").to_int(); + } + break; default: retval._error = true; break; diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 1366eadad..8d929c736 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -1717,7 +1717,7 @@ int doNumberology(string goal, boolean doIt); int doNumberology(string goal, boolean doIt, string option); boolean auto_have_skill(skill sk); boolean have_skills(boolean[skill] array); -void woods_questStart(); +boolean woods_questStart(); int howLongBeforeHoloWristDrop(); boolean hasShieldEquipped(); boolean careAboutDrops(monster mon); diff --git a/RELEASE/scripts/autoscend/quests/level_13.ash b/RELEASE/scripts/autoscend/quests/level_13.ash index 9dc84fa55..932dcd9e7 100644 --- a/RELEASE/scripts/autoscend/quests/level_13.ash +++ b/RELEASE/scripts/autoscend/quests/level_13.ash @@ -69,32 +69,22 @@ int EightBitScore() boolean EightBitRealmHandler() { //Spend adventures to get the digital key + //Preparing for each zone is handled in auto_pre_adv.ash boolean adv_spent = false; string color = get_property("8BitColor"); switch(color) { case "black": - provideInitiative(600, $location[Vanya\'s Castle], true); - addToMaximize("200initiative 800max"); adv_spent = autoAdv($location[Vanya\'s Castle]); break; case "red": - buffMaintain($effect[Polka of Plenty], 30, 1, 1); - addToMaximize("200meat drop 550max"); adv_spent = autoAdv($location[The Fungus Plains]); break; case "blue": - buffMaintain($effect[Ghostly Shell], 30, 1, 1); //+80 DA. 6 MP - buffMaintain($effect[Astral Shell], 30, 1, 1); //+80 DA, 10 MP - buffMaintain($effect[Feeling Peaceful], 0, 1, 1); - addToMaximize("200DA 600max"); adv_spent = autoAdv($location[Megalo-City]); break; case "green": - buffMaintain($effect[Fat Leon\'s Phat Loot Lyric], 30, 1, 1); - buffMaintain($effect[Singer\'s Faithful Ocelot], 30, 1, 1); - addToMaximize("200item 500max"); adv_spent = autoAdv($location[Hero\'s Field]); break; default: From 0a940990124088e6f7eaed6084697137afba82ea Mon Sep 17 00:00:00 2001 From: Alium58 Date: Fri, 13 Oct 2023 12:08:31 -0500 Subject: [PATCH 3/7] pull breath (#1369) --- RELEASE/scripts/autoscend/iotms/mr2021.ash | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index 8933cf88d..5ef7432a2 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -872,6 +872,10 @@ void auto_CMCconsult() } return notAboutToDoNuns(); } + if(shouldChewBreathitin() && !isActuallyEd() && !haveSpleenFamiliar() && !can_interact()) + { + pullXWhenHaveY($item[Breathitin™],1,0); + } if(item_amount($item[Breathitin™]) > 0 && shouldChewBreathitin() && !can_interact()) { autoChew(1,$item[Breathitin™]); From 608333278fb1b4fb30dd40012f7de5aa25381259 Mon Sep 17 00:00:00 2001 From: Alium58 Date: Fri, 13 Oct 2023 21:47:22 -0500 Subject: [PATCH 4/7] Jill of All Trades Support (#1368) * update since * add jill to fam build files * formatting for vscode * prioritize goose before any turns might be spent * maximize bonus for led candle * fix expected drones function * have jill helper function * update min mafia version * support configuring LED candle * only reserve 4 drones for HITS * don't configure candle if jill isn't active fam * configure candle prior to maximizer * update since * add jill to fam build files * formatting for vscode * prioritize goose before any turns might be spent * maximize bonus for led candle * fix expected drones function * have jill helper function * update min mafia version * support configuring LED candle * only reserve 4 drones for HITS * don't configure candle if jill isn't active fam * configure candle prior to maximizer * updates per review --- BUILD/familiars/boss.dat | 2 + BUILD/familiars/drop.dat | 2 + BUILD/familiars/item.dat | 4 + BUILD/familiars/meat.dat | 4 + BUILD/familiars/regen.dat | 2 + BUILD/familiars/stat.dat | 3 + RELEASE/data/autoscend_familiars.txt | 365 +++++++++--------- RELEASE/scripts/autoscend.ash | 4 +- RELEASE/scripts/autoscend/auto_familiar.ash | 17 +- .../scripts/autoscend/autoscend_header.ash | 2 + RELEASE/scripts/autoscend/iotms/mr2022.ash | 10 +- RELEASE/scripts/autoscend/iotms/mr2023.ash | 74 ++++ 12 files changed, 303 insertions(+), 186 deletions(-) diff --git a/BUILD/familiars/boss.dat b/BUILD/familiars/boss.dat index 0a83a678d..42e0f165c 100644 --- a/BUILD/familiars/boss.dat +++ b/BUILD/familiars/boss.dat @@ -3,4 +3,6 @@ Fist Turkey Shorter-Order Cook Mu Warbear Drone +Vampire Vintner +Jill-of-All-Trades Mosquito diff --git a/BUILD/familiars/drop.dat b/BUILD/familiars/drop.dat index 6d1843ba3..63a886aa9 100644 --- a/BUILD/familiars/drop.dat +++ b/BUILD/familiars/drop.dat @@ -4,6 +4,8 @@ # # every 2 cookbookbat ingredients generate a size 1 density 7 food. prioritize having enough to craft 1. Cookbookbat item:Vegetable of Jarlsberg<2;item:Yeast of Boris<2;item:St. Sneaky Pete's Whey<2 +# jill will drop her fam equip and a halloween map. Only consider map though +Jill-of-All-Trades item:Map to a candy-rich block<1 # 5 turkey booze drops a day. each is size 1 and density of either 5, 5.5, or 6 Fist Turkey prop:_turkeyBooze<5 # every 10 yellow pixels make a size 2 density 5 food or drink. unlimited drops per day. prioritize having enough to craft 2. diff --git a/BUILD/familiars/item.dat b/BUILD/familiars/item.dat index 825d1ffbd..e6636fb0e 100644 --- a/BUILD/familiars/item.dat +++ b/BUILD/familiars/item.dat @@ -4,6 +4,8 @@ # exempt from 10 lbs restriction in KOLHS path Steam-Powered Cheerleader path:KOLHS # Fairies with a multiplier +# 1.5x multiplier fairy +Jill-of-All-Trades item:LED candle>1 # 1.4x multiplier fairy Steam-Powered Cheerleader prop:_cheerleaderSteam>150 # 1.3x multiplier fairy @@ -22,6 +24,8 @@ Reagnimated Gnome !path:Heavy Rains XO Skeleton # Fairy that drops bacon with no limit. 1 per combat Intergnat +# Fairyeverything +Jill-of-All-Trades # Fairyballs Elf Operative Optimistic Candle diff --git a/BUILD/familiars/meat.dat b/BUILD/familiars/meat.dat index 792d9581c..c80793663 100644 --- a/BUILD/familiars/meat.dat +++ b/BUILD/familiars/meat.dat @@ -16,9 +16,13 @@ Adventurous Spelunker prop:_spelunkingTalesDrops<1 # Might as well get devilish folios Blavious Kloop prop:_kloopDrops<3 # Leprechauns with a >1 multiplier +# 1.5x multiplier leprechaun +Jill-of-All-Trades item:LED candle>1 #Mutant Cactus Bud grimdark:0 Hobo Monkey #Mutant Cactus Bud grimdark:1 +# Does everything +Jill-of-All-Trades # Volleychauns Golden Monkey Bloovian Groose diff --git a/BUILD/familiars/regen.dat b/BUILD/familiars/regen.dat index 915a2972b..a269af29f 100644 --- a/BUILD/familiars/regen.dat +++ b/BUILD/familiars/regen.dat @@ -8,6 +8,8 @@ Galloping Grill prop:_hotAshesDrops<5 # starfish that drops 5 tokens a day that can be exchanged for a spleen consumable that gives adv Rogue Program prop:_tokenDrops<5 +# Fairyeverything +Jill-of-All-Trades # Fairywhelps. Weight is better used on these and 2 of them drop useful items. Pocket Professor Garbage Fire diff --git a/BUILD/familiars/stat.dat b/BUILD/familiars/stat.dat index 9de58a1b4..237173750 100644 --- a/BUILD/familiars/stat.dat +++ b/BUILD/familiars/stat.dat @@ -7,8 +7,11 @@ Hovering Sombrero ML:>=120 # Can be tuned to give pure mainstat, so it's better than other volleyballs Crimbo Shrub # Volleyballs with a multiplier +Jill-of-All-Trades item:LED candle>1 #Baby Mutant Rattlesnake grimdark:0 #Baby Mutant Rattlesnake grimdark:1 +# Fairyeverything +Jill-of-All-Trades # Fairyballs Elf Operative Optimistic Candle diff --git a/RELEASE/data/autoscend_familiars.txt b/RELEASE/data/autoscend_familiars.txt index f28f7025b..04471a513 100644 --- a/RELEASE/data/autoscend_familiars.txt +++ b/RELEASE/data/autoscend_familiars.txt @@ -16,7 +16,9 @@ boss 1 Fist Turkey boss 2 Shorter-Order Cook boss 3 Mu boss 4 Warbear Drone -boss 5 Mosquito +boss 5 Vampire Vintner +boss 6 Jill-of-All-Trades +boss 7 Mosquito # "drop" type is used when we want to grab a familiar that drops items themselves rather than boosting the odds of the enemy dropping items. # @@ -24,64 +26,66 @@ boss 5 Mosquito # # every 2 cookbookbat ingredients generate a size 1 density 7 food. prioritize having enough to craft 1. drop 0 Cookbookbat item:Vegetable of Jarlsberg<2;item:Yeast of Boris<2;item:St. Sneaky Pete's Whey<2 +# jill will drop her fam equip and a halloween map. Only consider map though +drop 1 Jill-of-All-Trades item:Map to a candy-rich block<1 # 5 turkey booze drops a day. each is size 1 and density of either 5, 5.5, or 6 -drop 1 Fist Turkey prop:_turkeyBooze<5 +drop 2 Fist Turkey prop:_turkeyBooze<5 # every 10 yellow pixels make a size 2 density 5 food or drink. unlimited drops per day. prioritize having enough to craft 2. # drops 1 per combat with chance of 2nd if wearing familiar specific equip -drop 2 Puck Man item:Yellow Pixel<20 -drop 3 Ms. Puck Man item:Yellow Pixel<20 +drop 3 Puck Man item:Yellow Pixel<20 +drop 4 Ms. Puck Man item:Yellow Pixel<20 # 1st wax drop per run only takes 5 combats, afterwards 30. makes a single size 2 density 4.25 food or drink -drop 4 Optimistic Candle prop:optimisticCandleProgress>=25 +drop 5 Optimistic Candle prop:optimisticCandleProgress>=25 # 1st robin egg per run only takes 5 combats, afterwards 30. potion that gives all res +3 -drop 5 Rockin' Robin prop:rockinRobinProgress>=25 +drop 6 Rockin' Robin prop:rockinRobinProgress>=25 # 1st burning newspaper per run only takes 5 combats, afterwards 30. can be used for +5 adv on dayroll back equip -drop 6 Garbage Fire prop:garbageFireProgress>=25 +drop 7 Garbage Fire prop:garbageFireProgress>=25 # Hot ashes can make a potion that gives +15 ML for 15 adv. keep 1 of them in stock -drop 7 Galloping Grill prop:_hotAshesDrops<5;item:hot ashes<1 +drop 8 Galloping Grill prop:_hotAshesDrops<5;item:hot ashes<1 # # get substats from fist turkey in The Source path -drop 8 Fist Turkey prop:_turkeyMuscle<5;mainstat:Muscle;path:The Source -drop 9 Fist Turkey prop:_turkeyMyst<5;mainstat:Mysticality;path:The Source -drop 10 Fist Turkey prop:_turkeyMoxie<5;mainstat:Moxie;path:The Source +drop 9 Fist Turkey prop:_turkeyMuscle<5;mainstat:Muscle;path:The Source +drop 10 Fist Turkey prop:_turkeyMyst<5;mainstat:Mysticality;path:The Source +drop 11 Fist Turkey prop:_turkeyMoxie<5;mainstat:Moxie;path:The Source # # Cat Burglar can charge up heists. 30 combats give it 2 charges. -drop 11 Cat Burglar prop:_catBurglarCharge<30 +drop 12 Cat Burglar prop:_catBurglarCharge<30 # # Melodramedary generating spit seems good -drop 12 Melodramedary prop:camelSpit<100 +drop 13 Melodramedary prop:camelSpit<100 # # Drops BACON every battle. 100 bacon makes size 15 density 4.83 food. 150 bacon can get you a fat loot token -drop 13 Intergnat item:BACON<150 +drop 14 Intergnat item:BACON<150 # # Generate extra cookbookbat ingredients to make sure we have enough stock on hand for higher-tier foods -drop 14 Cookbookbat item:Vegetable of Jarlsberg<4 -drop 15 Cookbookbat item:Yeast of Boris<4 -drop 16 Cookbookbat item:St. Sneaky Pete's Whey<4 +drop 15 Cookbookbat item:Vegetable of Jarlsberg<4 +drop 16 Cookbookbat item:Yeast of Boris<4 +drop 17 Cookbookbat item:St. Sneaky Pete's Whey<4 # Below this lines drops are not needed more of for the run and are just grabbing for profit. # Most are useful in limited amounts which we already grab via boolean autoChooseFamiliar(location place) # # density 1.875 size 4 spleen consumables. boolean autoChooseFamiliar(location place) will already grab the amount needed for spleen # Here they are only used to grab extras. -drop 17 Grim Brother prop:_grimFairyTaleDrops<5 -drop 18 Pair of Stomping Boots !path:G-Lover;prop:_bootStomps<7 -drop 19 Baby Sandworm prop:_aguaDrops<5 -drop 20 Bloovian Groose prop:_grooseDrops<5 -drop 21 Golden Monkey prop:_powderedGoldDrops<5 -drop 22 Unconscious Collective prop:_dreamJarDrops<5 +drop 18 Grim Brother prop:_grimFairyTaleDrops<5 +drop 19 Pair of Stomping Boots !path:G-Lover;prop:_bootStomps<7 +drop 20 Baby Sandworm prop:_aguaDrops<5 +drop 21 Bloovian Groose prop:_grooseDrops<5 +drop 22 Golden Monkey prop:_powderedGoldDrops<5 +drop 23 Unconscious Collective prop:_dreamJarDrops<5 # psychoanalytic jar 1 per day. -drop 23 Angry Jung Man prop:_jungDrops<1 +drop 24 Angry Jung Man prop:_jungDrops<1 # grimstone mask 1 per day -drop 24 Grimstone Golem prop:_grimstoneMaskDrops<1 +drop 25 Grimstone Golem prop:_grimstoneMaskDrops<1 # tales of spelunking 1 per day -drop 25 Adventurous Spelunker prop:_spelunkingTalesDrops<1 +drop 26 Adventurous Spelunker prop:_spelunkingTalesDrops<1 # can drop 5 devilish folio a day -drop 26 Blavious Kloop prop:_kloopDrops<5 +drop 27 Blavious Kloop prop:_kloopDrops<5 # can drop 5 absinthe a day -drop 27 Green Pixie prop:_absintheDrops<5 +drop 28 Green Pixie prop:_absintheDrops<5 # Hot ashes can make a potion that gives +15 ML for 15 adv. drop limit 5/day -drop 28 Galloping Grill prop:_hotAshesDrops<5 +drop 29 Galloping Grill prop:_hotAshesDrops<5 # If all else fails, keep generating CBB ingredients -drop 29 Cookbookbat +drop 30 Cookbookbat # We want to delevel, but don't want to deal damage gremlins 0 Nosy Nose @@ -103,81 +107,85 @@ init 3 Happy Medium # exempt from 10 lbs restriction in KOLHS path item 0 Steam-Powered Cheerleader path:KOLHS # Fairies with a multiplier +# 1.5x multiplier fairy +item 1 Jill-of-All-Trades item:LED candle>1 # 1.4x multiplier fairy -item 1 Steam-Powered Cheerleader prop:_cheerleaderSteam>150 +item 2 Steam-Powered Cheerleader prop:_cheerleaderSteam>150 # 1.3x multiplier fairy -item 2 Steam-Powered Cheerleader prop:_cheerleaderSteam>100 +item 3 Steam-Powered Cheerleader prop:_cheerleaderSteam>100 # Jumpsuited Hound Dog is a 1.25x multiplier fairy that provides +combat. # Jumpsuited Hound Dog DELIBERATELY not included because it provides usually unwanted +combat # 1.2x multiplier fairy -item 3 Steam-Powered Cheerleader prop:_cheerleaderSteam>50 +item 4 Steam-Powered Cheerleader prop:_cheerleaderSteam>50 # 1.1x multiplier fairy -item 4 Steam-Powered Cheerleader prop:_cheerleaderSteam>0 +item 5 Steam-Powered Cheerleader prop:_cheerleaderSteam>0 # fairy with useful special powers above a certain weight so we want to preload it -item 5 Grey Goose prop_boolean:auto_prioritizeGoose +item 6 Grey Goose prop_boolean:auto_prioritizeGoose # fairy that generates extra adventures -item 6 Reagnimated Gnome !path:Heavy Rains +item 7 Reagnimated Gnome !path:Heavy Rains # Fairywhelp that drops x and o without limit. 1 each per 9 combats. 3 o for food. 3 x for drink, 23 x to skip half bridge. -item 7 XO Skeleton +item 8 XO Skeleton # Fairy that drops bacon with no limit. 1 per combat -item 8 Intergnat +item 9 Intergnat +# Fairyeverything +item 10 Jill-of-All-Trades # Fairyballs -item 9 Elf Operative -item 10 Optimistic Candle -item 11 Rockin' Robin -item 12 God Lobster item:God Lobster's Crown>0 -item 13 Hobo in Sheep's Clothing +item 11 Elf Operative +item 12 Optimistic Candle +item 13 Rockin' Robin +item 14 God Lobster item:God Lobster's Crown>0 +item 15 Hobo in Sheep's Clothing # Fairywhelps -item 14 Pocket Professor -item 15 Garbage Fire -item 16 Dandy Lion -item 17 Choctopus +item 16 Pocket Professor +item 17 Garbage Fire +item 18 Dandy Lion +item 19 Choctopus # Fairychauns -item 18 Fist Turkey -item 19 Cat Burglar -item 20 Angry Jung Man -item 21 Grimstone Golem -item 22 Adventurous Spelunker -item 23 Blavious Kloop -item 24 Hippo Ballerina -item 25 Dancing Frog -item 26 Coffee Pixie -item 27 Attention-Deficit Demon -item 28 Jitterbug -item 29 Casagnova Gnome -item 30 Psychedelic Bear -item 31 Piano Cat +item 20 Fist Turkey +item 21 Cat Burglar +item 22 Angry Jung Man +item 23 Grimstone Golem +item 24 Adventurous Spelunker +item 25 Blavious Kloop +item 26 Hippo Ballerina +item 27 Dancing Frog +item 28 Coffee Pixie +item 29 Attention-Deficit Demon +item 30 Jitterbug +item 31 Casagnova Gnome +item 32 Psychedelic Bear +item 33 Piano Cat # Slightly special fairies -item 32 Grey Goose -item 33 Ghost of Crimbo Carols -item 34 Red-Nosed Snapper -item 35 Pair of Stomping Boots !path:G-Lover -item 36 Gelatinous Cubeling -item 37 Steam-Powered Cheerleader -item 38 Obtuse Angel -item 39 Green Pixie +item 34 Grey Goose +item 35 Ghost of Crimbo Carols +item 36 Red-Nosed Snapper +item 37 Pair of Stomping Boots !path:G-Lover +item 38 Gelatinous Cubeling +item 39 Steam-Powered Cheerleader +item 40 Obtuse Angel +item 41 Green Pixie # Elemental fairies -item 40 Sleazy Gravy Fairy -item 41 Stinky Gravy Fairy -item 42 Flaming Gravy Fairy -item 43 Frozen Gravy Fairy -item 44 Spooky Gravy Fairy +item 42 Sleazy Gravy Fairy +item 43 Stinky Gravy Fairy +item 44 Flaming Gravy Fairy +item 45 Frozen Gravy Fairy +item 46 Spooky Gravy Fairy # Physical damage fairy -item 45 Bowlet -item 46 Crimbo Elf +item 47 Bowlet +item 48 Crimbo Elf # Barely special fairies -item 47 Mechanical Songbird -item 48 Grouper Groupie -item 49 Peppermint Rhino +item 49 Mechanical Songbird +item 50 Grouper Groupie +item 51 Peppermint Rhino # Fairy that if fed equipment will regen MP and give extra drops. Since we do not make use of this functionality it is just a fairy. -item 50 Slimeling +item 52 Slimeling # Turtles are cute -item 51 Syncopated Turtle +item 53 Syncopated Turtle # The original -item 52 Baby Gravy Fairy +item 54 Baby Gravy Fairy # Mutant Fire Ant multiplier is 1.3-(0.15*grimace darkness). Too marginal because of opportunity cost compared to leveling another familiar. # If we level it today when it gives a good bonus, tomorrow it might drop to bad bonus and we have to start leveling another fairy. -item 53 Mutant Fire Ant +item 55 Mutant Fire Ant # Wanna get that jar meat 0 Angry Jung Man prop:_jungDrops<1;day:1 @@ -197,47 +205,51 @@ meat 8 Adventurous Spelunker prop:_spelunkingTalesDrops<1 # Might as well get devilish folios meat 9 Blavious Kloop prop:_kloopDrops<3 # Leprechauns with a >1 multiplier +# 1.5x multiplier leprechaun +meat 10 Jill-of-All-Trades item:LED candle>1 #Mutant Cactus Bud grimdark:0 -meat 10 Hobo Monkey +meat 11 Hobo Monkey #Mutant Cactus Bud grimdark:1 +# Does everything +meat 12 Jill-of-All-Trades # Volleychauns -meat 11 Golden Monkey -meat 12 Bloovian Groose -meat 13 Unconscious Collective -meat 14 Grim Brother -meat 15 Dramatic Hedgehog -meat 16 Chauvinist Pig -meat 17 Uniclops -meat 18 Hunchbacked Minion -meat 19 Nervous Tick -meat 20 Cymbal-Playing Monkey -meat 21 Cheshire Bat +meat 13 Golden Monkey +meat 14 Bloovian Groose +meat 15 Unconscious Collective +meat 16 Grim Brother +meat 17 Dramatic Hedgehog +meat 18 Chauvinist Pig +meat 19 Uniclops +meat 20 Hunchbacked Minion +meat 21 Nervous Tick +meat 22 Cymbal-Playing Monkey +meat 23 Cheshire Bat # Fairychauns -meat 22 Cat Burglar -meat 23 Blavious Kloop -meat 24 Adventurous Spelunker -meat 25 Hippo Ballerina -meat 26 Dancing Frog -meat 27 Cheshire Bat -meat 28 Piano Cat -meat 29 Psychedelic Bear -meat 30 Casagnova Gnome -meat 31 Jitterbug -meat 32 Attention-Deficit Demon -meat 33 Coffee Pixie +meat 24 Cat Burglar +meat 25 Blavious Kloop +meat 26 Adventurous Spelunker +meat 27 Hippo Ballerina +meat 28 Dancing Frog +meat 29 Cheshire Bat +meat 30 Piano Cat +meat 31 Psychedelic Bear +meat 32 Casagnova Gnome +meat 33 Jitterbug +meat 34 Attention-Deficit Demon +meat 35 Coffee Pixie # Wowee -meat 34 Hand Turkey +meat 36 Hand Turkey # Sorry, we don't use him for yellow rays but we can at least use him for meat I guess -meat 35 He-Boulder +meat 37 He-Boulder # Marginally special leprechauns -meat 36 Ghost of Crimbo Commerce -meat 37 Knob Goblin Organ Grinder +meat 38 Ghost of Crimbo Commerce +meat 39 Knob Goblin Organ Grinder #Mutant Cactus Bud grimdark:2 -meat 38 Urchin Urchin +meat 40 Urchin Urchin # Memes, doesn't actually give substats apparently -meat 39 Cornbeefadon +meat 41 Cornbeefadon # The original -meat 40 Leprechaun +meat 42 Leprechaun # Typical starfish are better than whelps # Whelps on average restore .375*(weight+5) @@ -249,54 +261,56 @@ meat 40 Leprechaun regen 0 Galloping Grill prop:_hotAshesDrops<5 # starfish that drops 5 tokens a day that can be exchanged for a spleen consumable that gives adv regen 1 Rogue Program prop:_tokenDrops<5 +# Fairyeverything +regen 2 Jill-of-All-Trades # Fairywhelps. Weight is better used on these and 2 of them drop useful items. -regen 2 Pocket Professor -regen 3 Garbage Fire -regen 4 XO Skeleton +regen 3 Pocket Professor +regen 4 Garbage Fire +regen 5 XO Skeleton # Drops assorted stuff, mostly junk. has some awesome food. requires familiar equip brass bung spigot to regen HP/MP -regen 5 Lil' Barrel Mimic item:brass bung spigot>0 +regen 6 Lil' Barrel Mimic item:brass bung spigot>0 # It's a starfish with reduced activation rate, except it ALWAYS attacks on turn one, so that's probably more hits per battle on average in short battles? oh, and it's a sombrero too -regen 6 Galloping Grill -regen 7 Patriotic Eagle +regen 7 Galloping Grill +regen 8 Patriotic Eagle # A super starfish (50% activation instead of 33%) -regen 8 Sausage Golem +regen 9 Sausage Golem # A slightly boosted starfish, for pastamancers -regen 9 Animated Macaroni Duck class:Pastamancer +regen 10 Animated Macaroni Duck class:Pastamancer # Regular starfish -regen 10 Unspeakachu -regen 11 Twitching Space Critter -regen 12 Rock Lobster -regen 13 Animated Macaroni Duck -regen 14 Midget Clownfish -regen 15 Snow Angel -regen 16 Underworld Bonsai -regen 17 Star Starfish +regen 11 Unspeakachu +regen 12 Twitching Space Critter +regen 13 Rock Lobster +regen 14 Animated Macaroni Duck +regen 15 Midget Clownfish +regen 16 Snow Angel +regen 17 Underworld Bonsai +regen 18 Star Starfish # Fairysuperwhelps -regen 18 Choctopus +regen 19 Choctopus # Superwhelps -regen 19 Plastic Pirate Skull -regen 20 Trick-or-Treating Tot +regen 20 Plastic Pirate Skull +regen 21 Trick-or-Treating Tot # Fairywhelps -regen 21 Dandy Lion +regen 22 Dandy Lion # Special whelps -regen 22 Ms. Puck Man -regen 23 Puck Man -regen 24 Squamous Gibberer -regen 25 He-Boulder -regen 26 Cotton Candy Carnie +regen 23 Ms. Puck Man +regen 24 Puck Man +regen 25 Squamous Gibberer +regen 26 He-Boulder +regen 27 Cotton Candy Carnie # Slightly better whelp for saucerors -regen 27 Pet Cheezling class:Sauceror +regen 28 Pet Cheezling class:Sauceror # Whelps with a multiplier, why not I guess #Mutant Gila Monster grimdark:0 #Mutant Gila Monster grimdark:1 # Marginally special whelps #Mutant Gila Monster grimdark:2 -regen 28 Pottery Barn Owl +regen 29 Pottery Barn Owl # Regular old whelps -regen 29 Pet Cheezling -regen 30 Ghuol Whelp +regen 30 Pet Cheezling +regen 31 Ghuol Whelp # The absolute default that everyone should have after their first run -regen 31 Mosquito +regen 32 Mosquito # Sombrero is desirable with a decent amount of ML stat 0 Galloping Grill ML:>=120 @@ -307,48 +321,51 @@ stat 4 Hovering Sombrero ML:>=120 # Can be tuned to give pure mainstat, so it's better than other volleyballs stat 5 Crimbo Shrub # Volleyballs with a multiplier +stat 6 Jill-of-All-Trades item:LED candle>1 #Baby Mutant Rattlesnake grimdark:0 #Baby Mutant Rattlesnake grimdark:1 +# Fairyeverything +stat 7 Jill-of-All-Trades # Fairyballs -stat 6 Elf Operative -stat 7 Optimistic Candle -stat 8 Rockin' Robin -stat 9 Hobo in Sheep's Clothing +stat 8 Elf Operative +stat 9 Optimistic Candle +stat 10 Rockin' Robin +stat 11 Hobo in Sheep's Clothing # Volleychauns -stat 10 Ghost of Crimbo Commerce -stat 11 Golden Monkey -stat 12 Bloovian Groose -stat 13 Unconscious Collective -stat 14 Grim Brother -stat 15 Dramatic Hedgehog -stat 16 Chauvinist Pig -stat 17 Uniclops -stat 18 Hunchbacked Minion -stat 19 Nervous Tick -stat 20 Cymbal-Playing Monkey -stat 21 Cheshire Bat +stat 12 Ghost of Crimbo Commerce +stat 13 Golden Monkey +stat 14 Bloovian Groose +stat 15 Unconscious Collective +stat 16 Grim Brother +stat 17 Dramatic Hedgehog +stat 18 Chauvinist Pig +stat 19 Uniclops +stat 20 Hunchbacked Minion +stat 21 Nervous Tick +stat 22 Cymbal-Playing Monkey +stat 23 Cheshire Bat # VolleyWhelps -stat 22 Melodramedary +stat 24 Melodramedary # Build up weight for free runs -stat 23 Frumious Bandersnatch +stat 25 Frumious Bandersnatch # Slightly special volleyballs -stat 24 Ghost of Crimbo Cheer -stat 25 Reanimated Reanimator -stat 26 God Lobster -stat 27 Party Mouse -stat 28 Lil' Barrel Mimic -stat 29 Piranha Plant -stat 30 Antique Nutcracker -stat 31 Jill-O-Lantern +stat 26 Ghost of Crimbo Cheer +stat 27 Reanimated Reanimator +stat 28 God Lobster +stat 29 Party Mouse +stat 30 Lil' Barrel Mimic +stat 31 Piranha Plant +stat 32 Antique Nutcracker +stat 33 Jill-O-Lantern # Fancy -stat 32 Miniature Sword & Martini Guy +stat 34 Miniature Sword & Martini Guy #Baby Mutant Rattlesnake grimdark:2 # Turtles are cute -stat 33 Grinning Turtle +stat 35 Grinning Turtle # His winning smile -stat 34 Smiling Rat +stat 36 Smiling Rat # The original -stat 35 Blood-Faced Volleyball +stat 37 Blood-Faced Volleyball yellowray 0 Crimbo Shrub # Nanorhino and He-Boulder would require a bit of extra doing to make work diff --git a/RELEASE/scripts/autoscend.ash b/RELEASE/scripts/autoscend.ash index c4c50bb90..bb6984933 100644 --- a/RELEASE/scripts/autoscend.ash +++ b/RELEASE/scripts/autoscend.ash @@ -1,4 +1,4 @@ -since r27557; // support small path +since r27637; // support jill-of-all-trades /*** autoscend_header.ash must be first import All non-accessory scripts must be imported here @@ -1781,6 +1781,7 @@ boolean doTasks() auto_buyFireworksHat(); auto_CMCconsult(); auto_checkTrainSet(); + prioritizeGoose(); ocrs_postCombatResolve(); beatenUpResolution(); @@ -1844,7 +1845,6 @@ boolean doTasks() auto_voteSetup(0,0,0); auto_setSongboom(); if(LX_ForceNC()) return true; - prioritizeGoose(); if(LX_dronesOut()) return true; if(LM_bond()) return true; if(LX_calculateTheUniverse(false)) return true; diff --git a/RELEASE/scripts/autoscend/auto_familiar.ash b/RELEASE/scripts/autoscend/auto_familiar.ash index 9330b00f4..e1fb84049 100644 --- a/RELEASE/scripts/autoscend/auto_familiar.ash +++ b/RELEASE/scripts/autoscend/auto_familiar.ash @@ -282,6 +282,8 @@ familiar lookupFamiliarDatafile(string type) //we do not want a fallback here. if no matching familiar is found then do nothing here, a familiar will be automatically set in pre adventure auto_log_debug("lookupFamiliarDatafile is checking for type [" + type + "]"); + // store what type of fam we are looking for + set_property("auto_lastFamiliarLookupType",type); string [string,int,string] familiars_text; if(!file_to_map("autoscend_familiars.txt", familiars_text)) { @@ -461,13 +463,13 @@ boolean autoChooseFamiliar(location place) } // if we somehow end up in The Valley of Rof L'm Fao might as well try to get N - if ($location[The Valley of Rof L'm Fao] == place && item_amount($item[lowercase N]) == 0 && item_amount($item[ND]) == 0 && item_amount($item[Wand of Nagamar]) == 0 && get_property("auto_wandOfNagamar").to_boolean()) { + if ($location[The Valley of Rof L\'m Fao] == place && item_amount($item[lowercase N]) == 0 && item_amount($item[ND]) == 0 && item_amount($item[Wand of Nagamar]) == 0 && get_property("auto_wandOfNagamar").to_boolean()) { famChoice = lookupFamiliarDatafile("item"); } - // the D is only individually useful in paths that also visit The Valley of Rof L'm Fao for N + // the D is only individually useful in paths that also visit The Valley of Rof L\'m Fao for N // this is only in Low Key Summer for now, but can be in other paths if they get support: Journeyman, Grey You if ($location[The Castle in the Clouds in the Sky (Basement)] == place && item_amount($item[heavy D]) == 0 && item_amount($item[ND]) == 0 && item_amount($item[Wand of Nagamar]) == 0 && get_property("auto_wandOfNagamar").to_boolean()) { - boolean wantTheD = in_lowkeysummer() && (item_amount($item[lowercase N]) > 0 || $location[The Valley of Rof L'm Fao].turns_spent < 11); //!possessEquipment($item[Kekekey]) + boolean wantTheD = in_lowkeysummer() && (item_amount($item[lowercase N]) > 0 || $location[The Valley of Rof L\'m Fao].turns_spent < 11); //!possessEquipment($item[Kekekey]) if(wantTheD) { famChoice = lookupFamiliarDatafile("item"); @@ -775,7 +777,7 @@ void preAdvUpdateFamiliar(location place) run_choice(-1); set_property("_auto_gnomeArenaVisited", "true"); } - autoEquip($slot[familiar], $item[gnomish housemaid's kgnee]); + autoEquip($slot[familiar], $item[gnomish housemaid\'s kgnee]); } if (my_familiar() == $familiar[Baby Bugged Bugbear]) @@ -801,6 +803,13 @@ void preAdvUpdateFamiliar(location place) } } } + + if(my_familiar() == $familiar[Jill-of-All-Trades] && item_amount($item[LED candle]) > 0) + { + // maximizer uses whatever mode LED candle is in, won't change it + // so ensure in correct mode prior to maximizing + auto_handleJillOfAllTrades(); + } if(auto_checkFamiliarMummery(my_familiar())) { diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 8d929c736..c7bee2ead 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -522,6 +522,8 @@ void auto_useBlackMonolith(); boolean auto_haveAugustScepter(); void auto_scepterSkills(); void auto_lostStomach(); +boolean auto_haveJillOfAllTrades(); +void auto_handleJillOfAllTrades(); ######################################################################################################## //Defined in autoscend/paths/actually_ed_the_undying.ash diff --git a/RELEASE/scripts/autoscend/iotms/mr2022.ash b/RELEASE/scripts/autoscend/iotms/mr2022.ash index e4c15efb0..de3d2d69a 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2022.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2022.ash @@ -157,11 +157,9 @@ boolean auto_haveGreyGoose() int gooseExpectedDrones() { if(!auto_haveGreyGoose()) return 0; - if(my_familiar() == $familiar[Grey Goose]) - { - set_property("auto_gooseExpectedDrones", familiar_weight($familiar[Grey Goose]) - 5); - } - return get_property("auto_gooseExpectedDrones").to_int(); + int gooseWeight = familiar_weight($familiar[Grey Goose]); + if(gooseWeight < 5) return 0; + return gooseWeight - 5; } boolean dronesOut() //want a function to override the task order if we have drones out so as not to waste them @@ -181,7 +179,7 @@ void prioritizeGoose() //prioritize Goose only if we still have things to get ((item_amount($item[Stone Wool]) == 0 && have_effect($effect[Stone-Faced]) == 0 && internalQuestStatus("questL11Worship") <= 2) && gooseExpectedDrones() < 1) || (internalQuestStatus("questL08Trapper") <= 1 && gooseExpectedDrones() < 1) || (((internalQuestStatus("questL09Topping") >= 2 && internalQuestStatus("questL09Topping") <= 3) && get_property("twinPeakProgress").to_int() < 15) && gooseExpectedDrones() < 2) || - ((needStarKey() && (item_amount($item[star]) < 7 && item_amount($item[line]) < 6)) && gooseExpectedDrones() < 8) || + ((needStarKey() && (item_amount($item[star]) < 7 && item_amount($item[line]) < 6)) && gooseExpectedDrones() < 4) || (internalQuestStatus("questL11Ron") < 5 && gooseExpectedDrones() < 2) || ((get_property("hiddenBowlingAlleyProgress").to_int() + item_amount($item[Bowling Ball])) < 5 && gooseExpectedDrones() < 2) || (((item_amount($item[Crumbling Wooden Wheel]) + item_amount($item[Tomb Ratchet])) < 9) && gooseExpectedDrones() < 3)) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index a2ecb443b..28a152511 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -474,3 +474,77 @@ void auto_lostStomach(boolean force) use_skill($skill[Aug. 16th: Roller Coaster Day!]); } } + +boolean auto_haveJillOfAllTrades() +{ + if(auto_have_familiar($familiar[Jill-of-All-Trades])) + { + return true; + } + return false; +} + +string getParsedCandleMode() +{ + // returns candle mode which matches our familiar categories + switch(get_property("ledCandleMode")) + { + case "disco": + return "item"; + case "ultraviolet": + return "meat"; + case "reading": + return "stat"; + case "red": + return "boss"; + default: + return "unknown"; + + } +} + +void auto_handleJillOfAllTrades() +{ + if (!auto_haveJillOfAllTrades() || item_amount($item[LED candle]) == 0) + { + return; + } + + // only bother to configure candle if Jill is equiped + if(my_familiar() != $familiar[Jill-of-All-Trades]) + { + return; + } + + string currentMode = getParsedCandleMode(); + // want to configure jill to have bonus of whatever fam type we last looked up + string desiredCandleMode = get_property("auto_lastFamiliarLookupType"); + + auto_log_debug(`Jill current mode: {currentMode} and desired is {desiredCandleMode}`); + if(currentMode == desiredCandleMode) + { + return; + } + + switch(desiredCandleMode) + { + case "item": + case "regen": + cli_execute("jillcandle item"); + break; + case "meat": + cli_execute("jillcandle meat"); + break; + case "stat": + case "drop": + cli_execute("jillcandle stat"); + break; + case "boss": + cli_execute("jillcandle attack"); + break; + default: + abort("tried to configure Jill's LED Candle with a non-supported type"); + } + + return; +} From d0acdb338c8efc550dc911a888c908addcac7f94 Mon Sep 17 00:00:00 2001 From: Alium58 Date: Mon, 16 Oct 2023 10:16:08 -0500 Subject: [PATCH 5/7] only need 1 led candle for jill (#1374) --- BUILD/familiars/item.dat | 2 +- BUILD/familiars/meat.dat | 2 +- BUILD/familiars/stat.dat | 2 +- RELEASE/data/autoscend_familiars.txt | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/BUILD/familiars/item.dat b/BUILD/familiars/item.dat index e6636fb0e..ce6fae431 100644 --- a/BUILD/familiars/item.dat +++ b/BUILD/familiars/item.dat @@ -5,7 +5,7 @@ Steam-Powered Cheerleader path:KOLHS # Fairies with a multiplier # 1.5x multiplier fairy -Jill-of-All-Trades item:LED candle>1 +Jill-of-All-Trades item:LED candle>0 # 1.4x multiplier fairy Steam-Powered Cheerleader prop:_cheerleaderSteam>150 # 1.3x multiplier fairy diff --git a/BUILD/familiars/meat.dat b/BUILD/familiars/meat.dat index c80793663..d39ae0e5b 100644 --- a/BUILD/familiars/meat.dat +++ b/BUILD/familiars/meat.dat @@ -17,7 +17,7 @@ Adventurous Spelunker prop:_spelunkingTalesDrops<1 Blavious Kloop prop:_kloopDrops<3 # Leprechauns with a >1 multiplier # 1.5x multiplier leprechaun -Jill-of-All-Trades item:LED candle>1 +Jill-of-All-Trades item:LED candle>0 #Mutant Cactus Bud grimdark:0 Hobo Monkey #Mutant Cactus Bud grimdark:1 diff --git a/BUILD/familiars/stat.dat b/BUILD/familiars/stat.dat index 237173750..7b0c392a6 100644 --- a/BUILD/familiars/stat.dat +++ b/BUILD/familiars/stat.dat @@ -7,7 +7,7 @@ Hovering Sombrero ML:>=120 # Can be tuned to give pure mainstat, so it's better than other volleyballs Crimbo Shrub # Volleyballs with a multiplier -Jill-of-All-Trades item:LED candle>1 +Jill-of-All-Trades item:LED candle>0 #Baby Mutant Rattlesnake grimdark:0 #Baby Mutant Rattlesnake grimdark:1 # Fairyeverything diff --git a/RELEASE/data/autoscend_familiars.txt b/RELEASE/data/autoscend_familiars.txt index 04471a513..164f22139 100644 --- a/RELEASE/data/autoscend_familiars.txt +++ b/RELEASE/data/autoscend_familiars.txt @@ -108,7 +108,7 @@ init 3 Happy Medium item 0 Steam-Powered Cheerleader path:KOLHS # Fairies with a multiplier # 1.5x multiplier fairy -item 1 Jill-of-All-Trades item:LED candle>1 +item 1 Jill-of-All-Trades item:LED candle>0 # 1.4x multiplier fairy item 2 Steam-Powered Cheerleader prop:_cheerleaderSteam>150 # 1.3x multiplier fairy @@ -206,7 +206,7 @@ meat 8 Adventurous Spelunker prop:_spelunkingTalesDrops<1 meat 9 Blavious Kloop prop:_kloopDrops<3 # Leprechauns with a >1 multiplier # 1.5x multiplier leprechaun -meat 10 Jill-of-All-Trades item:LED candle>1 +meat 10 Jill-of-All-Trades item:LED candle>0 #Mutant Cactus Bud grimdark:0 meat 11 Hobo Monkey #Mutant Cactus Bud grimdark:1 @@ -321,7 +321,7 @@ stat 4 Hovering Sombrero ML:>=120 # Can be tuned to give pure mainstat, so it's better than other volleyballs stat 5 Crimbo Shrub # Volleyballs with a multiplier -stat 6 Jill-of-All-Trades item:LED candle>1 +stat 6 Jill-of-All-Trades item:LED candle>0 #Baby Mutant Rattlesnake grimdark:0 #Baby Mutant Rattlesnake grimdark:1 # Fairyeverything From 5471775ed62bcf35e2f9b3ee9993638463282c22 Mon Sep 17 00:00:00 2001 From: Alium58 Date: Mon, 16 Oct 2023 13:38:29 -0500 Subject: [PATCH 6/7] summon and backup grops into delay (#1372) --- RELEASE/scripts/autoscend/auto_util.ash | 13 +++++++++++++ RELEASE/scripts/autoscend/autoscend_header.ash | 1 + RELEASE/scripts/autoscend/iotms/mr2021.ash | 4 ++++ 3 files changed, 18 insertions(+) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index bdd0e9e65..1a535b7e6 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -1991,6 +1991,12 @@ boolean LX_summonMonster() if(summonMonster($monster[Astronomer])) return true; } + // summon grops to start copy chain. Goal is to copy into delay zones and get war progress at same time. Bonus if we get smoke bombs + if(!summonedMonsterToday($monster[Green Ops Soldier]) && get_property("hippiesDefeated").to_int() > 399 && get_property("hippiesDefeated").to_int() < 1000 && !in_koe()) + { + if(summonMonster($monster[Green Ops Soldier])) return true; + } + // summon additional monsters in heavy rains with rain man when available if(have_skill($skill[Rain Man]) && my_rain() >= 50) { @@ -2095,6 +2101,13 @@ boolean summonMonster(monster mon, boolean speculative) return false; } +boolean summonedMonsterToday(monster mon) +{ + string copiedMonsters = get_property("auto_copies"); + string searchString = "(" + my_daycount() + ":" + mon.to_string(); + return contains_text(copiedMonsters, searchString); +} + boolean handleCopiedMonster(item itm) { return handleCopiedMonster(itm, ""); diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index c7bee2ead..401edc85e 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -1686,6 +1686,7 @@ boolean LX_summonMonster(); boolean canSummonMonster(monster mon); boolean summonMonster(monster mon); boolean summonMonster(monster mon, boolean speculative); +boolean summonedMonsterToday(monster mon); boolean handleCopiedMonster(item itm); boolean handleCopiedMonster(item itm, string option); int maxSealSummons(); diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index 5ef7432a2..a278a9e21 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -354,6 +354,10 @@ boolean auto_backupTarget() if(!acquiredFantasyRealmToken() && auto_backupUsesLeft() >= (5 - fantasyBanditsFought())) return true; break; + case $monster[Green Ops Soldier]: + if(get_property("hippiesDefeated").to_int() > 399 && get_property("hippiesDefeated").to_int() < 1000 && !in_koe()) + return true; + break; default: break; } From 1cff4fd6ee51ac31da5d1d03ccc8351908589c4d Mon Sep 17 00:00:00 2001 From: Malibu Stacey <50261170+Malibu-Stacey@users.noreply.github.com> Date: Mon, 16 Oct 2023 11:46:42 -0700 Subject: [PATCH 7/7] make sure CMG is equipped when burning delay and pre-charge it for subsequent days. (#1373) --- RELEASE/scripts/autoscend.ash | 8 +--- RELEASE/scripts/autoscend/auto_equipment.ash | 12 ++---- .../scripts/autoscend/autoscend_header.ash | 3 ++ RELEASE/scripts/autoscend/iotms/mr2022.ash | 42 +++++++++++++++++++ 4 files changed, 51 insertions(+), 14 deletions(-) diff --git a/RELEASE/scripts/autoscend.ash b/RELEASE/scripts/autoscend.ash index bb6984933..2f8c12e3c 100644 --- a/RELEASE/scripts/autoscend.ash +++ b/RELEASE/scripts/autoscend.ash @@ -362,9 +362,7 @@ boolean LX_burnDelay() boolean wannaDigitize = isOverdueDigitize(); boolean wannaSausage = auto_sausageGoblin(); boolean wannaBackup = auto_backupTarget(); - // Cursed Magnifying Glass gives a void monster combat every 13 turns. The first 5 are free fights - // _voidFreeFights counts up from 0 and stays at 5 once all free fights are completed for the day - boolean voidMonsterNext = (get_property("_voidFreeFights").to_int() < 5) && (get_property("cursedMagnifyingGlassCount").to_int() == 13); + boolean voidMonsterNext = auto_voidMonster(); // if we're a plumber and we're still stuck doing a flat 15 damage per attack // then a scaling monster is probably going to be a bad time @@ -426,12 +424,10 @@ boolean LX_burnDelay() if(voidMonsterNext) { auto_log_info("Burn some delay somewhere (cursed magnifying glass), if we found a place!", "green"); - set_property("auto_nextEncounter","void guy"); //which of the 3 is random, but they're all same phylum and free under same conditions - if(autoAdv(burnZone)) + if(auto_voidMonster(burnZone)) { return true; } - set_property("auto_nextEncounter",""); } } else if(wannaVote || wannaDigitize || wannaSausage || voidMonsterNext) diff --git a/RELEASE/scripts/autoscend/auto_equipment.ash b/RELEASE/scripts/autoscend/auto_equipment.ash index 037d4a87a..c95f21fe1 100644 --- a/RELEASE/scripts/autoscend/auto_equipment.ash +++ b/RELEASE/scripts/autoscend/auto_equipment.ash @@ -688,25 +688,21 @@ void finalizeMaximize(boolean speculative) addToMaximize("-equip " + wrap_item($item[Kramco Sausage-o-Matic™]).to_string()); } } - if (possessEquipment($item[Cursed Magnifying Glass])) + if (auto_haveCursedMagnifyingGlass()) { if (get_property("cursedMagnifyingGlassCount").to_int() == 13) { - if(get_property("mappingMonsters").to_boolean() || auto_backupTarget() || (get_property("_voidFreeFights").to_int() >= 5 && !in_hardcore())) + if(get_property("mappingMonsters").to_boolean() || auto_backupTarget() || (get_property("_voidFreeFights").to_int() >= 5 && get_property("cursedMagnifyingGlassCount").to_int() >= 13 && !in_hardcore())) { // don't equip for non free fights in softcore? (pending allowed conditions like delay zone && none of the monsters in the zone is a sniff/YR target?) // don't interfere with backups or Map the Monsters addToMaximize("-equip " + $item[Cursed Magnifying Glass].to_string()); } - else if(get_property("_voidFreeFights").to_int() < 5) - { - // add bonus if next fight is a free void monster - addBonusToMaximize($item[Cursed Magnifying Glass], 1000); - } } - else if(!nextMonsterIsFree && get_property("_voidFreeFights").to_int() < 5 && solveDelayZone() != $location[none]) + else if(!nextMonsterIsFree && (get_property("_voidFreeFights").to_int() < 5 || (get_property("_voidFreeFights").to_int() >= 5 && get_property("cursedMagnifyingGlassCount").to_int() < 13)) && solveDelayZone() != $location[none]) { // add bonus to charge free fights. charge is added when completing nonfree fights only + // also we can pre-charge it for the next day once we have used our 5 free fights. addBonusToMaximize($item[Cursed Magnifying Glass], 200); } } diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 401edc85e..4b52bf81b 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -456,6 +456,9 @@ void auto_CMCconsult(); ######################################################################################################## //Defined in autoscend/iotms/mr2022.ash +boolean auto_haveCursedMagnifyingGlass(); +boolean auto_voidMonster(); +boolean auto_voidMonster(location loc); boolean auto_haveCosmicBowlingBall(); string auto_bowlingBallCombatString(location place, boolean speculation); boolean auto_haveCombatLoversLocket(); diff --git a/RELEASE/scripts/autoscend/iotms/mr2022.ash b/RELEASE/scripts/autoscend/iotms/mr2022.ash index de3d2d69a..c5ceb809b 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2022.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2022.ash @@ -1,5 +1,47 @@ # This is meant for items that have a date of 2022 +boolean auto_haveCursedMagnifyingGlass() +{ + if (possessEquipment($item[cursed magnifying glass]) && auto_can_equip($item[cursed magnifying glass])) { + return true; + } + return false; +} + +boolean auto_voidMonster() +{ + return auto_voidMonster($location[none]); +} + +boolean auto_voidMonster(location loc) +{ + // Cursed Magnifying Glass gives a void monster combat every 13 turns. The first 5 are free fights + // _voidFreeFights counts up from 0 and stays at 5 once all free fights are completed for the day + if (!auto_haveCursedMagnifyingGlass()) + { + return false; + } + + // return false if we've fought the 5 free void monsters already today or we're still charging up the counter + if (get_property("_voidFreeFights").to_int() >= 5 || get_property("cursedMagnifyingGlassCount").to_int() != 13) + { + return false; + } + + if (loc == $location[none]) + { + return true; + } + + if (autoEquip($item[cursed magnifying glass])) + { + set_property("auto_nextEncounter","void guy"); //which of the 3 is random, but they're all same phylum and free under same conditions + return autoAdv(loc); + } + set_property("auto_nextEncounter",""); + return false; +} + boolean auto_haveCosmicBowlingBall() { // ensure we not only own one but it's in allowed in path and also in inventory for us to do stuff with.