New Content 2022 Standard

Veracity

Developer
Staff member
I have completed two 2022 HC Standard runs.

I have a flagstone flag.
It grants me the "Flagellate" combat skill - which is not marked public.
I have a flagstone flail.
It grants me the "Flagflog" combat skill - which is not marked public.

None of the flagstone or loofah items yet say which outfit they belong to - so we don't have an outfit ID or name.
We don't know what a loofah or flagstone item pulverizes into - so are missing those items.
We don't know what either of the outfits (since they don't exist yet) gets you as a candy during trick or treating.

There's a lot to record for this - none of which is, apparently, implemented yet in KoL itself.

I have reported all of these bugs via "Report Bug".
No response, so far.
 

Veracity

Developer
Staff member
outfits, combat skills all fixed and submitted. All that remains is:

pulverized rewards
outfit candies
 

Veracity

Developer
Staff member
In Ronin, you can only pull one of any item per day.
We COULD track that and grey out those items in the Storage portion of the Item Manager.
At the least, we could change the default radio button on that panel from "multiple" to "exactly one" when you are in Ronin.
 

Veracity

Developer
Staff member
I think I’ve done this. Not only does it track what you’ve pulled today and not even try to pull those objects again, it actually hides them in the Storage section of the Item Manager so you don’t even think about pulling them. Also, the radio button defaults to “exactly one” rather than “multiple”.

Cue bug reports - or public panic on KoL G-D - about how Kolmafia “loses” items in storage..
 

VladYvhuce

Member
Does it ignore free pull items? Because you can pull all of those in the same day. You just have to do it 1 at a time.
 

fronobulax

Developer
Staff member
The Storage display allows for items to be moved from Hagnks to the Mall and placed for sale. The new change means the niche case for someone who pulls an item and then wants to sell some portion of the remaining items using the GUI is no longer supported. There is also a case for wanting a list of everything that is in Hangks regardless of whether it can be interacted with or not. I do that when planning runs and exchanges between multis.

Perhaps "can't pull" could be signaled by some other means than deletion from the display? Light gray is often used to indicate "can't interact" and overstriking the item name and quantity would also be a good visual indicator.

(Yes, I was wrong on per day vs. per session. I had confused characters and days when I thought bowling ball and tomb ratchet pulls were being capped).
 

Veracity

Developer
Staff member
I'm going to finish getting it working well for my use case. Then, I'll look at the "place in mall" case, which is actually done via a ManageStoreRequest, rather than a StorageRequest.

light grey is also used in Storage for equipment you don't meet the requirement for. Or consumables. It's already coded to make the non-pullable items light grey - but it also hides them - which is exactly what I, personally, want, since I have never wanted to stock the mall from storage. But we do provide that feature, so, whatever.

Right now I am pondering the "you can pull as many free pull items per day as you want, but only one at a time." I have never in my life done a free pull from storage. But, live and learn.

That's requiring some major whackage in StorageRequest, where it generates multiple requests to handle the desired set of pulls. I have it coded, but am now involved in writing a bunch of tests to verify (or fail to verify ;) ) that it's doing the right thing.
 

VladYvhuce

Member
Most free pull items are "prank" items. Toilet paper rolls, glass of warm water, aggressive carrots, cartoon harpoons, etc... Other free pull stuff like the hobo code binder is something most of us only have one of anyway. I'm unsure if the KOL devs intended them to also be completely capped like everything else, if it's a feature to slow people down on pulling them, or just a side effect of the nerf on pulls.
 

Veracity

Developer
Staff member
I have a PR in which does not hide items which have already been pulled today. Instead, it puts a strike-out through the name.

I was initially puzzled why I could get this to work via the ListCellRendereFactory until I finally figured out that we no longer use that for any panel which extends the ItemTableManagePanel - the thing which displays elements in tabular form, with columns for name, quantity, etc.

Instead, rendering is done in TableCellFactory.

That means that ListCellRendererFactory has, effectively, a lot of dead code in it - although we set a ListCellRenderer, it is never called. We could clean that up: NOT set that in instances of ItemTableManagePanel, and then see which renderers are no longer called anywhere.
 

Veracity

