Bug Jars of Psychoses & canAdventure

Veracity

Developer
Staff member
I was looking through canAdventure, verifying my (small) "to do" list, and I noticed that Jars of Psychoses were omitted, although they are clearly not correct.

There are seven kinds of jars.
When you use one, it appears in your Campground and a unique zone opens up.
Each one has a quest associated with it.
Adventuring areas may become available as the quest progresses.
When you complete the quest, you may not adventure, even though the jar still appears in your Campground.
Using a new jar replaces the previous jar and starts a new quest.

This is similar to how the Grimstone mask works. We have complete support for that - although there is supposedly a bug in the hare path (which I cannot reproduce). We track all the quests and give you access to adventuring areas based on the correct path being open and the quest being unfinished.

Our support for Jars of Psychoses is incomplete:

1) If the correct jar is in your campsite, we claim you have access to all areas in the zone.
-> We do not track quest progress for any of the jars. That could be a fun project.
2) If you have a jar of the appropriate type, we claim you have access to areas in the zone.
-> No. Using the the jar will open it, but prepareForAdventure intentionally will NOT do that, since they are quite expensive. (It will not use a grimstone mask, either, for the same reason.
Code:
      // One path at a time.
      String tale = grimstoneZones.get(this.zone);
      String current = Preferences.getString("grimstoneMaskPath");
      if (tale.equals(current)) {
        // See if the tale is finished
        switch (tale) {
...
      }

      // prepareForAdventure will NOT use a grimstone mask
      return false;

Psychoses should behave the same way. Currently:

Code:
    // You can only have one jar of psychoses open at once.
    // Each type of jar gives you access to a zone
    // There is a quest associated with each.
    // After you finish, you can no longer adventure there.
    // We do not track those quests.
    if (this.parentZone.equals("Psychoses")) {
      // AdventureResult item - the item needed to activate this zone
      // That item is in the Campground if it is currently active
      // _psychoJarUsed - if a psycho jar is in use
      // prepareForAdventure will NOT use a jar of psychoses if necessary.
      // *** Should it? They are very expensive
      return KoLConstants.campground.contains(item) || InventoryManager.hasItem(item);
    }

Quest support is a Project, but since prepareForAdventure will not use a jar, simply removing that second clause will fix a bug even in absence of quest support.
 

Veracity

Developer
Staff member
Bump.

Maybe I should revisit all the jars - since they were fun - and actually add quest progress for each one.
And the Crackpot Mystic's jar opens up new recipes if you complete his psychoses - until you ascend.
We don't track that.
 
Top