2022-10-05 22:55:11 -04:00
|
|
|
|
using Content.Server.GameTicking;
|
|
|
|
|
|
using Content.Server.Visible;
|
2022-09-28 22:30:48 -04:00
|
|
|
|
using Content.Shared.Revenant.Components;
|
|
|
|
|
|
using Content.Shared.Revenant.EntitySystems;
|
2022-08-13 09:49:41 -04:00
|
|
|
|
using Robust.Server.GameObjects;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Content.Server.Revenant.EntitySystems;
|
|
|
|
|
|
|
2022-09-28 22:30:48 -04:00
|
|
|
|
public sealed class CorporealSystem : SharedCorporealSystem
|
2022-08-13 09:49:41 -04:00
|
|
|
|
{
|
|
|
|
|
|
[Dependency] private readonly VisibilitySystem _visibilitySystem = default!;
|
2022-10-05 22:55:11 -04:00
|
|
|
|
[Dependency] private readonly GameTicker _ticker = default!;
|
2022-08-13 09:49:41 -04:00
|
|
|
|
|
2022-09-28 22:30:48 -04:00
|
|
|
|
public override void OnStartup(EntityUid uid, CorporealComponent component, ComponentStartup args)
|
2022-08-13 09:49:41 -04:00
|
|
|
|
{
|
2022-09-28 22:30:48 -04:00
|
|
|
|
base.OnStartup(uid, component, args);
|
2022-08-13 09:49:41 -04:00
|
|
|
|
|
|
|
|
|
|
if (TryComp<VisibilityComponent>(uid, out var visibility))
|
|
|
|
|
|
{
|
|
|
|
|
|
_visibilitySystem.RemoveLayer(visibility, (int) VisibilityFlags.Ghost, false);
|
|
|
|
|
|
_visibilitySystem.AddLayer(visibility, (int) VisibilityFlags.Normal, false);
|
|
|
|
|
|
_visibilitySystem.RefreshVisibility(visibility);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-09-28 22:30:48 -04:00
|
|
|
|
public override void OnShutdown(EntityUid uid, CorporealComponent component, ComponentShutdown args)
|
2022-08-13 09:49:41 -04:00
|
|
|
|
{
|
2022-09-28 22:30:48 -04:00
|
|
|
|
base.OnShutdown(uid, component, args);
|
2022-08-13 09:49:41 -04:00
|
|
|
|
|
2022-10-05 22:55:11 -04:00
|
|
|
|
if (TryComp<VisibilityComponent>(uid, out var visibility) && _ticker.RunLevel != GameRunLevel.PostRound)
|
2022-08-13 09:49:41 -04:00
|
|
|
|
{
|
|
|
|
|
|
_visibilitySystem.AddLayer(visibility, (int) VisibilityFlags.Ghost, false);
|
|
|
|
|
|
_visibilitySystem.RemoveLayer(visibility, (int) VisibilityFlags.Normal, false);
|
|
|
|
|
|
_visibilitySystem.RefreshVisibility(visibility);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|