From baa01e79f7f2d61fa95d1d101786f98a4cc4c3a9 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 6 Oct 2023 23:08:49 -0400 Subject: [PATCH 01/85] Initial Eagle Support, CMC change, and bug fix --- BUILD/monsters/phylumbanish.dat | 12 +++++ RELEASE/scripts/autoscend/auto_util.ash | 13 +++++ .../scripts/autoscend/autoscend_header.ash | 3 ++ .../combat/auto_combat_default_stage1.ash | 7 +++ .../autoscend/combat/auto_combat_util.ash | 8 ++- RELEASE/scripts/autoscend/iotms/mr2021.ash | 8 ++- RELEASE/scripts/autoscend/iotms/mr2023.ash | 49 ++++++++++++++++++- RELEASE/scripts/autoscend/quests/level_07.ash | 12 ++++- 8 files changed, 107 insertions(+), 5 deletions(-) create mode 100644 BUILD/monsters/phylumbanish.dat diff --git a/BUILD/monsters/phylumbanish.dat b/BUILD/monsters/phylumbanish.dat new file mode 100644 index 000000000..ed936d7bf --- /dev/null +++ b/BUILD/monsters/phylumbanish.dat @@ -0,0 +1,12 @@ +dude loc:The Black Forest +dude loc:Twin Peak +dude loc:Whitey's Grove +beast loc:The Hidden Park +beast loc:Inside the Palindome +beast loc:The Penultimate Fantasy Airship +construct loc:The Penultimate Fantasy Airship +undead loc:The Haunted Library +undead loc:The Red Zeppelin +undead loc:The Haunted Wine Cellar +undead loc:The Haunted Boiler Room +undead loc:The Middle Chamber diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index ba3a26caa..69c1e2369 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -841,6 +841,15 @@ boolean auto_wantToBanish(monster enemy, location loc) return monstersToBanish[enemy]; } +boolean auto_wantPhylumBanish(phylum enemyphylum, location loc) +{ + location locCache = my_location(); + set_location(loc); + boolean [phylum] phylumToBanish = auto_getMonsters("phylumbanish"); + set_location(locCache); + return phylumToBanish[enemyphylum]; +} + boolean canBanish(monster enemy, location loc) { return banisherCombatString(enemy, loc) != ""; @@ -890,6 +899,10 @@ boolean adjustForBanish(string combat_string) { return autoEquip($item[Kremlin\'s Greatest Briefcase]); } + if(combat_string == "skill" + $skill[%fn\, Release the Patriotic Screech!]) + { + return use_familiar($familiar[Patriotic Eagle]); + } if(combat_string == "skill " + $skill[Beancannon]) { foreach beancan in $items[Frigid Northern Beans, Heimz Fortified Kidney Beans, Hellfire Spicy Beans, Mixed Garbanzos and Chickpeas, Pork 'n' Pork 'n' Pork 'n' Beans, Shrub's Premium Baked Beans, Tesla's Electroplated Beans, Trader Olaf's Exotic Stinkbeans, World's Blackest-Eyed Peas] diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 393be203f..a0f765faa 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(); +void auto_haveEagle(); +boolean auto_getCitizenZone(string goal); ######################################################################################################## //Defined in autoscend/paths/actually_ed_the_undying.ash @@ -1626,6 +1628,7 @@ boolean canYellowRay(monster target); boolean canYellowRay(); boolean[string] auto_banishesUsedAt(location loc); boolean auto_wantToBanish(monster enemy, location loc); +boolean auto_wantPhylumBanish(phylum enemyphylum, location loc); boolean canBanish(monster enemy, location loc); boolean adjustForBanish(string combat_string); boolean adjustForBanishIfPossible(monster enemy, location loc); diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash index 5bb143ae6..eb719fa3a 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash @@ -234,6 +234,13 @@ string auto_combatDefaultStage1(int round, monster enemy, string text) handleTracker($skill[%fn\, spit on them!], enemy, "auto_otherstuff"); return useSkill($skill[%fn\, spit on them!], true); } + + //[Patriotic Eagle] familiar skill that gives a useful buff + if ($locations[The Haunted Library, The Haunted Laundry Room, Whitey\'s Grove, Lair of the Ninja Snowmen, The Hidden Hospital, The Haunted Bathroom, An Oasis, The Haunted Kitchen, Oil Peak] contains my_location() && canUse($skill[%fn\, let's pledge allegiance to a Zone])) + { + handleTracker($skill[%fn\, let's pledge allegiance to a Zone!], enemy, "auto_otherstuff"); + return useSkill($skill[%fn\, let's pledge allegiance to a Zone!], true); + } //duplicate turns the enemy from a single enemy into a mob containing 2 copies of this enemy. Doubling their stats and doubling their drops if(canUse($skill[Duplicate]) && (get_property("_sourceTerminalDuplicateUses").to_int() == 0) && !inAftercore() && !in_nuclear()) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index e1c251bb6..e14460b44 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -501,6 +501,9 @@ string banisherCombatString(monster enemy, location loc, boolean inCombat) if(!auto_wantToBanish(enemy, loc)) return ""; + if(!auto_wantPhylumBanish(enemy.phylum, loc)) + return ""; + if(inCombat) auto_log_info("Finding a banisher to use on " + enemy + " at " + loc, "green"); @@ -613,7 +616,10 @@ string banisherCombatString(monster enemy, location loc, boolean inCombat) { return "skill " + $skill[Show Your Boring Familiar Pictures]; } - + if(auto_have_skill($skill[%fn\, Release the Patriotic Screech!]) && !(used contains "Release the Patriotic Screech!") && auto_wantPhylumBanish(enemy.phylum, loc)) + { + return "skill" + $skill[%fn\, Release the Patriotic Screech!]; + } // bowling ball is only in inventory if it is available to use in combat. While on cooldown, it is not in inventory if((inCombat ? auto_have_skill($skill[Bowl a Curveball]) : item_amount($item[Cosmic Bowling Ball]) > 0) && auto_is_valid($skill[Bowl a Curveball]) && !(used contains "Bowl a Curveball")) { diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index 8933cf88d..c8c43f932 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -899,7 +899,13 @@ void auto_CMCconsult() else if(auto_CMCconsultsLeft() <= 2 && freeCrafts() >= 5 && possessEquipment($item[ice crown]) && my_meat() >= meatReserve()) { //only looking for Breathitin from at least 11 fights spent underground - if(my_location().environment != "underground") + string[int] lCEMap; + lCEMap = split_string(get_property("lastCombatEnvironments","")); + int uTurns; + foreach turn in lCEMap { + if (lCEMap[turn] == "u") {uTurns +=1}; + } + if(uTurns < 11) { //if Breathitin was not available last turn and last location was not underground it will still not be available now so no visit needed return; diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index a2ecb443b..ac04cd1f3 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -448,7 +448,7 @@ void auto_scepterSkills() { if(!is100FamRun()) { - handleFamiliar("stat"); //get any familiar equipped if not in a 100% run + use_familiar(findNonRockFamiliarInTerrarium()); //equip non-rock fam to ensure we get tiny gold medal } use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment } @@ -474,3 +474,50 @@ void auto_lostStomach(boolean force) use_skill($skill[Aug. 16th: Roller Coaster Day!]); } } + +void auto_haveEagle() +{ + if(auto_have_familiar($familiar[Patriotic Eagle])) + { + return true; + } + return false; +} + +boolean auto_getCitizenZone(string goal) +{ + familiar eagle = $familiar[Patriotic Eagle]; + string activeCitZoneMod = get_property("auto_patEagleGoal").to_string(); + if !auto_haveEagle() + { + return false; + } + if(have_effect($effect[Citizen of a Zone]) && goal == activeCitZoneMod) + { + return false; + } + if(goal != activeCitZoneMod && item_amount($item[Soft Green Echo Eyedrop Antidote]) > 0) + { + uneffect($effect[Citizen of a Zone]); + } + //Get +30% item + if(can_adventure($location[The Haunted Library]) && goal == "item") + { + use_familiar(eagle); + set_property("auto_patEagleGoal", "item") + return autoAdv($location[The Haunted Library]); + } + //Get +50% meat + if(can_adventure($location[Lair of the Ninja Snowmen]) && goal == "meat") + { + use_familiar(eagle); + return autoAdv($location[Lair of the Ninja Snowmen]); + } + //Get +100% initiative + if(can_adventure($location[The Haunted Kitchen]) && goal == "initiative") + { + use_familiar(eagle); + return autoAdv($location[The Haunted Kitchen]); + } + return false; +} diff --git a/RELEASE/scripts/autoscend/quests/level_07.ash b/RELEASE/scripts/autoscend/quests/level_07.ash index e9f8eb135..4e0666310 100644 --- a/RELEASE/scripts/autoscend/quests/level_07.ash +++ b/RELEASE/scripts/autoscend/quests/level_07.ash @@ -192,9 +192,17 @@ boolean L7_crypt() // crypt is underground so it will generate breathitins, 5 turns free outside // allow adventuring in Alcove (above) since many backup charges get used for modern zmobies // not delaying better distributes these charges across days - if(auto_is_valid($item[cold medicine cabinet]) && item_amount($item[cold medicine cabinet]) > 0 && + // keep only 11 underground turns in the last 20 advs + string[int] lCEMap; + lCEMap = split_string(get_property("lastCombatEnvironments","")); + int uTurns; + foreach turn in lCEMap { + if (lCEMap[turn] == "u") {uTurns +=1}; + } + if((auto_is_valid($item[cold medicine cabinet]) && item_amount($item[cold medicine cabinet]) > 0 && get_workshed() != $item[cold medicine cabinet] && !isAboutToPowerlevel() && - (LX_getDesiredWorkshed() == $item[cold medicine cabinet] || LX_getDesiredWorkshed() == $item[none])) + (LX_getDesiredWorkshed() == $item[cold medicine cabinet] || LX_getDesiredWorkshed() == $item[none])) || + (get_workshed() == $item[cold medicine cabinet] && uTurns > 11)) { return false; } From 4ae78a208edb77765f11f18e77cdd67dbbf2dfdc Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 7 Oct 2023 00:24:15 -0400 Subject: [PATCH 02/85] Assemble the dat files into txts --- RELEASE/data/autoscend_monsters.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/RELEASE/data/autoscend_monsters.txt b/RELEASE/data/autoscend_monsters.txt index a11d1332e..743601b80 100644 --- a/RELEASE/data/autoscend_monsters.txt +++ b/RELEASE/data/autoscend_monsters.txt @@ -56,6 +56,19 @@ banish 49 Battlesuit Bugbear Type path:Bugbear Invasion:loc:Engineering;!sniffed banish 50 ancient unspeakable bugbear path:Bugbear Invasion;loc:Navigation;!sniffed:ancient unspeakable bugbear banish 51 trendy bugbear chef path:Bugbear Invasion;loc:Galley;loc:Gallery;!sniffed:trendy bugbear chef +phylumbanish 0 dude loc:The Black Forest +phylumbanish 1 dude loc:Twin Peak +phylumbanish 2 dude loc:Whitey's Grove +phylumbanish 3 beast loc:The Hidden Park +phylumbanish 4 beast loc:Inside the Palindome +phylumbanish 5 beast loc:The Penultimate Fantasy Airship +phylumbanish 6 construct loc:The Penultimate Fantasy Airship +phylumbanish 7 undead loc:The Haunted Library +phylumbanish 8 undead loc:The Red Zeppelin +phylumbanish 9 undead loc:The Haunted Wine Cellar +phylumbanish 10 undead loc:The Haunted Boiler Room +phylumbanish 11 undead loc:The Middle Chamber + replace 0 Banshee Librarian item:Killing Jar>0 replace 1 Beefy Bodyguard Bat loc:The Boss Bat's Lair;turnsspent:The Boss Bat's Lair>=4;!path:Heavy Rains;!path:Actually Ed the Undying;!path:Pocket Familiars;!path:Dark Gyffte;!path:Path of the Plumber;!pathid:41;!path:Wildfire;!path:Fall of the Dinosaurs;!path:Avator of Shadows Over Loathing;!path:Legacy of Loathing replace 2 Knob Goblin Madam item:Knob Goblin Perfume>0 From 27d8571ab105db6dc10eb1c3d5c51b3a0911d9f8 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 7 Oct 2023 00:28:47 -0400 Subject: [PATCH 03/85] Silly fixes --- RELEASE/scripts/autoscend/autoscend_header.ash | 2 +- RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash | 2 +- RELEASE/scripts/autoscend/iotms/mr2023.ash | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index a0f765faa..41546d00e 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -522,7 +522,7 @@ void auto_useBlackMonolith(); boolean auto_haveAugustScepter(); void auto_scepterSkills(); void auto_lostStomach(); -void auto_haveEagle(); +boolean auto_haveEagle(); boolean auto_getCitizenZone(string goal); ######################################################################################################## diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash index eb719fa3a..07738cbce 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash @@ -236,7 +236,7 @@ string auto_combatDefaultStage1(int round, monster enemy, string text) } //[Patriotic Eagle] familiar skill that gives a useful buff - if ($locations[The Haunted Library, The Haunted Laundry Room, Whitey\'s Grove, Lair of the Ninja Snowmen, The Hidden Hospital, The Haunted Bathroom, An Oasis, The Haunted Kitchen, Oil Peak] contains my_location() && canUse($skill[%fn\, let's pledge allegiance to a Zone])) + if ($locations[The Haunted Library, The Haunted Laundry Room, Whitey\'s Grove, Lair of the Ninja Snowmen, The Hidden Hospital, The Haunted Bathroom, The Oasis, The Haunted Kitchen, Oil Peak] contains my_location() && canUse($skill[%fn\, let's pledge allegiance to a Zone])) { handleTracker($skill[%fn\, let's pledge allegiance to a Zone!], enemy, "auto_otherstuff"); return useSkill($skill[%fn\, let's pledge allegiance to a Zone!], true); diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index ac04cd1f3..00ef58c8b 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -475,7 +475,7 @@ void auto_lostStomach(boolean force) } } -void auto_haveEagle() +boolean auto_haveEagle() { if(auto_have_familiar($familiar[Patriotic Eagle])) { From ba0375bce33b6e4c78ec53a129d8b60b678b0486 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 7 Oct 2023 00:34:39 -0400 Subject: [PATCH 04/85] More minor fixes --- .../scripts/autoscend/combat/auto_combat_default_stage1.ash | 6 +++--- RELEASE/scripts/autoscend/iotms/mr2021.ash | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash index 07738cbce..3ed239442 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash @@ -236,10 +236,10 @@ string auto_combatDefaultStage1(int round, monster enemy, string text) } //[Patriotic Eagle] familiar skill that gives a useful buff - if ($locations[The Haunted Library, The Haunted Laundry Room, Whitey\'s Grove, Lair of the Ninja Snowmen, The Hidden Hospital, The Haunted Bathroom, The Oasis, The Haunted Kitchen, Oil Peak] contains my_location() && canUse($skill[%fn\, let's pledge allegiance to a Zone])) + if ($locations[The Haunted Library, The Haunted Laundry Room, Whitey\'s Grove, Lair of the Ninja Snowmen, The Hidden Hospital, The Haunted Bathroom, The Oasis, The Haunted Kitchen, Oil Peak] contains my_location() && canUse($skill[%fn\, let\'s pledge allegiance to a Zone])) { - handleTracker($skill[%fn\, let's pledge allegiance to a Zone!], enemy, "auto_otherstuff"); - return useSkill($skill[%fn\, let's pledge allegiance to a Zone!], true); + handleTracker($skill[%fn\, let\'s pledge allegiance to a Zone!], enemy, "auto_otherstuff"); + return useSkill($skill[%fn\, let\'s pledge allegiance to a Zone!], true); } //duplicate turns the enemy from a single enemy into a mob containing 2 copies of this enemy. Doubling their stats and doubling their drops diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index c8c43f932..29adaa933 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -900,7 +900,7 @@ void auto_CMCconsult() { //only looking for Breathitin from at least 11 fights spent underground string[int] lCEMap; - lCEMap = split_string(get_property("lastCombatEnvironments","")); + lCEMap = split_string(get_property("lastCombatEnvironments","").to_string()); int uTurns; foreach turn in lCEMap { if (lCEMap[turn] == "u") {uTurns +=1}; From 7b389b2814f2bb935f0d1cfab7ac8e0b0a5078bc Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 7 Oct 2023 00:45:35 -0400 Subject: [PATCH 05/85] Bad parentheses --- RELEASE/scripts/autoscend/quests/level_07.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/quests/level_07.ash b/RELEASE/scripts/autoscend/quests/level_07.ash index 4e0666310..e9311461d 100644 --- a/RELEASE/scripts/autoscend/quests/level_07.ash +++ b/RELEASE/scripts/autoscend/quests/level_07.ash @@ -194,7 +194,7 @@ boolean L7_crypt() // not delaying better distributes these charges across days // keep only 11 underground turns in the last 20 advs string[int] lCEMap; - lCEMap = split_string(get_property("lastCombatEnvironments","")); + lCEMap = split_string(get_property("lastCombatEnvironments"),""); int uTurns; foreach turn in lCEMap { if (lCEMap[turn] == "u") {uTurns +=1}; From 41c61fda733f66e8e54053f9f7a55726b8891df0 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 7 Oct 2023 00:46:38 -0400 Subject: [PATCH 06/85] More parens issues --- RELEASE/scripts/autoscend/iotms/mr2021.ash | 2 +- RELEASE/scripts/autoscend/quests/level_07.ash | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index 29adaa933..7d5bc6267 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -900,7 +900,7 @@ void auto_CMCconsult() { //only looking for Breathitin from at least 11 fights spent underground string[int] lCEMap; - lCEMap = split_string(get_property("lastCombatEnvironments","").to_string()); + lCEMap = split_string(get_property("lastCombatEnvironments").to_string(),""); int uTurns; foreach turn in lCEMap { if (lCEMap[turn] == "u") {uTurns +=1}; diff --git a/RELEASE/scripts/autoscend/quests/level_07.ash b/RELEASE/scripts/autoscend/quests/level_07.ash index e9311461d..48d5e8fc4 100644 --- a/RELEASE/scripts/autoscend/quests/level_07.ash +++ b/RELEASE/scripts/autoscend/quests/level_07.ash @@ -194,7 +194,7 @@ boolean L7_crypt() // not delaying better distributes these charges across days // keep only 11 underground turns in the last 20 advs string[int] lCEMap; - lCEMap = split_string(get_property("lastCombatEnvironments"),""); + lCEMap = split_string(get_property("lastCombatEnvironments").to_string(),""); int uTurns; foreach turn in lCEMap { if (lCEMap[turn] == "u") {uTurns +=1}; From 421ab1eb7da115036881e386d51bf5e1134499c7 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 7 Oct 2023 01:07:29 -0400 Subject: [PATCH 07/85] Fixed all of the errors --- .../phylumbanish.dat => phylums/banish.dat} | 0 BUILD/phylums/header.txt | 1 + RELEASE/data/autoscend_monsters.txt | 13 ----------- RELEASE/data/autoscend_phylums.txt | 17 ++++++++++++++ RELEASE/scripts/autoscend/auto_util.ash | 23 ++++++++++++++++++- .../scripts/autoscend/autoscend_header.ash | 1 + .../combat/auto_combat_default_stage1.ash | 4 ++-- RELEASE/scripts/autoscend/iotms/mr2021.ash | 5 ++-- RELEASE/scripts/autoscend/iotms/mr2023.ash | 8 +++---- RELEASE/scripts/autoscend/quests/level_07.ash | 5 ++-- 10 files changed, 53 insertions(+), 24 deletions(-) rename BUILD/{monsters/phylumbanish.dat => phylums/banish.dat} (100%) create mode 100644 BUILD/phylums/header.txt create mode 100644 RELEASE/data/autoscend_phylums.txt diff --git a/BUILD/monsters/phylumbanish.dat b/BUILD/phylums/banish.dat similarity index 100% rename from BUILD/monsters/phylumbanish.dat rename to BUILD/phylums/banish.dat diff --git a/BUILD/phylums/header.txt b/BUILD/phylums/header.txt new file mode 100644 index 000000000..c2639599e --- /dev/null +++ b/BUILD/phylums/header.txt @@ -0,0 +1 @@ +# See auto_check_conditions for conditional options diff --git a/RELEASE/data/autoscend_monsters.txt b/RELEASE/data/autoscend_monsters.txt index 743601b80..a11d1332e 100644 --- a/RELEASE/data/autoscend_monsters.txt +++ b/RELEASE/data/autoscend_monsters.txt @@ -56,19 +56,6 @@ banish 49 Battlesuit Bugbear Type path:Bugbear Invasion:loc:Engineering;!sniffed banish 50 ancient unspeakable bugbear path:Bugbear Invasion;loc:Navigation;!sniffed:ancient unspeakable bugbear banish 51 trendy bugbear chef path:Bugbear Invasion;loc:Galley;loc:Gallery;!sniffed:trendy bugbear chef -phylumbanish 0 dude loc:The Black Forest -phylumbanish 1 dude loc:Twin Peak -phylumbanish 2 dude loc:Whitey's Grove -phylumbanish 3 beast loc:The Hidden Park -phylumbanish 4 beast loc:Inside the Palindome -phylumbanish 5 beast loc:The Penultimate Fantasy Airship -phylumbanish 6 construct loc:The Penultimate Fantasy Airship -phylumbanish 7 undead loc:The Haunted Library -phylumbanish 8 undead loc:The Red Zeppelin -phylumbanish 9 undead loc:The Haunted Wine Cellar -phylumbanish 10 undead loc:The Haunted Boiler Room -phylumbanish 11 undead loc:The Middle Chamber - replace 0 Banshee Librarian item:Killing Jar>0 replace 1 Beefy Bodyguard Bat loc:The Boss Bat's Lair;turnsspent:The Boss Bat's Lair>=4;!path:Heavy Rains;!path:Actually Ed the Undying;!path:Pocket Familiars;!path:Dark Gyffte;!path:Path of the Plumber;!pathid:41;!path:Wildfire;!path:Fall of the Dinosaurs;!path:Avator of Shadows Over Loathing;!path:Legacy of Loathing replace 2 Knob Goblin Madam item:Knob Goblin Perfume>0 diff --git a/RELEASE/data/autoscend_phylums.txt b/RELEASE/data/autoscend_phylums.txt new file mode 100644 index 000000000..f928f9617 --- /dev/null +++ b/RELEASE/data/autoscend_phylums.txt @@ -0,0 +1,17 @@ +# THIS FILE IS GENERATED BY BUILD/assemble.sh +# DO NOT EDIT THIS FILE DIRECTLY. EDIT THE .DAT FILES IN THE /BUILD/ FOLDER THEN RUN assemble.sh + +# See auto_check_conditions for conditional options +banish 0 dude loc:The Black Forest +banish 1 dude loc:Twin Peak +banish 2 dude loc:Whitey's Grove +banish 3 beast loc:The Hidden Park +banish 4 beast loc:Inside the Palindome +banish 5 beast loc:The Penultimate Fantasy Airship +banish 6 construct loc:The Penultimate Fantasy Airship +banish 7 undead loc:The Haunted Library +banish 8 undead loc:The Red Zeppelin +banish 9 undead loc:The Haunted Wine Cellar +banish 10 undead loc:The Haunted Boiler Room +banish 11 undead loc:The Middle Chamber + diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 69c1e2369..30cb8c4dc 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -845,7 +845,7 @@ boolean auto_wantPhylumBanish(phylum enemyphylum, location loc) { location locCache = my_location(); set_location(loc); - boolean [phylum] phylumToBanish = auto_getMonsters("phylumbanish"); + boolean [phylum] phylumToBanish = auto_getPhylum("banish"); set_location(locCache); return phylumToBanish[enemyphylum]; } @@ -3659,6 +3659,27 @@ boolean [monster] auto_getMonsters(string category) return res; } +boolean [phylum] auto_getPhylum(string category) +{ + boolean [phylum] res; + string [string,int,string] phylum_text; + if(!file_to_map("autoscend_phylum.txt", phylum_text)) + auto_log_error("Could not load autoscend_phylum.txt. This is bad!"); + foreach i,name,conds in phylum_text[category] + { + phylum thisPhylum = name.to_phylum(); + if(thisPhylum == $phylum[none]) + { + auto_log_warning('"' + name + '" does not convert to a phylum properly!', "red"); + continue; + } + if(!auto_check_conditions(conds)) + continue; + res[thisPhylum] = true; + } + return res; +} + boolean auto_wantToSniff(monster enemy, location loc) { location locCache = my_location(); diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 41546d00e..5e979a905 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -1753,6 +1753,7 @@ boolean auto_can_equip(item it); boolean auto_can_equip(item it, slot s); boolean auto_check_conditions(string conds); boolean [monster] auto_getMonsters(string category); +boolean [phylum] auto_getPhylum(string category); boolean auto_wantToSniff(monster enemy, location loc); boolean auto_wantToYellowRay(monster enemy, location loc); boolean auto_wantToReplace(monster enemy, location loc); diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash index 3ed239442..6bec55c49 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash @@ -238,8 +238,8 @@ string auto_combatDefaultStage1(int round, monster enemy, string text) //[Patriotic Eagle] familiar skill that gives a useful buff if ($locations[The Haunted Library, The Haunted Laundry Room, Whitey\'s Grove, Lair of the Ninja Snowmen, The Hidden Hospital, The Haunted Bathroom, The Oasis, The Haunted Kitchen, Oil Peak] contains my_location() && canUse($skill[%fn\, let\'s pledge allegiance to a Zone])) { - handleTracker($skill[%fn\, let\'s pledge allegiance to a Zone!], enemy, "auto_otherstuff"); - return useSkill($skill[%fn\, let\'s pledge allegiance to a Zone!], true); + handleTracker($skill[%fn\, let\'s pledge allegiance to a Zone], enemy, "auto_otherstuff"); + return useSkill($skill[%fn\, let\'s pledge allegiance to a Zone], true); } //duplicate turns the enemy from a single enemy into a mob containing 2 copies of this enemy. Doubling their stats and doubling their drops diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index 7d5bc6267..b647ed44f 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -899,11 +899,12 @@ void auto_CMCconsult() else if(auto_CMCconsultsLeft() <= 2 && freeCrafts() >= 5 && possessEquipment($item[ice crown]) && my_meat() >= meatReserve()) { //only looking for Breathitin from at least 11 fights spent underground + string lCE = get_property("lastCombatEnvironments"); string[int] lCEMap; - lCEMap = split_string(get_property("lastCombatEnvironments").to_string(),""); + lCEMap = split_string(lCE,""); int uTurns; foreach turn in lCEMap { - if (lCEMap[turn] == "u") {uTurns +=1}; + if (lCEMap[turn] == "u") {uTurns +=1;} } if(uTurns < 11) { diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 00ef58c8b..c21d8a434 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -487,12 +487,12 @@ boolean auto_haveEagle() boolean auto_getCitizenZone(string goal) { familiar eagle = $familiar[Patriotic Eagle]; - string activeCitZoneMod = get_property("auto_patEagleGoal").to_string(); - if !auto_haveEagle() + string activeCitZoneMod = get_property("auto_patEagleGoal"); + if(!auto_haveEagle()) { return false; } - if(have_effect($effect[Citizen of a Zone]) && goal == activeCitZoneMod) + if(have_effect($effect[Citizen of a Zone]) > 0 && goal == activeCitZoneMod) { return false; } @@ -504,7 +504,7 @@ boolean auto_getCitizenZone(string goal) if(can_adventure($location[The Haunted Library]) && goal == "item") { use_familiar(eagle); - set_property("auto_patEagleGoal", "item") + set_property("auto_patEagleGoal", "item"); return autoAdv($location[The Haunted Library]); } //Get +50% meat diff --git a/RELEASE/scripts/autoscend/quests/level_07.ash b/RELEASE/scripts/autoscend/quests/level_07.ash index 48d5e8fc4..4076d47b4 100644 --- a/RELEASE/scripts/autoscend/quests/level_07.ash +++ b/RELEASE/scripts/autoscend/quests/level_07.ash @@ -193,11 +193,12 @@ boolean L7_crypt() // allow adventuring in Alcove (above) since many backup charges get used for modern zmobies // not delaying better distributes these charges across days // keep only 11 underground turns in the last 20 advs + string lCE = get_property("lastCombatEnvironments"); string[int] lCEMap; - lCEMap = split_string(get_property("lastCombatEnvironments").to_string(),""); + lCEMap = split_string(lCE,""); int uTurns; foreach turn in lCEMap { - if (lCEMap[turn] == "u") {uTurns +=1}; + if (lCEMap[turn] == "u") {uTurns +=1;} } if((auto_is_valid($item[cold medicine cabinet]) && item_amount($item[cold medicine cabinet]) > 0 && get_workshed() != $item[cold medicine cabinet] && !isAboutToPowerlevel() && From a20e4b53c056672c6c5d3cd8d9f47a46995e6ce2 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 7 Oct 2023 01:37:29 -0400 Subject: [PATCH 08/85] get citizen of a zone --- RELEASE/scripts/autoscend/quests/level_11.ash | 1 + RELEASE/scripts/autoscend/quests/level_12.ash | 1 + RELEASE/scripts/autoscend/quests/level_13.ash | 9 +++++++++ 3 files changed, 11 insertions(+) diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index bebf905dc..d86102a1f 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -462,6 +462,7 @@ boolean LX_unlockManorSecondFloor() { auto_log_info("Attemping to use Map the Monsters to olfact a writing desk."); } } + auto_getCitizenZone("item"); //since library is next anyway return autoAdv($location[The Haunted Library]); } diff --git a/RELEASE/scripts/autoscend/quests/level_12.ash b/RELEASE/scripts/autoscend/quests/level_12.ash index 62ab13e12..bdfa10a92 100644 --- a/RELEASE/scripts/autoscend/quests/level_12.ash +++ b/RELEASE/scripts/autoscend/quests/level_12.ash @@ -1894,6 +1894,7 @@ boolean L12_themtharHills() buffMaintain($effect[Sweet Heart], 0, 1, 20); buffMaintain($effect[Good Things Are Coming, You Can Smell It]); buffMaintain($effect[Incredibly Well Lit]); + auto_getCitizenZone("meat"); bat_formWolf(); if(auto_is_valid($effect[Meet the Meat])) { diff --git a/RELEASE/scripts/autoscend/quests/level_13.ash b/RELEASE/scripts/autoscend/quests/level_13.ash index 358b57312..47cd4a6aa 100644 --- a/RELEASE/scripts/autoscend/quests/level_13.ash +++ b/RELEASE/scripts/autoscend/quests/level_13.ash @@ -82,6 +82,9 @@ boolean EightBitRealmHandler() case "red": buffMaintain($effect[Polka of Plenty], 30, 1, 1); addToMaximize("200meat drop 550max"); + if(meat_drop_modifier() < 395){ + auto_getCitizenZone("meat"); + } adv_spent = autoAdv($location[The Fungus Plains]); break; case "blue": @@ -95,6 +98,9 @@ boolean EightBitRealmHandler() buffMaintain($effect[Fat Leon\'s Phat Loot Lyric], 30, 1, 1); buffMaintain($effect[Singer\'s Faithful Ocelot], 30, 1, 1); addToMaximize("200item 500max"); + if(item_drop_modifier() < 370){ + auto_getCitizenZone("item"); + } adv_spent = autoAdv($location[Hero\'s Field]); break; default: @@ -1460,6 +1466,9 @@ boolean L13_towerNSTower() { autoEquip($item[Meat Tenderizer is Murder]); } + if(meat_drop_modifier() < 475){ + auto_getCitizenZone("meat"); + } acquireHP(); autoAdvBypass("place.php?whichplace=nstower&action=ns_06_monster2", $location[Noob Cave]); From cf2bd3b0acf17e4d053ffb914d4e39a2a5c3ea8e Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 10 Oct 2023 10:29:31 -0400 Subject: [PATCH 09/85] Citizen of a Zone changes --- .../combat/auto_combat_default_stage1.ash | 1 - RELEASE/scripts/autoscend/iotms/mr2023.ash | 60 ++++++++++++------- RELEASE/scripts/autoscend/quests/level_08.ash | 1 + 3 files changed, 41 insertions(+), 21 deletions(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash index 6bec55c49..7fe3d7546 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash @@ -238,7 +238,6 @@ string auto_combatDefaultStage1(int round, monster enemy, string text) //[Patriotic Eagle] familiar skill that gives a useful buff if ($locations[The Haunted Library, The Haunted Laundry Room, Whitey\'s Grove, Lair of the Ninja Snowmen, The Hidden Hospital, The Haunted Bathroom, The Oasis, The Haunted Kitchen, Oil Peak] contains my_location() && canUse($skill[%fn\, let\'s pledge allegiance to a Zone])) { - handleTracker($skill[%fn\, let\'s pledge allegiance to a Zone], enemy, "auto_otherstuff"); return useSkill($skill[%fn\, let\'s pledge allegiance to a Zone], true); } diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index c21d8a434..7e9f35e03 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -487,37 +487,57 @@ boolean auto_haveEagle() boolean auto_getCitizenZone(string goal) { familiar eagle = $familiar[Patriotic Eagle]; - string activeCitZoneMod = get_property("auto_patEagleGoal"); + string activeCitZoneMod = get_property("_citizenZoneMods").to_lower_case(); if(!auto_haveEagle()) { return false; } - if(have_effect($effect[Citizen of a Zone]) > 0 && goal == activeCitZoneMod) + if(have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) { return false; } - if(goal != activeCitZoneMod && item_amount($item[Soft Green Echo Eyedrop Antidote]) > 0) + if(!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) > 0) { uneffect($effect[Citizen of a Zone]); } - //Get +30% item - if(can_adventure($location[The Haunted Library]) && goal == "item") + switch(goal) { - use_familiar(eagle); - set_property("auto_patEagleGoal", "item"); - return autoAdv($location[The Haunted Library]); - } - //Get +50% meat - if(can_adventure($location[Lair of the Ninja Snowmen]) && goal == "meat") - { - use_familiar(eagle); - return autoAdv($location[Lair of the Ninja Snowmen]); - } - //Get +100% initiative - if(can_adventure($location[The Haunted Kitchen]) && goal == "initiative") - { - use_familiar(eagle); - return autoAdv($location[The Haunted Kitchen]); + case "meat": //Get +50% meat + if(can_adventure($location[Lair of the Ninja Snowmen])) + { + handleFamiliar(eagle); + if(autoAdv($location[Lair of the Ninja Snowmen]) && contains_text(activeCitZoneMod, goal)) + { + set_property("auto_patEagleCitizenZone", goal); + handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); + return true; + } + return false; + } + case "initiative": //Get +100% initiative. Give the option to add this to a quest later, but currently unused + if(can_adventure($location[The Haunted Kitchen])) + { + handleFamiliar(eagle); + if(autoAdv($location[The Haunted Kitchen]) && contains_text(activeCitZoneMod, goal)) + { + set_property("auto_patEagleCitizenZone", goal); + handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); + return true; + } + return false; + } + default: //Get +30% item by default + if(can_adventure($location[The Haunted Library])) + { + handleFamiliar(eagle); + if(autoAdv($location[The Haunted Library]) && contains_text(activeCitZoneMod, goal)) + { + set_property("auto_patEagleCitizenZone", goal); + handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); + return true; + } + return false; + } } return false; } diff --git a/RELEASE/scripts/autoscend/quests/level_08.ash b/RELEASE/scripts/autoscend/quests/level_08.ash index 7d61ec05f..7258d0f16 100644 --- a/RELEASE/scripts/autoscend/quests/level_08.ash +++ b/RELEASE/scripts/autoscend/quests/level_08.ash @@ -659,6 +659,7 @@ boolean L8_trapperNinjaLair() adjustEdHat("myst"); } + auto_getCitizenZone("meat"); //since Lair is next anyway if(autoAdv($location[Lair of the Ninja Snowmen])) { return true; From 5e6cd956b75473ceb564ff08bdf2fce2d986a9eb Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 10 Oct 2023 22:41:35 -0400 Subject: [PATCH 10/85] Properly track Citizen and fix phylum banishes --- RELEASE/scripts/autoscend/auto_util.ash | 20 +++++++++- .../scripts/autoscend/autoscend_header.ash | 4 +- .../autoscend/combat/auto_combat_header.ash | 2 + .../autoscend/combat/auto_combat_util.ash | 37 +++++++++++++++---- RELEASE/scripts/autoscend/iotms/mr2023.ash | 33 +++++++++++------ 5 files changed, 74 insertions(+), 22 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 30cb8c4dc..d04a462a8 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -841,7 +841,7 @@ boolean auto_wantToBanish(monster enemy, location loc) return monstersToBanish[enemy]; } -boolean auto_wantPhylumBanish(phylum enemyphylum, location loc) +boolean auto_wantToBanish(phylum enemyphylum, location loc) { location locCache = my_location(); set_location(loc); @@ -855,6 +855,11 @@ boolean canBanish(monster enemy, location loc) return banisherCombatString(enemy, loc) != ""; } +boolean canBanish(phylum enemyphylum, location loc) +{ + return banisherCombatString(enemyphylum, loc) != ""; +} + boolean adjustForBanish(string combat_string) { if(combat_string == "skill " + $skill[Throw Latte on Opponent]) @@ -901,7 +906,7 @@ boolean adjustForBanish(string combat_string) } if(combat_string == "skill" + $skill[%fn\, Release the Patriotic Screech!]) { - return use_familiar($familiar[Patriotic Eagle]); + return handleFamiliar($familiar[Patriotic Eagle]); } if(combat_string == "skill " + $skill[Beancannon]) { @@ -928,6 +933,17 @@ boolean adjustForBanishIfPossible(monster enemy, location loc) return false; } +boolean adjustForBanishIfPossible(phylum enemyphylum, location loc) +{ + if(canBanish(enemyphylum, loc)) + { + string banish_string = banisherCombatString(enemyphylum, loc); + auto_log_info("Adjusting to have banisher available for " + enemyphylum + ": " + banish_string, "blue"); + return adjustForBanish(banish_string); + } + return false; +} + boolean canFreeRun(monster enemy, location loc) { // are there any restrictions on free running? diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 5e979a905..9bd6b97d3 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -1628,10 +1628,12 @@ boolean canYellowRay(monster target); boolean canYellowRay(); boolean[string] auto_banishesUsedAt(location loc); boolean auto_wantToBanish(monster enemy, location loc); -boolean auto_wantPhylumBanish(phylum enemyphylum, location loc); +boolean auto_wantToBanish(phylum enemyphylum, location loc); boolean canBanish(monster enemy, location loc); +boolean canBanish(phylum enemyphylum, location loc); boolean adjustForBanish(string combat_string); boolean adjustForBanishIfPossible(monster enemy, location loc); +boolean adjustForBanishIfPossible(phylum enemyphylum, location loc); boolean canFreeRun(monster enemy, location loc); string freeRunCombatStringPreBanish(monster enemy, location loc, boolean inCombat); string freeRunCombatString(monster enemy, location loc, boolean inCombat); diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_header.ash b/RELEASE/scripts/autoscend/combat/auto_combat_header.ash index 2e66d58de..97e136dc3 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_header.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_header.ash @@ -37,7 +37,9 @@ boolean canSurvive(float mult); boolean hasClubEquipped(); string auto_saberTrickMeteorShowerCombatHandler(int round, monster enemy, string text); string findBanisher(int round, monster enemy, string text); +string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat); string banisherCombatString(monster enemy, location loc, boolean inCombat); +string banisherCombatString(phylum enemyphylum, location loc); string banisherCombatString(monster enemy, location loc); string yellowRayCombatString(monster target, boolean inCombat, boolean noForceDrop); string yellowRayCombatString(monster target, boolean inCombat); diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index e14460b44..cc98d678c 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -479,6 +479,31 @@ string findBanisher(int round, monster enemy, string text) return auto_combatHandler(round, enemy, text); } +string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat) +{ + if(inAftercore()) + { + return ""; + } + + if(in_pokefam()) + { + return ""; + } + + //Check that we actually want to banish this thing. + if(!auto_wantToBanish(enemyphylum, loc)) + return ""; + + if(inCombat) + auto_log_info("Finding a banisher to use on " + enemyphylum + " at " + loc, "green"); + + if(auto_have_skill($skill[%fn\, Release the Patriotic Screech!]) && !(used contains "Release the Patriotic Screech!")) + { + return "skill" + $skill[%fn\, Release the Patriotic Screech!]; + } +} + string banisherCombatString(monster enemy, location loc, boolean inCombat) { if(inAftercore()) @@ -501,9 +526,6 @@ string banisherCombatString(monster enemy, location loc, boolean inCombat) if(!auto_wantToBanish(enemy, loc)) return ""; - if(!auto_wantPhylumBanish(enemy.phylum, loc)) - return ""; - if(inCombat) auto_log_info("Finding a banisher to use on " + enemy + " at " + loc, "green"); @@ -616,10 +638,6 @@ string banisherCombatString(monster enemy, location loc, boolean inCombat) { return "skill " + $skill[Show Your Boring Familiar Pictures]; } - if(auto_have_skill($skill[%fn\, Release the Patriotic Screech!]) && !(used contains "Release the Patriotic Screech!") && auto_wantPhylumBanish(enemy.phylum, loc)) - { - return "skill" + $skill[%fn\, Release the Patriotic Screech!]; - } // bowling ball is only in inventory if it is available to use in combat. While on cooldown, it is not in inventory if((inCombat ? auto_have_skill($skill[Bowl a Curveball]) : item_amount($item[Cosmic Bowling Ball]) > 0) && auto_is_valid($skill[Bowl a Curveball]) && !(used contains "Bowl a Curveball")) { @@ -724,6 +742,11 @@ string banisherCombatString(monster enemy, location loc, boolean inCombat) return ""; } +string banisherCombatString(phylum enemyphylum, location loc) +{ + return banisherCombatString(enemyphylum, loc, false); +} + string banisherCombatString(monster enemy, location loc) { return banisherCombatString(enemy, loc, false); diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 7e9f35e03..47150c38c 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -506,11 +506,14 @@ boolean auto_getCitizenZone(string goal) if(can_adventure($location[Lair of the Ninja Snowmen])) { handleFamiliar(eagle); - if(autoAdv($location[Lair of the Ninja Snowmen]) && contains_text(activeCitZoneMod, goal)) + if(autoAdv($location[Lair of the Ninja Snowmen])) { - set_property("auto_patEagleCitizenZone", goal); - handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); - return true; + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + { + handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); + return true; + } + return false; } return false; } @@ -518,11 +521,14 @@ boolean auto_getCitizenZone(string goal) if(can_adventure($location[The Haunted Kitchen])) { handleFamiliar(eagle); - if(autoAdv($location[The Haunted Kitchen]) && contains_text(activeCitZoneMod, goal)) + if(autoAdv($location[The Haunted Kitchen])) //need this if statement separate in case we hit a non-combat { - set_property("auto_patEagleCitizenZone", goal); - handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); - return true; + if(contains_text(activeCitZoneMod, goal)) + { + handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); + return true; + } + return false; } return false; } @@ -530,11 +536,14 @@ boolean auto_getCitizenZone(string goal) if(can_adventure($location[The Haunted Library])) { handleFamiliar(eagle); - if(autoAdv($location[The Haunted Library]) && contains_text(activeCitZoneMod, goal)) + if(autoAdv($location[The Haunted Library])) //need this if statement separate in case we hit a non-combat { - set_property("auto_patEagleCitizenZone", goal); - handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); - return true; + if(contains_text(activeCitZoneMod, goal)) + { + handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); + return true; + } + return false; } return false; } From dbd3246bfca7f5a8a5412e426065138aa5cf216f Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 10 Oct 2023 22:44:08 -0400 Subject: [PATCH 11/85] Don't care about monster banishes used re: phylums --- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index cc98d678c..056df40a0 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -498,7 +498,7 @@ string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat) if(inCombat) auto_log_info("Finding a banisher to use on " + enemyphylum + " at " + loc, "green"); - if(auto_have_skill($skill[%fn\, Release the Patriotic Screech!]) && !(used contains "Release the Patriotic Screech!")) + if(auto_have_skill($skill[%fn\, Release the Patriotic Screech!])) { return "skill" + $skill[%fn\, Release the Patriotic Screech!]; } From 9ec054a8f836ebe96b470b84dd6cbf56b957c962 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 10 Oct 2023 22:45:05 -0400 Subject: [PATCH 12/85] Forgot a return --- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index 056df40a0..a0b8e65f2 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -502,6 +502,8 @@ string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat) { return "skill" + $skill[%fn\, Release the Patriotic Screech!]; } + + return ""; } string banisherCombatString(monster enemy, location loc, boolean inCombat) From a15fcc4dbc623aaf5ec0dadc850e327547635fb5 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 10 Oct 2023 22:52:51 -0400 Subject: [PATCH 13/85] Too many spaces --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 47150c38c..b51387816 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -502,7 +502,7 @@ boolean auto_getCitizenZone(string goal) } switch(goal) { - case "meat": //Get +50% meat + case "meat": //Get +50% meat if(can_adventure($location[Lair of the Ninja Snowmen])) { handleFamiliar(eagle); From 848611ffe8e653d4f039838fb7411e34fedbde57 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 12 Oct 2023 11:22:53 -0400 Subject: [PATCH 14/85] Small changes --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 6 +++--- RELEASE/scripts/autoscend/quests/level_07.ash | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index b51387816..bb86d1742 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -510,7 +510,7 @@ boolean auto_getCitizenZone(string goal) { if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { - handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); return true; } return false; @@ -525,7 +525,7 @@ boolean auto_getCitizenZone(string goal) { if(contains_text(activeCitZoneMod, goal)) { - handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); return true; } return false; @@ -540,7 +540,7 @@ boolean auto_getCitizenZone(string goal) { if(contains_text(activeCitZoneMod, goal)) { - handleTracker("Patriotic Eagle: " + goal, "auto_otherstuff"); + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); return true; } return false; diff --git a/RELEASE/scripts/autoscend/quests/level_07.ash b/RELEASE/scripts/autoscend/quests/level_07.ash index 4076d47b4..f73d1226e 100644 --- a/RELEASE/scripts/autoscend/quests/level_07.ash +++ b/RELEASE/scripts/autoscend/quests/level_07.ash @@ -203,7 +203,7 @@ boolean L7_crypt() if((auto_is_valid($item[cold medicine cabinet]) && item_amount($item[cold medicine cabinet]) > 0 && get_workshed() != $item[cold medicine cabinet] && !isAboutToPowerlevel() && (LX_getDesiredWorkshed() == $item[cold medicine cabinet] || LX_getDesiredWorkshed() == $item[none])) || - (get_workshed() == $item[cold medicine cabinet] && uTurns > 11)) + (get_workshed() == $item[cold medicine cabinet] && uTurns >= 11)) { return false; } From 0d7f82671697f8c98238e7c6279b6f163a57aafe Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 1 Nov 2023 22:47:06 -0400 Subject: [PATCH 15/85] If didn't uneffect, don't try to get new Citizen --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index c262a2c74..c897c5e23 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -675,6 +675,10 @@ boolean auto_getCitizenZone(string goal) if(!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) > 0) { uneffect($effect[Citizen of a Zone]); + if(have_effect($effect[Citizen of a Zone]) > 0) + { + return false; + } } switch(goal) { From 5f31597d1761af06bb832853e67793b7822a273b Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 4 Nov 2023 17:45:15 -0400 Subject: [PATCH 16/85] Account for not being able to uneffect Citizen --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index c897c5e23..9f94a895c 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -668,7 +668,7 @@ boolean auto_getCitizenZone(string goal) { return false; } - if(have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) + if((have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) || (!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) == 0 && have_effect($effect[Citizen of a Zone]) > 0)) { return false; } From d4d1de08fee1ec499eabbdf97fc7ea205aeab871 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 14 Nov 2023 20:46:54 -0500 Subject: [PATCH 17/85] Get rid of my implementation of underground delay --- RELEASE/scripts/autoscend/iotms/mr2021.ash | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index d2fef099f..4cc8c9ae9 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -926,14 +926,7 @@ void auto_CMCconsult() else if(auto_CMCconsultsLeft() <= 2 && freeCrafts() >= 5 && possessEquipment($item[ice crown]) && my_meat() >= meatReserve()) { //only looking for Breathitin from at least 11 fights spent underground - string lCE = get_property("lastCombatEnvironments"); - string[int] lCEMap; - lCEMap = split_string(lCE,""); - int uTurns; - foreach turn in lCEMap { - if (lCEMap[turn] == "u") {uTurns +=1;} - } - if(uTurns < 11) + if(my_location().environment != "underground") { //if Breathitin was not available last turn and last location was not underground it will still not be available now so no visit needed return; From ff679de0e327e6fbe8cc18f9a1a24e8ce4f69ad6 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 22 Nov 2023 09:20:50 -0500 Subject: [PATCH 18/85] Use all scepter charges --- RELEASE/scripts/autoscend/auto_bedtime.ash | 1 + .../scripts/autoscend/autoscend_header.ash | 1 + RELEASE/scripts/autoscend/iotms/mr2023.ash | 54 +++++++++---------- 3 files changed, 26 insertions(+), 30 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_bedtime.ash b/RELEASE/scripts/autoscend/auto_bedtime.ash index 3606ceaa1..2ee0d736e 100644 --- a/RELEASE/scripts/autoscend/auto_bedtime.ash +++ b/RELEASE/scripts/autoscend/auto_bedtime.ash @@ -721,6 +721,7 @@ boolean doBedtime() } //We are committing to end of day now... + auto_scepterRollover(); //Use the rest of the August Scepter's charges getSpaceJelly(); while(acquireHermitItem($item[11-leaf Clover])); diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index e032596a2..98aa63fd5 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -523,6 +523,7 @@ void auto_buyFrom2002MrStore(); void auto_useBlackMonolith(); boolean auto_haveAugustScepter(); void auto_scepterSkills(); +void auto_scepterRollover(); void auto_lostStomach(); boolean auto_haveBofa(); boolean auto_canHabitat(); diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index c4127c01f..e4a89d290 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -522,41 +522,35 @@ void auto_scepterSkills() { return; } - //Day 1 skills - if(my_daycount() == 1) + + if(canUse($skill[Aug. 24th: Waffle Day!]) && !get_property("_aug24Cast").to_boolean()) { - if(canUse($skill[Aug. 24th: Waffle Day!]) && !get_property("_aug24Cast").to_boolean()) - { - use_skill($skill[Aug. 24th: Waffle Day!]); //get some waffles to hopefully change some bad monsters to better ones - } - if(canUse($skill[Aug. 30th: Beach Day!]) && !get_property("_aug30Cast").to_boolean()) - { - use_skill($skill[Aug. 30th: Beach Day!]); //Rollover adventures - } - if(canUse($skill[Aug. 28th: Race Your Mouse Day!]) && !get_property("_aug28Cast").to_boolean() && pathHasFamiliar() && ((!auto_hasStillSuit() && item_amount($item[Astral pet sweater]) == 0) || in_small())) - { - if(!is100FamRun()) - { - use_familiar(findNonRockFamiliarInTerrarium()); //equip non-rock fam to ensure we get tiny gold medal - } - use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment - } + use_skill($skill[Aug. 24th: Waffle Day!]); //get some waffles to hopefully change some bad monsters to better ones } - //Day 2+ skills - if(my_daycount() >= 2) + if(canUse($skill[Aug. 28th: Race Your Mouse Day!]) && !get_property("_aug28Cast").to_boolean() && pathHasFamiliar() && ((!auto_hasStillSuit() && item_amount($item[Astral pet sweater]) == 0) || in_small())) { - if(canUse($skill[Aug. 24th: Waffle Day!]) && !get_property("_aug24Cast").to_boolean()) + if(!is100FamRun()) { - use_skill($skill[Aug. 24th: Waffle Day!]); //get some waffles to hopefully change some bad monsters to better ones - } - if(canUse($skill[Aug. 28th: Race Your Mouse Day!]) && !get_property("_aug28Cast").to_boolean() && ((!auto_hasStillSuit() && item_amount($item[Astral pet sweater]) == 0) || in_small())) - { - if(!is100FamRun()) - { - use_familiar(findNonRockFamiliarInTerrarium()); //equip non-rock fam to ensure we get tiny gold medal - } - use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment + use_familiar(findNonRockFamiliarInTerrarium()); //equip non-rock fam to ensure we get tiny gold medal } + use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment + } +} + +void auto_scepterRollover() +{ + if(canUse($skill[Aug. 30th: Beach Day!]) && !get_property("_aug30Cast").to_boolean() && get_property("_augSkillsCast").to_int()< 5) + { + use_skill($skill[Aug. 30th: Beach Day!]); //Rollover adventures + } + if(canUse($skill[Aug. 27th: Just Because Day!]) && !get_property("_aug27Cast").to_boolean() && get_property("_augSkillsCast").to_int()< 5) + { + use_skill($skill[Aug. 27th: Just Because Day!]); //3 random buffs + } + if(canUse($skill[Aug. 13th: Left\/Off Hander\'s Day!]) && !get_property("_aug13Cast").to_boolean() && + get_property("_augSkillsCast").to_int()< 5 && numeric_modifier(equipped_item($slot[offhand]),"Adventures") > 0) + { + use_skill($skill[Aug. 13th: Left\/Off Hander\'s Day!]); //3 random buffs } } From 5c4a193a6ae56b87ff81a024b006156456da0f6d Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 14 Dec 2023 23:43:13 -0500 Subject: [PATCH 19/85] Phylum banish attempt --- RELEASE/scripts/autoscend/auto_pre_adv.ash | 10 +++++++ .../combat/auto_combat_default_stage2.ash | 29 +++++++++++++++++-- .../autoscend/combat/auto_combat_header.ash | 1 + .../autoscend/combat/auto_combat_util.ash | 25 +++++++++++++++- RELEASE/scripts/autoscend/iotms/mr2021.ash | 2 +- RELEASE/scripts/autoscend/iotms/mr2023.ash | 4 +-- .../scripts/autoscend/paths/dark_gyffte.ash | 2 +- .../scripts/autoscend/quests/level_any.ash | 15 ++++++++-- 8 files changed, 79 insertions(+), 9 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index a78c258a9..628602416 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -394,6 +394,16 @@ boolean auto_pre_adventure() adjustForYellowRayIfPossible(mon); zoneHasWantedMonsters = true; } + if(auto_wantToBanish(mon.phylum, place)) + { + // attempt to prepare for banishing, but if we can not try free running + boolean canBanish = adjustForBanishIfPossible(mon.phylum, place); + if(!canBanish) + { + adjustForFreeRunIfPossible(mon,place); + } + zoneHasUnwantedMonsters = true; + } if(auto_wantToBanish(mon, place)) { // attempt to prepare for banishing, but if we can not try free running diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash index e0757682a..345f8b18c 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash @@ -163,8 +163,33 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) combat_status_add("banishercheck"); } - // Free run from monsters we want to banish but are unable to - if(!combat_status_check("freeruncheck") && auto_wantToBanish(enemy, my_location())) + if(!combat_status_check("banishercheck") && auto_wantToBanish(enemy.phylum, my_location())) + { + string banishAction = banisherCombatString(enemy.phylum, my_location(), true); + if(banishAction != "") + { + auto_log_info("Looking at banishAction: " + banishAction, "green"); + combat_status_add("banisher"); + if(index_of(banishAction, "skill") == 0) + { + handleTracker(enemy.phylum, to_skill(substring(banishAction, 6)), "auto_banishes"); + } + else if(index_of(banishAction, "item") == 0) + { + handleTracker(enemy.phylum, to_item(substring(banishAction, 5)), "auto_banishes"); + } + else + { + auto_log_warning("Unable to track banisher behavior: " + banishAction, "red"); + } + return banishAction; + } + //we wanted to banish an enemy and failed. set a property so we do not bother trying in subsequent rounds + combat_status_add("banishercheck"); + } + + // Free run from monsters we want to banish/phylumbanish but are unable to + if(!combat_status_check("freeruncheck") && (auto_wantToBanish(enemy, my_location()) || auto_wantToBanish(enemy.phylum, my_location()))) { string freeRunAction = freeRunCombatString(enemy, my_location(), true); if(freeRunAction != "") diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_header.ash b/RELEASE/scripts/autoscend/combat/auto_combat_header.ash index 987d73241..64ad4ec64 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_header.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_header.ash @@ -37,6 +37,7 @@ boolean canSurvive(float mult); boolean hasClubEquipped(); string auto_saberTrickMeteorShowerCombatHandler(int round, monster enemy, string text); string findBanisher(int round, monster enemy, string text); +string findPhylumBanisher(int round, phylum enemyphylum, string text); string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat); string banisherCombatString(monster enemy, location loc, boolean inCombat); string banisherCombatString(phylum enemyphylum, location loc); diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index 8bd87aefa..aa5c6819b 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -459,6 +459,29 @@ string auto_saberTrickMeteorShowerCombatHandler(int round, monster enemy, string return "abort"; //must have a return } +string findPhylumBanisher(int round, monster enemy, string text) +{ + string banishAction = banisherCombatString(enemy.phylum, my_location(), true); + if(banishAction != "") + { + auto_log_info("Looking at banishAction: " + banishAction, "green"); + if(index_of(banishAction, "skill") == 0) + { + handleTracker(enemy.phylum, to_skill(substring(banishAction, 6)), "auto_banishes"); + } + else if(index_of(banishAction, "item") == 0) + { + handleTracker(enemy.phylum, to_item(substring(banishAction, 5)), "auto_banishes"); + } + else + { + auto_log_warning("Unable to track banisher behavior: " + banishAction, "red"); + } + return banishAction; + } + return auto_combatHandler(round, enemy, text); +} + string findBanisher(int round, monster enemy, string text) { string banishAction = banisherCombatString(enemy, my_location(), true); @@ -505,7 +528,7 @@ string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat) if(inCombat) auto_log_info("Finding a banisher to use on " + enemyphylum + " at " + loc, "green"); - if(auto_have_skill($skill[%fn\, Release the Patriotic Screech!])) + if(auto_is_valid($familiar[Patriotic Eagle]) && (get_property("screechCombats").to_int() == 0 || get_property("screechCombats").to_int() >= 11)) { return "skill" + $skill[%fn\, Release the Patriotic Screech!]; } diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index d1d4b6967..74ab324e8 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -62,7 +62,7 @@ boolean auto_allowCrystalBall(monster predicted_monster, location loc) //if already forced by something else, no need to handle your ball //pre_adv, or simulatePreAdvForCrystalBall, handles this as it already tracks burningDelay and forced encounters - if(is_banished(predicted_monster) || auto_wantToReplace(predicted_monster,loc) || auto_wantToBanish(predicted_monster,loc)) + if(is_banished(predicted_monster) || auto_wantToReplace(predicted_monster,loc) || auto_wantToBanish(predicted_monster,loc) || auto_wantToBanish(predicted_monster.phylum, loc)) { // next prediction is unwanted, do not allow return false; diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index eaa995887..fab7c4a57 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -548,9 +548,9 @@ void auto_scepterRollover() use_skill($skill[Aug. 27th: Just Because Day!]); //3 random buffs } if(canUse($skill[Aug. 13th: Left\/Off Hander\'s Day!]) && !get_property("_aug13Cast").to_boolean() && - get_property("_augSkillsCast").to_int()< 5 && numeric_modifier(equipped_item($slot[offhand]),"Adventures") > 0) + get_property("_augSkillsCast").to_int()< 5 && numeric_modifier(equipped_item($slot[off-hand]),"Adventures") > 0) { - use_skill($skill[Aug. 13th: Left\/Off Hander\'s Day!]); //3 random buffs + use_skill($skill[Aug. 13th: Left\/Off Hander\'s Day!]); //bump up the off-hand } } diff --git a/RELEASE/scripts/autoscend/paths/dark_gyffte.ash b/RELEASE/scripts/autoscend/paths/dark_gyffte.ash index c50109cde..c1af24f07 100644 --- a/RELEASE/scripts/autoscend/paths/dark_gyffte.ash +++ b/RELEASE/scripts/autoscend/paths/dark_gyffte.ash @@ -34,7 +34,7 @@ boolean bat_wantHowl(location loc) monster[int] monsters = get_monsters(loc); foreach i in monsters { - if (!(banished contains monsters[i]) && (auto_wantToBanish(monsters[i], loc))) { + if (!(banished contains monsters[i]) && (auto_wantToBanish(monsters[i], loc) || auto_wantToBanish(monsters[i].phylum, loc))) { return true; } } diff --git a/RELEASE/scripts/autoscend/quests/level_any.ash b/RELEASE/scripts/autoscend/quests/level_any.ash index 97f246979..51b659afa 100644 --- a/RELEASE/scripts/autoscend/quests/level_any.ash +++ b/RELEASE/scripts/autoscend/quests/level_any.ash @@ -606,10 +606,18 @@ boolean LX_dailyDungeonToken() { return false; //can switch to cubeling so wait until we have all the tool drops before doing daily dungeon } + boolean needPole = true; + if(auto_haveCCSC()) + { + needPole = false; + } if(can_interact()) //if you can not use cubeling then mallbuy missing tools in casual and postronin { - auto_buyUpTo(1, $item[Eleven-Foot Pole]); + if(needPole) + { + 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 { @@ -618,7 +626,10 @@ boolean LX_dailyDungeonToken() } //if you can not use the cubeling then pull the missing tools if possible - pullXWhenHaveY($item[Eleven-Foot Pole], 1, 0); + if(needPole) + { + pullXWhenHaveY($item[Eleven-Foot Pole], 1, 0); + } if(!possessEquipment($item[Ring of Detect Boring Doors])) //do not pull a second one if already equipped { pullXWhenHaveY($item[Ring of Detect Boring Doors], 1, 0); From 77c86c183e9550f71fbf7047c7a3a848a36190d4 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 14 Dec 2023 23:50:42 -0500 Subject: [PATCH 20/85] Try using monster_phylum instead of .phylum --- RELEASE/scripts/autoscend/auto_pre_adv.ash | 2 +- .../autoscend/combat/auto_combat_default_stage2.ash | 8 ++++---- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 7 ++++--- RELEASE/scripts/autoscend/iotms/mr2021.ash | 2 +- RELEASE/scripts/autoscend/paths/dark_gyffte.ash | 2 +- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index 628602416..71092f205 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -394,7 +394,7 @@ boolean auto_pre_adventure() adjustForYellowRayIfPossible(mon); zoneHasWantedMonsters = true; } - if(auto_wantToBanish(mon.phylum, place)) + if(auto_wantToBanish(monster_phylum(mon), place)) { // attempt to prepare for banishing, but if we can not try free running boolean canBanish = adjustForBanishIfPossible(mon.phylum, place); diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash index 345f8b18c..1d5362c70 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash @@ -163,20 +163,20 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) combat_status_add("banishercheck"); } - if(!combat_status_check("banishercheck") && auto_wantToBanish(enemy.phylum, my_location())) + if(!combat_status_check("banishercheck") && auto_wantToBanish(monster_phylum(enemy), my_location())) { - string banishAction = banisherCombatString(enemy.phylum, my_location(), true); + string banishAction = banisherCombatString(monster_phylum(enemy), my_location(), true); if(banishAction != "") { auto_log_info("Looking at banishAction: " + banishAction, "green"); combat_status_add("banisher"); if(index_of(banishAction, "skill") == 0) { - handleTracker(enemy.phylum, to_skill(substring(banishAction, 6)), "auto_banishes"); + handleTracker(monster_phylum(enemy), to_skill(substring(banishAction, 6)), "auto_banishes"); } else if(index_of(banishAction, "item") == 0) { - handleTracker(enemy.phylum, to_item(substring(banishAction, 5)), "auto_banishes"); + handleTracker(monster_phylum(enemy), to_item(substring(banishAction, 5)), "auto_banishes"); } else { diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index aa5c6819b..0d8deab5a 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -461,17 +461,17 @@ string auto_saberTrickMeteorShowerCombatHandler(int round, monster enemy, string string findPhylumBanisher(int round, monster enemy, string text) { - string banishAction = banisherCombatString(enemy.phylum, my_location(), true); + string banishAction = banisherCombatString(monster_phylum(enemy), my_location(), true); if(banishAction != "") { auto_log_info("Looking at banishAction: " + banishAction, "green"); if(index_of(banishAction, "skill") == 0) { - handleTracker(enemy.phylum, to_skill(substring(banishAction, 6)), "auto_banishes"); + handleTracker(monster_phylum(enemy), to_skill(substring(banishAction, 6)), "auto_banishes"); } else if(index_of(banishAction, "item") == 0) { - handleTracker(enemy.phylum, to_item(substring(banishAction, 5)), "auto_banishes"); + handleTracker(monster_phylum(enemy), to_item(substring(banishAction, 5)), "auto_banishes"); } else { @@ -670,6 +670,7 @@ string banisherCombatString(monster enemy, location loc, boolean inCombat) { return "skill " + $skill[Show Your Boring Familiar Pictures]; } + // bowling ball is only in inventory if it is available to use in combat. While on cooldown, it is not in inventory if((inCombat ? auto_have_skill($skill[Bowl a Curveball]) : item_amount($item[Cosmic Bowling Ball]) > 0) && auto_is_valid($skill[Bowl a Curveball]) && !(used contains "Bowl a Curveball")) { diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index 74ab324e8..8746e2752 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -62,7 +62,7 @@ boolean auto_allowCrystalBall(monster predicted_monster, location loc) //if already forced by something else, no need to handle your ball //pre_adv, or simulatePreAdvForCrystalBall, handles this as it already tracks burningDelay and forced encounters - if(is_banished(predicted_monster) || auto_wantToReplace(predicted_monster,loc) || auto_wantToBanish(predicted_monster,loc) || auto_wantToBanish(predicted_monster.phylum, loc)) + if(is_banished(predicted_monster) || auto_wantToReplace(predicted_monster,loc) || auto_wantToBanish(predicted_monster,loc) || auto_wantToBanish(monster_phylum(predicted_monster), loc)) { // next prediction is unwanted, do not allow return false; diff --git a/RELEASE/scripts/autoscend/paths/dark_gyffte.ash b/RELEASE/scripts/autoscend/paths/dark_gyffte.ash index c1af24f07..e44e95e47 100644 --- a/RELEASE/scripts/autoscend/paths/dark_gyffte.ash +++ b/RELEASE/scripts/autoscend/paths/dark_gyffte.ash @@ -34,7 +34,7 @@ boolean bat_wantHowl(location loc) monster[int] monsters = get_monsters(loc); foreach i in monsters { - if (!(banished contains monsters[i]) && (auto_wantToBanish(monsters[i], loc) || auto_wantToBanish(monsters[i].phylum, loc))) { + if (!(banished contains monsters[i]) && (auto_wantToBanish(monsters[i], loc) || auto_wantToBanish(monster_phylum(monsters[i]), loc))) { return true; } } From d929aacba252930d6bbfc57a13157a07fc0437cd Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 15 Dec 2023 00:00:43 -0500 Subject: [PATCH 21/85] Missed a couple .phylums --- RELEASE/scripts/autoscend/auto_pre_adv.ash | 2 +- RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index 71092f205..1d386d341 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -397,7 +397,7 @@ boolean auto_pre_adventure() if(auto_wantToBanish(monster_phylum(mon), place)) { // attempt to prepare for banishing, but if we can not try free running - boolean canBanish = adjustForBanishIfPossible(mon.phylum, place); + boolean canBanish = adjustForBanishIfPossible(monster_phylum(mon), place); if(!canBanish) { adjustForFreeRunIfPossible(mon,place); diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash index 1d5362c70..f2339d6f2 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash @@ -189,7 +189,7 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) } // Free run from monsters we want to banish/phylumbanish but are unable to - if(!combat_status_check("freeruncheck") && (auto_wantToBanish(enemy, my_location()) || auto_wantToBanish(enemy.phylum, my_location()))) + if(!combat_status_check("freeruncheck") && (auto_wantToBanish(enemy, my_location()) || auto_wantToBanish(monster_phylum(enemy), my_location()))) { string freeRunAction = freeRunCombatString(enemy, my_location(), true); if(freeRunAction != "") From 923e867d71db87b642248ce43a49979a16be1de1 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 15 Dec 2023 09:20:11 -0500 Subject: [PATCH 22/85] Plurals and tabs are hard --- BUILD/phylums/banish.dat | 24 ++++++++++++------------ RELEASE/scripts/autoscend/auto_util.ash | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/BUILD/phylums/banish.dat b/BUILD/phylums/banish.dat index ed936d7bf..326d9ca61 100644 --- a/BUILD/phylums/banish.dat +++ b/BUILD/phylums/banish.dat @@ -1,12 +1,12 @@ -dude loc:The Black Forest -dude loc:Twin Peak -dude loc:Whitey's Grove -beast loc:The Hidden Park -beast loc:Inside the Palindome -beast loc:The Penultimate Fantasy Airship -construct loc:The Penultimate Fantasy Airship -undead loc:The Haunted Library -undead loc:The Red Zeppelin -undead loc:The Haunted Wine Cellar -undead loc:The Haunted Boiler Room -undead loc:The Middle Chamber +dude loc:The Black Forest +dude loc:Twin Peak +dude loc:Whitey's Grove +beast loc:The Hidden Park +beast loc:Inside the Palindome +beast loc:The Penultimate Fantasy Airship +construct loc:The Penultimate Fantasy Airship +undead loc:The Haunted Library +undead loc:The Red Zeppelin +undead loc:The Haunted Wine Cellar +undead loc:The Haunted Boiler Room +undead loc:The Middle Chamber diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 08d74fdeb..77bfeb94c 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -3329,8 +3329,8 @@ boolean [phylum] auto_getPhylum(string category) { boolean [phylum] res; string [string,int,string] phylum_text; - if(!file_to_map("autoscend_phylum.txt", phylum_text)) - auto_log_error("Could not load autoscend_phylum.txt. This is bad!"); + if(!file_to_map("autoscend_phylums.txt", phylum_text)) + auto_log_error("Could not load autoscend_phylums.txt. This is bad!"); foreach i,name,conds in phylum_text[category] { phylum thisPhylum = name.to_phylum(); From e68c9a93b3885c4b39ce88675d381813347dc1fa Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 15 Dec 2023 09:24:43 -0500 Subject: [PATCH 23/85] vscode, tabs are not spaces --- BUILD/phylums/banish.dat | 24 ++++++++++++------------ RELEASE/data/autoscend_phylums.txt | 24 ++++++++++++------------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/BUILD/phylums/banish.dat b/BUILD/phylums/banish.dat index 326d9ca61..293904ab7 100644 --- a/BUILD/phylums/banish.dat +++ b/BUILD/phylums/banish.dat @@ -1,12 +1,12 @@ -dude loc:The Black Forest -dude loc:Twin Peak -dude loc:Whitey's Grove -beast loc:The Hidden Park -beast loc:Inside the Palindome -beast loc:The Penultimate Fantasy Airship -construct loc:The Penultimate Fantasy Airship -undead loc:The Haunted Library -undead loc:The Red Zeppelin -undead loc:The Haunted Wine Cellar -undead loc:The Haunted Boiler Room -undead loc:The Middle Chamber +dude loc:The Black Forest +dude loc:Twin Peak +dude loc:Whitey's Grove +beast loc:The Hidden Park +beast loc:Inside the Palindome +beast loc:The Penultimate Fantasy Airship +construct loc:The Penultimate Fantasy Airship +undead loc:The Haunted Library +undead loc:The Red Zeppelin +undead loc:The Haunted Wine Cellar +undead loc:The Haunted Boiler Room +undead loc:The Middle Chamber diff --git a/RELEASE/data/autoscend_phylums.txt b/RELEASE/data/autoscend_phylums.txt index f928f9617..372998188 100644 --- a/RELEASE/data/autoscend_phylums.txt +++ b/RELEASE/data/autoscend_phylums.txt @@ -2,16 +2,16 @@ # DO NOT EDIT THIS FILE DIRECTLY. EDIT THE .DAT FILES IN THE /BUILD/ FOLDER THEN RUN assemble.sh # See auto_check_conditions for conditional options -banish 0 dude loc:The Black Forest -banish 1 dude loc:Twin Peak -banish 2 dude loc:Whitey's Grove -banish 3 beast loc:The Hidden Park -banish 4 beast loc:Inside the Palindome -banish 5 beast loc:The Penultimate Fantasy Airship -banish 6 construct loc:The Penultimate Fantasy Airship -banish 7 undead loc:The Haunted Library -banish 8 undead loc:The Red Zeppelin -banish 9 undead loc:The Haunted Wine Cellar -banish 10 undead loc:The Haunted Boiler Room -banish 11 undead loc:The Middle Chamber +banish 0 dude loc:The Black Forest +banish 1 dude loc:Twin Peak +banish 2 dude loc:Whitey's Grove +banish 3 beast loc:The Hidden Park +banish 4 beast loc:Inside the Palindome +banish 5 beast loc:The Penultimate Fantasy Airship +banish 6 construct loc:The Penultimate Fantasy Airship +banish 7 undead loc:The Haunted Library +banish 8 undead loc:The Red Zeppelin +banish 9 undead loc:The Haunted Wine Cellar +banish 10 undead loc:The Haunted Boiler Room +banish 11 undead loc:The Middle Chamber From 96b35213520de5a04daa09b9e447991b69a49e9f Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 15 Dec 2023 09:35:24 -0500 Subject: [PATCH 24/85] Force eagle --- RELEASE/scripts/autoscend/auto_util.ash | 2 +- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 77bfeb94c..301bdd59a 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -735,7 +735,7 @@ boolean adjustForBanish(string combat_string) } if(combat_string == "skill" + $skill[%fn\, Release the Patriotic Screech!]) { - return handleFamiliar($familiar[Patriotic Eagle]); + return use_familiar($familiar[Patriotic Eagle]); } if(combat_string == "skill " + $skill[Beancannon]) { diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index 0d8deab5a..61d0ee613 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -528,7 +528,7 @@ string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat) if(inCombat) auto_log_info("Finding a banisher to use on " + enemyphylum + " at " + loc, "green"); - if(auto_is_valid($familiar[Patriotic Eagle]) && (get_property("screechCombats").to_int() == 0 || get_property("screechCombats").to_int() >= 11)) + if(canChangeToFamiliar($familiar[Patriotic Eagle]) && (get_property("screechCombats").to_int() == 0 || get_property("screechCombats").to_int() >= 11)) { return "skill" + $skill[%fn\, Release the Patriotic Screech!]; } From 399582d36a6a603d1aff41de4312e46831aada53 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 15 Dec 2023 14:47:38 -0500 Subject: [PATCH 25/85] Fixing inifinite loop screeching --- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index 61d0ee613..ab0421be7 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -528,7 +528,7 @@ string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat) if(inCombat) auto_log_info("Finding a banisher to use on " + enemyphylum + " at " + loc, "green"); - if(canChangeToFamiliar($familiar[Patriotic Eagle]) && (get_property("screechCombats").to_int() == 0 || get_property("screechCombats").to_int() >= 11)) + if(auto_have_familiar($familiar[Patriotic Eagle]) && (get_property("screechCombats").to_int() == 0)) { return "skill" + $skill[%fn\, Release the Patriotic Screech!]; } From 812d5a6ac5550f10a9fa21dbe247a289ec258a99 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 15 Dec 2023 15:35:29 -0500 Subject: [PATCH 26/85] Need to visit the buff in order to know the mods --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index fab7c4a57..076578541 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -760,6 +760,7 @@ boolean auto_haveEagle() boolean auto_getCitizenZone(string goal) { familiar eagle = $familiar[Patriotic Eagle]; + visitUrl("desc_effect.php?whicheffect=9391a5f7577e30ac3af6309804da6944"); string activeCitZoneMod = get_property("_citizenZoneMods").to_lower_case(); if(!auto_haveEagle()) { From 3a17f04f666c799a1dfa58a8fa4f2ccd006b14af Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 15 Dec 2023 15:37:15 -0500 Subject: [PATCH 27/85] Try 2 --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 076578541..cec7ad2d9 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -760,7 +760,7 @@ boolean auto_haveEagle() boolean auto_getCitizenZone(string goal) { familiar eagle = $familiar[Patriotic Eagle]; - visitUrl("desc_effect.php?whicheffect=9391a5f7577e30ac3af6309804da6944"); + visit_url("desc_effect.php?whicheffect=9391a5f7577e30ac3af6309804da6944"); string activeCitZoneMod = get_property("_citizenZoneMods").to_lower_case(); if(!auto_haveEagle()) { From 12b363652ff37612e3c0edebcaab56b7e897d9ff Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Mon, 1 Jan 2024 16:03:57 -0500 Subject: [PATCH 28/85] Add RWBBlast --- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index ab0421be7..e4915e69c 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -255,6 +255,10 @@ skill getSniffer(monster enemy, boolean inCombat) { return $skill[Transcendent Olfaction]; } + if(canUse($skill[%fn, fire a Red, White and Blue Blast], true, inCombat) && !have_effect($effect[Everything Looks Red, White and Blue])) + { + return $skill[%fn, fire a Red, White and Blue Blast]; + } if(canUse($skill[Make Friends], true , inCombat) && my_audience() >= 20 && !isSniffed(enemy, $skill[Make Friends])) { return $skill[Make Friends]; //avatar of sneaky pete specific skill From 4b4398d5666c4bfa3501c556ca7d155323174fb9 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Mon, 1 Jan 2024 22:43:19 -0500 Subject: [PATCH 29/85] More RWBBlast stuff --- RELEASE/scripts/autoscend/auto_util.ash | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 301bdd59a..6b903da5e 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -1028,6 +1028,10 @@ boolean adjustForSniffingIfPossible(monster target) { return autoEquip($item[cursed monkey\'s paw]); } + if(sniffer == $skill[%fn, fire a Red, White and Blue Blast]) + { + handleFamiliar($familiar[Patriotic Eagle]); + } if(sniffer != $skill[none]) { return acquireMP(sniffer.mp_cost()); From 03b6764851f789c7d51f82205ab69591e45c2c13 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 2 Jan 2024 10:06:47 -0500 Subject: [PATCH 30/85] Boolean fix --- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index e4915e69c..301389ae8 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -255,7 +255,7 @@ skill getSniffer(monster enemy, boolean inCombat) { return $skill[Transcendent Olfaction]; } - if(canUse($skill[%fn, fire a Red, White and Blue Blast], true, inCombat) && !have_effect($effect[Everything Looks Red, White and Blue])) + if(canUse($skill[%fn, fire a Red, White and Blue Blast], true, inCombat) && !(have_effect($effect[Everything Looks Red, White and Blue]) > 0)) { return $skill[%fn, fire a Red, White and Blue Blast]; } From 23722f93095cfa974796f62368b248bdf2ff0763 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:11:48 -0500 Subject: [PATCH 31/85] Force Eagle if need combats to screech again --- RELEASE/scripts/autoscend/auto_familiar.ash | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RELEASE/scripts/autoscend/auto_familiar.ash b/RELEASE/scripts/autoscend/auto_familiar.ash index aa66b3070..bbdd08b71 100644 --- a/RELEASE/scripts/autoscend/auto_familiar.ash +++ b/RELEASE/scripts/autoscend/auto_familiar.ash @@ -420,6 +420,12 @@ boolean autoChooseFamiliar(location place) } } + //Force the Patriotic Eagle if we used a banish recently and can't use one until we burn 11 combats with the Eagle + if(auto_haveEagle() && get_property("screechCombats").to_int() > 0) + { + famChoice = $familiar[Patriotic Eagle]; + } + // Gremlins have special familiar handling. if ($locations[Next to that Barrel with Something Burning in it, Out By that Rusted-Out Car, Over Where the Old Tires Are, Near an Abandoned Refrigerator] contains place) { famChoice = lookupFamiliarDatafile("gremlins"); From 6774cff5646af916986d1f2d391b0dcc1a07b0d6 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:41:50 -0500 Subject: [PATCH 32/85] Update phylum banish list and eagle force --- BUILD/phylums/banish.dat | 1 - RELEASE/data/autoscend_phylums.txt | 11 +++++------ RELEASE/scripts/autoscend/auto_familiar.ash | 6 ------ RELEASE/scripts/autoscend/auto_pre_adv.ash | 1 + RELEASE/scripts/autoscend/autoscend_header.ash | 1 + RELEASE/scripts/autoscend/iotms/mr2023.ash | 9 +++++++++ 6 files changed, 16 insertions(+), 13 deletions(-) diff --git a/BUILD/phylums/banish.dat b/BUILD/phylums/banish.dat index 293904ab7..0db0d9d36 100644 --- a/BUILD/phylums/banish.dat +++ b/BUILD/phylums/banish.dat @@ -4,7 +4,6 @@ dude loc:Whitey's Grove beast loc:The Hidden Park beast loc:Inside the Palindome beast loc:The Penultimate Fantasy Airship -construct loc:The Penultimate Fantasy Airship undead loc:The Haunted Library undead loc:The Red Zeppelin undead loc:The Haunted Wine Cellar diff --git a/RELEASE/data/autoscend_phylums.txt b/RELEASE/data/autoscend_phylums.txt index 372998188..9fb00cb8c 100644 --- a/RELEASE/data/autoscend_phylums.txt +++ b/RELEASE/data/autoscend_phylums.txt @@ -8,10 +8,9 @@ banish 2 dude loc:Whitey's Grove banish 3 beast loc:The Hidden Park banish 4 beast loc:Inside the Palindome banish 5 beast loc:The Penultimate Fantasy Airship -banish 6 construct loc:The Penultimate Fantasy Airship -banish 7 undead loc:The Haunted Library -banish 8 undead loc:The Red Zeppelin -banish 9 undead loc:The Haunted Wine Cellar -banish 10 undead loc:The Haunted Boiler Room -banish 11 undead loc:The Middle Chamber +banish 6 undead loc:The Haunted Library +banish 7 undead loc:The Red Zeppelin +banish 8 undead loc:The Haunted Wine Cellar +banish 9 undead loc:The Haunted Boiler Room +banish 10 undead loc:The Middle Chamber diff --git a/RELEASE/scripts/autoscend/auto_familiar.ash b/RELEASE/scripts/autoscend/auto_familiar.ash index bbdd08b71..aa66b3070 100644 --- a/RELEASE/scripts/autoscend/auto_familiar.ash +++ b/RELEASE/scripts/autoscend/auto_familiar.ash @@ -420,12 +420,6 @@ boolean autoChooseFamiliar(location place) } } - //Force the Patriotic Eagle if we used a banish recently and can't use one until we burn 11 combats with the Eagle - if(auto_haveEagle() && get_property("screechCombats").to_int() > 0) - { - famChoice = $familiar[Patriotic Eagle]; - } - // Gremlins have special familiar handling. if ($locations[Next to that Barrel with Something Burning in it, Out By that Rusted-Out Car, Over Where the Old Tires Are, Near an Abandoned Refrigerator] contains place) { famChoice = lookupFamiliarDatafile("gremlins"); diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index 1d386d341..f48566fbb 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -200,6 +200,7 @@ boolean auto_pre_adventure() auto_log_info("Starting preadventure script...", "green"); auto_log_debug("Adventuring at " +place, "green"); + auto_forceEagle(); // force Patriotic Eagle if we have a >0 combats until we can screech again preAdvUpdateFamiliar(place); ed_handleAdventureServant(place); diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 965115c0c..dbbd95cc0 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -534,6 +534,7 @@ boolean auto_canCircadianRhythm(); boolean auto_circadianRhythmTarget(monster target); boolean auto_haveEagle(); boolean auto_getCitizenZone(string goal); +void auto_forceEagle(); boolean auto_haveJillOfAllTrades(); void auto_handleJillOfAllTrades(); boolean auto_haveBurningLeaves(); diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index cec7ad2d9..cad416f41 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -829,6 +829,15 @@ boolean auto_getCitizenZone(string goal) return false; } +void auto_forceEagle() +{ + //Force the Patriotic Eagle if we used a banish recently and can't use one until we burn 11 combats with the Eagle + if(auto_haveEagle() && get_property("screechCombats").to_int() > 0) + { + handleFamiliar($familiar[Patriotic Eagle]); + } +} + boolean auto_haveBurningLeaves() { return auto_is_valid($item[A Guide to Burning Leaves]) && get_campground() contains $item[A Guide to Burning Leaves]; From c5bff0394c95c7fd3ea4e88531e8f01ee3e6b250 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 5 Jan 2024 14:06:49 -0500 Subject: [PATCH 33/85] Move forceEagle call to auto_familiar --- RELEASE/scripts/autoscend/auto_familiar.ash | 2 ++ RELEASE/scripts/autoscend/auto_pre_adv.ash | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/auto_familiar.ash b/RELEASE/scripts/autoscend/auto_familiar.ash index aa66b3070..f81bcf959 100644 --- a/RELEASE/scripts/autoscend/auto_familiar.ash +++ b/RELEASE/scripts/autoscend/auto_familiar.ash @@ -704,6 +704,8 @@ void preAdvUpdateFamiliar(location place) handleFamiliar(get_property("auto_100familiar").to_familiar()); //do not break 100 familiar runs } + auto_forceEagle(); // force Patriotic Eagle if we have a >0 combats until we can screech again + //familiar requirement to adventure in a zone, override everything else. if(place == $location[The Deep Machine Tunnels]) { diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index f48566fbb..1d386d341 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -200,7 +200,6 @@ boolean auto_pre_adventure() auto_log_info("Starting preadventure script...", "green"); auto_log_debug("Adventuring at " +place, "green"); - auto_forceEagle(); // force Patriotic Eagle if we have a >0 combats until we can screech again preAdvUpdateFamiliar(place); ed_handleAdventureServant(place); From 205c5fb4c49ef8dfd6530ce1d4b17dfc2c34b511 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 5 Jan 2024 23:59:32 -0500 Subject: [PATCH 34/85] Better RWBBlast control --- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index 6d504d43a..71fe8a90f 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -206,6 +206,9 @@ boolean isSniffed(monster enemy, skill sk) case $skill[Transcendent Olfaction]: retval = contains_text(get_property("olfactedMonster"), enemy); break; + case $skill[%fn, fire a Red, White and Blue Blast]: + retval = contains_text(get_property("rwbMonster"), enemy); + break; case $skill[Make Friends]: retval = contains_text(get_property("makeFriendsMonster"), enemy); break; @@ -239,7 +242,7 @@ boolean isSniffed(monster enemy, skill sk) boolean isSniffed(monster enemy) { //checks if the monster enemy is currently sniffed using any of the sniff skills - foreach sk in $skills[Transcendent Olfaction, Make Friends, Long Con, Perceive Soul, Gallapagosian Mating Call, Monkey Point, Offer Latte to Opponent, Motif] + foreach sk in $skills[Transcendent Olfaction, %fn, fire a Red, White and Blue Blast, Make Friends, Long Con, Perceive Soul, Gallapagosian Mating Call, Monkey Point, Offer Latte to Opponent, Motif] { if(isSniffed(enemy, sk)) return true; } @@ -255,7 +258,7 @@ skill getSniffer(monster enemy, boolean inCombat) { return $skill[Transcendent Olfaction]; } - if(canUse($skill[%fn, fire a Red, White and Blue Blast], true, inCombat) && !(have_effect($effect[Everything Looks Red, White and Blue]) > 0)) + if(canUse($skill[%fn, fire a Red, White and Blue Blast], true, inCombat) && !(have_effect($effect[Everything Looks Red, White and Blue]) > 0) && enemy.copyable) { return $skill[%fn, fire a Red, White and Blue Blast]; } From 71037e451123df1f71b29614c75583fabd1329ad Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 6 Jan 2024 01:29:36 -0500 Subject: [PATCH 35/85] Backslash is useful --- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index 71fe8a90f..d80434c20 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -242,7 +242,7 @@ boolean isSniffed(monster enemy, skill sk) boolean isSniffed(monster enemy) { //checks if the monster enemy is currently sniffed using any of the sniff skills - foreach sk in $skills[Transcendent Olfaction, %fn, fire a Red, White and Blue Blast, Make Friends, Long Con, Perceive Soul, Gallapagosian Mating Call, Monkey Point, Offer Latte to Opponent, Motif] + foreach sk in $skills[Transcendent Olfaction, %fn\, fire a Red\, White and Blue Blast, Make Friends, Long Con, Perceive Soul, Gallapagosian Mating Call, Monkey Point, Offer Latte to Opponent, Motif] { if(isSniffed(enemy, sk)) return true; } From f33211bbe3c23ff9be0321ddb3d20b175fd67d3c Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 18 Jan 2024 16:30:58 -0500 Subject: [PATCH 36/85] Banish dudes in Zeppelin. Some zone-phyla checks --- BUILD/phylums/banish.dat | 2 +- RELEASE/data/autoscend_phylums.txt | 12 ++++++------ RELEASE/scripts/autoscend/auto_util.ash | 2 ++ RELEASE/scripts/autoscend/quests/level_07.ash | 10 ++++++++++ RELEASE/scripts/autoscend/quests/level_11.ash | 5 +++++ 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/BUILD/phylums/banish.dat b/BUILD/phylums/banish.dat index 0db0d9d36..9772039c4 100644 --- a/BUILD/phylums/banish.dat +++ b/BUILD/phylums/banish.dat @@ -1,11 +1,11 @@ dude loc:The Black Forest dude loc:Twin Peak +dude loc:The Red Zeppelin;sniffed:Red Butler dude loc:Whitey's Grove beast loc:The Hidden Park beast loc:Inside the Palindome beast loc:The Penultimate Fantasy Airship undead loc:The Haunted Library -undead loc:The Red Zeppelin undead loc:The Haunted Wine Cellar undead loc:The Haunted Boiler Room undead loc:The Middle Chamber diff --git a/RELEASE/data/autoscend_phylums.txt b/RELEASE/data/autoscend_phylums.txt index 9fb00cb8c..6bc8f3e27 100644 --- a/RELEASE/data/autoscend_phylums.txt +++ b/RELEASE/data/autoscend_phylums.txt @@ -4,12 +4,12 @@ # See auto_check_conditions for conditional options banish 0 dude loc:The Black Forest banish 1 dude loc:Twin Peak -banish 2 dude loc:Whitey's Grove -banish 3 beast loc:The Hidden Park -banish 4 beast loc:Inside the Palindome -banish 5 beast loc:The Penultimate Fantasy Airship -banish 6 undead loc:The Haunted Library -banish 7 undead loc:The Red Zeppelin +banish 2 dude loc:The Red Zeppelin;sniffed:Red Butler +banish 3 dude loc:Whitey's Grove +banish 4 beast loc:The Hidden Park +banish 5 beast loc:Inside the Palindome +banish 6 beast loc:The Penultimate Fantasy Airship +banish 7 undead loc:The Haunted Library banish 8 undead loc:The Haunted Wine Cellar banish 9 undead loc:The Haunted Boiler Room banish 10 undead loc:The Middle Chamber diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 389900965..38e363c48 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -3282,6 +3282,8 @@ boolean auto_check_conditions(string conds) return true; if(get_property("motifMonster").to_monster() == check_sniffed) return true; + if(get_property("rwbMonster").to_monster() == check_sniffed) + return true; return false; // data: Doesn't matter, but put something so I don't have to support dataless conditions // True when you expect a protonic ghost report diff --git a/RELEASE/scripts/autoscend/quests/level_07.ash b/RELEASE/scripts/autoscend/quests/level_07.ash index 3321b440b..7dfe2ec0d 100644 --- a/RELEASE/scripts/autoscend/quests/level_07.ash +++ b/RELEASE/scripts/autoscend/quests/level_07.ash @@ -149,6 +149,11 @@ boolean L7_defiledAlcove() return false; } + if (get_property("banishedPhyla").to_phylum() == $phylum[undead] && get_property("screechCombats").to_int() > 0) + { + return false; //can't unscreech-banish undead until screechCombats = 0. If new phylum banishers come out, this should be updated. + } + int evilBonus = cyrptEvilBonus(); if (get_property("cyrptAlcoveEvilness").to_int() > (14 + evilBonus)) @@ -185,6 +190,11 @@ boolean L7_crypt() use(1, $item[chest of the bonerdagon]); return false; } + + if (get_property("banishedPhyla").to_phylum() == $phylum[undead] && get_property("screechCombats").to_int() > 0) + { + return false; //can't unscreech-banish undead until screechCombats = 0. If new phylum banishers come out, this should be updated. + } // make sure quest status is correct before we attempt to adventure. visit_url("crypt.php"); diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index f4c1fa10f..06c35bf0a 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -2831,6 +2831,11 @@ boolean L11_palindome() return false; } + if (get_property("banishedPhyla").to_phylum() == $phylum[dude] && get_property("screechCombats").to_int() > 0) + { + return false; //can't unscreech-banish dudes until screechCombats = 0. If new phylum banishers come out, this should be updated. + } + int total = 0; total = total + item_amount($item[Photograph Of A Red Nugget]); total = total + item_amount($item[Photograph Of An Ostrich Egg]); From c6b5f0cf3334944fddf795bc6cd70d99fa921c2a Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 23 Jan 2024 10:58:48 -0500 Subject: [PATCH 37/85] One more condition to the Butler phylum banish --- BUILD/phylums/banish.dat | 2 +- RELEASE/data/autoscend_phylums.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BUILD/phylums/banish.dat b/BUILD/phylums/banish.dat index 9772039c4..553783452 100644 --- a/BUILD/phylums/banish.dat +++ b/BUILD/phylums/banish.dat @@ -1,6 +1,6 @@ dude loc:The Black Forest dude loc:Twin Peak -dude loc:The Red Zeppelin;sniffed:Red Butler +dude loc:The Red Zeppelin;sniffed:Red Butler;item:Glark Cable>2 dude loc:Whitey's Grove beast loc:The Hidden Park beast loc:Inside the Palindome diff --git a/RELEASE/data/autoscend_phylums.txt b/RELEASE/data/autoscend_phylums.txt index 6bc8f3e27..f5e83ce4e 100644 --- a/RELEASE/data/autoscend_phylums.txt +++ b/RELEASE/data/autoscend_phylums.txt @@ -4,7 +4,7 @@ # See auto_check_conditions for conditional options banish 0 dude loc:The Black Forest banish 1 dude loc:Twin Peak -banish 2 dude loc:The Red Zeppelin;sniffed:Red Butler +banish 2 dude loc:The Red Zeppelin;sniffed:Red Butler;item:Glark Cable>2 banish 3 dude loc:Whitey's Grove banish 4 beast loc:The Hidden Park banish 5 beast loc:Inside the Palindome From cafc861195e56f025a7bf5a7e21299c8157d41ed Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 23 Jan 2024 13:01:01 -0500 Subject: [PATCH 38/85] Dr. Awkward fix --- BUILD/phylums/banish.dat | 4 ++-- RELEASE/data/autoscend_phylums.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/BUILD/phylums/banish.dat b/BUILD/phylums/banish.dat index 553783452..1a0d20307 100644 --- a/BUILD/phylums/banish.dat +++ b/BUILD/phylums/banish.dat @@ -1,9 +1,9 @@ dude loc:The Black Forest dude loc:Twin Peak dude loc:The Red Zeppelin;sniffed:Red Butler;item:Glark Cable>2 -dude loc:Whitey's Grove +dude loc:Whitey's Grove;prop:questL11Palindome!=step4 beast loc:The Hidden Park -beast loc:Inside the Palindome +beast loc:Inside the Palindome;prop:questL11Palindome!=step4 beast loc:The Penultimate Fantasy Airship undead loc:The Haunted Library undead loc:The Haunted Wine Cellar diff --git a/RELEASE/data/autoscend_phylums.txt b/RELEASE/data/autoscend_phylums.txt index f5e83ce4e..0eb6ecab4 100644 --- a/RELEASE/data/autoscend_phylums.txt +++ b/RELEASE/data/autoscend_phylums.txt @@ -5,9 +5,9 @@ banish 0 dude loc:The Black Forest banish 1 dude loc:Twin Peak banish 2 dude loc:The Red Zeppelin;sniffed:Red Butler;item:Glark Cable>2 -banish 3 dude loc:Whitey's Grove +banish 3 dude loc:Whitey's Grove;prop:questL11Palindome!=step4 banish 4 beast loc:The Hidden Park -banish 5 beast loc:Inside the Palindome +banish 5 beast loc:Inside the Palindome;prop:questL11Palindome!=step4 banish 6 beast loc:The Penultimate Fantasy Airship banish 7 undead loc:The Haunted Library banish 8 undead loc:The Haunted Wine Cellar From 12d38eba5bc9f4a47e4cfab5d630d579e21fe3e5 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 20 Feb 2024 17:35:37 -0500 Subject: [PATCH 39/85] Some updates after comments --- RELEASE/scripts/autoscend/auto_familiar.ash | 4 ++-- RELEASE/scripts/autoscend/auto_pre_adv.ash | 4 ---- RELEASE/scripts/autoscend/auto_util.ash | 2 +- .../scripts/autoscend/combat/auto_combat_util.ash | 11 +++++------ RELEASE/scripts/autoscend/iotms/mr2023.ash | 14 ++++++++------ RELEASE/scripts/autoscend/quests/level_13.ash | 4 ++-- 6 files changed, 18 insertions(+), 21 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_familiar.ash b/RELEASE/scripts/autoscend/auto_familiar.ash index f81bcf959..6109b8263 100644 --- a/RELEASE/scripts/autoscend/auto_familiar.ash +++ b/RELEASE/scripts/autoscend/auto_familiar.ash @@ -419,6 +419,8 @@ boolean autoChooseFamiliar(location place) } } } + + auto_forceEagle(); // force Patriotic Eagle if we have a >0 combats until we can screech again // Gremlins have special familiar handling. if ($locations[Next to that Barrel with Something Burning in it, Out By that Rusted-Out Car, Over Where the Old Tires Are, Near an Abandoned Refrigerator] contains place) { @@ -703,8 +705,6 @@ void preAdvUpdateFamiliar(location place) { handleFamiliar(get_property("auto_100familiar").to_familiar()); //do not break 100 familiar runs } - - auto_forceEagle(); // force Patriotic Eagle if we have a >0 combats until we can screech again //familiar requirement to adventure in a zone, override everything else. if(place == $location[The Deep Machine Tunnels]) diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index 1d386d341..39b1a357d 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -398,10 +398,6 @@ boolean auto_pre_adventure() { // attempt to prepare for banishing, but if we can not try free running boolean canBanish = adjustForBanishIfPossible(monster_phylum(mon), place); - if(!canBanish) - { - adjustForFreeRunIfPossible(mon,place); - } zoneHasUnwantedMonsters = true; } if(auto_wantToBanish(mon, place)) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 12fab3404..acde02124 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -794,7 +794,7 @@ boolean adjustForBanishIfPossible(phylum enemyphylum, location loc) if(canBanish(enemyphylum, loc)) { string banish_string = banisherCombatString(enemyphylum, loc); - auto_log_info("Adjusting to have banisher available for " + enemyphylum + ": " + banish_string, "blue"); + auto_log_info("Adjusting to have phylum banisher available for " + enemyphylum + ": " + banish_string, "blue"); return adjustForBanish(banish_string); } return false; diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index c8c105e55..91e6caafd 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -516,7 +516,7 @@ string findBanisher(int round, monster enemy, string text) return auto_combatHandler(round, enemy, text); } -string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat) +string banisherCombatString(phylum enemyPhylum, location loc, boolean inCombat) { if(inAftercore()) { @@ -529,11 +529,11 @@ string banisherCombatString(phylum enemyphylum, location loc, boolean inCombat) } //Check that we actually want to banish this thing. - if(!auto_wantToBanish(enemyphylum, loc)) + if(!auto_wantToBanish(enemyPhylum, loc)) return ""; if(inCombat) - auto_log_info("Finding a banisher to use on " + enemyphylum + " at " + loc, "green"); + auto_log_info("Finding a phylum banisher to use on " + enemyPhylum + " at " + loc, "green"); if(auto_have_familiar($familiar[Patriotic Eagle]) && (get_property("screechCombats").to_int() == 0)) { @@ -677,7 +677,6 @@ string banisherCombatString(monster enemy, location loc, boolean inCombat) { return "skill " + $skill[Show Your Boring Familiar Pictures]; } - // bowling ball is only in inventory if it is available to use in combat. While on cooldown, it is not in inventory if((inCombat ? auto_have_skill($skill[Bowl a Curveball]) : item_amount($item[Cosmic Bowling Ball]) > 0) && auto_is_valid($skill[Bowl a Curveball]) && !(used contains "Bowl a Curveball")) { @@ -787,9 +786,9 @@ string banisherCombatString(monster enemy, location loc, boolean inCombat) return ""; } -string banisherCombatString(phylum enemyphylum, location loc) +string banisherCombatString(phylum enemyPhylum, location loc) { - return banisherCombatString(enemyphylum, loc, false); + return banisherCombatString(enemyPhylum, loc, false); } string banisherCombatString(monster enemy, location loc) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 6050567f3..7cbf48046 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -543,15 +543,15 @@ void auto_scepterRollover() { use_skill($skill[Aug. 30th: Beach Day!]); //Rollover adventures } - if(canUse($skill[Aug. 27th: Just Because Day!]) && !get_property("_aug27Cast").to_boolean() && get_property("_augSkillsCast").to_int()< 5) - { - use_skill($skill[Aug. 27th: Just Because Day!]); //3 random buffs - } if(canUse($skill[Aug. 13th: Left\/Off Hander\'s Day!]) && !get_property("_aug13Cast").to_boolean() && get_property("_augSkillsCast").to_int()< 5 && numeric_modifier(equipped_item($slot[off-hand]),"Adventures") > 0) { use_skill($skill[Aug. 13th: Left\/Off Hander\'s Day!]); //bump up the off-hand } + if(canUse($skill[Aug. 27th: Just Because Day!]) && !get_property("_aug27Cast").to_boolean() && get_property("_augSkillsCast").to_int()< 5) + { + use_skill($skill[Aug. 27th: Just Because Day!]); //3 random buffs + } } void auto_lostStomach(boolean force) @@ -760,12 +760,13 @@ boolean auto_haveEagle() boolean auto_getCitizenZone(string goal) { familiar eagle = $familiar[Patriotic Eagle]; - visit_url("desc_effect.php?whicheffect=9391a5f7577e30ac3af6309804da6944"); - string activeCitZoneMod = get_property("_citizenZoneMods").to_lower_case(); if(!auto_haveEagle()) { return false; } + visit_url("desc_effect.php?whicheffect=9391a5f7577e30ac3af6309804da6944"); // visit url to refresh mafia's Citizen of a Zone effects + string activeCitZoneMod = get_property("_citizenZoneMods").to_lower_case(); + if((have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) || (!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) == 0 && have_effect($effect[Citizen of a Zone]) > 0)) { return false; @@ -775,6 +776,7 @@ boolean auto_getCitizenZone(string goal) uneffect($effect[Citizen of a Zone]); if(have_effect($effect[Citizen of a Zone]) > 0) { + auto_log_debug("Tried to remove Citizen of a Zone but couldn't"); return false; } } diff --git a/RELEASE/scripts/autoscend/quests/level_13.ash b/RELEASE/scripts/autoscend/quests/level_13.ash index 1bb4c26df..a89736279 100644 --- a/RELEASE/scripts/autoscend/quests/level_13.ash +++ b/RELEASE/scripts/autoscend/quests/level_13.ash @@ -94,9 +94,9 @@ boolean EightBitRealmHandler() case "green": // limited buff that is helpful for 3 of 4 8-bit zones buffMaintain($effect[shadow waters]); - if(item_drop_modifier() < 370){ + /*if(item_drop_modifier() < 370){ auto_getCitizenZone("item"); - } + }*/ adv_spent = autoAdv($location[Hero\'s Field]); break; default: From e951e17e190eec5e4885447ca996de62ef816bb5 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 23 Feb 2024 01:21:35 -0500 Subject: [PATCH 40/85] Added multiple locs for each Cit Zone Goal Actually force Eagle --- RELEASE/scripts/autoscend/auto_familiar.ash | 2 +- .../scripts/autoscend/autoscend_header.ash | 2 +- RELEASE/scripts/autoscend/iotms/mr2023.ash | 138 +++++++++++++++--- 3 files changed, 117 insertions(+), 25 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_familiar.ash b/RELEASE/scripts/autoscend/auto_familiar.ash index 6109b8263..3461a8e61 100644 --- a/RELEASE/scripts/autoscend/auto_familiar.ash +++ b/RELEASE/scripts/autoscend/auto_familiar.ash @@ -420,7 +420,7 @@ boolean autoChooseFamiliar(location place) } } - auto_forceEagle(); // force Patriotic Eagle if we have a >0 combats until we can screech again + famChoice = auto_forceEagle(); // force Patriotic Eagle if we have a >0 combats until we can screech again // Gremlins have special familiar handling. if ($locations[Next to that Barrel with Something Burning in it, Out By that Rusted-Out Car, Over Where the Old Tires Are, Near an Abandoned Refrigerator] contains place) { diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 83566f4ec..edd891f0e 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -534,7 +534,7 @@ boolean auto_canCircadianRhythm(); boolean auto_circadianRhythmTarget(monster target); boolean auto_haveEagle(); boolean auto_getCitizenZone(string goal); -void auto_forceEagle(); +familiar auto_forceEagle(); boolean auto_haveJillOfAllTrades(); void auto_handleJillOfAllTrades(); boolean auto_haveBurningLeaves(); diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 7cbf48046..0256e715c 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -760,6 +760,10 @@ boolean auto_haveEagle() boolean auto_getCitizenZone(string goal) { familiar eagle = $familiar[Patriotic Eagle]; + boolean[location] meatZones = $locations[The Battlefield (Frat Uniform), The Oasis, The Hidden Hospital, The Haunted Bathroom, The Castle in the Clouds in the Sky (Basement), Lair of the Ninja Snowmen, The Defiled Cranny, The Laugh Floor, The Batrat and Ratbat Burrow, The Sleazy Back Alley]; + boolean[location] itemZones = $locations[A Massive Ziggurat, The Haunted Laundry Room, Whitey's Grove, The Icy Peak, Itznotyerzitz Mine, The Dark Heart of the Woods, The Hidden Temple, The Haunted Library, The Bat Hole Entrance, Noob Cave]; + boolean[location] initZones = $locations[The Feeding Chamber, An Unusually Quiet Barroom Brawl, An Overgrown Shrine (Northeast), Oil Peak, Cobb's Knob Kitchens, The VERY Unquiet Garves, The Haunted Kitchen]; + boolean[location] mpZones = $locations[Sonofa Beach, The Themthar Hills, The Upper Chamber, Inside the Palindome, An Overgrown Shrine (Northwest), A-boo Peak, Hippy Camp, Megalo-City]; if(!auto_haveEagle()) { return false; @@ -783,61 +787,149 @@ boolean auto_getCitizenZone(string goal) switch(goal) { case "meat": //Get +50% meat - if(can_adventure($location[Lair of the Ninja Snowmen])) + foreach loc in meatZones { - handleFamiliar(eagle); - if(autoAdv($location[Lair of the Ninja Snowmen])) + if(loc == my_location()) // don't bother checking if we can adventure since we are already there { - if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + handleFamiliar(eagle); + if(autoAdv(loc)) { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + { + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + return false; } return false; } - return false; + else if(can_adventure(loc)) // need this separate if because we don't want to change locations if we don't have to + { + handleFamiliar(eagle); + if(autoAdv(loc)) + { + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + { + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + return false; + } + return false; + } + else return false; } case "initiative": //Get +100% initiative. Give the option to add this to a quest later, but currently unused - if(can_adventure($location[The Haunted Kitchen])) + foreach loc in initZones { - handleFamiliar(eagle); - if(autoAdv($location[The Haunted Kitchen])) //need this if statement separate in case we hit a non-combat + if(loc == my_location()) // don't bother checking if we can adventure since we are already there { - if(contains_text(activeCitZoneMod, goal)) + handleFamiliar(eagle); + if(autoAdv(loc)) { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + { + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + return false; } return false; } - return false; + else if(can_adventure(loc)) // need this separate if because we don't want to change locations if we don't have to + { + handleFamiliar(eagle); + if(autoAdv(loc)) + { + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + { + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + return false; + } + return false; + } + else return false; + } + case "mp": + foreach loc in mpZones + { + if(loc == my_location()) // don't bother checking if we can adventure since we are already there + { + handleFamiliar(eagle); + if(autoAdv(loc)) + { + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + { + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + return false; + } + return false; + } + else if(can_adventure(loc)) // need this separate if because we don't want to change locations if we don't have to + { + handleFamiliar(eagle); + if(autoAdv(loc)) + { + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + { + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + return false; + } + return false; + } + else return false; } default: //Get +30% item by default - if(can_adventure($location[The Haunted Library])) + foreach loc in itemZones { - handleFamiliar(eagle); - if(autoAdv($location[The Haunted Library])) //need this if statement separate in case we hit a non-combat + if(loc == my_location()) // don't bother checking if we can adventure since we are already there { - if(contains_text(activeCitZoneMod, goal)) + handleFamiliar(eagle); + if(autoAdv(loc)) { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + { + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + return false; } return false; } - return false; + else if(can_adventure(loc)) // need this separate if because we don't want to change locations if we don't have to + { + handleFamiliar(eagle); + if(autoAdv(loc)) + { + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat + { + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + return false; + } + return false; + } + else return false; } } return false; } -void auto_forceEagle() +familiar auto_forceEagle() { //Force the Patriotic Eagle if we used a banish recently and can't use one until we burn 11 combats with the Eagle if(auto_haveEagle() && get_property("screechCombats").to_int() > 0) { - handleFamiliar($familiar[Patriotic Eagle]); + return $familiar[Patriotic Eagle]; } + return $familiar[none]; } boolean auto_haveBurningLeaves() From a4a76170b2802c81bc2df9c215a893afdd01ef7b Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Mon, 26 Feb 2024 09:27:50 -0500 Subject: [PATCH 41/85] Actually check for banished phyla --- RELEASE/scripts/autoscend/auto_util.ash | 25 +++++++++++++++++++ .../scripts/autoscend/autoscend_header.ash | 2 ++ RELEASE/scripts/autoscend/quests/level_07.ash | 8 +++--- RELEASE/scripts/autoscend/quests/level_11.ash | 2 +- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index acde02124..f7f3c15a1 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -500,6 +500,31 @@ boolean isBanished(monster enemy) return (banishedMonsters() contains enemy); } +int[phylum] banishedPhyla() +{ + int[phylum] retval; + string[int] data = split_string(get_property("banishedPhyla"), ":"); + + if(get_property("banishedPhyla") == "") + { + return retval; + } + + int i=0; + while(i 0) + if (isBanishedPhyla($phylum[undead])) { - return false; //can't unscreech-banish undead until screechCombats = 0. If new phylum banishers come out, this should be updated. + return false; //No sense in trying to go to the cyrpt if undead are banished } int evilBonus = cyrptEvilBonus(); @@ -191,9 +191,9 @@ boolean L7_crypt() return false; } - if (get_property("banishedPhyla").to_phylum() == $phylum[undead] && get_property("screechCombats").to_int() > 0) + if (isBanishedPhyla($phylum[undead])) { - return false; //can't unscreech-banish undead until screechCombats = 0. If new phylum banishers come out, this should be updated. + return false; //No sense in trying to go to the cyrpt if undead are banished } // make sure quest status is correct before we attempt to adventure. diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index 06c35bf0a..9e3bd7d28 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -2831,7 +2831,7 @@ boolean L11_palindome() return false; } - if (get_property("banishedPhyla").to_phylum() == $phylum[dude] && get_property("screechCombats").to_int() > 0) + if (isBanishedPhyla($phylum[dude]) && get_property("screechCombats").to_int() > 0) { return false; //can't unscreech-banish dudes until screechCombats = 0. If new phylum banishers come out, this should be updated. } From ee8fb5adaf3f7484d553b8618736944c5360c6b4 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Mon, 26 Feb 2024 11:20:20 -0500 Subject: [PATCH 42/85] More mp regen zones --- .../scripts/autoscend/autoscend_header.ash | 1 + RELEASE/scripts/autoscend/iotms/mr2023.ash | 34 +++++++++++++------ RELEASE/scripts/autoscend/quests/level_02.ash | 6 ++++ 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index 800812edf..b747b6b70 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -533,6 +533,7 @@ monster auto_habitatMonster(); boolean auto_canCircadianRhythm(); boolean auto_circadianRhythmTarget(monster target); boolean auto_haveEagle(); +string activeCitZoneMod(); boolean auto_getCitizenZone(string goal); familiar auto_forceEagle(); boolean auto_haveJillOfAllTrades(); diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 0256e715c..5b88eb790 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -757,19 +757,31 @@ boolean auto_haveEagle() return false; } -boolean auto_getCitizenZone(string goal) +string activeCitZoneMod() { - familiar eagle = $familiar[Patriotic Eagle]; - boolean[location] meatZones = $locations[The Battlefield (Frat Uniform), The Oasis, The Hidden Hospital, The Haunted Bathroom, The Castle in the Clouds in the Sky (Basement), Lair of the Ninja Snowmen, The Defiled Cranny, The Laugh Floor, The Batrat and Ratbat Burrow, The Sleazy Back Alley]; - boolean[location] itemZones = $locations[A Massive Ziggurat, The Haunted Laundry Room, Whitey's Grove, The Icy Peak, Itznotyerzitz Mine, The Dark Heart of the Woods, The Hidden Temple, The Haunted Library, The Bat Hole Entrance, Noob Cave]; - boolean[location] initZones = $locations[The Feeding Chamber, An Unusually Quiet Barroom Brawl, An Overgrown Shrine (Northeast), Oil Peak, Cobb's Knob Kitchens, The VERY Unquiet Garves, The Haunted Kitchen]; - boolean[location] mpZones = $locations[Sonofa Beach, The Themthar Hills, The Upper Chamber, Inside the Palindome, An Overgrown Shrine (Northwest), A-boo Peak, Hippy Camp, Megalo-City]; - if(!auto_haveEagle()) + if(!auto_haveEagle() || have_effect($effect[Citizen of a Zone]) = 0) { - return false; + return "none"; } - visit_url("desc_effect.php?whicheffect=9391a5f7577e30ac3af6309804da6944"); // visit url to refresh mafia's Citizen of a Zone effects - string activeCitZoneMod = get_property("_citizenZoneMods").to_lower_case(); + visit_url("desc_effect.php?whicheffect=9391a5f7577e30ac3af6309804da6944"); // visit url to refresh Mafia's _citizenZoneMods preference + return get_property("_citizenZoneMods").to_lower_case(); +} + +boolean auto_getCitizenZone(string goal) +{ + familiar eagle = $familiar[Patriotic Eagle]; + //zones are approximately organized by autoscend level quest structure + boolean[location] meatZones = $locations[The Battlefield (Frat Uniform), The Oasis, The Hidden Hospital, The Haunted Bathroom, The Castle in the Clouds in the Sky (Basement), + Lair of the Ninja Snowmen, The Defiled Cranny, The Laugh Floor, The Batrat and Ratbat Burrow, The Sleazy Back Alley]; + boolean[location] itemZones = $locations[A Massive Ziggurat, The Haunted Laundry Room, Whitey's Grove, The Icy Peak, Itznotyerzitz Mine, + The Dark Heart of the Woods, The Hidden Temple, The Haunted Library, The Bat Hole Entrance, Noob Cave]; + boolean[location] initZones = $locations[The Feeding Chamber, An Unusually Quiet Barroom Brawl, An Overgrown Shrine (Northeast), + Oil Peak, Cobb's Knob Kitchens, The VERY Unquiet Garves, The Haunted Kitchen]; + //mp zones are organized by 20-30 mp regen then 10-15 mp regen and then approximately autoscend level quest structure + boolean[location] mpZones = $locations[Sonofa Beach, The Themthar Hills, The Upper Chamber, Inside the Palindome, An Overgrown Shrine (Northwest), A-boo Peak, Hippy Camp, + Megalo-City, Shadow Rift, Vanya's Castle, The Hatching Chamber, Wartime Hippy Camp (Frat Disguise), Frat House, The Middle Chamber, The Black Forest, + The Haunted Ballroom, The Red Zeppelin, An Overgrown Shrine (Southwest), The Hidden Park, Twin Peak, The Smut Orc Logging Camp, The Daily Dungeon, The Spooky Forest]; + string activeCitZoneMod = activeCitZoneMod(); if((have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) || (!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) == 0 && have_effect($effect[Citizen of a Zone]) > 0)) { @@ -852,7 +864,7 @@ boolean auto_getCitizenZone(string goal) } else return false; } - case "mp": + case "mp": //Get 20-30 mp regen or 10-15 mp regen. Currently only gets 10-15 mp regen in The Spooky Forest foreach loc in mpZones { if(loc == my_location()) // don't bother checking if we can adventure since we are already there diff --git a/RELEASE/scripts/autoscend/quests/level_02.ash b/RELEASE/scripts/autoscend/quests/level_02.ash index 115d72049..607d6ef4d 100644 --- a/RELEASE/scripts/autoscend/quests/level_02.ash +++ b/RELEASE/scripts/autoscend/quests/level_02.ash @@ -103,6 +103,12 @@ boolean L2_mosquito() // Arboreal Respite choice adventure has a delay of 5 adventures. return false; } + + if(activeCitZoneMod() == "none") //if we don't already have a Citizen of a Zone buff, might as well get this + { + auto_getCitizenZone(mp); + } + auto_log_info("Trying to find a mosquito.", "blue"); if(autoAdv($location[The Spooky Forest])) { From 703173347282a9c0bc41961b603a3876796e3d91 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Mon, 26 Feb 2024 12:10:19 -0500 Subject: [PATCH 43/85] Comments and no need to check locations for Pledge --- .../combat/auto_combat_default_stage1.ash | 2 +- RELEASE/scripts/autoscend/iotms/mr2023.ash | 14 +++++++++++--- RELEASE/scripts/autoscend/quests/level_08.ash | 6 +++++- RELEASE/scripts/autoscend/quests/level_11.ash | 5 ++++- RELEASE/scripts/autoscend/quests/level_any.ash | 2 +- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash index 7cbc7534f..2e56a59b5 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage1.ash @@ -252,7 +252,7 @@ string auto_combatDefaultStage1(int round, monster enemy, string text) } //[Patriotic Eagle] familiar skill that gives a useful buff - if ($locations[The Haunted Library, The Haunted Laundry Room, Whitey\'s Grove, Lair of the Ninja Snowmen, The Hidden Hospital, The Haunted Bathroom, The Oasis, The Haunted Kitchen, Oil Peak] contains my_location() && canUse($skill[%fn\, let\'s pledge allegiance to a Zone])) + if (canUse($skill[%fn\, let\'s pledge allegiance to a Zone])) { return useSkill($skill[%fn\, let\'s pledge allegiance to a Zone], true); } diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 5b88eb790..2e7a9361d 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -757,7 +757,7 @@ boolean auto_haveEagle() return false; } -string activeCitZoneMod() +string activeCitZoneMod() // get the active Citizen of a Zone mods, if any { if(!auto_haveEagle() || have_effect($effect[Citizen of a Zone]) = 0) { @@ -785,9 +785,17 @@ boolean auto_getCitizenZone(string goal) if((have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) || (!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) == 0 && have_effect($effect[Citizen of a Zone]) > 0)) { - return false; + if(have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) + { + auto_log_info("No need to remove Citizen of a Zone"); + } + else + { + auto_log_info("Can't remove Citizen of a Zone"); + } + return false; //if we have the desired Citizen of a Zone effects or we can't remove it } - if(!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) > 0) + if(!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) > 0) //try to remove Citizen of a Zone { uneffect($effect[Citizen of a Zone]); if(have_effect($effect[Citizen of a Zone]) > 0) diff --git a/RELEASE/scripts/autoscend/quests/level_08.ash b/RELEASE/scripts/autoscend/quests/level_08.ash index 59604fd3d..eb4192f75 100644 --- a/RELEASE/scripts/autoscend/quests/level_08.ash +++ b/RELEASE/scripts/autoscend/quests/level_08.ash @@ -663,7 +663,11 @@ boolean L8_trapperNinjaLair() adjustEdHat("myst"); } - auto_getCitizenZone("meat"); //since Lair is next anyway + if(my_location() == $location[Lair of the Ninja Snowmen]) //after we visit the Lair once should try to get the meat buff here + { + auto_getCitizenZone("meat"); //since we are in the Lair anyway + } + if(autoAdv($location[Lair of the Ninja Snowmen])) { return true; diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index 9e3bd7d28..af69608df 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -482,7 +482,10 @@ boolean LX_unlockManorSecondFloor() { auto_log_info("Attemping to use Map the Monsters to olfact a writing desk."); } } - auto_getCitizenZone("item"); //since library is next anyway + if(my_location() == $location[The Haunted Library]) + { + auto_getCitizenZone("item"); //since in the library anyway + } return autoAdv($location[The Haunted Library]); } diff --git a/RELEASE/scripts/autoscend/quests/level_any.ash b/RELEASE/scripts/autoscend/quests/level_any.ash index 7f612ceb8..7db9b769c 100644 --- a/RELEASE/scripts/autoscend/quests/level_any.ash +++ b/RELEASE/scripts/autoscend/quests/level_any.ash @@ -609,7 +609,7 @@ boolean LX_dailyDungeonToken() boolean needPole = true; if(auto_haveCCSC()) { - needPole = false; + needPole = false; // candy cane sword cane can act as an eleven-foot pole so don't buy if we already have it } if(can_interact()) //if you can not use cubeling then mallbuy missing tools in casual and postronin From 30c77e3937cc2449eaaa857fef6f430df5df41ac Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Mon, 26 Feb 2024 12:43:12 -0500 Subject: [PATCH 44/85] Quotes and variables are hard --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 5 +++-- RELEASE/scripts/autoscend/quests/level_02.ash | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 2e7a9361d..a86567dcd 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -759,12 +759,13 @@ boolean auto_haveEagle() string activeCitZoneMod() // get the active Citizen of a Zone mods, if any { - if(!auto_haveEagle() || have_effect($effect[Citizen of a Zone]) = 0) + if(!auto_haveEagle() || have_effect($effect[Citizen of a Zone]) == 0) { return "none"; } visit_url("desc_effect.php?whicheffect=9391a5f7577e30ac3af6309804da6944"); // visit url to refresh Mafia's _citizenZoneMods preference - return get_property("_citizenZoneMods").to_lower_case(); + string activeCitZoneMod = get_property("_citizenZoneMods").to_lower_case(); + return activeCitZoneMod; } boolean auto_getCitizenZone(string goal) diff --git a/RELEASE/scripts/autoscend/quests/level_02.ash b/RELEASE/scripts/autoscend/quests/level_02.ash index 607d6ef4d..afc640f1d 100644 --- a/RELEASE/scripts/autoscend/quests/level_02.ash +++ b/RELEASE/scripts/autoscend/quests/level_02.ash @@ -106,7 +106,7 @@ boolean L2_mosquito() if(activeCitZoneMod() == "none") //if we don't already have a Citizen of a Zone buff, might as well get this { - auto_getCitizenZone(mp); + auto_getCitizenZone("mp"); } auto_log_info("Trying to find a mosquito.", "blue"); From 485efe217a5cb150cf116b59ccf2c65a4f7cb63b Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:44:24 -0400 Subject: [PATCH 45/85] Get mainstat if still have August Scepter cast --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index ab1f49419..bef2587f5 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -548,6 +548,22 @@ void auto_scepterRollover() { use_skill($skill[Aug. 27th: Just Because Day!]); //3 random buffs } + //Get mainstats as a last resort + if(get_property("_augSkillsCast").to_int()< 5) + { + if(canUse($skill[Aug. 12th: Elephant Day!] && !get_property("_aug12Cast").to_boolean()) && my_primestat() == $stat[muscle]) + { + use_skill($skill[Aug. 12th: Elephant Day!]); //get muscle stubstats + } + if(canUse($skill[Aug. 11th: Presidential Joke Day!] && !get_property("_aug11Cast").to_boolean()) && my_primestat() == $stat[mysticality]) + { + use_skill($skill[Aug. 11th: Presidential Joke Day!]); //get mysticality stubstats + } + if(canUse($skill[Aug. 23rd: Ride the Wind Day!] && !get_property("_aug23Cast").to_boolean()) && my_primestat() == $stat[moxie]) + { + use_skill($skill[Aug. 23rd: Ride the Wind Day!]); //get moxies stubstats + } + } } void auto_lostStomach(boolean force) From 713f525667ba099f107a08314a80fcd5139a846e Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:51:36 -0400 Subject: [PATCH 46/85] Don't change pledge if low on meat --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index bef2587f5..937cc58f6 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -796,6 +796,10 @@ boolean auto_getCitizenZone(string goal) The Haunted Ballroom, The Red Zeppelin, An Overgrown Shrine (Southwest), The Hidden Park, Twin Peak, The Smut Orc Logging Camp, The Daily Dungeon, The Spooky Forest]; string activeCitZoneMod = activeCitZoneMod(); + if(my_meat() < meatReserve() && goal != "mp") + { + return false; //don't attempt to change if we don't have a lot of meat and we are going for something other than mp + } if((have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) || (!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) == 0 && have_effect($effect[Citizen of a Zone]) > 0)) { if(have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) From 83065d3cae71f22dbfa523e66735c7d28e9241a5 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 23 Jul 2024 15:55:56 -0400 Subject: [PATCH 47/85] Parentheses are hard --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 937cc58f6..489f6d82f 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -551,15 +551,15 @@ void auto_scepterRollover() //Get mainstats as a last resort if(get_property("_augSkillsCast").to_int()< 5) { - if(canUse($skill[Aug. 12th: Elephant Day!] && !get_property("_aug12Cast").to_boolean()) && my_primestat() == $stat[muscle]) + if(canUse($skill[Aug. 12th: Elephant Day!]) && !get_property("_aug12Cast").to_boolean() && my_primestat() == $stat[muscle]) { use_skill($skill[Aug. 12th: Elephant Day!]); //get muscle stubstats } - if(canUse($skill[Aug. 11th: Presidential Joke Day!] && !get_property("_aug11Cast").to_boolean()) && my_primestat() == $stat[mysticality]) + if(canUse($skill[Aug. 11th: Presidential Joke Day!]) && !get_property("_aug11Cast").to_boolean() && my_primestat() == $stat[mysticality]) { use_skill($skill[Aug. 11th: Presidential Joke Day!]); //get mysticality stubstats } - if(canUse($skill[Aug. 23rd: Ride the Wind Day!] && !get_property("_aug23Cast").to_boolean()) && my_primestat() == $stat[moxie]) + if(canUse($skill[Aug. 23rd: Ride the Wind Day!]) && !get_property("_aug23Cast").to_boolean() && my_primestat() == $stat[moxie]) { use_skill($skill[Aug. 23rd: Ride the Wind Day!]); //get moxies stubstats } From 6441fb02c778a22bfb9d742a96d68e960218acf0 Mon Sep 17 00:00:00 2001 From: Alium58 Date: Sun, 28 Jul 2024 22:28:39 -0500 Subject: [PATCH 48/85] updated meat in switch statement for proposal. Removed oasis --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 39 ++++++++++------------ 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 489f6d82f..88ce30ccb 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -784,7 +784,7 @@ boolean auto_getCitizenZone(string goal) { familiar eagle = $familiar[Patriotic Eagle]; //zones are approximately organized by autoscend level quest structure - boolean[location] meatZones = $locations[The Battlefield (Frat Uniform), The Oasis, The Hidden Hospital, The Haunted Bathroom, The Castle in the Clouds in the Sky (Basement), + boolean[location] meatZones = $locations[The Battlefield (Frat Uniform), The Hidden Hospital, The Haunted Bathroom, The Castle in the Clouds in the Sky (Basement), Lair of the Ninja Snowmen, The Defiled Cranny, The Laugh Floor, The Batrat and Ratbat Burrow, The Sleazy Back Alley]; boolean[location] itemZones = $locations[A Massive Ziggurat, The Haunted Laundry Room, Whitey's Grove, The Icy Peak, Itznotyerzitz Mine, The Dark Heart of the Woods, The Hidden Temple, The Haunted Library, The Bat Hole Entrance, Noob Cave]; @@ -826,36 +826,31 @@ boolean auto_getCitizenZone(string goal) case "meat": //Get +50% meat foreach loc in meatZones { - if(loc == my_location()) // don't bother checking if we can adventure since we are already there + if(!can_adventure(loc)) { - handleFamiliar(eagle); - if(autoAdv(loc)) - { - if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat - { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; - } - return false; - } - return false; + continue; } - else if(can_adventure(loc)) // need this separate if because we don't want to change locations if we don't have to + handleFamiliar(eagle); + if(autoAdv(loc)) { - handleFamiliar(eagle); - if(autoAdv(loc)) + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { - if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat - { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; - } + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); return false; } + } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); return false; } - else return false; } + break; case "initiative": //Get +100% initiative. Give the option to add this to a quest later, but currently unused foreach loc in initZones { From ee9cbbb623943a1f43e89fe6ba0bbe550b05c1a0 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Mon, 29 Jul 2024 12:00:20 -0400 Subject: [PATCH 49/85] Simplifications after partial review --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 129 +++++++++------------ 1 file changed, 56 insertions(+), 73 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 88ce30ccb..8272739d8 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -800,17 +800,15 @@ boolean auto_getCitizenZone(string goal) { return false; //don't attempt to change if we don't have a lot of meat and we are going for something other than mp } - if((have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) || (!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) == 0 && have_effect($effect[Citizen of a Zone]) > 0)) + if(have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) { - if(have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) - { - auto_log_info("No need to remove Citizen of a Zone"); - } - else - { - auto_log_info("Can't remove Citizen of a Zone"); - } - return false; //if we have the desired Citizen of a Zone effects or we can't remove it + auto_log_info("No need to remove Citizen of a Zone"); + return false; + } + if(have_effect($effect[Citizen of a Zone]) > 0 && !contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) == 0) + { + auto_log_info("Can't remove Citizen of a Zone"); + return false; } if(!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) > 0) //try to remove Citizen of a Zone { @@ -854,102 +852,87 @@ boolean auto_getCitizenZone(string goal) case "initiative": //Get +100% initiative. Give the option to add this to a quest later, but currently unused foreach loc in initZones { - if(loc == my_location()) // don't bother checking if we can adventure since we are already there + if(!can_adventure(loc)) { - handleFamiliar(eagle); - if(autoAdv(loc)) - { - if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat - { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; - } - return false; - } - return false; + continue; } - else if(can_adventure(loc)) // need this separate if because we don't want to change locations if we don't have to + handleFamiliar(eagle); + if(autoAdv(loc)) { - handleFamiliar(eagle); - if(autoAdv(loc)) + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { - if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat - { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; - } + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); return false; } + } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); return false; } - else return false; } + break; case "mp": //Get 20-30 mp regen or 10-15 mp regen. Currently only gets 10-15 mp regen in The Spooky Forest foreach loc in mpZones { - if(loc == my_location()) // don't bother checking if we can adventure since we are already there + if(!can_adventure(loc)) { - handleFamiliar(eagle); - if(autoAdv(loc)) - { - if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat - { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; - } - return false; - } - return false; + continue; } - else if(can_adventure(loc)) // need this separate if because we don't want to change locations if we don't have to + handleFamiliar(eagle); + if(autoAdv(loc)) { - handleFamiliar(eagle); - if(autoAdv(loc)) + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { - if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat - { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; - } + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); return false; } + } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); return false; } - else return false; } + break; default: //Get +30% item by default foreach loc in itemZones { - if(loc == my_location()) // don't bother checking if we can adventure since we are already there + if(!can_adventure(loc)) { - handleFamiliar(eagle); - if(autoAdv(loc)) - { - if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat - { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; - } - return false; - } - return false; + continue; } - else if(can_adventure(loc)) // need this separate if because we don't want to change locations if we don't have to + handleFamiliar(eagle); + if(autoAdv(loc)) { - handleFamiliar(eagle); - if(autoAdv(loc)) + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { - if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat - { - handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); - return true; - } + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); return false; } + } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); return false; } - else return false; } + break; } return false; } From 1f74ccd5aa6b9b3f143831fc34a222bd3b572344 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Mon, 29 Jul 2024 13:28:53 -0400 Subject: [PATCH 50/85] Force update of _citizenZoneMods --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 8272739d8..f1ffa0ab2 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -831,6 +831,7 @@ boolean auto_getCitizenZone(string goal) handleFamiliar(eagle); if(autoAdv(loc)) { + activeCitZoneMod(); if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); @@ -859,6 +860,7 @@ boolean auto_getCitizenZone(string goal) handleFamiliar(eagle); if(autoAdv(loc)) { + activeCitZoneMod(); if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); @@ -887,6 +889,7 @@ boolean auto_getCitizenZone(string goal) handleFamiliar(eagle); if(autoAdv(loc)) { + activeCitZoneMod(); if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); @@ -915,6 +918,7 @@ boolean auto_getCitizenZone(string goal) handleFamiliar(eagle); if(autoAdv(loc)) { + activeCitZoneMod(); if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); From d9dbb7e8f0be7f46fea7e9126cdf312658f52688 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 30 Jul 2024 09:26:11 -0400 Subject: [PATCH 51/85] Putting phylum banish above individual monster banish --- .../combat/auto_combat_default_stage2.ash | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash index 7ffca0ff1..95e523a29 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash @@ -138,28 +138,20 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) } } - if(!combat_status_check("banishercheck") && auto_wantToBanish(enemy, my_location())) + if(!combat_status_check("banishercheck") && auto_wantToBanish(monster_phylum(enemy), my_location())) { - string banishAction = banisherCombatString(enemy, my_location(), true); + string banishAction = banisherCombatString(monster_phylum(enemy), my_location(), true); if(banishAction != "") { auto_log_info("Looking at banishAction: " + banishAction, "green"); combat_status_add("banisher"); if(index_of(banishAction, "skill") == 0) { - handleTracker(enemy, to_skill(substring(banishAction, 6)), "auto_banishes"); + handleTracker(monster_phylum(enemy), to_skill(substring(banishAction, 6)), "auto_banishes"); } else if(index_of(banishAction, "item") == 0) { - if(contains_text(banishAction, ", none")) - { - int commapos = index_of(banishAction, ", none"); - handleTracker(enemy, to_item(substring(banishAction, 5, commapos)), "auto_banishes"); - } - else - { - handleTracker(enemy, to_item(substring(banishAction, 5)), "auto_banishes"); - } + handleTracker(monster_phylum(enemy), to_item(substring(banishAction, 5)), "auto_banishes"); } else { @@ -171,20 +163,28 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) combat_status_add("banishercheck"); } - if(!combat_status_check("banishercheck") && auto_wantToBanish(monster_phylum(enemy), my_location())) + if(!combat_status_check("banishercheck") && auto_wantToBanish(enemy, my_location())) { - string banishAction = banisherCombatString(monster_phylum(enemy), my_location(), true); + string banishAction = banisherCombatString(enemy, my_location(), true); if(banishAction != "") { auto_log_info("Looking at banishAction: " + banishAction, "green"); combat_status_add("banisher"); if(index_of(banishAction, "skill") == 0) { - handleTracker(monster_phylum(enemy), to_skill(substring(banishAction, 6)), "auto_banishes"); + handleTracker(enemy, to_skill(substring(banishAction, 6)), "auto_banishes"); } else if(index_of(banishAction, "item") == 0) { - handleTracker(monster_phylum(enemy), to_item(substring(banishAction, 5)), "auto_banishes"); + if(contains_text(banishAction, ", none")) + { + int commapos = index_of(banishAction, ", none"); + handleTracker(enemy, to_item(substring(banishAction, 5, commapos)), "auto_banishes"); + } + else + { + handleTracker(enemy, to_item(substring(banishAction, 5)), "auto_banishes"); + } } else { From 8b5a723cfb5d2bd25e18594247b420a56f44d662 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 30 Jul 2024 09:41:12 -0400 Subject: [PATCH 52/85] Put phylum banish at top of adjustForBanish --- RELEASE/scripts/autoscend/auto_util.ash | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index ee7a3e1ad..b41277294 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -739,6 +739,10 @@ boolean canBanish(phylum enemyphylum, location loc) boolean adjustForBanish(string combat_string) { + if(combat_string == "skill" + $skill[%fn\, Release the Patriotic Screech!]) + { + return use_familiar($familiar[Patriotic Eagle]); + } if(combat_string == "skill " + $skill[Throw Latte on Opponent]) { return autoEquip($item[latte lovers member\'s mug]); @@ -785,10 +789,6 @@ boolean adjustForBanish(string combat_string) { return autoEquip($item[Kremlin\'s Greatest Briefcase]); } - if(combat_string == "skill" + $skill[%fn\, Release the Patriotic Screech!]) - { - return use_familiar($familiar[Patriotic Eagle]); - } if(combat_string == "skill " + $skill[Beancannon]) { foreach beancan in $items[Frigid Northern Beans, Heimz Fortified Kidney Beans, Hellfire Spicy Beans, Mixed Garbanzos and Chickpeas, Pork 'n' Pork 'n' Pork 'n' Beans, Shrub's Premium Baked Beans, Tesla's Electroplated Beans, Trader Olaf's Exotic Stinkbeans, World's Blackest-Eyed Peas] From e6667f7f7e9df59239caf71c797b7d2ebf435dff Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 30 Jul 2024 14:45:14 -0400 Subject: [PATCH 53/85] Adding appearance rates based on monster code --- RELEASE/scripts/autoscend/auto_util.ash | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index b41277294..839c1b9a9 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -720,6 +720,10 @@ boolean auto_wantToBanish(monster enemy, location loc) boolean auto_wantToBanish(phylum enemyphylum, location loc) { + if(appearance_rates(loc)[enemy] <= 0) + { + return false; + } location locCache = my_location(); set_location(loc); boolean [phylum] phylumToBanish = auto_getPhylum("banish"); @@ -807,23 +811,23 @@ boolean adjustForBanish(string combat_string) return true; } -boolean adjustForBanishIfPossible(monster enemy, location loc) +boolean adjustForBanishIfPossible(phylum enemyphylum, location loc) { - if(canBanish(enemy, loc)) + if(canBanish(enemyphylum, loc)) { - string banish_string = banisherCombatString(enemy, loc); - auto_log_info("Adjusting to have banisher available for " + enemy + ": " + banish_string, "blue"); + string banish_string = banisherCombatString(enemyphylum, loc); + auto_log_info("Adjusting to have phylum banisher available for " + enemyphylum + ": " + banish_string, "blue"); return adjustForBanish(banish_string); } return false; } -boolean adjustForBanishIfPossible(phylum enemyphylum, location loc) +boolean adjustForBanishIfPossible(monster enemy, location loc) { - if(canBanish(enemyphylum, loc)) + if(canBanish(enemy, loc)) { - string banish_string = banisherCombatString(enemyphylum, loc); - auto_log_info("Adjusting to have phylum banisher available for " + enemyphylum + ": " + banish_string, "blue"); + string banish_string = banisherCombatString(enemy, loc); + auto_log_info("Adjusting to have banisher available for " + enemy + ": " + banish_string, "blue"); return adjustForBanish(banish_string); } return false; From 3ee0fef98698edbc7ea063c279372c8950d33aac Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 30 Jul 2024 14:46:23 -0400 Subject: [PATCH 54/85] Revert "Adding appearance rates based on monster code" This reverts commit e6667f7f7e9df59239caf71c797b7d2ebf435dff. --- RELEASE/scripts/autoscend/auto_util.ash | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 839c1b9a9..b41277294 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -720,10 +720,6 @@ boolean auto_wantToBanish(monster enemy, location loc) boolean auto_wantToBanish(phylum enemyphylum, location loc) { - if(appearance_rates(loc)[enemy] <= 0) - { - return false; - } location locCache = my_location(); set_location(loc); boolean [phylum] phylumToBanish = auto_getPhylum("banish"); @@ -811,23 +807,23 @@ boolean adjustForBanish(string combat_string) return true; } -boolean adjustForBanishIfPossible(phylum enemyphylum, location loc) +boolean adjustForBanishIfPossible(monster enemy, location loc) { - if(canBanish(enemyphylum, loc)) + if(canBanish(enemy, loc)) { - string banish_string = banisherCombatString(enemyphylum, loc); - auto_log_info("Adjusting to have phylum banisher available for " + enemyphylum + ": " + banish_string, "blue"); + string banish_string = banisherCombatString(enemy, loc); + auto_log_info("Adjusting to have banisher available for " + enemy + ": " + banish_string, "blue"); return adjustForBanish(banish_string); } return false; } -boolean adjustForBanishIfPossible(monster enemy, location loc) +boolean adjustForBanishIfPossible(phylum enemyphylum, location loc) { - if(canBanish(enemy, loc)) + if(canBanish(enemyphylum, loc)) { - string banish_string = banisherCombatString(enemy, loc); - auto_log_info("Adjusting to have banisher available for " + enemy + ": " + banish_string, "blue"); + string banish_string = banisherCombatString(enemyphylum, loc); + auto_log_info("Adjusting to have phylum banisher available for " + enemyphylum + ": " + banish_string, "blue"); return adjustForBanish(banish_string); } return false; From e2ced8da5772acd53d94f8f0eb541e7faf74dd39 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 30 Jul 2024 15:22:01 -0400 Subject: [PATCH 55/85] Use quest not prop --- BUILD/phylums/banish.dat | 4 ++-- RELEASE/data/autoscend_phylums.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/BUILD/phylums/banish.dat b/BUILD/phylums/banish.dat index 1a0d20307..006be76d5 100644 --- a/BUILD/phylums/banish.dat +++ b/BUILD/phylums/banish.dat @@ -1,9 +1,9 @@ dude loc:The Black Forest dude loc:Twin Peak dude loc:The Red Zeppelin;sniffed:Red Butler;item:Glark Cable>2 -dude loc:Whitey's Grove;prop:questL11Palindome!=step4 +dude loc:Whitey's Grove;quest:questL11Palindome<=3 beast loc:The Hidden Park -beast loc:Inside the Palindome;prop:questL11Palindome!=step4 +beast loc:Inside the Palindome;quest:questL11Palindome<=3 beast loc:The Penultimate Fantasy Airship undead loc:The Haunted Library undead loc:The Haunted Wine Cellar diff --git a/RELEASE/data/autoscend_phylums.txt b/RELEASE/data/autoscend_phylums.txt index 0eb6ecab4..d09c5b1aa 100644 --- a/RELEASE/data/autoscend_phylums.txt +++ b/RELEASE/data/autoscend_phylums.txt @@ -5,9 +5,9 @@ banish 0 dude loc:The Black Forest banish 1 dude loc:Twin Peak banish 2 dude loc:The Red Zeppelin;sniffed:Red Butler;item:Glark Cable>2 -banish 3 dude loc:Whitey's Grove;prop:questL11Palindome!=step4 +banish 3 dude loc:Whitey's Grove;quest:questL11Palindome<=3 banish 4 beast loc:The Hidden Park -banish 5 beast loc:Inside the Palindome;prop:questL11Palindome!=step4 +banish 5 beast loc:Inside the Palindome;quest:questL11Palindome<=3 banish 6 beast loc:The Penultimate Fantasy Airship banish 7 undead loc:The Haunted Library banish 8 undead loc:The Haunted Wine Cellar From c6d33912d51db9afc1e240925af62397e32432da Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 30 Jul 2024 22:35:00 -0400 Subject: [PATCH 56/85] Force freeruns if Pledging Allegiance to avoid wasting a turn --- RELEASE/scripts/autoscend/auto_pre_adv.ash | 2 +- RELEASE/scripts/autoscend/auto_util.ash | 15 +++++++++++++++ RELEASE/scripts/autoscend/autoscend_header.ash | 1 + .../combat/auto_combat_default_stage2.ash | 2 +- RELEASE/scripts/autoscend/iotms/mr2023.ash | 4 ++++ 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index 8412ad2be..45176d4d8 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -415,7 +415,7 @@ boolean auto_pre_adventure() zoneHasUnwantedMonsters = true; } boolean wantToBanish = auto_wantToBanish(mon, place); - boolean wantToFreeRun = auto_wantToFreeRun(mon, place); + boolean wantToFreeRun = auto_wantToFreeRun(mon, place) || auto_forceFreeRun(false); if(wantToBanish || wantToFreeRun) { // attempt to prepare for banishing, but if we can not try free running diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index b41277294..6837e050a 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -829,6 +829,21 @@ boolean adjustForBanishIfPossible(phylum enemyphylum, location loc) return false; } +boolean auto_forceFreeRun(boolean combat) +{ + if(get_property("auto_forceFreeRun").to_boolean() && combat) + { + set_property("auto_forceFreeRun", false); //want to reset as soon as we see it as true while in combat + return true; + } + if(get_property("auto_forceFreeRun").to_boolean()) + { + //don't need to reset it because we haven't taken a turn to freeRun yet + return true; + } + return false; +} + boolean auto_wantToFreeRun(monster enemy, location loc) { if(appearance_rates(loc)[enemy] <= 0) diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index cd1c920b4..ca65261af 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -1714,6 +1714,7 @@ boolean canBanish(phylum enemyphylum, location loc); boolean adjustForBanish(string combat_string); boolean adjustForBanishIfPossible(monster enemy, location loc); boolean adjustForBanishIfPossible(phylum enemyphylum, location loc); +boolean auto_forceFreeRun(boolean combat); boolean auto_wantToFreeRun(monster enemy, location loc); boolean canFreeRun(monster enemy, location loc); string freeRunCombatStringPreBanish(monster enemy, location loc, boolean inCombat); diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash index 95e523a29..c43fa56e3 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash @@ -197,7 +197,7 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) } // Free run from monsters we want to banish/phylumbanish but are unable to, or monsters on the free run list - if(!combat_status_check("freeruncheck") && (auto_wantToFreeRun(enemy, my_location()) || (auto_wantToBanish(enemy, my_location()) || auto_wantToBanish(monster_phylum(enemy), my_location())))) + if(!combat_status_check("freeruncheck") && (auto_wantToFreeRun(enemy, my_location()) || (auto_wantToBanish(enemy, my_location()) || auto_wantToBanish(monster_phylum(enemy) || auto_forceFreeRun(true), my_location())))) { string freeRunAction = freeRunCombatString(enemy, my_location(), true); if(freeRunAction != "") diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index f1ffa0ab2..51aa72d22 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -829,6 +829,7 @@ boolean auto_getCitizenZone(string goal) continue; } handleFamiliar(eagle); + set_property("auto_forceFreeRun", true); if(autoAdv(loc)) { activeCitZoneMod(); @@ -858,6 +859,7 @@ boolean auto_getCitizenZone(string goal) continue; } handleFamiliar(eagle); + set_property("auto_forceFreeRun", true); if(autoAdv(loc)) { activeCitZoneMod(); @@ -887,6 +889,7 @@ boolean auto_getCitizenZone(string goal) continue; } handleFamiliar(eagle); + set_property("auto_forceFreeRun", true); if(autoAdv(loc)) { activeCitZoneMod(); @@ -916,6 +919,7 @@ boolean auto_getCitizenZone(string goal) continue; } handleFamiliar(eagle); + set_property("auto_forceFreeRun", true); if(autoAdv(loc)) { activeCitZoneMod(); From cd855440c92a9662b28022ac34da3797534d09fd Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 30 Jul 2024 22:38:09 -0400 Subject: [PATCH 57/85] Better boolean --- RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash index c43fa56e3..0fd4e8924 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash @@ -197,7 +197,7 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) } // Free run from monsters we want to banish/phylumbanish but are unable to, or monsters on the free run list - if(!combat_status_check("freeruncheck") && (auto_wantToFreeRun(enemy, my_location()) || (auto_wantToBanish(enemy, my_location()) || auto_wantToBanish(monster_phylum(enemy) || auto_forceFreeRun(true), my_location())))) + if(!combat_status_check("freeruncheck") && ((auto_wantToFreeRun(enemy, my_location()) || auto_forceFreeRun(true)) || (auto_wantToBanish(enemy, my_location()) || auto_wantToBanish(monster_phylum(enemy), my_location())))) { string freeRunAction = freeRunCombatString(enemy, my_location(), true); if(freeRunAction != "") From 9509333b903713a1cc8dc7cf177319963b4e1f38 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 30 Jul 2024 23:21:27 -0400 Subject: [PATCH 58/85] Need to set activeCitZoneMod with activeCitZoneMod for it to be tracked after Pledging --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 51aa72d22..66b464170 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -832,7 +832,7 @@ boolean auto_getCitizenZone(string goal) set_property("auto_forceFreeRun", true); if(autoAdv(loc)) { - activeCitZoneMod(); + activeCitZoneMod = activeCitZoneMod(); if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); @@ -862,7 +862,7 @@ boolean auto_getCitizenZone(string goal) set_property("auto_forceFreeRun", true); if(autoAdv(loc)) { - activeCitZoneMod(); + activeCitZoneMod = activeCitZoneMod(); if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); @@ -892,7 +892,7 @@ boolean auto_getCitizenZone(string goal) set_property("auto_forceFreeRun", true); if(autoAdv(loc)) { - activeCitZoneMod(); + activeCitZoneMod = activeCitZoneMod(); if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); @@ -922,7 +922,7 @@ boolean auto_getCitizenZone(string goal) set_property("auto_forceFreeRun", true); if(autoAdv(loc)) { - activeCitZoneMod(); + activeCitZoneMod = activeCitZoneMod(); if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); From efe45c4b7f074dca343d5ed005e40a3b6c1e42ae Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 31 Jul 2024 16:50:58 -0400 Subject: [PATCH 59/85] Small queue ignore refactor for easier tracking --- RELEASE/scripts/autoscend/auto_pre_adv.ash | 6 ++--- RELEASE/scripts/autoscend/auto_util.ash | 25 +++++++++++++++++++ .../scripts/autoscend/autoscend_header.ash | 3 +++ RELEASE/scripts/autoscend/iotms/mr2021.ash | 6 ++--- RELEASE/scripts/autoscend/iotms/mr2023.ash | 2 +- 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_pre_adv.ash b/RELEASE/scripts/autoscend/auto_pre_adv.ash index 45176d4d8..b2a4e034c 100644 --- a/RELEASE/scripts/autoscend/auto_pre_adv.ash +++ b/RELEASE/scripts/autoscend/auto_pre_adv.ash @@ -353,10 +353,10 @@ boolean auto_pre_adventure() } // this calls the appropriate provider for +combat or -combat depending on the zone we are about to adventure in.. - boolean burningDelay = ((auto_voteMonster(true) || isOverdueDigitize() || auto_sausageGoblin() || auto_backupTarget() || auto_voidMonster()) && place == solveDelayZone()); - boolean gettingLucky = (have_effect($effect[Lucky!]) > 0 && zone_hasLuckyAdventure(place)); + boolean burningDelay = auto_burningDelay(); + boolean gettingLucky = auto_gettingLucky(); boolean forcedNonCombat = auto_haveQueuedForcedNonCombat(); - boolean zoneQueueIgnored = (burningDelay || gettingLucky || forcedNonCombat); + boolean zoneQueueIgnored = auto_queueIgnore(); generic_t combatModifier = zone_combatMod(place); if (combatModifier._boolean && !zoneQueueIgnored) { acquireCombatMods(combatModifier._int, true); diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 6837e050a..8c4f74ee2 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -1832,7 +1832,32 @@ boolean isFreeMonster(monster mon, location loc) return false; } +boolean auto_burningDelay() +{ + if((auto_voteMonster(true) || isOverdueDigitize() || auto_sausageGoblin() || auto_backupTarget() || auto_voidMonster()) && place == solveDelayZone()) + { + return true; + } + return false; +} +boolean auto_gettingLucky() +{ + if(have_effect($effect[Lucky!]) > 0 && zone_hasLuckyAdventure(place)) + { + return true; + } + return false; +} + +boolean auto_queueIgnore() +{ + if(auto_burningDelay() || auto_gettingLucky() || auto_haveQueuedForcedNonCombat()) + { + return true; + } + return false; +} boolean auto_deleteMail(kmailObject msg) { diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index ca65261af..a8e3a26f8 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -1766,6 +1766,9 @@ float MLDamageToMonsterMultiplier(); int freeCrafts(); boolean isFreeMonster(monster mon); boolean isFreeMonster(monster mon, location loc); +boolean auto_burningDelay(); +boolean auto_gettingLucky(); +boolean auto_queueIgnore(); boolean auto_deleteMail(kmailObject msg); boolean LX_summonMonster(); boolean canSummonMonster(monster mon); diff --git a/RELEASE/scripts/autoscend/iotms/mr2021.ash b/RELEASE/scripts/autoscend/iotms/mr2021.ash index 6d24239c0..b1e07309e 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2021.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2021.ash @@ -114,10 +114,10 @@ void simulatePreAdvForCrystalBall(location place) // used only when simulating maximizer equipment // replicates most of pre_adv monster queue checks in order to know if miniature crystal ball will be allowed - boolean burningDelay = ((auto_voteMonster(true) || isOverdueDigitize() || auto_sausageGoblin() || auto_backupTarget()) && place == solveDelayZone()); - boolean gettingLucky = (have_effect($effect[Lucky!]) > 0 && zone_hasLuckyAdventure(place)); + boolean burningDelay = auto_burningDelay(); + boolean gettingLucky = auto_gettingLucky(); boolean forcedNonCombat = auto_haveQueuedForcedNonCombat(); - boolean zoneQueueIgnored = (burningDelay || gettingLucky || forcedNonCombat); + boolean zoneQueueIgnored = auto_queueIgnore(); boolean considerCrystalBallBonus; if(!zoneQueueIgnored && get_property("auto_nextEncounter").to_monster() == $monster[none] && diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 66b464170..6b32f2684 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -948,7 +948,7 @@ boolean auto_getCitizenZone(string goal) familiar auto_forceEagle() { //Force the Patriotic Eagle if we used a banish recently and can't use one until we burn 11 combats with the Eagle - if(auto_haveEagle() && get_property("screechCombats").to_int() > 0) + if(auto_haveEagle() && get_property("screechCombats").to_int() > 0 && !auto_queueIgnore()) { return $familiar[Patriotic Eagle]; } From 09b0e0f6c2003fccb4f15f362ec76d0465f0e60c Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 31 Jul 2024 16:52:51 -0400 Subject: [PATCH 60/85] Missed a variable --- RELEASE/scripts/autoscend/auto_util.ash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 8c4f74ee2..631cd6c1c 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -1834,7 +1834,7 @@ boolean isFreeMonster(monster mon, location loc) boolean auto_burningDelay() { - if((auto_voteMonster(true) || isOverdueDigitize() || auto_sausageGoblin() || auto_backupTarget() || auto_voidMonster()) && place == solveDelayZone()) + if((auto_voteMonster(true) || isOverdueDigitize() || auto_sausageGoblin() || auto_backupTarget() || auto_voidMonster()) && my_location() == solveDelayZone()) { return true; } @@ -1843,7 +1843,7 @@ boolean auto_burningDelay() boolean auto_gettingLucky() { - if(have_effect($effect[Lucky!]) > 0 && zone_hasLuckyAdventure(place)) + if(have_effect($effect[Lucky!]) > 0 && zone_hasLuckyAdventure(my_location())) { return true; } From 9e0fa355c3a85074133905257c670ee7e98ad8cc Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 2 Aug 2024 15:49:21 -0400 Subject: [PATCH 61/85] Changes after comments --- .../scripts/autoscend/autoscend_header.ash | 2 + .../combat/auto_combat_default_stage2.ash | 4 +- RELEASE/scripts/autoscend/iotms/mr2023.ash | 112 +++++++++++++++--- RELEASE/scripts/autoscend/quests/level_02.ash | 2 +- RELEASE/scripts/autoscend/quests/level_08.ash | 5 +- RELEASE/scripts/autoscend/quests/level_11.ash | 5 +- RELEASE/scripts/autoscend/quests/level_12.ash | 2 +- 7 files changed, 104 insertions(+), 28 deletions(-) diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index a8e3a26f8..8ca649d53 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -535,6 +535,8 @@ boolean auto_canCircadianRhythm(); boolean auto_circadianRhythmTarget(monster target); boolean auto_haveEagle(); string activeCitZoneMod(); +boolean auto_citizenZonePrep(string goal); +boolean auto_getCitizenZone(location loc); boolean auto_getCitizenZone(string goal); familiar auto_forceEagle(); boolean auto_haveJillOfAllTrades(); diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash index 0fd4e8924..12cfa9b98 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash @@ -160,7 +160,7 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) return banishAction; } //we wanted to banish an enemy and failed. set a property so we do not bother trying in subsequent rounds - combat_status_add("banishercheck"); + combat_status_add("phylumbanishercheck"); } if(!combat_status_check("banishercheck") && auto_wantToBanish(enemy, my_location())) @@ -197,7 +197,7 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) } // Free run from monsters we want to banish/phylumbanish but are unable to, or monsters on the free run list - if(!combat_status_check("freeruncheck") && ((auto_wantToFreeRun(enemy, my_location()) || auto_forceFreeRun(true)) || (auto_wantToBanish(enemy, my_location()) || auto_wantToBanish(monster_phylum(enemy), my_location())))) + if(!combat_status_check("freeruncheck") && (auto_wantToFreeRun(enemy, my_location()) || auto_forceFreeRun(true) || auto_wantToBanish(enemy, my_location()) || auto_wantToBanish(monster_phylum(enemy), my_location()))) { string freeRunAction = freeRunCombatString(enemy, my_location(), true); if(freeRunAction != "") diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index 6b32f2684..b61dda997 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -531,14 +531,14 @@ void auto_scepterSkills() } use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment } -} - -void auto_scepterRollover() -{ if(canUse($skill[Aug. 30th: Beach Day!]) && !get_property("_aug30Cast").to_boolean() && get_property("_augSkillsCast").to_int()< 5) { use_skill($skill[Aug. 30th: Beach Day!]); //Rollover adventures } +} + +void auto_scepterRollover() +{ if(canUse($skill[Aug. 13th: Left\/Off Hander\'s Day!]) && !get_property("_aug13Cast").to_boolean() && get_property("_augSkillsCast").to_int()< 5 && numeric_modifier(equipped_item($slot[off-hand]),"Adventures") > 0) { @@ -780,7 +780,36 @@ string activeCitZoneMod() // get the active Citizen of a Zone mods, if any return activeCitZoneMod; } -boolean auto_getCitizenZone(string goal) +boolean auto_citizenZonePrep(string goal) +{ + string activeCitZoneMod = activeCitZoneMod(); + if(my_meat() < meatReserve() && goal != "mp") + { + return false; //don't attempt to change if we don't have a lot of meat and we are going for something other than mp + } + if(have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) + { + auto_log_info("No need to remove Citizen of a Zone"); + return false; + } + if(have_effect($effect[Citizen of a Zone]) > 0 && !contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) == 0) + { + auto_log_info("Can't remove Citizen of a Zone"); + return false; + } + if(!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) > 0) //try to remove Citizen of a Zone + { + uneffect($effect[Citizen of a Zone]); + if(have_effect($effect[Citizen of a Zone]) > 0) + { + auto_log_debug("Tried to remove Citizen of a Zone but couldn't"); + return false; + } + } + return true; +} + +boolean auto_getCitizenZone(location loc) { familiar eagle = $familiar[Patriotic Eagle]; //zones are approximately organized by autoscend level quest structure @@ -795,30 +824,81 @@ boolean auto_getCitizenZone(string goal) Megalo-City, Shadow Rift, Vanya's Castle, The Hatching Chamber, Wartime Hippy Camp (Frat Disguise), Frat House, The Middle Chamber, The Black Forest, The Haunted Ballroom, The Red Zeppelin, An Overgrown Shrine (Southwest), The Hidden Park, Twin Peak, The Smut Orc Logging Camp, The Daily Dungeon, The Spooky Forest]; string activeCitZoneMod = activeCitZoneMod(); + string goal; - if(my_meat() < meatReserve() && goal != "mp") + if(!can_adventure(loc)) { - return false; //don't attempt to change if we don't have a lot of meat and we are going for something other than mp + return false; } - if(have_effect($effect[Citizen of a Zone]) > 0 && contains_text(activeCitZoneMod, goal)) + //set goal for tracking + if(meatZones contains loc) { - auto_log_info("No need to remove Citizen of a Zone"); - return false; + goal = "meat"; } - if(have_effect($effect[Citizen of a Zone]) > 0 && !contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) == 0) + else if(itemZones contains loc) + { + goal = "item"; + } + else if(initZones contains loc) + { + goal = "init"; + } + else if(mpZones contains loc) + { + goal = "mp"; + } + else + { + //if for some reason we make it into the location getCitizenZone and it's not in any of the defined zones, get the item buff + auto_getCitizenZone("item"); + } + if(!auto_citizenZonePrep(string goal)) { - auto_log_info("Can't remove Citizen of a Zone"); return false; } - if(!contains_text(activeCitZoneMod, goal) && item_amount($item[Soft Green Echo Eyedrop Antidote]) > 0) //try to remove Citizen of a Zone + handleFamiliar(eagle); + set_property("auto_forceFreeRun", true); + if(autoAdv(loc)) { - uneffect($effect[Citizen of a Zone]); - if(have_effect($effect[Citizen of a Zone]) > 0) + activeCitZoneMod = activeCitZoneMod(); + if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat { - auto_log_debug("Tried to remove Citizen of a Zone but couldn't"); + handleTracker("Citizen of a Zone: " + goal, "auto_otherstuff"); + return true; + } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); return false; } } + else + { + auto_log_debug("Attempted to get citizen of a zone buff " + goal + " however we failed."); + return false; + } +} + +boolean auto_getCitizenZone(string goal) +{ + familiar eagle = $familiar[Patriotic Eagle]; + //zones are approximately organized by autoscend level quest structure + boolean[location] meatZones = $locations[The Battlefield (Frat Uniform), The Hidden Hospital, The Haunted Bathroom, The Castle in the Clouds in the Sky (Basement), + Lair of the Ninja Snowmen, The Defiled Cranny, The Laugh Floor, The Batrat and Ratbat Burrow, The Sleazy Back Alley]; + boolean[location] itemZones = $locations[A Massive Ziggurat, The Haunted Laundry Room, Whitey's Grove, The Icy Peak, Itznotyerzitz Mine, + The Dark Heart of the Woods, The Hidden Temple, The Haunted Library, The Bat Hole Entrance, Noob Cave]; + boolean[location] initZones = $locations[The Feeding Chamber, An Unusually Quiet Barroom Brawl, An Overgrown Shrine (Northeast), + Oil Peak, Cobb's Knob Kitchens, The VERY Unquiet Garves, The Haunted Kitchen]; + //mp zones are organized by 20-30 mp regen then 10-15 mp regen and then approximately autoscend level quest structure + boolean[location] mpZones = $locations[Sonofa Beach, The Themthar Hills, The Upper Chamber, Inside the Palindome, An Overgrown Shrine (Northwest), A-boo Peak, Hippy Camp, + Megalo-City, Shadow Rift, Vanya's Castle, The Hatching Chamber, Wartime Hippy Camp (Frat Disguise), Frat House, The Middle Chamber, The Black Forest, + The Haunted Ballroom, The Red Zeppelin, An Overgrown Shrine (Southwest), The Hidden Park, Twin Peak, The Smut Orc Logging Camp, The Daily Dungeon, The Spooky Forest]; + string activeCitZoneMod = activeCitZoneMod(); + + if(!auto_citizenZonePrep(string goal)) + { + return false; + } switch(goal) { case "meat": //Get +50% meat diff --git a/RELEASE/scripts/autoscend/quests/level_02.ash b/RELEASE/scripts/autoscend/quests/level_02.ash index afc640f1d..6b02ec49e 100644 --- a/RELEASE/scripts/autoscend/quests/level_02.ash +++ b/RELEASE/scripts/autoscend/quests/level_02.ash @@ -106,7 +106,7 @@ boolean L2_mosquito() if(activeCitZoneMod() == "none") //if we don't already have a Citizen of a Zone buff, might as well get this { - auto_getCitizenZone("mp"); + auto_getCitizenZone($location[The Spooky Forest]); } auto_log_info("Trying to find a mosquito.", "blue"); diff --git a/RELEASE/scripts/autoscend/quests/level_08.ash b/RELEASE/scripts/autoscend/quests/level_08.ash index 4f644b16c..808babc08 100644 --- a/RELEASE/scripts/autoscend/quests/level_08.ash +++ b/RELEASE/scripts/autoscend/quests/level_08.ash @@ -663,10 +663,7 @@ boolean L8_trapperNinjaLair() adjustEdHat("myst"); } - if(my_location() == $location[Lair of the Ninja Snowmen]) //after we visit the Lair once should try to get the meat buff here - { - auto_getCitizenZone("meat"); //since we are in the Lair anyway - } + auto_getCitizenZone($location[Lair of the Ninja Snowmen]); //since we want to adventure in the Lair anyway if(autoAdv($location[Lair of the Ninja Snowmen])) { diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index 920f08a89..6bb4a50ab 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -492,10 +492,7 @@ boolean LX_unlockManorSecondFloor() { auto_log_info("Attemping to use Map the Monsters to olfact a writing desk."); } } - if(my_location() == $location[The Haunted Library]) - { - auto_getCitizenZone("item"); //since in the library anyway - } + auto_getCitizenZone($location[The Haunted Library]); //since want to adventure in the Haunted Library anyway return autoAdv($location[The Haunted Library]); } diff --git a/RELEASE/scripts/autoscend/quests/level_12.ash b/RELEASE/scripts/autoscend/quests/level_12.ash index a3f4ac79b..c1c8ed297 100644 --- a/RELEASE/scripts/autoscend/quests/level_12.ash +++ b/RELEASE/scripts/autoscend/quests/level_12.ash @@ -1895,6 +1895,7 @@ boolean L12_themtharHills() return autoLuckyAdv($location[The Castle in the Clouds in the Sky (Top Floor)]); } + auto_getCitizenZone("meat"); //because it can take a turn, get this before getting any other buffs buffMaintain($effect[Disco Leer], 10, 1, 1); buffMaintain($effect[Polka of Plenty], 8, 1, 1); buffMaintain($effect[Sinuses For Miles]); @@ -1913,7 +1914,6 @@ boolean L12_themtharHills() buffMaintain($effect[Sweet Heart], 0, 1, 20); buffMaintain($effect[Good Things Are Coming, You Can Smell It]); buffMaintain($effect[Incredibly Well Lit]); - auto_getCitizenZone("meat"); bat_formWolf(); if(auto_is_valid($effect[Meet the Meat])) { From 46d10d086402d247f48f93ee3ae85f27024145b9 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Fri, 2 Aug 2024 15:51:29 -0400 Subject: [PATCH 62/85] Dumb error --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index b61dda997..e3042c288 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -852,7 +852,7 @@ boolean auto_getCitizenZone(location loc) //if for some reason we make it into the location getCitizenZone and it's not in any of the defined zones, get the item buff auto_getCitizenZone("item"); } - if(!auto_citizenZonePrep(string goal)) + if(!auto_citizenZonePrep(goal)) { return false; } @@ -895,7 +895,7 @@ boolean auto_getCitizenZone(string goal) The Haunted Ballroom, The Red Zeppelin, An Overgrown Shrine (Southwest), The Hidden Park, Twin Peak, The Smut Orc Logging Camp, The Daily Dungeon, The Spooky Forest]; string activeCitZoneMod = activeCitZoneMod(); - if(!auto_citizenZonePrep(string goal)) + if(!auto_citizenZonePrep(goal)) { return false; } From 2501880d7440dc9e6015eaee64cb730105739440 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sat, 3 Aug 2024 22:17:00 -0400 Subject: [PATCH 63/85] Update Palindome phylum banish block --- RELEASE/scripts/autoscend/quests/level_11.ash | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index 6bb4a50ab..8ba793dd4 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -2871,17 +2871,18 @@ boolean L11_palindome() return false; } - if (isBanishedPhyla($phylum[dude]) && get_property("screechCombats").to_int() > 0) - { - return false; //can't unscreech-banish dudes until screechCombats = 0. If new phylum banishers come out, this should be updated. - } - int total = 0; total = total + item_amount($item[Photograph Of A Red Nugget]); total = total + item_amount($item[Photograph Of An Ostrich Egg]); total = total + item_amount($item[Photograph Of God]); total = total + item_amount($item[Photograph Of A Dog]); + if(isBanishedPhyla($phylum[dude]) && get_property("screechCombats").to_int() > 0 && total == 3) + { + //Can't unscreech-banish dudes until screechCombats = 0. Total = 3 implies we got the 3 NCs we need and just need dudes. Maybe we hit a couple of Gnats or Cats or Bats and get screechCombats to 0 + return false; //If new phylum banishers come out, this should be updated. + } + boolean lovemeDone = hasILoveMeVolI() || (internalQuestStatus("questL11Palindome") >= 1); if(!lovemeDone && (get_property("palindomeDudesDefeated").to_int() >= 5)) { From f3005d336c654f3cd2410056c132c5b5da0bc325 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sun, 4 Aug 2024 23:20:48 -0400 Subject: [PATCH 64/85] Initial pass at running down screechCombats --- BUILD/phylums/banish.dat | 1 + RELEASE/data/autoscend_phylums.txt | 1 + RELEASE/data/autoscend_settings.txt | 1 + RELEASE/scripts/autoscend.ash | 2 +- RELEASE/scripts/autoscend/auto_powerlevel.ash | 20 +++++++++++++++++++ RELEASE/scripts/autoscend/quests/level_11.ash | 4 ++-- 6 files changed, 26 insertions(+), 3 deletions(-) diff --git a/BUILD/phylums/banish.dat b/BUILD/phylums/banish.dat index 006be76d5..438a2cceb 100644 --- a/BUILD/phylums/banish.dat +++ b/BUILD/phylums/banish.dat @@ -9,3 +9,4 @@ undead loc:The Haunted Library undead loc:The Haunted Wine Cellar undead loc:The Haunted Boiler Room undead loc:The Middle Chamber +construct loc:Noob Cave diff --git a/RELEASE/data/autoscend_phylums.txt b/RELEASE/data/autoscend_phylums.txt index d09c5b1aa..a3cbc71a4 100644 --- a/RELEASE/data/autoscend_phylums.txt +++ b/RELEASE/data/autoscend_phylums.txt @@ -13,4 +13,5 @@ banish 7 undead loc:The Haunted Library banish 8 undead loc:The Haunted Wine Cellar banish 9 undead loc:The Haunted Boiler Room banish 10 undead loc:The Middle Chamber +banish 11 construct loc:Noob Cave diff --git a/RELEASE/data/autoscend_settings.txt b/RELEASE/data/autoscend_settings.txt index 7fedcb64b..e5d3fb285 100644 --- a/RELEASE/data/autoscend_settings.txt +++ b/RELEASE/data/autoscend_settings.txt @@ -69,3 +69,4 @@ post 6 auto_wandOfNagamar boolean Do we need to get a Wand of Nagamar in this as pre 0 auto_getSteelOrgan_initialize boolean When we initialize an ascension this will be copied to auto_getSteelOrgan sharing 0 auto_disableExcavator boolean When set to true will disable automatically sending spading data via the Extractor script + diff --git a/RELEASE/scripts/autoscend.ash b/RELEASE/scripts/autoscend.ash index fa8c8f09a..ddc8d2a44 100644 --- a/RELEASE/scripts/autoscend.ash +++ b/RELEASE/scripts/autoscend.ash @@ -1397,7 +1397,7 @@ boolean adventureFailureHandler() } } - if(last_monster() == $monster[Crate] && (in_wereprof() && !($location[Noob Cave].turns_spent < 8))) //want 7 turns of Noob Cave in Wereprof for Smashed Scientific Equipment + if(last_monster() == $monster[Crate] && !(get_property("screechDelay").to_boolean()) && (in_wereprof() && !($location[Noob Cave].turns_spent < 8))) //want 7 turns of Noob Cave in Wereprof for Smashed Scientific Equipment { if(get_property("auto_newbieOverride").to_boolean()) { diff --git a/RELEASE/scripts/autoscend/auto_powerlevel.ash b/RELEASE/scripts/autoscend/auto_powerlevel.ash index 6fabb0647..a00f53a55 100644 --- a/RELEASE/scripts/autoscend/auto_powerlevel.ash +++ b/RELEASE/scripts/autoscend/auto_powerlevel.ash @@ -52,6 +52,26 @@ boolean LX_attemptPowerLevel() set_property("auto_powerLevelAdvCount", 0); return true; //restart the main loop to give those quests a chance to run now that the softblock is released. } + + if(get_property("screechDelay").to_boolean()) + { + auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else") + if(get_property("screechCombats").to_int() > 0) + { + if(LX_getDigitalKey() || LX_getStarKey()) + { + //If we still need the Digital Key or Star Key burn turns to get them + return true; + } + else + { + //Nothing else to do but go here + autoAdv($location[Noob Cave]); + } + } + set_property("screechDelay", false); + return true; + } if(in_robot()) { diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index 8ba793dd4..0e7708d66 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -2877,9 +2877,9 @@ boolean L11_palindome() total = total + item_amount($item[Photograph Of God]); total = total + item_amount($item[Photograph Of A Dog]); - if(isBanishedPhyla($phylum[dude]) && get_property("screechCombats").to_int() > 0 && total == 3) + if(isBanishedPhyla($phylum[dude]) && get_property("screechCombats").to_int() > 0) { - //Can't unscreech-banish dudes until screechCombats = 0. Total = 3 implies we got the 3 NCs we need and just need dudes. Maybe we hit a couple of Gnats or Cats or Bats and get screechCombats to 0 + set_property("screechDelay", true); return false; //If new phylum banishers come out, this should be updated. } From 215ea7340d55dc5446271370c29a6a6698b553dc Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sun, 4 Aug 2024 23:22:11 -0400 Subject: [PATCH 65/85] Forgotten semi-colon --- RELEASE/scripts/autoscend/auto_powerlevel.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/auto_powerlevel.ash b/RELEASE/scripts/autoscend/auto_powerlevel.ash index a00f53a55..7f7b86ffa 100644 --- a/RELEASE/scripts/autoscend/auto_powerlevel.ash +++ b/RELEASE/scripts/autoscend/auto_powerlevel.ash @@ -55,7 +55,7 @@ boolean LX_attemptPowerLevel() if(get_property("screechDelay").to_boolean()) { - auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else") + auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else"); if(get_property("screechCombats").to_int() > 0) { if(LX_getDigitalKey() || LX_getStarKey()) From c520a5c762fb6a7777b4d4cf517611cd0a5060df Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Mon, 5 Aug 2024 09:02:49 -0400 Subject: [PATCH 66/85] Add the screechDelay check to the other isBanishedPhyla checks --- RELEASE/scripts/autoscend/quests/level_07.ash | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/RELEASE/scripts/autoscend/quests/level_07.ash b/RELEASE/scripts/autoscend/quests/level_07.ash index c38280697..cdab9ed60 100644 --- a/RELEASE/scripts/autoscend/quests/level_07.ash +++ b/RELEASE/scripts/autoscend/quests/level_07.ash @@ -149,8 +149,9 @@ boolean L7_defiledAlcove() return false; } - if (isBanishedPhyla($phylum[undead])) + if (isBanishedPhyla($phylum[undead]) && get_property("screechCombats").to_int() > 0) { + set_property("screechDelay", true); return false; //No sense in trying to go to the cyrpt if undead are banished } @@ -191,8 +192,9 @@ boolean L7_crypt() return false; } - if (isBanishedPhyla($phylum[undead])) + if (isBanishedPhyla($phylum[undead]) && get_property("screechCombats").to_int() > 0) { + set_property("screechDelay", true); return false; //No sense in trying to go to the cyrpt if undead are banished } From 30d09832061d7ff5fedecc52aa5b7c26d24b1663 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sun, 18 Aug 2024 01:19:31 -0400 Subject: [PATCH 67/85] Better? screech delay handling --- RELEASE/scripts/autoscend/auto_powerlevel.ash | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_powerlevel.ash b/RELEASE/scripts/autoscend/auto_powerlevel.ash index 7f7b86ffa..a149bbabb 100644 --- a/RELEASE/scripts/autoscend/auto_powerlevel.ash +++ b/RELEASE/scripts/autoscend/auto_powerlevel.ash @@ -52,26 +52,6 @@ boolean LX_attemptPowerLevel() set_property("auto_powerLevelAdvCount", 0); return true; //restart the main loop to give those quests a chance to run now that the softblock is released. } - - if(get_property("screechDelay").to_boolean()) - { - auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else"); - if(get_property("screechCombats").to_int() > 0) - { - if(LX_getDigitalKey() || LX_getStarKey()) - { - //If we still need the Digital Key or Star Key burn turns to get them - return true; - } - else - { - //Nothing else to do but go here - autoAdv($location[Noob Cave]); - } - } - set_property("screechDelay", false); - return true; - } if(in_robot()) { @@ -209,6 +189,27 @@ boolean LX_attemptPowerLevel() if(autoAdv($location[The Haunted Gallery])) return true; } } + if(get_property("screechDelay").to_boolean()) //this should be the last possible reason to do anything + { + auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else"); + while(get_property("screechCombats").to_int() > 0) + { + handleFamiliar($familiar[Patriotic Eagle]); //force eagle to be used + if(LX_getDigitalKey() || LX_getStarKey()) + { + continue; + } + else + { + //Nothing else to do but go here + autoAdv($location[Noob Cave]); + continue; + } + } + autoAdv($location[Noob Cave]); //adventure here to banish constructs and be able to progress other quests + set_property("screechDelay", false); + return true; + } return false; } From c950b2dc5fff90e8bd5d39ecad7bab9609f47d20 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:37:39 -0400 Subject: [PATCH 68/85] Delay black forest if beasts are banished and can't clear banish --- RELEASE/scripts/autoscend/quests/level_11.ash | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index 4437781d8..3f2baf4fa 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -815,6 +815,11 @@ boolean L11_blackMarket() { return false; } + if (isBanishedPhyla($phylum[beast]) && get_property("screechCombats").to_int() > 0) + { + set_property("screechDelay", true); + return false; // Can't get the reassembled blackbird if beasts are banished + } if($location[The Black Forest].turns_spent > 12) { From eb5fc8015b9df79fab339ee9d760333ab7382e6f Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:48:15 -0400 Subject: [PATCH 69/85] Delay Copperhead Club if dudes are banished --- RELEASE/scripts/autoscend/quests/level_11.ash | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index 3f2baf4fa..56bf81b59 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -2737,6 +2737,12 @@ boolean L11_shenCopperhead() return false; } + if (isBanishedPhyla($phylum[dude]) && get_property("screechCombats").to_int() > 0) + { + set_property("screechDelay", true); + return false; //Probably should delay the Copperhead Club because dudes are important here + } + if (internalQuestStatus("questL11Shen") == 2 || internalQuestStatus("questL11Shen") == 4 || internalQuestStatus("questL11Shen") == 6) { if(is_professor()) From c5e2839b75841f6a0071ced81a889d28e3d9c593 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:19:05 -0400 Subject: [PATCH 70/85] Better Copperhead delay --- RELEASE/scripts/autoscend/quests/level_11.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index 56bf81b59..8f84acf3a 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -2737,7 +2737,7 @@ boolean L11_shenCopperhead() return false; } - if (isBanishedPhyla($phylum[dude]) && get_property("screechCombats").to_int() > 0) + if (isBanishedPhyla($phylum[dude])) // No need to check for Screech Combats because there's nothing in here we want to screech away { set_property("screechDelay", true); return false; //Probably should delay the Copperhead Club because dudes are important here From 2d5cc5f747c8e6c7c42e6f18b9e76386720a4618 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:53:06 -0400 Subject: [PATCH 71/85] Need beasts in Whitey's Grove --- RELEASE/scripts/autoscend/quests/level_11.ash | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/RELEASE/scripts/autoscend/quests/level_11.ash b/RELEASE/scripts/autoscend/quests/level_11.ash index 8f84acf3a..e2d29c963 100644 --- a/RELEASE/scripts/autoscend/quests/level_11.ash +++ b/RELEASE/scripts/autoscend/quests/level_11.ash @@ -2960,6 +2960,11 @@ boolean L11_palindome() restoreSetting("lastGuildStoreOpen"); return true; } + if(isBanishedPhyla($phylum[beast]) && get_property("screechCombats").to_int() > 0) + { + set_property("screechDelay", true); + return false; //If new phylum banishers come out, this should be updated. + } // +item is nice to get that food bat_formBats(); auto_lostStomach(true); From 61a033af83ed8c632a1a484f1f898d659fb46960 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 21 Aug 2024 16:11:40 -0400 Subject: [PATCH 72/85] Move screech delay back to top of powerlevel --- RELEASE/scripts/autoscend/auto_powerlevel.ash | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_powerlevel.ash b/RELEASE/scripts/autoscend/auto_powerlevel.ash index a149bbabb..3327404a9 100644 --- a/RELEASE/scripts/autoscend/auto_powerlevel.ash +++ b/RELEASE/scripts/autoscend/auto_powerlevel.ash @@ -62,6 +62,28 @@ boolean LX_attemptPowerLevel() return false; } + if(get_property("screechDelay").to_boolean()) + { + auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else"); + while(get_property("screechCombats").to_int() > 0) + { + handleFamiliar($familiar[Patriotic Eagle]); //force eagle to be used + if(LX_getDigitalKey() || LX_getStarKey()) + { + continue; + } + else + { + //Nothing else to do but go here + autoAdv($location[Noob Cave]); + continue; + } + } + autoAdv($location[Noob Cave]); //adventure here to banish constructs and be able to progress other quests + set_property("screechDelay", false); + return true; + } + auto_log_warning("I've run out of stuff to do. Time to powerlevel, I suppose.", "red"); set_property("auto_powerLevelAdvCount", get_property("auto_powerLevelAdvCount").to_int() + 1); @@ -189,27 +211,7 @@ boolean LX_attemptPowerLevel() if(autoAdv($location[The Haunted Gallery])) return true; } } - if(get_property("screechDelay").to_boolean()) //this should be the last possible reason to do anything - { - auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else"); - while(get_property("screechCombats").to_int() > 0) - { - handleFamiliar($familiar[Patriotic Eagle]); //force eagle to be used - if(LX_getDigitalKey() || LX_getStarKey()) - { - continue; - } - else - { - //Nothing else to do but go here - autoAdv($location[Noob Cave]); - continue; - } - } - autoAdv($location[Noob Cave]); //adventure here to banish constructs and be able to progress other quests - set_property("screechDelay", false); - return true; - } + return false; } From e8eaba14f35efbf0c46a95079c68b71bc037f081 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 21 Aug 2024 16:31:15 -0400 Subject: [PATCH 73/85] Needs to be above the level check --- RELEASE/scripts/autoscend/auto_powerlevel.ash | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_powerlevel.ash b/RELEASE/scripts/autoscend/auto_powerlevel.ash index 3327404a9..9c23a0987 100644 --- a/RELEASE/scripts/autoscend/auto_powerlevel.ash +++ b/RELEASE/scripts/autoscend/auto_powerlevel.ash @@ -57,10 +57,6 @@ boolean LX_attemptPowerLevel() { return LX_robot_powerlevel(); //leveling works very differently in You, Robot path } - if (my_level() > 12) - { - return false; - } if(get_property("screechDelay").to_boolean()) { @@ -83,6 +79,11 @@ boolean LX_attemptPowerLevel() set_property("screechDelay", false); return true; } + + if (my_level() > 12) + { + return false; + } auto_log_warning("I've run out of stuff to do. Time to powerlevel, I suppose.", "red"); From 592931f9dde1213974e97d3cb6041044af217743 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:01:36 -0400 Subject: [PATCH 74/85] Back below level check, but that check now considers disregarding Instant Karma --- RELEASE/scripts/autoscend/auto_powerlevel.ash | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_powerlevel.ash b/RELEASE/scripts/autoscend/auto_powerlevel.ash index 9c23a0987..0128d6c36 100644 --- a/RELEASE/scripts/autoscend/auto_powerlevel.ash +++ b/RELEASE/scripts/autoscend/auto_powerlevel.ash @@ -58,6 +58,11 @@ boolean LX_attemptPowerLevel() return LX_robot_powerlevel(); //leveling works very differently in You, Robot path } + if (my_level() > 12 && !disregardInstantKarma()) + { + return false; + } + if(get_property("screechDelay").to_boolean()) { auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else"); @@ -79,11 +84,6 @@ boolean LX_attemptPowerLevel() set_property("screechDelay", false); return true; } - - if (my_level() > 12) - { - return false; - } auto_log_warning("I've run out of stuff to do. Time to powerlevel, I suppose.", "red"); From 0e295aa6ccddae5bb2c47fbc3b249c98d2b0bc12 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:17:35 -0400 Subject: [PATCH 75/85] Do free combats to burn down screech delay too --- RELEASE/scripts/autoscend/auto_powerlevel.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/auto_powerlevel.ash b/RELEASE/scripts/autoscend/auto_powerlevel.ash index 0128d6c36..a9fba36ac 100644 --- a/RELEASE/scripts/autoscend/auto_powerlevel.ash +++ b/RELEASE/scripts/autoscend/auto_powerlevel.ash @@ -69,7 +69,7 @@ boolean LX_attemptPowerLevel() while(get_property("screechCombats").to_int() > 0) { handleFamiliar($familiar[Patriotic Eagle]); //force eagle to be used - if(LX_getDigitalKey() || LX_getStarKey()) + if(LX_freeCombats(true) || LX_getDigitalKey() || LX_getStarKey()) { continue; } From 26d04d9ff93a419fb61f3d13c907d1185e6c11ed Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 22 Aug 2024 08:56:02 -0400 Subject: [PATCH 76/85] Add a lastChance function for things that aren't powerlevelling --- .../task_order/A Shrunken Adventurer am I.dat | 2 ++ BUILD/task_order/Avatar of Jarlsberg.dat | 1 + BUILD/task_order/Legacy of Loathing.dat | 1 + BUILD/task_order/Quantum Terrarium.dat | 2 ++ BUILD/task_order/WereProfessor.dat | 2 ++ BUILD/task_order/Zombie Slayer.dat | 2 ++ BUILD/task_order/default.dat | 2 ++ RELEASE/data/autoscend_task_order.txt | 26 ++++++++++---- RELEASE/scripts/autoscend/auto_powerlevel.ash | 29 +--------------- .../scripts/autoscend/autoscend_header.ash | 1 + .../scripts/autoscend/quests/level_any.ash | 34 +++++++++++++++++++ 11 files changed, 67 insertions(+), 35 deletions(-) diff --git a/BUILD/task_order/A Shrunken Adventurer am I.dat b/BUILD/task_order/A Shrunken Adventurer am I.dat index 894c97e30..ecd74e917 100644 --- a/BUILD/task_order/A Shrunken Adventurer am I.dat +++ b/BUILD/task_order/A Shrunken Adventurer am I.dat @@ -88,5 +88,7 @@ setSoftblockDelay allowSoftblockDelay setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs # "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +LX_lastChance # if all else fails, powerlevel like there's no tomorrow. LX_attemptPowerLevel diff --git a/BUILD/task_order/Avatar of Jarlsberg.dat b/BUILD/task_order/Avatar of Jarlsberg.dat index 2952d5a45..0ea4c28d4 100644 --- a/BUILD/task_order/Avatar of Jarlsberg.dat +++ b/BUILD/task_order/Avatar of Jarlsberg.dat @@ -54,4 +54,5 @@ L3_tavern setSoftblockDelay allowSoftblockDelay setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs L13_towerAscent +LX_lastChance LX_attemptPowerLevel diff --git a/BUILD/task_order/Legacy of Loathing.dat b/BUILD/task_order/Legacy of Loathing.dat index 4cc657006..3eeddbb70 100644 --- a/BUILD/task_order/Legacy of Loathing.dat +++ b/BUILD/task_order/Legacy of Loathing.dat @@ -98,4 +98,5 @@ L13_sorceressDoor L13_towerNSTower L13_towerNSNagamar L13_towerNSFinal +LX_lastChance LX_attemptPowerLevel diff --git a/BUILD/task_order/Quantum Terrarium.dat b/BUILD/task_order/Quantum Terrarium.dat index 187b30ea5..2982096ef 100644 --- a/BUILD/task_order/Quantum Terrarium.dat +++ b/BUILD/task_order/Quantum Terrarium.dat @@ -58,4 +58,6 @@ L3_tavern setSoftblockDelay allowSoftblockDelay setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +LX_lastChance LX_attemptPowerLevel diff --git a/BUILD/task_order/WereProfessor.dat b/BUILD/task_order/WereProfessor.dat index e6dc123d0..452cf6bf2 100644 --- a/BUILD/task_order/WereProfessor.dat +++ b/BUILD/task_order/WereProfessor.dat @@ -104,5 +104,7 @@ LX_getStarKey LX_getDigitalKey # "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +LX_lastChance # if all else fails, powerlevel like there's no tomorrow. LX_attemptPowerLevel diff --git a/BUILD/task_order/Zombie Slayer.dat b/BUILD/task_order/Zombie Slayer.dat index 809f9e3d2..6735337ee 100644 --- a/BUILD/task_order/Zombie Slayer.dat +++ b/BUILD/task_order/Zombie Slayer.dat @@ -54,4 +54,6 @@ L3_tavern setSoftblockDelay allowSoftblockDelay setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +LX_lastChance LX_attemptPowerLevel diff --git a/BUILD/task_order/default.dat b/BUILD/task_order/default.dat index a9602db86..915f0f7e2 100644 --- a/BUILD/task_order/default.dat +++ b/BUILD/task_order/default.dat @@ -94,5 +94,7 @@ setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs LX_koeInvaderHandler # "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +LX_lastChance # if all else fails, powerlevel like there's no tomorrow. LX_attemptPowerLevel diff --git a/RELEASE/data/autoscend_task_order.txt b/RELEASE/data/autoscend_task_order.txt index aa0260094..ef12ea3c8 100644 --- a/RELEASE/data/autoscend_task_order.txt +++ b/RELEASE/data/autoscend_task_order.txt @@ -94,8 +94,10 @@ A Shrunken Adventurer am I 56 setSoftblockDelay allowSoftblockDelay A Shrunken Adventurer am I 57 setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs # "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. A Shrunken Adventurer am I 58 L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +A Shrunken Adventurer am I 59 LX_lastChance # if all else fails, powerlevel like there's no tomorrow. -A Shrunken Adventurer am I 59 LX_attemptPowerLevel +A Shrunken Adventurer am I 60 LX_attemptPowerLevel Avatar of Jarlsberg 0 LM_jarlsberg Avatar of Jarlsberg 1 LX_freeCombatsTask @@ -153,7 +155,8 @@ Avatar of Jarlsberg 52 L3_tavern Avatar of Jarlsberg 53 setSoftblockDelay allowSoftblockDelay Avatar of Jarlsberg 54 setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs Avatar of Jarlsberg 55 L13_towerAscent -Avatar of Jarlsberg 56 LX_attemptPowerLevel +Avatar of Jarlsberg 56 LX_lastChance +Avatar of Jarlsberg 57 LX_attemptPowerLevel Legacy of Loathing 0 LX_freeCombatsTask Legacy of Loathing 1 woods_questStart @@ -255,7 +258,8 @@ Legacy of Loathing 88 L13_sorceressDoor Legacy of Loathing 89 L13_towerNSTower Legacy of Loathing 90 L13_towerNSNagamar Legacy of Loathing 91 L13_towerNSFinal -Legacy of Loathing 92 LX_attemptPowerLevel +Legacy of Loathing 92 LX_lastChance +Legacy of Loathing 93 LX_attemptPowerLevel Quantum Terrarium 0 LX_freeCombatsTask Quantum Terrarium 1 woods_questStart @@ -317,7 +321,9 @@ Quantum Terrarium 56 L3_tavern Quantum Terrarium 57 setSoftblockDelay allowSoftblockDelay Quantum Terrarium 58 setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs Quantum Terrarium 59 L13_towerAscent -Quantum Terrarium 60 LX_attemptPowerLevel +# not powerlevelling but something that needs to be done if nothing else is available +Quantum Terrarium 60 LX_lastChance +Quantum Terrarium 61 LX_attemptPowerLevel WereProfessor 0 LM_wereprof WereProfessor 1 LX_freeCombatsTask @@ -425,8 +431,10 @@ WereProfessor 68 LX_getStarKey WereProfessor 69 LX_getDigitalKey # "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. WereProfessor 70 L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +WereProfessor 71 LX_lastChance # if all else fails, powerlevel like there's no tomorrow. -WereProfessor 71 LX_attemptPowerLevel +WereProfessor 72 LX_attemptPowerLevel Zombie Slayer 0 LM_zombieSlayer Zombie Slayer 1 woods_questStart @@ -484,7 +492,9 @@ Zombie Slayer 52 L3_tavern Zombie Slayer 53 setSoftblockDelay allowSoftblockDelay Zombie Slayer 54 setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs Zombie Slayer 55 L13_towerAscent -Zombie Slayer 56 LX_attemptPowerLevel +# not powerlevelling but something that needs to be done if nothing else is available +Zombie Slayer 56 LX_lastChance +Zombie Slayer 57 LX_attemptPowerLevel default 0 LX_freeCombatsTask default 1 woods_questStart @@ -582,6 +592,8 @@ default 60 setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs default 61 LX_koeInvaderHandler # "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. default 62 L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +default 63 LX_lastChance # if all else fails, powerlevel like there's no tomorrow. -default 63 LX_attemptPowerLevel +default 64 LX_attemptPowerLevel diff --git a/RELEASE/scripts/autoscend/auto_powerlevel.ash b/RELEASE/scripts/autoscend/auto_powerlevel.ash index a9fba36ac..d0bd94ecc 100644 --- a/RELEASE/scripts/autoscend/auto_powerlevel.ash +++ b/RELEASE/scripts/autoscend/auto_powerlevel.ash @@ -58,33 +58,11 @@ boolean LX_attemptPowerLevel() return LX_robot_powerlevel(); //leveling works very differently in You, Robot path } - if (my_level() > 12 && !disregardInstantKarma()) + if (my_level() > 12) { return false; } - if(get_property("screechDelay").to_boolean()) - { - auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else"); - while(get_property("screechCombats").to_int() > 0) - { - handleFamiliar($familiar[Patriotic Eagle]); //force eagle to be used - if(LX_freeCombats(true) || LX_getDigitalKey() || LX_getStarKey()) - { - continue; - } - else - { - //Nothing else to do but go here - autoAdv($location[Noob Cave]); - continue; - } - } - autoAdv($location[Noob Cave]); //adventure here to banish constructs and be able to progress other quests - set_property("screechDelay", false); - return true; - } - auto_log_warning("I've run out of stuff to do. Time to powerlevel, I suppose.", "red"); set_property("auto_powerLevelAdvCount", get_property("auto_powerLevelAdvCount").to_int() + 1); @@ -114,11 +92,6 @@ boolean LX_attemptPowerLevel() //The Source path specific powerleveling LX_attemptPowerLevelTheSource(); - if (LX_getDigitalKey() || LX_getStarKey()) - { - return true; - } - //August Scepter Power Levelling if(auto_haveAugustScepter() && get_property("_augSkillsCast").to_int() < 5){ if(my_primestat() == $stat[Muscle]) diff --git a/RELEASE/scripts/autoscend/autoscend_header.ash b/RELEASE/scripts/autoscend/autoscend_header.ash index b5039ff1a..fee20ab63 100644 --- a/RELEASE/scripts/autoscend/autoscend_header.ash +++ b/RELEASE/scripts/autoscend/autoscend_header.ash @@ -1242,6 +1242,7 @@ boolean LX_meatMaid(); item LX_getDesiredWorkshed(); boolean LX_setWorkshed(); boolean LX_dronesOut(); +boolean LX_lastChance(); ######################################################################################################## //Defined in autoscend/quests/optional.ash diff --git a/RELEASE/scripts/autoscend/quests/level_any.ash b/RELEASE/scripts/autoscend/quests/level_any.ash index a2a08233d..e9e207c0d 100644 --- a/RELEASE/scripts/autoscend/quests/level_any.ash +++ b/RELEASE/scripts/autoscend/quests/level_any.ash @@ -1077,3 +1077,37 @@ boolean LX_dronesOut() } return false; } + +boolean LX_lastChance() +{ + //miscellaneous calls that aren't powerlevelling but need to be done at some point based on certain conditions + if(get_property("screechDelay").to_boolean()) + { + auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else"); + while(get_property("screechCombats").to_int() > 0) + { + handleFamiliar($familiar[Patriotic Eagle]); //force eagle to be used + if(LX_freeCombats(true) || LX_getDigitalKey() || LX_getStarKey()) + { + continue; + } + else + { + //Nothing else to do but go here + autoAdv($location[Noob Cave]); + continue; + } + } + autoAdv($location[Noob Cave]); //adventure here to banish constructs and be able to progress other quests + set_property("screechDelay", false); + return true; + } + + // Need the digital key and star key so if we have nothing to do before the L13 quest, might as well do them here + if (LX_getDigitalKey() || LX_getStarKey()) + { + return true; + } + + return false; +} \ No newline at end of file From 38f412ba531a94b1fac8257f3fe1d16cd9685469 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 22 Aug 2024 09:07:05 -0400 Subject: [PATCH 77/85] fn\, for RWB Blast --- RELEASE/scripts/autoscend/auto_util.ash | 2 +- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index 0475e023d..9ae2fce0b 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -1141,7 +1141,7 @@ boolean adjustForSniffingIfPossible(monster target) { return autoEquip($item[cursed monkey\'s paw]); } - if(sniffer == $skill[%fn, fire a Red, White and Blue Blast]) + if(sniffer == $skill[%fn\, fire a Red, White and Blue Blast]) { handleFamiliar($familiar[Patriotic Eagle]); } diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index bbe051101..d053ba0b1 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -206,7 +206,7 @@ boolean isSniffed(monster enemy, skill sk) case $skill[Transcendent Olfaction]: retval = contains_text(get_property("olfactedMonster"), enemy); break; - case $skill[%fn, fire a Red, White and Blue Blast]: + case $skill[%fn\, fire a Red, White and Blue Blast]: retval = contains_text(get_property("rwbMonster"), enemy); break; case $skill[Make Friends]: @@ -258,9 +258,9 @@ skill getSniffer(monster enemy, boolean inCombat) { return $skill[Transcendent Olfaction]; } - if(canUse($skill[%fn, fire a Red, White and Blue Blast], true, inCombat) && !(have_effect($effect[Everything Looks Red, White and Blue]) > 0) && enemy.copyable) + if(canUse($skill[%fn\, fire a Red, White and Blue Blast], true, inCombat) && !(have_effect($effect[Everything Looks Red, White and Blue]) > 0) && enemy.copyable) { - return $skill[%fn, fire a Red, White and Blue Blast]; + return $skill[%fn\, fire a Red, White and Blue Blast]; } if(canUse($skill[Make Friends], true , inCombat) && my_audience() >= 20 && !isSniffed(enemy, $skill[Make Friends])) { From 275f8d84142a360b196a66197c334e922c0fb307 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 22 Aug 2024 09:20:19 -0400 Subject: [PATCH 78/85] Free Combats don't decrement screechCombat --- RELEASE/scripts/autoscend/quests/level_any.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/quests/level_any.ash b/RELEASE/scripts/autoscend/quests/level_any.ash index e9e207c0d..28ccb3c81 100644 --- a/RELEASE/scripts/autoscend/quests/level_any.ash +++ b/RELEASE/scripts/autoscend/quests/level_any.ash @@ -1087,7 +1087,7 @@ boolean LX_lastChance() while(get_property("screechCombats").to_int() > 0) { handleFamiliar($familiar[Patriotic Eagle]); //force eagle to be used - if(LX_freeCombats(true) || LX_getDigitalKey() || LX_getStarKey()) + if(LX_getDigitalKey() || LX_getStarKey()) { continue; } From 72d55010c4206b378a52245cd62f6389546b3cad Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sun, 25 Aug 2024 14:46:13 -0400 Subject: [PATCH 79/85] Make sure we don't run out of adventures --- RELEASE/scripts/autoscend/quests/level_any.ash | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/quests/level_any.ash b/RELEASE/scripts/autoscend/quests/level_any.ash index 28ccb3c81..48acb2578 100644 --- a/RELEASE/scripts/autoscend/quests/level_any.ash +++ b/RELEASE/scripts/autoscend/quests/level_any.ash @@ -1084,7 +1084,7 @@ boolean LX_lastChance() if(get_property("screechDelay").to_boolean()) { auto_log_warning("Patriotic Eagle's screech banished something we need and we can't adventure anywhere else"); - while(get_property("screechCombats").to_int() > 0) + while(get_property("screechCombats").to_int() > 0 && my_adventures() > 2) { handleFamiliar($familiar[Patriotic Eagle]); //force eagle to be used if(LX_getDigitalKey() || LX_getStarKey()) @@ -1098,6 +1098,11 @@ boolean LX_lastChance() continue; } } + if(get_property("screechCombats").to_int() > 0) + { + auto_log_warning("Couldn't clear screech delay without running out of adventures"); + return false; + } autoAdv($location[Noob Cave]); //adventure here to banish constructs and be able to progress other quests set_property("screechDelay", false); return true; From 214565a61656045c5f598c49497ce0faa3e0f649 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Sun, 25 Aug 2024 16:56:49 -0400 Subject: [PATCH 80/85] Fix bad banish cycle at Haunted Library --- BUILD/phylums/banish.dat | 2 +- RELEASE/data/autoscend_phylums.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BUILD/phylums/banish.dat b/BUILD/phylums/banish.dat index 438a2cceb..7aabfdac9 100644 --- a/BUILD/phylums/banish.dat +++ b/BUILD/phylums/banish.dat @@ -5,7 +5,7 @@ dude loc:Whitey's Grove;quest:questL11Palindome<=3 beast loc:The Hidden Park beast loc:Inside the Palindome;quest:questL11Palindome<=3 beast loc:The Penultimate Fantasy Airship -undead loc:The Haunted Library +undead loc:The Haunted Library item:Killing Jar>0 undead loc:The Haunted Wine Cellar undead loc:The Haunted Boiler Room undead loc:The Middle Chamber diff --git a/RELEASE/data/autoscend_phylums.txt b/RELEASE/data/autoscend_phylums.txt index a3cbc71a4..00e0bacd9 100644 --- a/RELEASE/data/autoscend_phylums.txt +++ b/RELEASE/data/autoscend_phylums.txt @@ -9,7 +9,7 @@ banish 3 dude loc:Whitey's Grove;quest:questL11Palindome<=3 banish 4 beast loc:The Hidden Park banish 5 beast loc:Inside the Palindome;quest:questL11Palindome<=3 banish 6 beast loc:The Penultimate Fantasy Airship -banish 7 undead loc:The Haunted Library +banish 7 undead loc:The Haunted Library item:Killing Jar>0 banish 8 undead loc:The Haunted Wine Cellar banish 9 undead loc:The Haunted Boiler Room banish 10 undead loc:The Middle Chamber From 4337290b4079d7b77c12130315fd5674c39720d4 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 3 Oct 2024 13:56:06 -0400 Subject: [PATCH 81/85] handleFam instead of useFam --- RELEASE/scripts/autoscend/auto_util.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/auto_util.ash b/RELEASE/scripts/autoscend/auto_util.ash index c7eca5516..71dc87f47 100644 --- a/RELEASE/scripts/autoscend/auto_util.ash +++ b/RELEASE/scripts/autoscend/auto_util.ash @@ -741,7 +741,7 @@ boolean adjustForBanish(string combat_string) { if(combat_string == "skill" + $skill[%fn\, Release the Patriotic Screech!]) { - return use_familiar($familiar[Patriotic Eagle]); + return handleFamiliar($familiar[Patriotic Eagle]); } if(combat_string == "skill " + $skill[Throw Latte on Opponent]) { From d4f17d005c9b5978e49a77ffae7ec2fe396c5902 Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 3 Oct 2024 15:47:32 -0400 Subject: [PATCH 82/85] Fix scepter after merging in AG changes --- RELEASE/scripts/autoscend/iotms/mr2023.ash | 70 ++++++---------------- 1 file changed, 18 insertions(+), 52 deletions(-) diff --git a/RELEASE/scripts/autoscend/iotms/mr2023.ash b/RELEASE/scripts/autoscend/iotms/mr2023.ash index aa229fb35..fc36446c3 100644 --- a/RELEASE/scripts/autoscend/iotms/mr2023.ash +++ b/RELEASE/scripts/autoscend/iotms/mr2023.ash @@ -523,13 +523,26 @@ void auto_scepterSkills() { use_skill($skill[Aug. 24th: Waffle Day!]); //get some waffles to hopefully change some bad monsters to better ones } - if(canUse($skill[Aug. 28th: Race Your Mouse Day!]) && !get_property("_aug28Cast").to_boolean() && pathHasFamiliar() && ((!auto_hasStillSuit() && item_amount($item[Astral pet sweater]) == 0) || in_small())) + if(canUse($skill[Aug. 28th: Race Your Mouse Day!]) && !get_property("_aug28Cast").to_boolean() && pathHasFamiliar()) { - if(!is100FamRun()) + familiar hundred_fam = to_familiar(get_property("auto_100familiar")); + if(((in_ag() && in_hardcore()) || (hundred_fam != $familiar[none] && (isAttackFamiliar(hundred_fam) || hundred_fam.block))) && have_familiar(findRockFamiliarInTerrarium())) { - use_familiar(findNonRockFamiliarInTerrarium()); //equip non-rock fam to ensure we get tiny gold medal + use_familiar(findRockFamiliarInTerrarium()); + use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment to lower weight of attack familiar or Burly bodyguard (Avant Guard) for Gremlins + } + else if((!auto_hasStillSuit() && item_amount($item[Astral pet sweater]) == 0) || in_small()) + { + if(!is100FamRun()) + { + use_familiar(findNonRockFamiliarInTerrarium()); //equip non-rock fam to ensure we get tiny gold medal + } + else + { + use_familiar(hundred_fam); // assuming non-rock familiar + } + use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment } - use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment } if(canUse($skill[Aug. 30th: Beach Day!]) && !get_property("_aug30Cast").to_boolean() && get_property("_augSkillsCast").to_int()< 5) { @@ -540,7 +553,7 @@ void auto_scepterSkills() void auto_scepterRollover() { if(canUse($skill[Aug. 13th: Left\/Off Hander\'s Day!]) && !get_property("_aug13Cast").to_boolean() && - get_property("_augSkillsCast").to_int()< 5 && numeric_modifier(equipped_item($slot[off-hand]),"Adventures") > 0) + get_property("_augSkillsCast").to_int()< 5 && numeric_modifier(equipped_item($slot[off-hand]),"Adventures") > 0 && weapon_hands(equipped_item($slot[off-hand])) == 0) { use_skill($skill[Aug. 13th: Left\/Off Hander\'s Day!]); //bump up the off-hand } @@ -562,53 +575,6 @@ void auto_scepterRollover() if(canUse($skill[Aug. 23rd: Ride the Wind Day!]) && !get_property("_aug23Cast").to_boolean() && my_primestat() == $stat[moxie]) { use_skill($skill[Aug. 23rd: Ride the Wind Day!]); //get moxies stubstats - //Day 1 skills - if(my_daycount() == 1) - { - if(canUse($skill[Aug. 24th: Waffle Day!]) && !get_property("_aug24Cast").to_boolean()) - { - use_skill($skill[Aug. 24th: Waffle Day!]); //get some waffles to hopefully change some bad monsters to better ones - } - if(canUse($skill[Aug. 30th: Beach Day!]) && !get_property("_aug30Cast").to_boolean()) - { - use_skill($skill[Aug. 30th: Beach Day!]); //Rollover adventures - } - if(canUse($skill[Aug. 28th: Race Your Mouse Day!]) && !get_property("_aug28Cast").to_boolean() && pathHasFamiliar()) - { - familiar hundred_fam = to_familiar(get_property("auto_100familiar")); - if(((in_ag() && in_hardcore()) || (hundred_fam != $familiar[none] && (isAttackFamiliar(hundred_fam) || hundred_fam.block))) && have_familiar(findRockFamiliarInTerrarium())) - { - use_familiar(findRockFamiliarInTerrarium()); - use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment to lower weight of attack familiar or Burly bodyguard (Avant Guard) for Gremlins - } - else if((!auto_hasStillSuit() && item_amount($item[Astral pet sweater]) == 0) || in_small()) - { - if(!is100FamRun()) - { - use_familiar(findNonRockFamiliarInTerrarium()); //equip non-rock fam to ensure we get tiny gold medal - } - else - { - use_familiar(hundred_fam); // assuming non-rock familiar - } - use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment - } - } - } - //Day 2+ skills - if(my_daycount() >= 2) - { - if(canUse($skill[Aug. 24th: Waffle Day!]) && !get_property("_aug24Cast").to_boolean()) - { - use_skill($skill[Aug. 24th: Waffle Day!]); //get some waffles to hopefully change some bad monsters to better ones - } - if(canUse($skill[Aug. 28th: Race Your Mouse Day!]) && !get_property("_aug28Cast").to_boolean() && ((!auto_hasStillSuit() && item_amount($item[Astral pet sweater]) == 0) || in_small())) - { - if(!is100FamRun()) - { - handleFamiliar("stat"); //get any familiar equipped if not in a 100% run - } - use_skill($skill[Aug. 28th: Race Your Mouse Day!]); //Fam equipment } } } From 72c1936890e3e64ecff0794f610357740c5dd77f Mon Sep 17 00:00:00 2001 From: Daniel Simich <21962115+dsimich@users.noreply.github.com> Date: Thu, 3 Oct 2024 16:23:37 -0400 Subject: [PATCH 83/85] Hopefully fix screech used without Eagle as fam --- RELEASE/scripts/autoscend/combat/auto_combat_util.ash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash index 3d6db3b78..146180bd2 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_util.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_util.ash @@ -544,7 +544,7 @@ string banisherCombatString(phylum enemyPhylum, location loc, boolean inCombat) if(inCombat) auto_log_info("Finding a phylum banisher to use on " + enemyPhylum + " at " + loc, "green"); - if(auto_have_familiar($familiar[Patriotic Eagle]) && (get_property("screechCombats").to_int() == 0)) + if(inCombat ? (my_familiar() == $familiar[Patriotic Eagle] && get_property("screechCombats").to_int() == 0) : (auto_have_familiar($familiar[Patriotic Eagle]) && (get_property("screechCombats").to_int() == 0))) { return "skill" + $skill[%fn\, Release the Patriotic Screech!]; } From 37dd1be294c55a7aaac6d6ca94635fee39cf57a3 Mon Sep 17 00:00:00 2001 From: dsimich <21962115+dsimich@users.noreply.github.com> Date: Sat, 14 Dec 2024 00:39:35 -0500 Subject: [PATCH 84/85] Fix task order after merge --- RELEASE/data/autoscend_task_order.txt | 371 ++++++++------------------ 1 file changed, 114 insertions(+), 257 deletions(-) diff --git a/RELEASE/data/autoscend_task_order.txt b/RELEASE/data/autoscend_task_order.txt index 1ea3285f4..8c84ccb4d 100644 --- a/RELEASE/data/autoscend_task_order.txt +++ b/RELEASE/data/autoscend_task_order.txt @@ -88,10 +88,12 @@ A Shrunken Adventurer am I 53 L3_tavern A Shrunken Adventurer am I 54 L2_mosquito # "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. A Shrunken Adventurer am I 55 L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +A Shrunken Adventurer am I 56 LX_lastChance # release the hounds! -A Shrunken Adventurer am I 56 auto_softBlockHandler +A Shrunken Adventurer am I 57 auto_softBlockHandler # if all else fails, powerlevel like there's no tomorrow. -A Shrunken Adventurer am I 57 LX_attemptPowerLevel +A Shrunken Adventurer am I 58 LX_attemptPowerLevel Avant Guard 0 LX_freeCombatsTask Avant Guard 1 woods_questStart @@ -192,12 +194,8 @@ Avant Guard 62 LX_koeInvaderHandler Avant Guard 63 L13_towerAscent # release the hounds! Avant Guard 64 auto_softBlockHandler -A Shrunken Adventurer am I 58 L13_towerAscent -# not powerlevelling but something that needs to be done if nothing else is available -A Shrunken Adventurer am I 59 LX_lastChance # if all else fails, powerlevel like there's no tomorrow. Avant Guard 65 LX_attemptPowerLevel -A Shrunken Adventurer am I 60 LX_attemptPowerLevel Avatar of Jarlsberg 0 LM_jarlsberg Avatar of Jarlsberg 1 LX_freeCombatsTask @@ -254,51 +252,107 @@ Avatar of Jarlsberg 51 L5_slayTheGoblinKing Avatar of Jarlsberg 52 L4_batCave Avatar of Jarlsberg 53 L3_tavern Avatar of Jarlsberg 54 L13_towerAscent -Avatar of Jarlsberg 55 auto_softBlockHandler -Avatar of Jarlsberg 56 LX_attemptPowerLevel -Avatar of Jarlsberg 16 LX_guildUnlock -Avatar of Jarlsberg 17 LX_unlockDesert -Avatar of Jarlsberg 18 LX_lockPicking -Avatar of Jarlsberg 19 LX_fatLootToken -Avatar of Jarlsberg 20 L5_getEncryptionKey -Avatar of Jarlsberg 21 L5_findKnob -Avatar of Jarlsberg 22 L2_mosquito -Avatar of Jarlsberg 23 LX_unlockHiddenTemple -Avatar of Jarlsberg 24 L6_dakotaFanning -Avatar of Jarlsberg 25 LX_steelOrgan -Avatar of Jarlsberg 26 L12_islandWar -Avatar of Jarlsberg 27 LX_spookyravenManorFirstFloor -Avatar of Jarlsberg 28 L11_blackMarket -Avatar of Jarlsberg 29 L11_forgedDocuments -Avatar of Jarlsberg 30 L11_mcmuffinDiary -Avatar of Jarlsberg 31 L11_getBeehive -Avatar of Jarlsberg 32 L11_unlockHiddenCity -Avatar of Jarlsberg 33 L11_hiddenCityZones -Avatar of Jarlsberg 34 L11_hiddenCity -Avatar of Jarlsberg 35 LX_spookyravenManorSecondFloor -Avatar of Jarlsberg 36 L11_mauriceSpookyraven -Avatar of Jarlsberg 37 L11_talismanOfNam -Avatar of Jarlsberg 38 L10_plantThatBean -Avatar of Jarlsberg 39 L10_rainOnThePlains -Avatar of Jarlsberg 40 L9_chasmBuild -Avatar of Jarlsberg 41 L9_highLandlord -Avatar of Jarlsberg 42 L8_trapperQuest -Avatar of Jarlsberg 43 L6_friarsGetParts -Avatar of Jarlsberg 44 L7_crypt -Avatar of Jarlsberg 45 L11_palindome -Avatar of Jarlsberg 46 L11_aridDesert -Avatar of Jarlsberg 47 L11_unlockPyramid -Avatar of Jarlsberg 48 L11_unlockEd -Avatar of Jarlsberg 49 L11_defeatEd -Avatar of Jarlsberg 50 L5_slayTheGoblinKing -Avatar of Jarlsberg 51 L4_batCave -Avatar of Jarlsberg 52 L3_tavern -Avatar of Jarlsberg 53 setSoftblockDelay allowSoftblockDelay -Avatar of Jarlsberg 54 setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs -Avatar of Jarlsberg 55 L13_towerAscent -Avatar of Jarlsberg 56 LX_lastChance +Avatar of Jarlsberg 55 LX_lastChance +Avatar of Jarlsberg 56 auto_softBlockHandler Avatar of Jarlsberg 57 LX_attemptPowerLevel +default 0 LX_freeCombatsTask +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_galaktikSubQuest +default 8 L9_leafletQuest +default 9 L5_findKnob +default 10 L12_sonofaPrefix +default 11 LX_burnDelay +default 12 LX_summonMonster +# path handling which should be in it's own task order but pre-dates task order functionality (tech debt FTW). +default 13 LM_edTheUndying +default 14 LX_bugbearInvasion +default 15 LX_lowkeySummer +# make sure we don't waste turns of Ultrahydrated doing something else. +default 16 L11_aridDesert L11_hasUltrahydrated +# Lock in the Shen zones as soon as we can as it (potentially) unlocks a bunch of stuff. +default 17 L11_shenStartQuest +# Build the Bridge when we have enough parts as we may want to spend daily resources at the peaks. +default 18 finishBuildingSmutOrcBridge +# Call quest handlers based on current state if applicable +default 19 auto_earlyRoutingHandling +# Guild access. +default 20 LX_guildUnlock +# Desert access, Daily Dungeon and other early random stuff that we don't want to miss. +default 21 LX_unlockDesert +default 22 LX_lockPicking +default 23 LX_fatLootToken +# Get the Steel Organ if the user wants it (needs L6 quest complete) +default 24 LX_steelOrgan +# open up delay zones. +default 25 LX_spookyravenManorFirstFloor +# open up zones where we want to force non-combats. +# Open up underground zones so they are available for Breathitin. +default 26 L5_getEncryptionKey +default 27 L5_findKnob +# Do the War early. Access to the Orchard is useful for booze/potions and maybe we can make use of the green smoke bombs? +default 28 L12_islandWar +# Start the macguffin quest +default 29 L11_blackMarket +default 30 L11_forgedDocuments +default 31 L11_mcmuffinDiary +default 32 L11_getBeehive +# open the hidden city up (delay zones) +default 33 L2_mosquito +default 34 LX_unlockHiddenTemple +default 35 L6_dakotaFanning +default 36 L11_unlockHiddenCity +# Murder pygmies for the ancient amulet. +default 37 L11_hiddenCityZones +default 38 L11_hiddenCity +# Dance with lady spookyraven so we can go murder her undead husband and take the Eye of Ed +default 39 LX_spookyravenManorSecondFloor +default 40 L11_mauriceSpookyraven +# Lay the smack down on those Jerk Copperhead twins +default 41 L11_talismanOfNam +# Open up the top of the beanstalk. +default 42 L10_plantThatBean +# Clean up the plains +default 43 L10_rainOnThePlains +# Get Black Angus his pizza +default 44 L9_chasmBuild +default 45 L9_highLandlord +# Kill Groar because *we* are the monsters. +default 46 L8_trapperQuest +# Kill the undead? Is this an oxymoron? +default 47 L7_crypt +# Cleanse the taint. +default 48 L6_friarsGetParts +# Finish the other Macguffin zones so we can beat Ed to death repeatedly and waste all his Ka coins. +default 49 L11_palindome +default 50 L11_aridDesert +default 51 L11_unlockPyramid +default 52 L11_unlockEd +default 53 L11_defeatEd +# Finish off the Goblin King. +default 54 L5_slayTheGoblinKing +# Show the Boss bat who's boss. +default 55 L4_batCave +# Fix that dripping tap. +default 56 L3_tavern +# Basic fetch quest is the first thing the council demand of you. Is this 2002 or what? +default 57 L2_mosquito +# There's an extra task in KoE +default 58 LX_koeInvaderHandler +# "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. +default 59 L13_towerAscent +# not powerlevelling but something that needs to be done if nothing else is available +default 60 LX_lastChance +# release the hounds! +default 61 auto_softBlockHandler +# if all else fails, powerlevel like there's no tomorrow. +default 62 LX_attemptPowerLevel + Legacy of Loathing 0 LX_freeCombatsTask Legacy of Loathing 1 woods_questStart Legacy of Loathing 2 LX_unlockPirateRealm @@ -395,23 +449,9 @@ Legacy of Loathing 84 L13_sorceressDoor Legacy of Loathing 85 L13_towerNSTower Legacy of Loathing 86 L13_towerNSNagamar Legacy of Loathing 87 L13_towerNSFinal -Legacy of Loathing 88 auto_softBlockHandler -Legacy of Loathing 89 LX_attemptPowerLevel -Legacy of Loathing 79 L12_finalizeWar -Legacy of Loathing 80 L12_clearBattlefield -Legacy of Loathing 81 LX_koeInvaderHandler -Legacy of Loathing 82 setSoftblockDelay allowSoftblockDelay -Legacy of Loathing 83 setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs -Legacy of Loathing 84 L12_lastDitchFlyer -Legacy of Loathing 85 LX_bugbearInvasionFinale -Legacy of Loathing 86 L13_towerNSContests -Legacy of Loathing 87 L13_towerNSHedge -Legacy of Loathing 88 L13_sorceressDoor -Legacy of Loathing 89 L13_towerNSTower -Legacy of Loathing 90 L13_towerNSNagamar -Legacy of Loathing 91 L13_towerNSFinal -Legacy of Loathing 92 LX_lastChance -Legacy of Loathing 93 LX_attemptPowerLevel +Legacy of Loathing 88 LX_lastChance +Legacy of Loathing 89 auto_softBlockHandler +Legacy of Loathing 90 LX_attemptPowerLevel Quantum Terrarium 0 LX_freeCombatsTask Quantum Terrarium 1 woods_questStart @@ -472,50 +512,9 @@ Quantum Terrarium 55 L5_slayTheGoblinKing Quantum Terrarium 56 L4_batCave Quantum Terrarium 57 L3_tavern Quantum Terrarium 58 L13_towerAscent -Quantum Terrarium 59 auto_softBlockHandler -Quantum Terrarium 60 LX_attemptPowerLevel -Quantum Terrarium 20 LX_guildUnlock -Quantum Terrarium 21 LX_unlockDesert -Quantum Terrarium 22 LX_lockPicking -Quantum Terrarium 23 LX_fatLootToken -Quantum Terrarium 24 L5_getEncryptionKey -Quantum Terrarium 25 L5_findKnob -Quantum Terrarium 26 L2_mosquito -Quantum Terrarium 27 LX_unlockHiddenTemple -Quantum Terrarium 28 L6_dakotaFanning -Quantum Terrarium 29 LX_steelOrgan -Quantum Terrarium 30 L12_islandWar -Quantum Terrarium 31 LX_spookyravenManorFirstFloor -Quantum Terrarium 32 L11_blackMarket -Quantum Terrarium 33 L11_forgedDocuments -Quantum Terrarium 34 L11_mcmuffinDiary -Quantum Terrarium 35 L11_getBeehive -Quantum Terrarium 36 L11_unlockHiddenCity -Quantum Terrarium 37 L11_hiddenCityZones -Quantum Terrarium 38 L11_hiddenCity -Quantum Terrarium 39 LX_spookyravenManorSecondFloor -Quantum Terrarium 40 L11_mauriceSpookyraven -Quantum Terrarium 41 L11_talismanOfNam -Quantum Terrarium 42 L10_plantThatBean -Quantum Terrarium 43 L10_rainOnThePlains -Quantum Terrarium 44 L9_chasmBuild -Quantum Terrarium 45 L9_highLandlord -Quantum Terrarium 46 L8_trapperQuest -Quantum Terrarium 47 L6_friarsGetParts -Quantum Terrarium 48 L7_crypt -Quantum Terrarium 49 L11_palindome -Quantum Terrarium 50 L11_aridDesert -Quantum Terrarium 51 L11_unlockPyramid -Quantum Terrarium 52 L11_unlockEd -Quantum Terrarium 53 L11_defeatEd -Quantum Terrarium 54 L5_slayTheGoblinKing -Quantum Terrarium 55 L4_batCave -Quantum Terrarium 56 L3_tavern -Quantum Terrarium 57 setSoftblockDelay allowSoftblockDelay -Quantum Terrarium 58 setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs -Quantum Terrarium 59 L13_towerAscent # not powerlevelling but something that needs to be done if nothing else is available -Quantum Terrarium 60 LX_lastChance +Quantum Terrarium 59 LX_lastChance +Quantum Terrarium 60 auto_softBlockHandler Quantum Terrarium 61 LX_attemptPowerLevel WereProfessor 0 LM_wereprof @@ -618,14 +617,12 @@ WereProfessor 65 LX_getStarKey WereProfessor 66 LX_getDigitalKey # "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. WereProfessor 67 L13_towerAscent -# release the hounds! -WereProfessor 68 auto_softBlockHandler -WereProfessor 70 L13_towerAscent # not powerlevelling but something that needs to be done if nothing else is available -WereProfessor 71 LX_lastChance +WereProfessor 68 LX_lastChance +# release the hounds! +WereProfessor 69 auto_softBlockHandler # if all else fails, powerlevel like there's no tomorrow. -WereProfessor 69 LX_attemptPowerLevel -WereProfessor 72 LX_attemptPowerLevel +WereProfessor 70 LX_attemptPowerLevel Zombie Slayer 0 LM_zombieSlayer Zombie Slayer 1 woods_questStart @@ -682,148 +679,8 @@ Zombie Slayer 51 L5_slayTheGoblinKing Zombie Slayer 52 L4_batCave Zombie Slayer 53 L3_tavern Zombie Slayer 54 L13_towerAscent -Zombie Slayer 55 auto_softBlockHandler -Zombie Slayer 56 LX_attemptPowerLevel -Zombie Slayer 16 LX_guildUnlock -Zombie Slayer 17 LX_unlockDesert -Zombie Slayer 18 LX_lockPicking -Zombie Slayer 19 LX_fatLootToken -Zombie Slayer 20 L5_getEncryptionKey -Zombie Slayer 21 L5_findKnob -Zombie Slayer 22 L2_mosquito -Zombie Slayer 23 LX_unlockHiddenTemple -Zombie Slayer 24 L6_dakotaFanning -Zombie Slayer 25 LX_steelOrgan -Zombie Slayer 26 L12_islandWar -Zombie Slayer 27 LX_spookyravenManorFirstFloor -Zombie Slayer 28 L11_blackMarket -Zombie Slayer 29 L11_forgedDocuments -Zombie Slayer 30 L11_mcmuffinDiary -Zombie Slayer 31 L11_getBeehive -Zombie Slayer 32 L11_unlockHiddenCity -Zombie Slayer 33 L11_hiddenCityZones -Zombie Slayer 34 L11_hiddenCity -Zombie Slayer 35 LX_spookyravenManorSecondFloor -Zombie Slayer 36 L11_mauriceSpookyraven -Zombie Slayer 37 L11_talismanOfNam -Zombie Slayer 38 L10_plantThatBean -Zombie Slayer 39 L10_rainOnThePlains -Zombie Slayer 40 L9_chasmBuild -Zombie Slayer 41 L9_highLandlord -Zombie Slayer 42 L8_trapperQuest -Zombie Slayer 43 L6_friarsGetParts -Zombie Slayer 44 L7_crypt -Zombie Slayer 45 L11_palindome -Zombie Slayer 46 L11_aridDesert -Zombie Slayer 47 L11_unlockPyramid -Zombie Slayer 48 L11_unlockEd -Zombie Slayer 49 L11_defeatEd -Zombie Slayer 50 L5_slayTheGoblinKing -Zombie Slayer 51 L4_batCave -Zombie Slayer 52 L3_tavern -Zombie Slayer 53 setSoftblockDelay allowSoftblockDelay -Zombie Slayer 54 setSoftblockUndergroundAdvs allowSoftblockUndergroundAdvs -Zombie Slayer 55 L13_towerAscent # not powerlevelling but something that needs to be done if nothing else is available -Zombie Slayer 56 LX_lastChance +Zombie Slayer 55 LX_lastChance +Zombie Slayer 56 auto_softBlockHandler Zombie Slayer 57 LX_attemptPowerLevel -default 0 LX_freeCombatsTask -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_galaktikSubQuest -default 8 L9_leafletQuest -default 9 L5_findKnob -default 10 L12_sonofaPrefix -default 11 LX_burnDelay -default 12 LX_summonMonster -# path handling which should be in it's own task order but pre-dates task order functionality (tech debt FTW). -default 13 LM_edTheUndying -default 14 LX_bugbearInvasion -default 15 LX_lowkeySummer -# make sure we don't waste turns of Ultrahydrated doing something else. -default 16 L11_aridDesert L11_hasUltrahydrated -# Lock in the Shen zones as soon as we can as it (potentially) unlocks a bunch of stuff. -default 17 L11_shenStartQuest -# Build the Bridge when we have enough parts as we may want to spend daily resources at the peaks. -default 18 finishBuildingSmutOrcBridge -# Call quest handlers based on current state if applicable -default 19 auto_earlyRoutingHandling -# Guild access. -default 20 LX_guildUnlock -# Desert access, Daily Dungeon and other early random stuff that we don't want to miss. -default 21 LX_unlockDesert -default 22 LX_lockPicking -default 23 LX_fatLootToken -# Get the Steel Organ if the user wants it (needs L6 quest complete) -default 24 LX_steelOrgan -# open up delay zones. -default 25 LX_spookyravenManorFirstFloor -# open up zones where we want to force non-combats. -# Open up underground zones so they are available for Breathitin. -default 26 L5_getEncryptionKey -default 27 L5_findKnob -# Do the War early. Access to the Orchard is useful for booze/potions and maybe we can make use of the green smoke bombs? -default 28 L12_islandWar -# Start the macguffin quest -default 29 L11_blackMarket -default 30 L11_forgedDocuments -default 31 L11_mcmuffinDiary -default 32 L11_getBeehive -# open the hidden city up (delay zones) -default 33 L2_mosquito -default 34 LX_unlockHiddenTemple -default 35 L6_dakotaFanning -default 36 L11_unlockHiddenCity -# Murder pygmies for the ancient amulet. -default 37 L11_hiddenCityZones -default 38 L11_hiddenCity -# Dance with lady spookyraven so we can go murder her undead husband and take the Eye of Ed -default 39 LX_spookyravenManorSecondFloor -default 40 L11_mauriceSpookyraven -# Lay the smack down on those Jerk Copperhead twins -default 41 L11_talismanOfNam -# Open up the top of the beanstalk. -default 42 L10_plantThatBean -# Clean up the plains -default 43 L10_rainOnThePlains -# Get Black Angus his pizza -default 44 L9_chasmBuild -default 45 L9_highLandlord -# Kill Groar because *we* are the monsters. -default 46 L8_trapperQuest -# Kill the undead? Is this an oxymoron? -default 47 L7_crypt -# Cleanse the taint. -default 48 L6_friarsGetParts -# Finish the other Macguffin zones so we can beat Ed to death repeatedly and waste all his Ka coins. -default 49 L11_palindome -default 50 L11_aridDesert -default 51 L11_unlockPyramid -default 52 L11_unlockEd -default 53 L11_defeatEd -# Finish off the Goblin King. -default 54 L5_slayTheGoblinKing -# Show the Boss bat who's boss. -default 55 L4_batCave -# Fix that dripping tap. -default 56 L3_tavern -# Basic fetch quest is the first thing the council demand of you. Is this 2002 or what? -default 57 L2_mosquito -# There's an extra task in KoE -default 58 LX_koeInvaderHandler -# "win" the contests, navigate the maze, unlock the door, climb the tower, commit sorceresscide. -default 59 L13_towerAscent -# release the hounds! -default 60 auto_softBlockHandler -default 62 L13_towerAscent -# not powerlevelling but something that needs to be done if nothing else is available -default 63 LX_lastChance -# if all else fails, powerlevel like there's no tomorrow. -default 61 LX_attemptPowerLevel -default 64 LX_attemptPowerLevel - From 5adb1091f627589cd5b3368e7ecb93eb3b55650e Mon Sep 17 00:00:00 2001 From: dsimich <21962115+dsimich@users.noreply.github.com> Date: Sat, 14 Dec 2024 00:54:07 -0500 Subject: [PATCH 85/85] Fixes after En Garde, Avant Guard committed --- .../combat/auto_combat_default_stage2.ash | 25 ----------------- RELEASE/scripts/autoscend/quests/level_07.ash | 27 +++++-------------- 2 files changed, 6 insertions(+), 46 deletions(-) diff --git a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash index ebc5a102d..9f9a918b7 100644 --- a/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash +++ b/RELEASE/scripts/autoscend/combat/auto_combat_default_stage2.ash @@ -170,31 +170,6 @@ string auto_combatDefaultStage2(int round, monster enemy, string text) combat_status_add("phylumbanishercheck"); } - if(!combat_status_check("banishercheck") && auto_wantToBanish(monster_phylum(enemy), my_location())) - { - string banishAction = banisherCombatString(monster_phylum(enemy), my_location(), true); - if(banishAction != "") - { - auto_log_info("Looking at banishAction: " + banishAction, "green"); - combat_status_add("banisher"); - if(index_of(banishAction, "skill") == 0) - { - handleTracker(monster_phylum(enemy), to_skill(substring(banishAction, 6)), "auto_banishes"); - } - else if(index_of(banishAction, "item") == 0) - { - handleTracker(monster_phylum(enemy), to_item(substring(banishAction, 5)), "auto_banishes"); - } - else - { - auto_log_warning("Unable to track banisher behavior: " + banishAction, "red"); - } - return banishAction; - } - //we wanted to banish an enemy and failed. set a property so we do not bother trying in subsequent rounds - combat_status_add("phylumbanishercheck"); - } - // Free run in Avant Guard from Bodyguard before banishing for a few monsters if(!combat_status_check("banishercheck") && auto_wantToBanish(guardee, my_location())) { diff --git a/RELEASE/scripts/autoscend/quests/level_07.ash b/RELEASE/scripts/autoscend/quests/level_07.ash index a341eceb3..916fc855e 100644 --- a/RELEASE/scripts/autoscend/quests/level_07.ash +++ b/RELEASE/scripts/autoscend/quests/level_07.ash @@ -189,27 +189,6 @@ boolean L7_defiledAlcove() boolean L7_defiledNook() { - if (internalQuestStatus("questL07Cyrptic") != 0) - { - return false; - } - if (item_amount($item[chest of the bonerdagon]) == 1) - { - equipStatgainIncreasers(); - use(1, $item[chest of the bonerdagon]); - return false; - } - - if (isBanishedPhyla($phylum[undead]) && get_property("screechCombats").to_int() > 0) - { - set_property("screechDelay", true); - return false; //No sense in trying to go to the cyrpt if undead are banished - } - - // make sure quest status is correct before we attempt to adventure. - visit_url("crypt.php"); - use(1, $item[Evilometer]); - int evilBonus = cyrptEvilBonus(); // current mafia bug causes us to lose track of the amount of Evil Eyes in inventory so adding a refresh here @@ -412,6 +391,12 @@ boolean L7_crypt() return false; } + if (isBanishedPhyla($phylum[undead]) && get_property("screechCombats").to_int() > 0) + { + set_property("screechDelay", true); + return false; //No sense in trying to go to the cyrpt if undead are banished + } + // make sure quest status is correct before we attempt to adventure. visit_url("crypt.php"); use(1, $item[Evilometer]);