icykoneko / ff14-fish-tracker-app

FF14 Fish Tracker App
https://ff14fish.carbuncleplushy.com
MIT License
61 stars 21 forks source link

Calculate the rarity of Warden of the Seven Hues specially #128

Closed icykoneko closed 1 year ago

icykoneko commented 1 year ago

While this fish itself has no time or weather restrictions, two of the three intuition fish are bound only by time, and are affected by Fish Eyes. The 3rd fish, Green Prismfish, is restricted by time and weather (including weather transition). Currently, the rules are that as long as one intuition fish is available, the main fish is available; but, in Warden's case, this can be misleading as Green Prismfish can be down for several hours, while the other two fish are up every game day (roughly every hour).

I believe the user should have the option to change how this fish, and any other intuition fish are ranked and/or marked as available. Since there are probably only this , and maybe one other, it can be a case-by-case basis option in the Advanced Settings dialog. If the list grows too big, you could also put the options in a separate tab, or something so they don't clutter the display.

This option should affect whether the tracker shows Warden as available. It's rarity should probably be limited to only including the times which Green Prismfish's window is adjacent to, or overlaps Firelight Goldfish and Indigo Prismfish. It should no longer include "Eorzean days" where Green Prismfish is unavailable.

For example: Warden would not be listed as available given the following availability: Time Period Firelight Indigo Green Warden
-1:08-16
0:00-04 X
0:04-08 X
0:08-16
But if the next day, Green Prismfish is up, then Warden's availability should become: Time Period Firelight Indigo Green Warden
-1:08-16
0:00-04 X
0:04-08 X
0:08-16 X X
0:16-24
+1:00-04 X X
+1:04-08 X X
+1:08-16

Warden is marked as available starting with Green Prismfish's window, but not before because it wasn't up the previous day. Continuing on, Warden's window should also be considered open the next day following an open Green window as you may have caught the Green Prismfish prior.

Finally, in the case there Green Prismfish's window overlaps the Firelight and Indigo windows: Time Period Firelight Indigo Green Warden
-1:00-04 X
-1:04-08 X
-1:08-16
0:00-04 X X
0:04-08 X X X
0:08-16 X X
0:16-24
+1:00-04 X X
+1:04-08 X X
+1:08-16

One possible issue is that this will decrease the time required to calculate 10 windows for Warden. I do not think it will matter though, because the windows are still only open once per Eorzean day, and thus will function much like a non-weather restricted fish.

icykoneko commented 1 year ago

This is going to require weather tracker be initialized with, and maintain at least 2 Eorzean days of data to ensure proper measurement of Green Prismfish windows. Also worth noting that, as a result, the normal means of determine the window is up by checking the available windows of the intuition fish won't be sufficient now as the expired windows are always purged (and should continue to be purged... I think.) You might consider making the uptime calculation and next window calculation smarter to ignore expired windows (but that's a lot to deal with for just one fish...)

icykoneko commented 1 year ago

Marking this as a bug and related to fish trains because when users go to create a fish train, the UI doesn't have any way of telling the user about Green Prismfish's window. This affected Fish Fest's planning, so I'm considering this to be top priority to fix.

icykoneko commented 1 year ago

This issue really does require the "preparation window" as well... As a compromise in the meantime, I think it would work if I first check if Warden should be marked available, then backfill the window to include the times for the pre-req fish.

icykoneko commented 1 year ago

Was speaking with Jenna this morning, as well as yesterday during the Fish Fest train. They're somewhat of an expect on Warden haha, and pointed out I missed one of the other possible scenarios.

In addition, I want to further clarify how Warden's "available window" should be calculated:

Preferred Windows for Warden: Time Period Firelight Indigo Green Warden
-1:08-16
-1:16-24
0:00-04 X p
0:04-08 X p
0:08-16 X X
Time Period Firelight Indigo Green Warden
-1:08-16
-1:16-24
0:00-04 X X p
0:04-08 X X X
0:08-16
Time Period Firelight Indigo Green Warden
-1:08-16
-1:16-24
0:00-04 X X p
0:04-08 X X X
0:08-16 X X

In these three scenarios, the tracker should indicate Warden's preparation timer starting at 00:00, and the window itself going until Green Prismfish's window closes (plus intuition buff timer as standard). This change would make Warden function more similar to The Ruby Dragon wherein the displayed windows are restricted to the specific fish's catchable times. Again, the feature to add a preparation window or timer would provide users with indication they should start working on Warden prior to its window actually opening.

Those should be the only windows considered. Let's look at the "preparation" scenario to see why.

Time Period Firelight Indigo Green Warden
-1:00-04 X p
-1:04-08 X p
-1:08-16 X X/p
-1:16-24 p
0:00-04 X p
0:04-08 X X
0:08-16

The day starts with Firelight and Indigo's windows, with Green's window starting at 0800. In this case, Green is not up the following day. While it's true that you could technically catch 5 more Green Prismfish during its 8-16 window, this should be considered an advanced scenario and the tracker should not display the Warden as available.

What would happen if a user opens the page during the green window though? They should still see Warden as up, despite not being able to catch it during this window as they were late to Firelight and Indigo. The end result is, the user still has the indication it's possible to collect the fish for Warden, but not get the false hope of the hourly windows.