Feature - Implemented Sea Path requests (Grandpa storage, Abyss/Lasso progress)

Captain Scotch

New member
All:

Hello! Hope everyone is having a great day. With the new path (11,037 leagues under the sea) causing a lot of people to do the sea who never had before, I wanted to request a handful of small mafia additions for both those who are scripting the path and just general speedrunner data storage.

  1. It would be great if Mafia could store what the user has already asked Grandpa. This is relevant to the quest because asking Grandpa about Currents is a necessary quest check, but it's also useful for just general aftercore/in-path checks of whether the user has asked Grandpa all the things they can ask him. The wiki has a full list, and I did a debug log in my last run of asking him the things in the wiki. It seems to be too large to upload, so I put it up on Google Drive here.

  2. As part of the path's release, the /dev team corrected a few misconstrued and/or unspaded interactions. The first is that finding Mom Sea Monkee in the Calignous Abyss requires 40 "abyss progress", and you get 1 per fight with an abyss monster with black glass equipped. You also can get 1 from having the Jelly Combed effect in an abyss fight, 1 from having scale-mail underwear equipped, and 1 from having a shark jumper equipped -- for a total of a 10 turn abyss if you've done each of those things on each of your abyss fights. It would be lovely if mafia could track "abyss progress" now that we know the mechanics behind it. (Also, you can make progress by dragging the abyss monsters outside of the zone, which is a neat trick and indicates it's tied monster-by-monster, not necessarily within-zone.)

  3. This isn't a full request so much as a question. You need 20 lasso progress to be fully proficient in your sea lasso. You get 1 progress for using the lasso in the fight, and an additional 1 progress for sea cowboy hat equipped and 1 progress for sea chaps equipped. For the current lassoTraining pref (for clumsy/careful/deft/expert)... do we know exactly what the % complete each of those are? Clumsy is 0% and expert is 100%, but not sure if the others are in thirds or some other #.

I believe Ryo has already done some support for tracking incorrect choices in the Mer-kin Library (thanks Ryo!!)... there may be a few other things that would be good to update (like the merkinQuestPath flag to reflect sea path's ability to do both paths), but I figured I'd make a feature request to start.

Thank you all for everything you do, it is much appreciated by the speedster community!

<3 Scotch
 
r28664 tracks mom and lasso progress.
gausie has an open PR for Grandpa questions.
I could have sworn that we already tracked quest progress for opening all The Sea zones; I remember adding some when I added support for The Sea to canAdventure.
 
FYI, here is canAdventure support:

zones:

Code:
    if (this.rootZone.equals("The Sea")) {
      // The Sea opens when you speak to The Old Man
      if (!QuestDatabase.isQuestStarted(Quest.SEA_OLD_GUY)) {
        return false;
      }

      if (this.zone.equals("The Sea")) {
        // The Briny Deeps, The Brinier Deepers, The Briniest Deepests
        return true;
      }

      if (this.zone.equals("The Sea Floor")) {
        return this.seaFloorZoneAvailable();
      }

      if (this.zone.equals("The Mer-Kin Deepcity")) {
        // Open when you have a seahorse
        return !Preferences.getString("seahorseName").equals("");
      }

      // There are currently no more adventuring areas in The Sea
      return true;
    }

locations:

Code:
  private boolean seaFloorZoneAvailable() {
    // We track individual aspects of the various quests.
    return switch (this.adventureNumber) {
        // Initially open: Little Brother
      case AdventurePool.AN_OCTOPUS_GARDEN -> true;
        // Big Brother
      case AdventurePool.THE_WRECK_OF_THE_EDGAR_FITZSIMMONS -> QuestDatabase.isQuestLaterThan(
          Quest.SEA_MONKEES, QuestDatabase.STARTED);
        // Grandpa
        // Free for Muscle classes. Otherwise, must buy map.
      case AdventurePool.ANEMONE_MINE -> ItemDatabase.haveVirtualItem(ItemPool.ANEMONE_MINE_MAP);
        // Free for Mysticality classes Otherwise, must buy map.
      case AdventurePool.MARINARA_TRENCH -> ItemDatabase.haveVirtualItem(
          ItemPool.MARINARA_TRENCH_MAP);
        // Free for Moxie classes Otherwise, must buy map.
      case AdventurePool.DIVE_BAR -> ItemDatabase.haveVirtualItem(ItemPool.DIVE_BAR_MAP);
        // Grandma. Open when ask grandpa about Grandma.
      case AdventurePool.MERKIN_OUTPOST -> QuestDatabase.isQuestLaterThan(
          Quest.SEA_MONKEES, "step5");
        // Currents (seahorse). Open when ask Grandpa about currents.
      case AdventurePool.THE_CORAL_CORRAL -> Preferences.getBoolean("corralUnlocked");
        // Mom. Open when you have black glass - which you must equip
      case AdventurePool.CALIGINOUS_ABYSS -> InventoryManager.hasItem(BLACK_GLASS);
        // Optional maps you can purchase from Big Brother.
      case AdventurePool.MADNESS_REEF -> ItemDatabase.haveVirtualItem(ItemPool.MADNESS_REEF_MAP);
      case AdventurePool.THE_SKATE_PARK -> ItemDatabase.haveVirtualItem(ItemPool.SKATE_PARK_MAP)
          && !Preferences.getString("skateParkStatus").equals("peace");
        // That's all. If a new zone appears, assume you can get to it.
      default -> true;
    };
  }
 
I imagine can_adventure was being run immediately after talking ot Grandpa. Before my change you needed to check your quest log or visit the ocean floor to set those flags. This should feel more accurate now!

I think everything in this thread is done now, so closing
 
Here are quest progress things.

Code:
questS01OldGuy

unstarted
started -> Old Guy talks about his boot
step1 -> Buy damp old boot from Big Brother -> dampOldBootPurchased 
finished -> Old Guy snores
- surprisingly, doesn't seem to detect what he says when you return the boot to him.

questS02Monkees

unstarted
started -> use wriggling flytrap pellet
step1 -> Little Brother mentions Big Brother
step2 -> Open hatch in the Wreck -> bigBrotherRescued
step3 -> Visit Big Brother and get bubblin' stone
step4 -> Little Brother mentions Grandpa
step5 -> Grandpa rescued
step6 -> (ask Grandpa about grandma) -> opens Mer-kin outpost
step7 -> (ask Grandpa about note)
step8 -> turn in Grandpa's note and two yarns, gain Grandma's map
step9 -> Grandma rescued
(ask Grandpa about currents) -> corralUnlocked
step10 -> Little Brother says Grandpa has been acting weird
step11 -> Big Brother has black glass available
step12 -> You acquire black glass
finished -> Mom rescued

Those are set when KoLmafia sees you performing various actions.
We also deduce quest progress by seeing various locations on the sea floor and by seeing which NPCs are inside the Sea Monkee castle
 
I'd like to move Crowther's post to this thread:


Which is open, as opposed to this one, and is intended to report any and all random bugs/suggestions for the new path, but my "Developer" role does not seem to allow me to do that.
 
I'd like to move Crowther's post to this thread:

I was able to move it and did so.


I can't figure out why we have different permissions.
 
Back
Top