xna-cncnet-client icon indicating copy to clipboard operation
xna-cncnet-client copied to clipboard

Rework partial GameModeMap and GameLobby codes

Open SadPencil opened this issue 7 months ago • 4 comments

  • Unified duplicated codes in GameMode and Map. For example, MultiplayerOnly is a setting that can be either defined in GameMode and Map. Now, the duplicated codes are merged. Priority: Map > GameMode.
  • ForceRandomStartLocations setting can also be turned on with co-op missions (IsCoop)
  • Forced Random Teams has been renamed to Forced No Teams in UI and source codes, because the original meaning seems wrong.
  • Fix a bug where the team mapping (in player extra options panel) breaks the team setting with co-op missions (IsCoop)
  • Support specifying non sequential locations by specifying AllowedStartingLocations. For example, in a co-op mission based on a 4P map, the players might be positioned in 1 and 3 instead of 1 and 2, while MaxPlayers=2. The AIs are provided in co-op related settings instead of regular AI players.
  • Also contains and closes https://github.com/CnCNet/xna-cncnet-client/pull/519, supporting randomized game mode

Note: I can't separate the features, refactors, and bug fixes as separate PRs, because: (a) they rely on one others, and (b) we don't merge PRs in time -- so it will be much painful maintaining many PRs that depend on one others.

SadPencil avatar May 16 '25 13:05 SadPencil

Nightly build for this pull request:

  • artifacts.zip This comment is automatic and is meant to allow guests to get latest automatic builds without registering. It is updated on every successful build.

github-actions[bot] avatar May 16 '25 14:05 github-actions[bot]

@SadPencil Please, resolve the conflict with develop.

image

MahBoiDeveloper avatar May 23 '25 21:05 MahBoiDeveloper

@SadPencil Please, resolve the conflict with develop.

image

Thanks for the remind. Updated.

SadPencil avatar May 29 '25 16:05 SadPencil

Note that I can't separate Fix a bug where the team mapping (in player extra options panel) breaks the team setting with co-op missions (IsCoop) into a standalone PR. It requires a deep refactor (e.g., this PR) to fix this bug.

SadPencil avatar Jul 09 '25 12:07 SadPencil