Files
wwdpublic/Content.Server/Shadowkin/EtherealStunItemSystem.cs
sleepyyapril d6e00dabad Kill Mana (#1623)
it is genuinely so bad

🆑
- remove: Remove mana.

(cherry picked from commit 89e8de3b6006ca6d4551546bf8a22c7ed7244aba)
2025-01-23 08:02:50 +03:00

43 lines
1.4 KiB
C#

using Content.Shared.Interaction.Events;
using Content.Shared.Damage.Components;
using Content.Shared.Damage.Systems;
using Content.Shared.Shadowkin;
using Content.Shared.Abilities.Psionics;
using Content.Shared.Stacks;
namespace Content.Server.Shadowkin;
public sealed class EtherealStunItemSystem : EntitySystem
{
[Dependency] private readonly StaminaSystem _stamina = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly SharedStackSystem _sharedStackSystem = default!;
public override void Initialize()
{
SubscribeLocalEvent<EtherealStunItemComponent, UseInHandEvent>(OnUseInHand);
}
private void OnUseInHand(EntityUid uid, EtherealStunItemComponent component, UseInHandEvent args)
{
foreach (var ent in _lookup.GetEntitiesInRange(uid, component.Radius))
{
if (!TryComp<EtherealComponent>(ent, out var ethereal)
|| !ethereal.CanBeStunned)
continue;
RemComp(ent, ethereal);
if (TryComp<StaminaComponent>(ent, out var stamina))
_stamina.TakeStaminaDamage(ent, stamina.CritThreshold, stamina, ent);
}
if (!component.DeleteOnUse)
return;
if (TryComp<StackComponent>(uid, out var stack))
_sharedStackSystem.Use(uid, 1, stack);
else
QueueDel(uid);
}
}