Another fixes and features (#392)

* fix: doorlights supports emagging now + fix emergency light

* add todo to PointLightAirlockSystem.cs

* tweak: reduce captain armor size

* fix: fix wt550 magazine stored rotation

* add: new lobby songs

* fix: fix lobby music rotation
This commit is contained in:
ThereDrD0
2024-06-29 09:49:43 +03:00
committed by GitHub
parent ef4e2feba9
commit e9232e638c
42 changed files with 68 additions and 28 deletions

View File

@@ -4,6 +4,9 @@ using Robust.Client.GameObjects;
namespace Content.Client._White.Lighting.PointLight.Airlock;
// TODO: Перепилить емаггинг дверей, потому что ебучие двери вообще не в курсе, емагнуты они или нет.
// А сам емаг просто ставит стейты, а не поражает дверь
// А еще он ставит дверь на болты каким-то хуем не меняя DoorVisuals.BoltLights
public sealed class PointLightAirlockSystem : EntitySystem
{
[Dependency] private readonly SharedPointLightSystem _pointLightSystem = default!;
@@ -44,10 +47,16 @@ public sealed class PointLightAirlockSystem : EntitySystem
if (!args.AppearanceData.TryGetValue(DoorVisuals.State, out var state))
return;
HandleState(uid, component, (DoorState) state);
if (!component.IsEmagged)
HandleState(uid, component, (DoorState) state);
if (args.AppearanceData.TryGetValue(DoorVisuals.EmergencyLights, out var emergency))
ToggleLight(uid, component.YellowColor, component, (bool) emergency);
{
if ((bool) emergency)
ToggleLight(uid, component.YellowColor, component, (bool) emergency);
else if (!component.IsEmagged)
HandleState(uid, component, (DoorState) state);
}
if (!args.AppearanceData.TryGetValue(DoorVisuals.BoltLights, out var boltsDown))
return;
@@ -59,17 +68,25 @@ public sealed class PointLightAirlockSystem : EntitySystem
else if (args.AppearanceData.TryGetValue(DoorVisuals.EmergencyLights, out var emergencyLights) && (bool) emergencyLights)
ToggleLight(uid, component.YellowColor, component);
else
{
if (component.IsEmagged)
component.IsEmagged = false;
HandleState(uid, component, (DoorState) state);
}
}
component.LastBoltsState = (bool) boltsDown;
}
private void HandleState(EntityUid uid, PointLightAirlockComponent component, DoorState state)
{
switch (state)
{
case DoorState.Emagging:
ToggleLight(uid, component.RedColor, component);
component.IsEmagged = true;
break;
case DoorState.Open:
ToggleLight(uid, component.BlueColor, component);
break;

View File

@@ -1,4 +1,5 @@
using System.Linq;
using Content.Server._White.RealRoundEnded;
using Content.Server.GameTicking;
using Content.Server.GameTicking.Events;
using Content.Shared.Audio;
@@ -14,7 +15,7 @@ namespace Content.Server.Audio;
public sealed class ContentAudioSystem : SharedContentAudioSystem
{
[ValidatePrototypeId<SoundCollectionPrototype>]
private const string LobbyMusicCollection = "LobbyMusicWhite";
private const string LobbyMusicCollection = "LobbyMusicSongs";
[Dependency] private readonly AudioSystem _serverAudio = default!;
[Dependency] private readonly IRobustRandom _robustRandom = default!;
@@ -30,7 +31,7 @@ public sealed class ContentAudioSystem : SharedContentAudioSystem
_lobbyMusicCollection = _prototypeManager.Index<SoundCollectionPrototype>(LobbyMusicCollection);
_lobbyPlaylist = ShuffleLobbyPlaylist();
SubscribeLocalEvent<RoundEndMessageEvent>(OnRoundEnd);
SubscribeLocalEvent<RealRoundEndedEvent>(OnRoundEnd);
SubscribeLocalEvent<PlayerJoinedLobbyEvent>(OnPlayerJoinedLobby);
SubscribeLocalEvent<RoundRestartCleanupEvent>(OnRoundCleanup);
SubscribeLocalEvent<RoundStartingEvent>(OnRoundStart);
@@ -64,7 +65,7 @@ public sealed class ContentAudioSystem : SharedContentAudioSystem
}
}
private void OnRoundEnd(RoundEndMessageEvent ev)
private void OnRoundEnd(RealRoundEndedEvent ev)
{
// The lobby song is set here instead of in RestartRound,
// because ShowRoundEndScoreboard triggers the start of the music playing

View File

@@ -1,5 +1,6 @@
using System.Collections.ObjectModel;
using System.Linq;
using Content.Server._White.Discord.GameTicking;
using Content.Server.Announcements;
using Content.Server.Discord;
using Content.Server.GameTicking.Events;
@@ -22,6 +23,7 @@ using Robust.Shared.Player;
using Robust.Shared.Random;
using Robust.Shared.Utility;
using Content.Server._White.PandaSocket.Main;
using Content.Server._White.RealRoundEnded;
using Content.Server._White.Reputation;
using Content.Server._White.Stalin;
using Content.Shared._White;
@@ -503,6 +505,7 @@ namespace Content.Server.GameTicking
_sawmill.Info("Restarting round!");
SendServerMessage(Loc.GetString("game-ticker-restart-round"));
RaiseLocalEvent(new RealRoundEndedEvent());
RoundNumberMetric.Inc();
@@ -858,4 +861,4 @@ namespace Content.Server.GameTicking
_doNewLine = true;
}
}
}
}

