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:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace Content.Shared.GameTicking;
|
||||
namespace Content.Server._White.Discord.GameTicking;
|
||||
|
||||
public sealed class RoundEndedEvent : EntityEventArgs
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Content.Server._White.RealRoundEnded;
|
||||
|
||||
public sealed class RealRoundEndedEvent : EntityEventArgs
|
||||
{
|
||||
|
||||
}
|
||||
@@ -11,6 +11,9 @@ public sealed partial class PointLightAirlockComponent : Component
|
||||
[ViewVariables]
|
||||
public bool LastBoltsState;
|
||||
|
||||
[ViewVariables]
|
||||
public bool IsEmagged;
|
||||
|
||||
[ViewVariables]
|
||||
public readonly string RedColor = "#D56C6C";
|
||||
|
||||
|
||||
BIN
Resources/Audio/Lobby/Songs/CircleAroundTheSun.ogg
Normal file
BIN
Resources/Audio/Lobby/Songs/CircleAroundTheSun.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/Songs/RetroFilk.ogg
Normal file
BIN
Resources/Audio/Lobby/Songs/RetroFilk.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/Songs/SpaceShuttle.ogg
Normal file
BIN
Resources/Audio/Lobby/Songs/SpaceShuttle.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/Songs/TheSettler.ogg
Normal file
BIN
Resources/Audio/Lobby/Songs/TheSettler.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/Lobby/Songs/TheWizard.ogg
Normal file
BIN
Resources/Audio/Lobby/Songs/TheWizard.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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.
|
||||
|
||||
@@ -123,6 +123,8 @@
|
||||
magState: mag
|
||||
steps: 5
|
||||
zeroVisible: false
|
||||
- type: Item
|
||||
storedRotation: 90
|
||||
- type: Appearance
|
||||
- type: ContainerContainer
|
||||
containers:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user