Fixes:
* Nuclear-purple color exploit.
* #3247.
* Removes a bunch of unnecessary color conversions every frame.
Caveats:
* The ramp range is now defined on the palette, so ramps can no longer be set per-player (may impact maps which define custom colors).
* It's no longer possible to perfectly recreate the original WW color ramps (I doubt we care).
* The old ColorRamp setting isn't migrated, so players will lose their color settings.
This introduces a hash on Shroud which ShroudRenderer
can observe, removing the need to explicitly twiddle
a dirty flag between objects.
Shroud disabling is now done via RenderPlayer, so
enabling the cheat or winning/losing will now give
vis equivalent to an observer.
- Each player has their own shroud and their visibility does not extend outside of the shroud.
- Units and buildings can no longer target other units outside of their visibility. Buildings can still be targetted if they have been explored.
- GPS will provide visibility in the fog-of-war.
- Spies that infiltrate radar domes will gain their victim's exploration and reset it on all clients (if the victim does not have GPS)
outsourced into notifications.yaml
triggered with PlayNotification(...)
(v2: less redundant code for PlayVoice/Notifications)
added harvester under attack and battlecontrol terminated
- Bots have their own Clients, with unique ClientIDs
- Hosts can set bot team/color in the lobby
- Bots are kicked when switching to a smaller map without enough slots
- Order validator assumes that only client 0 has permission to issue bot orders
- lobbyInfo.Slots is now a dictionary, keyed by the name of the PlayerReference that the slot is tied to.
- LockRace/Color/Team is now specified on the slot, avoiding map lookups in the lobby
- Observers are no longer tied to slots -> players will join as observers instead of crashing the game if there are no available slots
- Observers are able to change their name and color