Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eagle scepter #1403

Open
wants to merge 128 commits into
base: main
Choose a base branch
from
Open

Eagle scepter #1403

wants to merge 128 commits into from

Conversation

dsimich
Copy link
Member

@dsimich dsimich commented Jan 3, 2024

Description

Parts pulled out of PR have been struck through

Patriotic Eagle support

- Will visit the lowest level zone that contain one of the 3 useful buffs (Init, Item, or Meat)
- If either the item or meat zone will be hit, will equip the eagle to get that buff
- Will get meat buff before Nuns
- Will get meat or item buff if the threshold isn't met in the 8-bit zone
- Will get meat if threshold isn't met on Wall of Meat
- Adds Red, White, and Blue Blast to sniffers
- [x] Need to add forcing eagle so that the banish is always available

August Scepter

- Adds additional casts so that we use up all casts in a given day at rollover.
- Restructured the initial call at the start of the day to be generic.

Candy Cane Sword Cane

- No need to pull an eleven-foot pole if you have a CCSC

Other miscellaneous additions

- Adds a new lastChance function for tasks that aren't powerlevelling related, but should be done before powerlevelling is attempted (currently only eagle screech force clear and Digital Key and Star Key)
- Adds Phylum support for banishes at least. Not sure how sniffs, replaces, or YRs would be implemented in the game but there is the possibility to add additional .dat files.

How Has This Been Tested?

A lot of standard runs, mostly normal

Checklist:

  • My code follows the style guidelines of this project.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have based my pull request against the main branch or have a good reason not to.

@@ -217,7 +217,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, Hunt, McHugeLarge Slash]
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, Hunt, McHugeLarge Slash]
Copy link
Member

@midgleyc midgleyc Jan 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mafia doesn't count this as a sniff skill (same as Be Gregarious / Recall Monster Habitat / Saber Friends), so you'll need to check the rwbMonster preference.

return "none";
}
visit_url("desc_effect.php?whicheffect=9391a5f7577e30ac3af6309804da6944"); // visit url to refresh Mafia's _citizenZoneMods preference
string activeCitZoneMod = get_property("_citizenZoneMods").to_lower_case();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this (string check) is fine, but FYI you can get a modifier -> amount map by

> ash split_modifiers(get_property("_citizenZoneMods"))

Returned: aggregate string [modifier]
Hot Damage => +10
Hot Spell Damage => +10
Meat Drop => +50
Mysticality => +10

{
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),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as these zone lists are shared between the functions it might be nice to pull them out

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was going to do that prior to the review but never got around to doing it/figuring it out. Will add it now because it could be useful for future maintenance.

{
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))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doesn't handle spec

if(autoAdv(loc))
{
activeCitZoneMod = activeCitZoneMod();
if(contains_text(activeCitZoneMod, goal)) //need this if statement separate in case we hit a non-combat
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

activeCitZoneMod does not contain spec, though?

}
break;
case "meat": //Get +50% meat
foreach loc in meatZones
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

given these entries are identical except the zone, you could extract a function taking a boolean[location] zones

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and then define it inside this function, like is done in providers

undead loc:The Unquiet Garves
undead loc:The Haunted Boiler Room
undead loc:The Middle Chamber
construct loc:Noob Cave
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this also triggers on the "fake" combats that we pretend to do in the Noob Cave, like the 151 infantryman

Not sure what to do about this. Could just remove it entirely as I don't think we ever go to the Noob Cave seriously, and the "clear phylum banish" can special-case it

While you currently go to the Noob Cave to clear a phylum banish by banishing constructs I feel like there are better options, if unlocked:

  • Cobb's Knob Harem goblins, and we only want to face goblins in pure goblin zones, like this one. Also advances the superlikely.
  • Outskirts is okay at a push but has some unskippable NCs, so is dangerous
  • Back Alley clears bugs or hobos but also has unskippable NCs

because we do want constructs in the Wine Cellar / Laundry Room.

@midgleyc
Copy link
Member

also the forcing of the eagle doesn't seem to work, perhaps auto_familiarChoice happens too late:

> [INFO] Starting preadventure script...
Preference auto_lastFamiliarLookupType changed from init to item
Preference auto_familiarChoice changed from  to Jill-of-All-Trades
Preference _auto_thisLoopHandleFamiliar changed from false to true

familiar Jill-of-All-Trades (21 lbs)
> [INFO] Trying to provide 25 negative combat rate, with equipment
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,-200combat 25max,+200bonus spring shoes
> [INFO] Adjusting to have phylum banisher available for beast: skill%fn, Release the Patriotic Screech!
Preference auto_familiarChoice changed from Jill-of-All-Trades to Patriotic Eagle
> [INFO] Adjusted to have free run available for Irritating Series of Random Encounters: skill Bowl a Curveball
> [INFO] Adjusting to have banisher available for Protagonist: skill Spring Kick
> [INFO] Equipping spring shoes to slot acc1
Preference _auto_maximize_equip_acc1 changed from  to spring shoes
> [INFO] Equipping bat wings to slot back
Preference _auto_maximize_equip_back changed from  to bat wings
> [INFO] Trying to provide 900 item, without equipment, familiar, and limited buffs
Maximizer: 5item,meat,0.5initiative,0.1da 1000max,dr,0.5all res,1.5mainstat,-fumble,mox,0.4hp,0.2mp 1000max,3mp regen,0.25spell damage,1.75spell damage percent,2familiar weight,5familiar exp,10exp,5Mysticality experience percent,-200combat 25max,+equip bat wings,+equip spring shoes,+200bonus spring shoes

equip hat Apriling band helmet

equip weapon candy cane sword cane

equip off-hand august scepter

equip acc1 Cincho de Mayo

equip acc2 McHugeLarge left ski

Unequip Oily Woim

equip familiar tiny gold medal
Preference _auto_tunedElement changed from  to sleaze
Preference auto_priorLocation changed from Vanya's Castle to The Penultimate Fantasy Airship
> [INFO] Pre Adventure at The Penultimate Fantasy Airship done, beep.
Preference _auto_inf_session_adv changed from 56 to 57
> [INFO] [Sauceror] @ path of [Standard]
> [INFO] HP: 323/410, MP: 433/491, Meat: 5098, Soulsauce: 77
> [INFO] mus: 69+101. mys: 97+58. mox: 70+113
> [INFO] Familiar: Jill-of-All-Trades @ 5 + 26lbs. 

@@ -2420,6 +2434,12 @@ boolean L11_mauriceSpookyraven()

if (item_amount($item[bottle of Chateau de Vinegar]) == 0 && !possessEquipment($item[Unstable Fulminate]) && internalQuestStatus("questL11Manor") < 3)
{
if (is_banished($phylum[construct]) && get_property("screechCombats").to_int() > 0)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment on constructs for the laundry room

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants