Files
wwdpublic/Content.Client/_Friday31/Slenderman/SlendermanScreamerSystem.cs
Gersoon 10a2b918fd Friday31 (#868)
* 1

* Squashed commit of the following:

commit 182403875c6b7348a6ae33aca959aefa7f2dad8e
Author: Kutosss <162154227+Kutosss@users.noreply.github.com>
Date:   Mon Oct 27 16:14:41 2025 +0300

    Бабайки (#3)

    * Джейсон

    Джейсон
    Звуки и спрайты
    Способность на отрубание головы
    Способность к воскрешению
    Тематическое лого

    * саунд для пениса

    * блядопеннивайз

    * шарики

    * Update jason_gear.yml

    * слендерчлен

    * Update SlendermanShadowWalkSystem.cs

    * трапики

* Friday31 (#6)

* Джейсон

Джейсон
Звуки и спрайты
Способность на отрубание головы
Способность к воскрешению
Тематическое лого

* саунд для пениса

* блядопеннивайз

* шарики

* Update jason_gear.yml

* слендерчлен

* Update SlendermanShadowWalkSystem.cs

* трапики

* крестик

* 3

* Friday31 (#7)

* Джейсон

Джейсон
Звуки и спрайты
Способность на отрубание головы
Способность к воскрешению
Тематическое лого

* саунд для пениса

* блядопеннивайз

* шарики

* Update jason_gear.yml

* слендерчлен

* Update SlendermanShadowWalkSystem.cs

* трапики

* крестик

* костюм

* Apply suggestions from code review

* 5

* 6

---------

Co-authored-by: Kutosss <162154227+Kutosss@users.noreply.github.com>
2025-10-31 19:39:33 +03:00

70 lines
1.8 KiB
C#

using Content.Shared._Friday31.Slenderman;
using Robust.Client.Graphics;
using Robust.Shared.Log;
namespace Content.Client._Friday31.Slenderman;
public sealed class SlendermanScreamerSystem : EntitySystem
{
[Dependency] private readonly IOverlayManager _overlayManager = default!;
private SlendermanScreamerOverlay? _overlay;
private ISawmill _sawmill = default!;
public override void Initialize()
{
base.Initialize();
_sawmill = Logger.GetSawmill("slenderman.screamer");
SubscribeNetworkEvent<SlendermanScreamerEvent>(OnScreamerEvent);
}
public override void Shutdown()
{
base.Shutdown();
if (_overlay != null)
{
_overlayManager.RemoveOverlay(_overlay);
_overlay = null;
}
}
private void OnScreamerEvent(SlendermanScreamerEvent ev)
{
_sawmill.Info($"Received screamer event! Duration: {ev.Duration}");
if (_overlay == null)
{
_overlay = new SlendermanScreamerOverlay();
_sawmill.Debug("Created new overlay instance");
}
_overlay.Show(ev.Duration);
_sawmill.Debug($"Overlay.Show() called, IsActive: {_overlay.IsActive()}");
if (!_overlayManager.HasOverlay<SlendermanScreamerOverlay>())
{
_overlayManager.AddOverlay(_overlay);
_sawmill.Info("Overlay added to manager");
}
else
{
_sawmill.Debug("Overlay already in manager");
}
}
public override void FrameUpdate(float frameTime)
{
base.FrameUpdate(frameTime);
if (_overlay != null && !_overlay.IsActive())
{
if (_overlayManager.HasOverlay<SlendermanScreamerOverlay>())
{
_overlayManager.RemoveOverlay(_overlay);
}
}
}
}