Feature Automatically create Skeleton Key before encounting door in tower

ozoneb

New member
If you haven't created a skeleton key when you encounter the door on the tower, you have to quit, then create it, and return to the door. Its SUCH A PAIN (Extra sarcasm there)

It would be nice if it were automatically created, similar to the WAND, before encountering the door.
 

Darzil

Developer
Could do the same with other keys, too, if you have the resources but haven't assembled/bought them.
 

Veracity

Developer
Staff member
You can create the key from the GUI - the Item Manager or the CLI - rather than "quit, create, return". Or, you can use the "Tower Door" built-in script from the Quests menu, which creates all the keys for you, as needed, and open all the locks.
 

Veracity

Developer
Staff member
We do have precedent for creating things in the background when you try to submit a URL. In particular, clicking on the pyramid will try to create the Staff of Ed. GenericRequest.run():

Code:
		else if ( location.startsWith( "place.php?whichplace=desertbeach&action=db_pyramid1" ) )
		{
			// This is the normal one, not the one Ed wields
			ResultProcessor.autoCreate( ItemPool.STAFF_OF_ED );
		}

So, clicking on a particular lock could do the equivalent of an "acquire" of the appropriate key.

We'd probably only want to do that if you actually clicked in the Relay browser; if a script submits the URL to open a lock erroneously - the lock is already open, for example - we don't want to spend another fat loot token to get a useless legend key, for example.
 

Veracity

Developer
Staff member
Revision 16137 pulls all the special "retrieve items before submitting particular URLs" code out of GenericRequest.run() into GenericRequest.prepareForURL(), just in case somebody wants to write code to automatically retrieve keys before submitting a URL to open a lock that we haven't already opened.

The nsTowerDoorKeysUsed setting could be used to determine that. Presumably in a new method in SorceressLairManager which, given a URL, would retrieve the specific key needed for a particular door if it has not already been opened. Or something.
 
Top