Feature - Implemented Trendy Support

It looks like KoL was supposed to prevent untrendy items from arriving in your inventory. If, however, you can get them from the clan stash or from "pulling all" from Hagnk's, we can assume that it will be fixed KoL-side.

Those "You don't have the item you're trying to equip." messages are from KoL itself. If you do have a plastic pumpkin bucket in your inventory, could you try to equip it on your familiar via the Relay browser to check that KoL gives you that message?

I'm in the tower at the end of another run. 4-day, not sub-ronin, so I pulled everything, but I believe this means I pulled everything TRENDY (since last time, I had to pull everything a 2nd time after breaking the crystal, to get the non-trendy stuff). Anyway, In the tower, and I get this:

Code:
Taking Levitating Potato the Levitating Potato out of terrarium...
plastic pumpkin bucket is better than (none). Switching items...
Putting on plastic pumpkin bucket...
Adjusting familiar weight by -5 pounds
[COLOR="#FF0000"]You don't have the item you're trying to equip.[/COLOR]

When I look at my inventory (via the relay browser), I see that a) I do not currently have a plastic pumpkin bucket, and b) I DO in fact have a pair of many-eyed glasses (why isn't mafia trying to equip that?).

I plan on doing one more ascension before Crimbo. If I can, I'll try to test and see if I have this problem POST Ronin but BEFORE pulling all my (trendy) items from storage.
 
Do you mean you could take untrendy items out of storage? We were lead to believe that untrendy items in your inventory would be usable, but you wouldn't be able to acquire them (from storage, DC, the mall...) anyway.

Did you empty Hagnk's? Did you really have all of those items in your inventory (you can check by refreshing your inventory or checking in the Relay Browser)?

I did a "pull all" but mafia only pulled trendy things, as far as I can tell. I had a bit of a panic, after breaking the crystal, when I couldn't find certain IOTM items, but then I went back to storage and did another "pull all", and there was the rest of my stuff.
 

slyz

Developer
It looks like the culprit is this bit from StorageRequest.java:
PHP:
if ( urlString.indexOf( "action=pullall" ) != -1 )
{
	// Hagnk leans back and yells something
	// ugnigntelligible to a group of Knob Goblin teegnage
	// delignquegnts, who go and grab all of your stuff
	// from storage and bring it to you.

	if ( responseText.indexOf( "go and grab all of your stuff" ) != -1 )
	{
		Object[] items = KoLConstants.storage.toArray();
		StorageRequest.processBulkItems( items );
		KoLConstants.storage.clear();
		KoLCharacter.setStorageMeat( 0 );

		items = KoLConstants.freepulls.toArray();
		StorageRequest.processBulkItems( items );
		KoLConstants.freepulls.clear();

		CoinmastersFrame.externalUpdate();

		transfer = true;
	}
}
Mafia simply puts all the items that are in storage in the inventory, when you pull everything from Hangk's, but actually, untrendy items stay in storage.

Here is a patch (made from r10032) that modifies StorageRequest.processBulkItems() to skip untrendy items for Trendy characters. It's untested, and there are certainly more efficient ways to do this, but at least it's a start :)
 

Attachments

  • TrendyHangks.patch
    2.2 KB · Views: 22
Last edited:

jasonharper

Developer
The pull-everything code is going to need to be rewritten, anyway, once the "remember which items came from your closet" feature goes live. Unless Hagnk starts indicating where each storage item came from, I suspect we're going to have to do a complete inventory refresh at that point - which would automatically handle the Trendy special case, as well.
 

Veracity

Developer
Staff member
Are we done with this? I just completed a HC Trendy ascension (never again; I found the missing skills to be tedious, rather than fun. The missing familiars and garden item didn't affect me, since I exclusively used the new ones) and had no problems with KoLmafia's support for the path.

Pull All already refreshes inventory and closet, since there is no way to tell where things end up. Do we detect when a SC pre-prism pull fails because it is non-trendy? And, presumably, Pull All should refresh Storage, too, if you are Trendy, out of Ronin, with King still trapped and path restrictions still in place.

I don't do SC, and thus will never be able to test this. Any takers? Any other Trendy issues in SC we don't handle?
 

matt.chugg

Moderator
Are we done with this? I just completed a HC Trendy ascension (never again; I found the missing skills to be tedious, rather than fun. The missing familiars and garden item didn't affect me, since I exclusively used the new ones) and had no problems with KoLmafia's support for the path.

Pull All already refreshes inventory and closet, since there is no way to tell where things end up. Do we detect when a SC pre-prism pull fails because it is non-trendy? And, presumably, Pull All should refresh Storage, too, if you are Trendy, out of Ronin, with King still trapped and path restrictions still in place.

I don't do SC, and thus will never be able to test this. Any takers? Any other Trendy issues in SC we don't handle?

I just broke the prism on a SC trendy run, and I probably won't be doing another one either, i'm kind of set in my ways trying to speed up my sc ascension and struggled a little without baio, ice sickles, fossilised necklace, navel ring, crown, putty and most of my bookshelf being empty, along with pool table etc and like you got more frustrated with it that enjoying the challenge, each to their own I suppose!

KoLmafia had no problems with the path once the "infinite loop when logging whilst in combat" bug was fixed, kolmafia detects failures to pull from storage just fine, (although it doesn't say anything in the Cli when it does, but its internal data counts are accurate). Pull all from the relay browser when out of ronin but without freeing the king works fine too with the inventory refresh.

I think we are done with this.

I'm happy to ascend into trendy again though if there is anything that needs testing!
 
Last edited:

Veracity

Developer
Staff member
KoLmafia had no problems with the path once the "infinite loop when logging whilst in combat" bug was fixed
Theraze indicates that we don't time in correctly into combat while Trendy. I can fake that and try it.

kolmafia detects failures to pull from storage just fine, (although it doesn't say anything in the Cli when it does, but its internal data counts are accurate).
That is probably OK. Maybe. I think it would be nice for it to log the failure - and for the ASH take_storage() function to return false if the pull failed.

Pull all from the relay browser when out of ronin but without freeing the king works fine too with the inventory refresh.
Inventory and closet were accurate, but all trendy items remained in storage - and if you went to the Item Manager and looked at storage, I expect it was empty. That's cosmetic - your items are still there, but KoLmafia is just not showing them - but I expect a bug report, by and by, about it. :) It would take a refresh of Storage, also, to keep that accurate.

I think we are done with this.

I'm happy to ascend into trendy again though if there is anything that needs testing!
I'll simulate being in Trendy and work on Theraze's timein issue. I expect she will test that.

Any volunteers for working on the "pull" CLI command? I see that it logs - with an error - items that are not trendy enough, and then continues to try to pull them. Looking at StorageRequest, it parses the responseText to find "xxx moved from storage to inventory" and ignores error messages. That's fine, I guess - but the "pull" command shouldn't bother trying to pull non-Trendy items - and perhaps it should bail early, if you attempt to do that, is the comment in the code suggests:

// *** Should we abort in !KoLmafia.permitsContinue()?

Perhaps it should filter out items that will fail and never submit those.

I don't want to work on the "pull", command, especially. :-/
 

Veracity

Developer
Staff member
Revision 10239 refreshes storage after a "pull all" if you are still in a Trendy run, since you might have left untrendy items there.

I'm declaring this Feature Request done.
 
Top