ampreeT / SourceCoop

Black Mesa cooperative plugin for SourceMod
GNU General Public License v3.0
183 stars 13 forks source link

Wait Period rewrite + Black Mesa Chapter 1-3 EDT improvements #168

Closed ampreeT closed 1 week ago

ampreeT commented 3 weeks ago

Code Changelog:

Map Changelog:

ampreeT commented 3 weeks ago

Waiting for players timer will always wait the full period on first map load or if the map change was over 5 minutes ago

I'd rather a consistent behavior. What issue does this solve when premature starting has been fixed?

The issue that this solves when premature starting has been fixed is a quality of life change. If a player joins, crashes mid-connection and never rejoins, I would assume a new batch of people are going to join together down the road and we would want to wait longer than the wait period of 3 seconds for everyone to connect. We'll always have to wait the full period on first map load regardless since we do not store player count on last server launch.

Waiting for players timer will now reset when the last spawned player disconnects and the map has not started yet

What issue does this solve?

This solves a issue with the timer still counting down regardless whether if the last connected spawned player spawns in, disconnects and never rejoins. I was thinking we'd want the timer to reset and wait if there are no connected players.

Bringalls

I tend to prefer portals over bringall. One, it does not disrupt players as much, people can (mostly) progress at their own pace (sucks when 1 guy is speedrunning). Second, some play this as their first BM or even HL experience. So I only used them for big map events.

For sure I agree with this. I've only tried to include bringalls in spots that have disruptions in visuals or scripting. For example in bm_c1a0a, the active fog controller will change if players stay behind with the train while others progress. Also, the HEV pickup will spawn NPCs and start new scripted sequences.

Alienmario commented 2 weeks ago

Waiting for players timer will always wait the full period on first map load or if the map change was over 5 minutes ago

I'd rather a consistent behavior. What issue does this solve when premature starting has been fixed?

The issue that this solves when premature starting has been fixed is a quality of life change. If a player joins, crashes mid-connection and never rejoins, I would assume a new batch of people are going to join together down the road and we would want to wait longer than the wait period of 3 seconds for everyone to connect. We'll always have to wait the full period on first map load regardless since we do not store player count on last server launch.

I'd still rather let players control for this themselves. If they are together, they'll wait for each other (which may take longer than our timer anyway). If it's a random, we're just making them wait for nothing. Restart map is also a thing - in which case the timer should fulfil its primary purpose - load time balancing. I just wouldn't expect to see the timer if I'm the only one on the server. But if you insist, at least make this configurable.

Waiting for players timer will now reset when the last spawned player disconnects and the map has not started yet

What issue does this solve?

This solves a issue with the timer still counting down regardless whether if the last connected spawned player spawns in, disconnects and never rejoins. I was thinking we'd want the timer to reset and wait if there are no connected players.

That's fine.

One last thing, there's an extra second after timer reaches 0. I would expect it to start a second after "1".