Request window attention when round starts/restarts.

This commit is contained in:
Pieter-Jan Briers
2020-08-16 23:36:50 +02:00
parent 9dc884fa46
commit d04ad6ec85
5 changed files with 62 additions and 0 deletions

View File

@@ -3,6 +3,8 @@ using Content.Client.Interfaces;
using Content.Client.State;
using Content.Client.UserInterface;
using Content.Shared;
using Content.Shared.Network.NetMessages;
using Robust.Client.Interfaces.Graphics;
using Robust.Client.Interfaces.State;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.IoC;
@@ -39,6 +41,10 @@ namespace Content.Client.GameTicking
_netManager.RegisterNetMessage<MsgTickerLobbyInfo>(nameof(MsgTickerLobbyInfo), LobbyInfo);
_netManager.RegisterNetMessage<MsgTickerLobbyCountdown>(nameof(MsgTickerLobbyCountdown), LobbyCountdown);
_netManager.RegisterNetMessage<MsgRoundEndMessage>(nameof(MsgRoundEndMessage), RoundEnd);
_netManager.RegisterNetMessage<MsgRequestWindowAttention>(nameof(MsgRequestWindowAttention), msg =>
{
IoCManager.Resolve<IClyde>().RequestWindowAttention();
});
_initialized = true;
}

View File

@@ -24,6 +24,7 @@ using Content.Server.Players;
using Content.Shared;
using Content.Shared.Chat;
using Content.Shared.GameObjects.Components.PDA;
using Content.Shared.Network.NetMessages;
using Content.Shared.Preferences;
using Content.Shared.Roles;
using Prometheus;
@@ -137,6 +138,7 @@ namespace Content.Server.GameTicking
_netManager.RegisterNetMessage<MsgTickerLobbyInfo>(nameof(MsgTickerLobbyInfo));
_netManager.RegisterNetMessage<MsgTickerLobbyCountdown>(nameof(MsgTickerLobbyCountdown));
_netManager.RegisterNetMessage<MsgRoundEndMessage>(nameof(MsgRoundEndMessage));
_netManager.RegisterNetMessage<MsgRequestWindowAttention>(nameof(MsgRequestWindowAttention));
SetStartPreset(_configurationManager.GetCVar<string>("game.defaultpreset"));
@@ -206,6 +208,16 @@ namespace Content.Server.GameTicking
_roundStartTimeUtc = DateTime.UtcNow + LobbyDuration;
_sendStatusToAll();
ReqWindowAttentionAll();
}
}
private void ReqWindowAttentionAll()
{
foreach (var player in _playerManager.GetAllPlayers())
{
player.RequestWindowAttention();
}
}
@@ -284,6 +296,7 @@ namespace Content.Server.GameTicking
_roundStartTimeSpan = IoCManager.Resolve<IGameTiming>().RealTime;
_sendStatusToAll();
ReqWindowAttentionAll();
}
private void SendServerMessage(string message)
@@ -621,6 +634,7 @@ namespace Content.Server.GameTicking
_playerJoinLobby(player);
}
EntitySystem.Get<GasTileOverlaySystem>().ResettingCleanup();
EntitySystem.Get<PathfindingSystem>().ResettingCleanup();
EntitySystem.Get<AiReachableSystem>().ResettingCleanup();
EntitySystem.Get<WireHackingSystem>().ResetLayouts();

View File

@@ -0,0 +1,14 @@
using Content.Shared.Network.NetMessages;
using Robust.Server.Interfaces.Player;
namespace Content.Server.Players
{
public static class PlayerSessionExt
{
public static void RequestWindowAttention(this IPlayerSession session)
{
var msg = session.ConnectedClient.CreateNetMessage<MsgRequestWindowAttention>();
session.ConnectedClient.SendMessage(msg);
}
}
}

View File

@@ -0,0 +1,27 @@
using Lidgren.Network;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.Network;
namespace Content.Shared.Network.NetMessages
{
public sealed class MsgRequestWindowAttention : NetMessage
{
#region REQUIRED
public const MsgGroups GROUP = MsgGroups.Command;
public const string NAME = nameof(MsgRequestWindowAttention);
public MsgRequestWindowAttention(INetChannel channel) : base(NAME, GROUP) { }
#endregion
public override void ReadFromBuffer(NetIncomingMessage buffer)
{
// Nothing
}
public override void WriteToBuffer(NetOutgoingMessage buffer)
{
// Nothing
}
}
}

View File

@@ -152,6 +152,7 @@ namespace Content.Shared
}
}
public struct RoundEndPlayerInfo
{
public string PlayerOOCName;