tsitu / MH-Tools

Assortment of MouseHunt utilities
https://tsitu.github.io/MH-Tools/
Apache License 2.0
29 stars 35 forks source link

Some Valour Rift mice not loading in map solver #142

Open Mistborn94 opened 3 years ago

Mistborn94 commented 3 years ago

Valour Rift tower mice that only appear on specific floor types are not loading correctly in the map solver.

Affected Browsers: I can reproduce in both Chrome and Firefox

image https://tsitu.github.io/MH-Tools/map.html?mice=One-Mouse%20Band%2FChampion%20Danseuse%2FTimid%20Explorer%2FElixir%20Maker%2FMouse%20of%20Elements%2FMagic%20Champion%2FPraetorian%20Champion%2FBulwark%20of%20Ascent%2FLumi-lancer%2F%2F

These 'missing' mice are loading correctly in the CRE image image

Given that Valour Rift maps are now a thing, the map solver probably needs to be fixed.

MarcusLEK commented 3 years ago

some mice from the valour rift are missing too i think. image

w0en commented 3 years ago

Took a look in data/pop-csv/valour-rift.csv. Appears that the floor specific mice here are referred to as "Floor Basic" and "Floor Champion" instead. Would it be better to add a dictionary or some way to link the respective mice to "Floor Basic" or "Floor Champion", or would it be better to just add all the mice and make the CSV bigger?

I'm leaning towards the second one since it would only expand the CSV by 82 rows (6 laps, 7 unique floors, 1 basic and 1 champion per floor gives us 84 rows, and we'd take out "Floor Basic" and "Floor Champion"). Still significantly smaller than some other population CSVs (BWRift, Toxic Spill)

image

Mistborn94 commented 3 years ago

@w0en After your comment I went and checked, and "Floor Basic" and "Floor Champion" do indeed exist on the map solver 😂 image

A few things to consider before changing the data:

  1. I suspect the reason it was implemented this way is exactly to avoid the mess of wwrift where the stage is a composite of the rage in the three locations. Because of the composite stage, attraction rates for some stages are missing and the map solver is quite hard to use effectively (for me at least). So if you do go the route of changing the data model, make sure the user experience doesn't suffer.
  2. The CRE seems to work correctly so parts of this mapping must exist somewhere already. And if you do change the data the CRE part would need to be reimplemented.
  3. Is there some sort of script / automated extraction for vrift data? And what format is the source data in?
AardWolf commented 2 years ago

Part of this is a visualization component, too - similar to the wwrift thing. Do we want a different AR for every single floor in the tower? Is that even helpful in the map solver? What piece of information would be useful when solving a vrift map?

I think it's something more like: Champion Thief: UU N+2 (8+) Cutpurse: N+2, UU N+2

Are their ARs as important to know as you climb the tower? You only get a few shots at floor 2, you get a few more at floor 10, and more at floor 18, etc. Their relative ARs are probably different at each of those floors - I think it's documented that way and analysis of data has shown it to be so. At some point people might be at the place where they'll bail after floor 18 to try again for champion thief since it's faster than doing another cycle (might be floor 24 as a break-even, I'm not bothering with the math).

w0en commented 2 years ago

From a gameplay standpoint I don't see a point in there being a difference in ARs of the Floor Basic mouse at floors 1 and 7, or a difference between floors 12 and 13. I think the lap is more significant than the actual floor number.

For a map solver, you probably just want to know which lap has the highest AR for them, though I don't think many people would bother "resetting" their run just to get a single clue for a single map, at least not when you're done with the area.

I think a good solution would be to get an AR for the floor basic and floor champion ARs within each lap, and then translate the name given (not sure whether MOUSE_NAME -> Floor Basic or Floor Basic -> MOUSE_NAME is better).