View File

@@ -4,6 +4,7 @@ using Content.Server.GameTicking.Rules.Components;
using Content.Server.Speech.Components;
using Content.Server._White.AspectsSystem.Aspects.Components;
using Content.Server._White.AspectsSystem.Base;
using Content.Server._White.Discord.GameTicking;
using Content.Shared.GameTicking;
using Content.Shared.Humanoid;
using Content.Shared.Humanoid.Markings;

View File

@@ -2,6 +2,7 @@
using Content.Server.RoundEnd;
using Content.Server.Shuttles.Systems;
using Content.Server._White.Cult.Items.Components;
using Content.Server._White.Discord.GameTicking;
using Content.Shared.GameTicking;
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Interaction.Events;

View File

@@ -1,4 +1,4 @@
namespace Content.Shared.GameTicking;
namespace Content.Server._White.Discord.GameTicking;
public sealed class RoundEndedEvent : EntityEventArgs
{

View File

@@ -2,6 +2,7 @@ using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Content.Server._White.Discord.GameTicking;
using Content.Server.Maps;
using Content.Shared.GameTicking;
using Content.Shared._White;

View File

@@ -0,0 +1,6 @@
namespace Content.Server._White.RealRoundEnded;
public sealed class RealRoundEndedEvent : EntityEventArgs
{
}

View File

@@ -11,6 +11,9 @@ public sealed partial class PointLightAirlockComponent : Component
[ViewVariables]
public bool LastBoltsState;
[ViewVariables]
public bool IsEmagged;
[ViewVariables]
public readonly string RedColor = "#D56C6C";

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -237,7 +237,7 @@
- type: entity
parent: ClothingOuterBaseMedium
parent: ClothingOuterBase
id: ClothingOuterArmorCaptainCarapace
name: captain's carapace
description: An armored chestpiece that provides protection whilst still offering maximum mobility and flexibility. Issued only to the station's finest.

View File

@@ -123,6 +123,8 @@
magState: mag
steps: 5
zeroVisible: false
- type: Item
storedRotation: 90
- type: Appearance
- type: ContainerContainer
containers:

View File

@@ -5,34 +5,39 @@
- type: soundCollection
id: LobbyMusicMeme
files:
- /Audio/Lobby/govnovoz.ogg
- /Audio/Lobby/govnovoz2.ogg
- /Audio/Lobby/govnovoz3.ogg
- /Audio/Lobby/govnovoz4.ogg
- /Audio/Lobby/Meme/Govnovoz1.ogg
- /Audio/Lobby/Meme/Govnovoz2.ogg
- /Audio/Lobby/Meme/Govnovoz3.ogg
- /Audio/Lobby/Meme/Govnovoz.ogg
- type: soundCollection
id: LobbyMusicSongs
files:
- /Audio/Lobby/spaceoddity.ogg
- /Audio/Lobby/space_asshole.ogg
- /Audio/Lobby/Songs/SpaceOddity.ogg
- /Audio/Lobby/Songs/SpaceAsshole.ogg
- /Audio/Lobby/Songs/SpaceShuttle.ogg
- /Audio/Lobby/Songs/TheSettler.ogg
- /Audio/Lobby/Songs/TheWizard.ogg
- /Audio/Lobby/Songs/CircleAroundTheSun.ogg
- /Audio/Lobby/Songs/RetroFilk.ogg
- type: soundCollection
id: LobbyMusicWhite
files:
- /Audio/Lobby/thunderdome.ogg
- /Audio/Lobby/singuloose.ogg
- /Audio/Lobby/lasers_rip_apart_the_bulkhead.ogg
- /Audio/Lobby/every_light_is_blinking_at_once.ogg
- /Audio/Lobby/atomicamnesiammx.ogg
- /Audio/Lobby/Spac_Stac.ogg
- /Audio/Lobby/comet_haley.ogg
- /Audio/Lobby/White/thunderdome.ogg
- /Audio/Lobby/White/singuloose.ogg
- /Audio/Lobby/White/lasers_rip_apart_the_bulkhead.ogg
- /Audio/Lobby/White/every_light_is_blinking_at_once.ogg
- /Audio/Lobby/White/atomicamnesiammx.ogg
- /Audio/Lobby/White/Spac_Stac.ogg
- /Audio/Lobby/White/comet_haley.ogg
- type: soundCollection
id: LobbyMusicSS13
files:
- /Audio/Lobby/title2.ogg
- /Audio/Lobby/title3.ogg
- /Audio/Lobby/absconditus.ogg
- /Audio/Lobby/endless_space.ogg
- /Audio/Lobby/mod.flip-flap.ogg
- /Audio/Lobby/pwmur.ogg
- /Audio/Lobby/SS13/title2.ogg
- /Audio/Lobby/SS13/title3.ogg
- /Audio/Lobby/SS13/absconditus.ogg
- /Audio/Lobby/SS13/endless_space.ogg
- /Audio/Lobby/SS13/mod.flip-flap.ogg
- /Audio/Lobby/SS13/pwmur.ogg