46 lines
No EOL
1.7 KiB
C#
46 lines
No EOL
1.7 KiB
C#
using Content.Shared.Clothing;
|
|
using Content.Shared.Clothing.Components;
|
|
using Content.Shared.Eye.Blinding.Components;
|
|
using Content.Shared.Eye.Blinding.Systems;
|
|
using Content.Shared.Inventory;
|
|
using Content.Shared.Tag;
|
|
using Content.Shared.Eye;
|
|
using Content.Shared.Sunrise.Eye;
|
|
using Content.Shared.Sunrise.Clothing.Components;
|
|
|
|
namespace Content.Shared.Sunrise.Eye;
|
|
|
|
public sealed class VisionDarkenerSystem : EntitySystem
|
|
{
|
|
[Dependency] private readonly SharedDarkenedVisionSystem _darkenedVision = default!;
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
SubscribeLocalEvent<VisionDarkenerComponent, GetVisionDarkeningEvent>(OnGetVisionDarkening);
|
|
SubscribeLocalEvent<VisionDarkenerComponent, InventoryRelayedEvent<GetVisionDarkeningEvent>>(OnGetVisionDarkening);
|
|
|
|
SubscribeLocalEvent<VisionDarkenerComponent, ClothingGotEquippedEvent>(OnGotEquipped);
|
|
SubscribeLocalEvent<VisionDarkenerComponent, ClothingGotUnequippedEvent>(OnGotUnquipped);
|
|
}
|
|
|
|
private void OnGetVisionDarkening(Entity<VisionDarkenerComponent> ent, ref GetVisionDarkeningEvent args)
|
|
{
|
|
args.Strength += ent.Comp.Strength;
|
|
}
|
|
|
|
private void OnGetVisionDarkening(Entity<VisionDarkenerComponent> ent, ref InventoryRelayedEvent<GetVisionDarkeningEvent> args)
|
|
{
|
|
args.Args.Strength += ent.Comp.Strength;
|
|
}
|
|
|
|
private void OnGotEquipped(Entity<VisionDarkenerComponent> ent, ref ClothingGotEquippedEvent args)
|
|
{
|
|
_darkenedVision.UpdateVisionDarkening(args.Wearer);
|
|
}
|
|
|
|
private void OnGotUnquipped(Entity<VisionDarkenerComponent> ent, ref ClothingGotUnequippedEvent args)
|
|
{
|
|
_darkenedVision.UpdateVisionDarkening(args.Wearer);
|
|
}
|
|
} |