WBHarry / pf2e-bestiary-tracking

A Foundry VTT Module to let players keep track monster information and statistics for the PF2E system
MIT License
5 stars 4 forks source link

[Enhancement] Disallow effects to edit stats, or allow lock toggle from refresh #75

Closed Iankid closed 1 month ago

Iankid commented 1 month ago

When hitting the Refresh bestiary button, if for some reason a creature has current effect on them that are change their stats, these changes get put into the bestiary on refresh. To fix this, I'm thinking either to disallow effects from changing stats in the bestiary. Or to provide a toggle in the bestiary sheet to set a lock state for the sheet, so that when hitting the refresh bestiary button, that particular sheet is skipped over.

As is is right now, it's possible a user could accidentally "change" the info in the bestiary for linked data actors with effects on them.

WBHarry commented 1 month ago

Hm, yeah this is a bit of a complex issue. I'm reading and storing values from Actors as they are dragged in - and the way the system works is that the values of Actors with effects -ARE- the modified values. The absolutely cleanest way this could be handled is to set up a crazy big logic check to remove all effect modifiers from the values I pull out - but this is -very- likely to miss a lot of edgecases since it's so complex.

An easy way to do it with a minor visual downside is to just remove all effects from the actor when they're added/refreshed - then immediately return them afterwards. This will make the system give me the non-modified values. (video clip) https://github.com/user-attachments/assets/ddcb312d-06fb-475d-a886-ecea8cba41d6

Just means that any token with an effect on it that's being added will have it's effects flicker off/on once.

WBHarry commented 1 month ago

I just released v0.9.7. It adds a fix so that effects are not considered on the actor when they are added to the Bestiary or a refresh happens. Should fix this 🤖 👍