Feature Recognize Nervewracker's Store and Hell's Kitchen as available shops in BM runs

ereinion

Member
If it is not too much trouble I would ask for these two shops be recognized as available while in BM runs. It would help to at least having Hell's Kitchen being recognized as available in order to plan my diet. Not having access to Nervewracker's store except in the relay browser isn't quite as huge a deal, but it can cost a player (at least) 500 meat if he is not aware of it.
 
There is code in place to make Hell's Kitchen available for food and drink in a BM run, just like the Gnomish Micromicrobrewery and Chez Snootee are available under the appropriate signs. You are saying, apparently, the the items from Hell's Kitchen do not appear in the Food or Booze tabs of the Item Manager with the appropriate price. Correct?

If so, I wonder when and how that got broken.

I also see Nervewrecker's store listed in npcstores.txt. Are you saying that if you search for an oven, say, in the Purchases tab that you don't see it on offer from that npc store?

Again, I wonder when and how that got broken.
 
That is indeed the case. Mafia is aware that I am in a Bad Moon run, judging from the character pane, but upon searching for e.g. a queue du coq cocktailcrafting kit I don't find Nervewracker's in the store manager:


I am also next to certain that food from Hell's Kitchen wasn't available in my previous login, on this one it is. I guess I may have been short of funds, but I *think* I checked for that :P It is odd if it isn't a consistent problem though :P I'll keep an eye out for it in the future and report it if the issue reappears. Sorry for not making more certain of it before reporting here =/

Is there anything I can do to help pinpointing what might be the issue?
 
MallSearchRequest.java:

Code:
	private void addNPCStoreItem( final String itemName )
	{
		if ( NPCStoreDatabase.contains( itemName, false ) )
		{
			PurchaseRequest item = NPCStoreDatabase.getPurchaseRequest( itemName );
			if ( !this.results.contains( item ) )
			{
				this.results.add( item );
			}
		}
	}
Apparently we will add a single NPC store to the search results. Looking at NPCStoreDatabase.getPurchaseRequest, it will add the first NPC store that has the item that we can purchase from. I assume that the General Store comes before Nervewrecker's Store.

One way to fix this would be to put Nervewrecker's Store first in npcstores.txt and depend on recognizing that you can't purchase from it if you are not in Bad Moon. Another way would be to return a list of all the accessible stores with a given item and add all of them to the search results, allowing the player to decide which one to use. Yet another way would be to make a list of all available stores that carry the item and return the one with the cheapest price.

I think I prefer the second approach.
 
Thanks a ton for looking into it :)

I think I'll agree with you that the second approach is good, provided that this also lets the cli "buy" and "acquire" commands to get it from the cheapest possible source - I would guess this is the case as long as the NPC store is found?.
 
It should work that way. I believe we sort the search results by price after we add in the NPC store(s).
 
Ascended into a new BM ascension today, and Hell's kitchen doesn't seem to be available:

Exiting mafia and logging back in fixed it, so it may be some state which isn't updated on ascension?

The purchases tab still doesn't display Nervewracker's store, but I guess it might be enough of a niche case that it's not worth fixing?
 
Bump to remind myself to look at this before my next bad moon run. I noticed both buying Tenderising Hammer for 1000 meat rather than 500, and that Hell's kitchen food isn't available til a restart.
 
Hmm, looking briefly at the kitchen side it looks like we grab the menu when the Item Manager frame is created. The same also applies to Crimbo Café (not an issue), Chez Snootie and MicroBrewery. Are their foods also not available in the same session you ascend?
 
r14761 should make the right menus available when we ascend and the available cafe's change as a result. Untested.
 
It may be fixed. I'm in Bad Moon and saw Imp Ale in the Drink Manager, tried to consume it, couldn't and realized it was because I did not have enough meat to buy it. I should be able to confirm as soon as I get to burn that character's turns.
 
It may be fixed. I'm in Bad Moon and saw Imp Ale in the Drink Manager, tried to consume it, couldn't and realized it was because I did not have enough meat to buy it. I should be able to confirm as soon as I get to burn that character's turns.
Bear in mind the fix affected only it appearing on the same session that the character ascends, later sessions were always fine.
 
Bear in mind the fix affected only it appearing on the same session that the character ascends, later sessions were always fine.

Whoops. Never mind. I ate via the relay browser during the Ascension session so that tells us nothing about this.
 
Back
Top