Xeno-Strike-Force / LiveSplit_files_for_AX

LiveSplit files for Anti-Xeno speedrunning in Elite:Dangerous
0 stars 1 forks source link

Race condition between heart reset after a Cyclops’ last heart and the kill / combat bond #8

Open alterNERDtive opened 2 years ago

alterNERDtive commented 2 years ago

So, we are testing for heart reset instead of destruction because we cannot distinguish the latter from a heart that has un-exerted after the timer ran out.

The heart reset has a delay of 10s after the heart was destroyed. On the last Cyclops heart, the Goid might die before the heart can reset. So we’re missing a split and the timer keeps running.

One possible fix would be to see if the heart counter is 3 before splitting on a bond, and to set a state that causes a split again on the next update. That way we would only have a difference of roughly 1/60s between the actual kill and the recorded time.

Astyrrean commented 2 years ago

The counter, however, depends on goid_type and that's not a condition that's tested for in the ASL. Note that I believe it IS possible to determine goid type from the netlog file (when the NPC is instanced, the module list is printed, and you can counter the number of hearts there ... it's hard but possible.)

alterNERDtive commented 2 years ago

Well unless you run into this on Basilisks, too, not knowing Goid type isn’t an issue.

Astyrrean commented 2 years ago

Shards and (I think) 4m premium would result in same issue on Basilisk too I'm afraid

PS "Lightning execution" may result in this issue happening on Dusa too and, in extremely rare conditions, Hydra too potentially