Feature ASH location_accessible function.

Veracity

Developer
Staff member
What is “the intro NC”? After completing the Friars ritual, I’ve never had a problem going right onto The Laugh Floor.
 

Alium

Member
Looks like it isn't an actual NC. Bottom of the wiki page here describes the first visit to pandamonium

Was in a new run today. So had completed friars but had never gone to pandamonium prior to this test.

Code:
> debug on

> ash can_adventure($location[the laugh floor])

Returned: true

> ash adv1($location[the laugh floor])

Preference nextAdventure changed from The Penultimate Fantasy Airship to The Laugh Floor

Visit to Pandamonium: The Laugh Floor in progress...
You can't get to that area.

Returned: false

// I manually went to pandamonium here and got the first visit text

Preference questM10Azazel changed from unstarted to started

> ash can_adventure($location[the laugh floor])

Returned: true

> ash adv1($location[the laugh floor])

Visit to Pandamonium: The Laugh Floor in progress...
Preference lastAdventure changed from The Penultimate Fantasy Airship to The Laugh Floor

[184] The Laugh Floor
// cut out the fight
Returned: true

> debug off
 

Attachments

  • DEBUG_20221031.txt
    85.9 KB · Views: 1

Veracity

Developer
Staff member
I see. I "never had a problem" because I always use the Relay Browser, so obviously I see Pandamonium, but I never bother talking to Mourn or the other NPCs before adventuring in their zones. Near as I can tell, that just tells KoL to put your progress into the charpane.

So looking at the Pandamonium starts the quest - and you cannot adventure in Pandamonium before starting the quest.

KoLAdventure.java:

Code:
    // The Pandamonium zones are available if you have completed the Friars quest
    if (this.zone.equals("Pandamonium")) {
      return QuestDatabase.isQuestFinished(Quest.FRIAR)
          || (InventoryManager.hasItem(DODECAGRAM)
              && InventoryManager.hasItem(CANDLES)
              && InventoryManager.hasItem(BUTTERKNIFE));
    }

We are willing to do the Friar ritual for you.
We also need to be willing to start the Azazel quest.

Thanks for the debug log - I can use that for writing a test for the Initial Visit to pandamonium.php
 

Veracity

Developer
Staff member
r26893 fixes the Pandamonium zones: they require the Azazel quest to be started - and prepareForAdventure will visit Pandamonium to start it, if necessary.
 

Rinn

Developer
Looks like can_adventure is returning true for the agua de vida zones when you have bottles in your closet but not in inventory, I expect it needs to retrieve one before trying to adventure so it can access the gaze link.

Code:
> ash can_adventure($location[jungles of ancient loathing])

Changing "jungles of ancient loathing" to "The Jungles of Ancient Loathing" would get rid of this message. (char 25 to char 52)
Returned: true

> adv 1 The Jungles of Ancient Loathing

Visit to Memories: The Jungles of Ancient Loathing in progress...

[313] The Jungles of Ancient Loathing
Preference lastEncounter changed from Northern Gate to
Encounter:
Nothing more to do here.

> closet take 1 empty agua

Removing items from closet...
You acquire an item: empty agua de vida bottle
Requests complete.

> adv 1 The Jungles of Ancient Loathing

Visit to Memories: The Jungles of Ancient Loathing in progress...

[313] The Jungles of Ancient Loathing
Preference lastEncounter changed from to tribal goblin
Encounter: tribal goblin
 

Veracity

Developer
Staff member
Right. canAdventure for the "Memories" zone calls InventoryManager.hasItem - which looks at your InventoryManager.getAccessibleCount - which includes things you can retrieve, not just inventory.

prepareForAdventure needs to do that retrieve.
 
Top