In order for what you are describing to happen, both the regular HP update and the one caused by Damage() would have to be getting run at the exact same time. I thought about that possibility, but I highly doubt that would ever happen and certainly not with a 100% reproducibility.
From how I am reading the code, it looks like it checks if the current HP ratio is less than the nexthpevent and if so, it then parses the EVENT_HP, and then if nexthpevent wasn't changed (no nexthpevent was set in the script when it was parsed), it then (and only then) sets it to -1. Even if that were to happen, I have no idea how it would still parse an EVENT_HP with a nexthpevent of -1.
There has to be something I am missing here...
|