Open to full-stack, frontend, and software development opportunities, as well as open-source collaboration and interesting web projects.
That’s a really good test case. It hits the exact boundary resolve_hit() is supposed to unify, instead of testing clicks and ticks separately. A click leaving the slime at 1 HP, then a one-second tick finishing it, would be a nice guard against missed transitions or double rewards as this grows. I’m probably adding that one.
Exactly! That separation ended up being one of my favorite parts of this step. I started from the much smaller problem of “how do I test an hour away without waiting an hour?” and game.tick(3600) fell out of that. But it also creates that nice boundary you described: whatever is running the game can measure wall time, while the Rust side only has to care about what that amount of elapsed time means for the game state. I like the comparison to separating simulation from render frames too. That is pretty much where this series is heading next — pulling the game rules away from the environment that happens to be running them.