p2r3 / epochtal

Portal 2 tournament framework
https://epochtal.p2r3.com/
GNU General Public License v3.0
8 stars 4 forks source link

Improve lobbies with bugfixes and QoL features #105

Closed p2r3 closed 3 days ago

p2r3 commented 3 weeks ago

This pull request aims to clean up, stabilize, and continue work on what the feat/lobby branch started, while not being too overly ambitious. Core functionality will remain the same. The focus is on finalizing existing features and fixing bugs, as well as refactoring where needed. Lobbies still remain locked to workshop maps, with only one game mode.

Planned for this pull request

p2r3 commented 2 weeks ago

I'm rolling back the initial "lobbies still remain locked to workshop maps" claim due to how simple it seems to add that feature now. Timing would be nearly identical - only one event needs to be added to check for a map transition instead of the PTI level end trigger. The UI is also not much of a problem, as we can prompt for either a workshop map link or a map file name (e.g. sp_a2_triple_laser) and check that against a list of campaign maps.

p2r3 commented 1 week ago

A few things to note for reviewer consideration as I open this pull request - I have made little effort to synchronize the start and stop events of the timer to what SAR uses. Expect the timers to differ slightly. Resolving this discrepancy should be a matter of offsetting or finding the right trigger events, but I haven't done enough testing yet.

I'm trying to avoid depending on SAR here, as ideally Epochtal (especially Live) would be stand-alone and minimalistic in this regard. I'm also trying to avoid using vscript, as that would make this much less p2sr-friendly. That admittedly leaves a very narrow corridor of options, but it'd be amazing to get things working smoothly under those conditions.

Edit: besides, for a live tournament, all that matters is that your opponent uses the same timing method as you do. Whether that differs from what's traditionally "expected" is secondary.

p2r3 commented 1 week ago

This bug also produces some funny side effects like for example the players still getting final times, while the lobby is still in its unready state.

How. https://github.com/p2r3/epochtal/blob/a48d1a36054abefb9361e172d891c18ae6a7be1c/util/lobbies.js#L160