diff --git a/Content.Client/Lobby/LobbyState.cs b/Content.Client/Lobby/LobbyState.cs
index 53e3968cda..8fa7f96b0f 100644
--- a/Content.Client/Lobby/LobbyState.cs
+++ b/Content.Client/Lobby/LobbyState.cs
@@ -95,6 +95,7 @@ namespace Content.Client.Lobby
_gameTicker.LobbyLateJoinStatusUpdated += LobbyLateJoinStatusUpdated;
_preferencesManager.OnServerDataLoaded += PreferencesDataLoaded;
+ _lobby.Background.RandomizeBackground();
//_lobby.CharacterPreview.UpdateUI();
PopulateChangelog();
diff --git a/Content.Client/Lobby/UI/LobbyGui.xaml b/Content.Client/Lobby/UI/LobbyGui.xaml
index 9f6bd64212..4c84ed67f7 100644
--- a/Content.Client/Lobby/UI/LobbyGui.xaml
+++ b/Content.Client/Lobby/UI/LobbyGui.xaml
@@ -10,7 +10,7 @@
xmlns:buttons="clr-namespace:Content.Client._Ohio.Buttons">
-
diff --git a/Content.Client/_Ohio/UI/AnimatedBackgroundControl.cs b/Content.Client/_Ohio/UI/AnimatedBackgroundControl.cs
index 8a32ed0f2c..0b9dc64245 100644
--- a/Content.Client/_Ohio/UI/AnimatedBackgroundControl.cs
+++ b/Content.Client/_Ohio/UI/AnimatedBackgroundControl.cs
@@ -1,7 +1,10 @@
+using System.Linq;
+using Content.Shared._White;
using Robust.Client.Graphics;
using Robust.Client.ResourceManagement;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Graphics.RSI;
+using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
namespace Content.Client._Ohio.UI;
@@ -10,8 +13,9 @@ public sealed class AnimatedBackgroundControl : TextureRect
{
[Dependency] private readonly IResourceCache _resourceCache = default!;
[Dependency] private readonly IClyde _clyde = default!;
+ [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
- private const string RsiPath = "/Textures/Ohio/Lobby/anim.rsi";
+ private string RsiPath = "/Textures/Ohio/Lobby/backgrounds/native.rsi";
private const int States = 1;
private IRenderTexture? _buffer;
@@ -88,4 +92,13 @@ public sealed class AnimatedBackgroundControl : TextureRect
base.Dispose(disposing);
_buffer?.Dispose();
}
+
+ public void RandomizeBackground()
+ {
+ var backgroundsProto = _prototypeManager.EnumeratePrototypes().ToList();
+ var random = new Random();
+ int index = random.Next(backgroundsProto.Count);
+ RsiPath = $"/Textures/{backgroundsProto[index].Path}";
+ InitializeStates();
+ }
}
diff --git a/Content.Shared/_White/AnimatedLobbyScreenPrototype.cs b/Content.Shared/_White/AnimatedLobbyScreenPrototype.cs
new file mode 100644
index 0000000000..9b3020cb71
--- /dev/null
+++ b/Content.Shared/_White/AnimatedLobbyScreenPrototype.cs
@@ -0,0 +1,17 @@
+using Robust.Shared.Prototypes;
+
+namespace Content.Shared._White;
+
+///
+/// This is a prototype for...
+///
+[Prototype("animatedLobbyScreen")]
+public sealed partial class AnimatedLobbyScreenPrototype : IPrototype
+{
+ ///
+ [IdDataField]
+ public string ID { get; } = default!;
+
+ [DataField("path")]
+ public string Path { get; private set; } = string.Empty;
+}
diff --git a/Resources/Prototypes/_White/AnimatedLobbyScreens/lobbyScreens.yml b/Resources/Prototypes/_White/AnimatedLobbyScreens/lobbyScreens.yml
new file mode 100644
index 0000000000..6b3cf05285
--- /dev/null
+++ b/Resources/Prototypes/_White/AnimatedLobbyScreens/lobbyScreens.yml
@@ -0,0 +1,23 @@
+- type: animatedLobbyScreen
+ id: NativeLobbyScreen
+ path: Ohio/Lobby/backgrounds/native.rsi
+
+- type: animatedLobbyScreen
+ id: MilkywayLobbyScreen
+ path: Ohio/Lobby/backgrounds/milkyway.rsi
+
+- type: animatedLobbyScreen
+ id: SusLobbyScreen
+ path: Ohio/Lobby/backgrounds/sus.rsi
+
+- type: animatedLobbyScreen
+ id: ThirdLobbyScreen
+ path: Ohio/Lobby/backgrounds/3.rsi
+
+- type: animatedLobbyScreen
+ id: FourthLobbyScreen
+ path: Ohio/Lobby/backgrounds/4.rsi
+
+- type: animatedLobbyScreen
+ id: FifthLobbyScreen
+ path: Ohio/Lobby/backgrounds/5.rsi
\ No newline at end of file
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/1.png
new file mode 100644
index 0000000000..6742940c3a
Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/1.png differ
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/meta.json
new file mode 100644
index 0000000000..61c05a7da5
--- /dev/null
+++ b/Resources/Textures/Ohio/Lobby/backgrounds/3.rsi/meta.json
@@ -0,0 +1,19 @@
+{
+ "version": 1,
+ "license": null,
+ "copyright": null,
+ "size": {
+ "x": 1920,
+ "y": 875
+ },
+ "states": [
+ {
+ "name": "1",
+ "delays": [
+ [
+ 0.1
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/1.png
new file mode 100644
index 0000000000..83000ed28f
Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/1.png differ
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/meta.json
new file mode 100644
index 0000000000..016bfc84ff
--- /dev/null
+++ b/Resources/Textures/Ohio/Lobby/backgrounds/4.rsi/meta.json
@@ -0,0 +1,38 @@
+{
+ "version": 1,
+ "license": null,
+ "copyright": null,
+ "size": {
+ "x": 901,
+ "y": 676
+ },
+ "states": [
+ {
+ "name": "1",
+ "delays": [
+ [
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015,
+ 0.015
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/1.png
new file mode 100644
index 0000000000..26021c51a3
Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/1.png differ
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/meta.json
new file mode 100644
index 0000000000..1d58f57dd0
--- /dev/null
+++ b/Resources/Textures/Ohio/Lobby/backgrounds/5.rsi/meta.json
@@ -0,0 +1,19 @@
+{
+ "version": 1,
+ "license": null,
+ "copyright": null,
+ "size": {
+ "x": 1135,
+ "y": 800
+ },
+ "states": [
+ {
+ "name": "1",
+ "delays": [
+ [
+ 0.1
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/1.png
new file mode 100644
index 0000000000..a7a4d60403
Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/1.png differ
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/meta.json
new file mode 100644
index 0000000000..95486a31d3
--- /dev/null
+++ b/Resources/Textures/Ohio/Lobby/backgrounds/milkyway.rsi/meta.json
@@ -0,0 +1,19 @@
+{
+ "version": 1,
+ "license": null,
+ "copyright": null,
+ "size": {
+ "x": 640,
+ "y": 365
+ },
+ "states": [
+ {
+ "name": "1",
+ "delays": [
+ [
+ 0.1
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/Ohio/Lobby/anim.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/1.png
similarity index 100%
rename from Resources/Textures/Ohio/Lobby/anim.rsi/1.png
rename to Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/1.png
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/meta.json
new file mode 100644
index 0000000000..a92c447559
--- /dev/null
+++ b/Resources/Textures/Ohio/Lobby/backgrounds/native.rsi/meta.json
@@ -0,0 +1,21 @@
+{
+ "version": 1,
+ "license": null,
+ "copyright": null,
+ "size": {
+ "x": 480,
+ "y": 480
+ },
+ "states": [
+ {
+ "name": "1",
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/1.png b/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/1.png
new file mode 100644
index 0000000000..b73b8ec058
Binary files /dev/null and b/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/1.png differ
diff --git a/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/meta.json b/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/meta.json
new file mode 100644
index 0000000000..61c05a7da5
--- /dev/null
+++ b/Resources/Textures/Ohio/Lobby/backgrounds/sus.rsi/meta.json
@@ -0,0 +1,19 @@
+{
+ "version": 1,
+ "license": null,
+ "copyright": null,
+ "size": {
+ "x": 1920,
+ "y": 875
+ },
+ "states": [
+ {
+ "name": "1",
+ "delays": [
+ [
+ 0.1
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file