Developer
Staff member
By the way, I adore how this works.

- I opened the Item Manager and selected Storage.
- I typed jar of squeeze in the filter field
- I selected it and pressed the pull button (the radio button was already set to “exactly one”)
- KoLmafia pulled it and the name got a strike out in the Item Manager and the available amount went down one.

Note that because it was visible, I could have tried to pull another - but the pull request would have filtered it out and no request would be sent to KoL.

I also multi-selected ninja {rope, crampons, carabiner} and told it to pull, and it got all three in one request and all 3 immediately got strike outs in the storage display.
 

VladYvhuce

Member
Now, it just needs to allow mafia to pull free-pulls.
Mafia shows this:
TPPulledInHC1.png
KOL contradicts the red text with this:
TPPulledInHC.png

Testing steps:
1: Put 2 rolls of toilet paper (a free pull item) in the mall.
2: Remove them from the mall (this puts them back into storage).
3: Attempt to remove one or both with Mafia. (this causes the red text).
4: Open relay browser.
5: Visit storage.
6: Pull both rolls of toilet paper manually (still can only pull 1 at a time).
 

Veracity

Developer
Staff member
My pending PR fixes that, as well.
Although I doubt that KoLmafia knows to put them on the freepulls list.

Checks MallPurchaseRequest.processItemFromMall:

Code:
    AdventureResult item = results.get(0);
    if (storage) {
      // Add the item to storage
      AdventureResult.addResultToList(KoLConstants.storage, item);
    } else {
      // Add the item to inventory
      ResultProcessor.processResult(item);
    }

Yeah. It puts them on storage, not freepulls.
 

Veracity

Developer
Staff member
I wrote tests for pulling from store to {inventory, storage, freepulls} and only the first actually works (as far as keeping the lists up to date).
So, this will be a bug fix, by and by.

I was amused that I could not put free pull items right from storage to my store. But I went to manage my store in the Relay Browser and the dropdown listing items in storage I could stock it with did not include any free pulls. Odd restriction, but whatever; you can pull into inventory and then put them in your store.
 

Veracity

Developer
Staff member
Revision 26209 puts free pulls taken from your store (or mall purchased) in Ronin or Hardcore on the freepulls list, not storage.
 

VladYvhuce

Member
I noticed this at the start of my Bad Moon Run (13 days ago). Mafia lists the industrial fire extinguisher as a free pull, but it isn't one (or, at least, it isn't one in Bad Moon).
FreePulls1.png
 

Veracity

Developer
Staff member
The industrial fire extinguisher is not a free pull; it is automatically added to inventory when you start a run, at KoL's whim.

The packaged industrial fire extinguisher is a free pull.

The fact that we have the "bound" version listed as a free pull is a bug. One that has nothing to do with Standard 2022.
 

VladYvhuce

Member
Ok. Then I should put that as a bug report, then? Sometimes it's hard (or impossible) for those of us who're more along the lines of "layman users" (like myself) of Mafia to know when something that looks like it fits in one topic, but the issue is (on the technical level) a different subject. Sorry if that caused any problems.
 

Veracity

Developer
Staff member
Just to clarify:

When KoL issues new IOTMs, these days, they are always "bind on use": you buy the item in Mr. Store and it is tradeable - and is a Free Pull - but once you use it, you get a non-tradeable version - which KoL almost always makes an auto-pull (as long as it is still Standard compliant).

They always take several days to work that out. Initially, they make the "bound" item a free pull, but once they make it into an auto-pull, it is no longer a free pull. Considering that we add new items to the data files ASAP, we frequently get the "bound" item marked as a free pull - and then KoL comes along and fixes it, and we need to update our data file.

If anything, it is New Content; we had it correctly coded, and then KoL changed something out from under us.

Personally, I don't like having that marked as a Bug. Was I supposed to enter incorrect information and then wait for KoL to get its act together and change their code to agree with what we have coded?

(I have done that sometimes, when KoL released an obvious bug - like the wrong effect from drinking a Tiki cocktail, for example - and I bug report it and the bug is acknowledged - and then I change our data file and MAYBE KoL actually fixes their bug. Or not. Maybe I am bitter.
 
Top