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);
|
server.SendMessage(server.TwoHumansRequiredText);
|
||||||
else if (server.Map.Players.Players.Where(p => p.Value.Playable).All(p => !p.Value.AllowBots))
|
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.");
|
server.SendMessage("Bots have been disabled on this map.");
|
||||||
|
|
||||||
|
var briefing = MissionBriefingOrDefault(server);
|
||||||
|
if (briefing != null)
|
||||||
|
server.SendMessage(briefing);
|
||||||
};
|
};
|
||||||
|
|
||||||
Action queryFailed = () =>
|
Action queryFailed = () =>
|
||||||
@@ -842,6 +846,15 @@ namespace OpenRA.Mods.Common.Server
|
|||||||
return validator.MakeValid(askColor.RGB, server.Random, terrainColors, playerColors, onError);
|
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)
|
public void ClientJoined(S server, Connection conn)
|
||||||
{
|
{
|
||||||
var client = server.GetClient(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
|
// Validate whether color is allowed and get an alternative if it isn't
|
||||||
if (client.Slot == null || !server.LobbyInfo.Slots[client.Slot].LockColor)
|
if (client.Slot == null || !server.LobbyInfo.Slots[client.Slot].LockColor)
|
||||||
client.Color = SanitizePlayerColor(server, client.Color, client.Index);
|
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)
|
public PlayerReference PlayerReferenceForSlot(S server, Session.Slot slot)
|
||||||
|
|||||||
Reference in New Issue
Block a user