Infinitay / essence-pouch-tracker

A RuneLite plugin that tracks both the amount of essence stored in your essence pouches and the amount of essence until decay.
https://runelite.net/plugin-hub/show/essence-pouch-tracking
BSD 2-Clause "Simplified" License
0 stars 1 forks source link

[Feature Request] Track multiple degraded counts #38

Open Infinitay opened 4 weeks ago

Infinitay commented 4 weeks ago

When they do, the capacity of the pouch is reduced by a few essence (3 for the medium pouch, 2 for the large pouch, 3 for the giant pouch, and 5 for the colossal pouch)

Reflect degradation state on the stored essence count. Currently, if a pouch degrades again and user stores essence, the plugin state could be invalid an a user will have to recheck their pouch.

Potential work-around until this is implemented: Listen for a degradation and flag the stored essence count on the pouch as unknownStored

Infinitay commented 6 days ago

Currently trying to find a way to implement this as a part of #56 changes; however I'm having trouble with the implementation. I can't think of a way that can appropriately handle multiple consecutive degradations to different pouches. It would be viable to implement it by checking to see if the pouch is close to degrading again similar to seeing if a regular pouch will degrade soon. Unfortunately, I can't find any consistency in how a pouch is calculated to degrade after another degrade.

Take the following chart for a Large Essence Pouch for example: image The number of fills I was able to do before it degraded again is not constant. Furthermore, if my data collection was right, then why was 4 max skipped?

Infinitay commented 6 days ago

I could make it such that when a player interacts with a degraded pouch, they are forced to wait a tick before performing any other fill pouch actions. This could possibly slow RC down especially if a player chooses to use degraded pouches. However, in GOTR players could still use a degraded pouch if they don't care about repairing it and instead search the Rift Guardian for a new pouch, or maybe they're waiting until they finish their game. Forcing the delay will just impact their gameplay in a way you wouldn't really want. Yet, without properly tracking additional degrade counts, it could result in incorrect states.

Potential work arounds:


Perhaps it's just best to only handle one max degrade and just validating the inventory state later. Sure, it'll lead to incorrect stored state, but at least it wouldn't break the plugin. If anything, give an indicator the stored count could be incorrect (eg. 12* or 12?)

Infinitay commented 5 days ago

Large pouch max stored: 12 (original) followed by these consecutive degradations: 9 -> 8 -> 7 -> 6 -> 5 -> 3 -> Removed ("Your pouch has decayed beyond any further use")