Skip to content

Conversation

@rinevard
Copy link

On high refresh rate displays, nextStep() can be called multiple times before STEP++ executes, since nextStep is called every CLOCK frames, while STEP++ is scheduled by setTimeout. This leads to false WIN triggers in the "Complex-Prevent" puzzle.

Example: The first nextStep() is called. Before its scheduled infect and STEP++ execute, the second nextStep() is called. Then the callbacks run in order: first infect, first STEP++, second infect, second STEP++. Since both infect calls target the same peep, the infection count doesn't change between the two STEP++ increments. However, after the first STEP++, state.lastInfected in the "Complex-Prevent" onupdate is updated. When the second STEP++ triggers another onupdate check, lastInfected == countInfected evaluates to true, falsely triggering the win condition.

Before fix:

before.mp4

After fix:

after.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant