Merge pull request #11993 from pchote/missiondata
Report mission briefings in the mp lobby.
This commit is contained in:
@@ -407,6 +407,10 @@ namespace OpenRA.Mods.Common.Server
|
||||
server.SendMessage(server.TwoHumansRequiredText);
|
||||
else if (server.Map.Players.Players.Where(p => p.Value.Playable).All(p => !p.Value.AllowBots))
|
||||
server.SendMessage("Bots have been disabled on this map.");
|
||||
|
||||
var briefing = MissionBriefingOrDefault(server);
|
||||
if (briefing != null)
|
||||
server.SendMessage(briefing);
|
||||
};
|
||||
|
||||
Action queryFailed = () =>
|
||||
@@ -842,6 +846,15 @@ namespace OpenRA.Mods.Common.Server
|
||||
return validator.MakeValid(askColor.RGB, server.Random, terrainColors, playerColors, onError);
|
||||
}
|
||||
|
||||
static string MissionBriefingOrDefault(S server)
|
||||
{
|
||||
var missionData = server.Map.Rules.Actors["world"].TraitInfoOrDefault<MissionDataInfo>();
|
||||
if (missionData != null && !string.IsNullOrEmpty(missionData.Briefing))
|
||||
return missionData.Briefing.Replace("\\n", "\n");
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void ClientJoined(S server, Connection conn)
|
||||
{
|
||||
var client = server.GetClient(conn);
|
||||
@@ -849,6 +862,13 @@ namespace OpenRA.Mods.Common.Server
|
||||
// Validate whether color is allowed and get an alternative if it isn't
|
||||
if (client.Slot == null || !server.LobbyInfo.Slots[client.Slot].LockColor)
|
||||
client.Color = SanitizePlayerColor(server, client.Color, client.Index);
|
||||
|
||||
// Report any custom map details
|
||||
// HACK: this isn't the best place for this to live, but if we move it somewhere else
|
||||
// then we need a larger hack to hook the map change event.
|
||||
var briefing = MissionBriefingOrDefault(server);
|
||||
if (briefing != null)
|
||||
server.SendOrderTo(conn, "Message", briefing);
|
||||
}
|
||||
|
||||
public PlayerReference PlayerReferenceForSlot(S server, Session.Slot slot)
|
||||
|
||||
Reference in New Issue
Block a user