fish-station/Content.Server/_Starlight/Combat/Ranged/PierceSystem.cs
2025-12-26 17:44:36 +03:00

36 lines
1.3 KiB
C#

using Content.Shared.Actions;
using Content.Shared.DoAfter;
using Robust.Shared.Prototypes;
using Content.Shared.Cuffs.Components;
using Content.Shared.Damage.Components;
using Content.Shared.Weapons.Melee.Events;
using Content.Shared._Starlight.Weapon;
using Content.Shared._Starlight.Combat.Ranged.Pierce;
using Content.Shared.Armor;
using Content.Shared.Damage;
using Content.Shared.Inventory;
using Content.Shared.Weapons.Hitscan.Events;
namespace Content.Server._Starlight.Combat.Ranged;
public sealed partial class PierceSystem : EntitySystem
{
public override void Initialize()
{
SubscribeLocalEvent<PierceableComponent, HitScanPierceAttemptEvent>(OnPierceablePierce);
SubscribeLocalEvent<PierceableComponent, InventoryRelayedEvent<HitScanPierceAttemptEvent>>(OnArmorPierce);
base.Initialize();
}
private void OnArmorPierce(Entity<PierceableComponent> ent, ref InventoryRelayedEvent<HitScanPierceAttemptEvent> args)
{
if ((byte)ent.Comp.Level > (byte)args.Args.Level)
args.Args.Pierced = false;
}
private void OnPierceablePierce(Entity<PierceableComponent> ent, ref HitScanPierceAttemptEvent args)
{
if ((byte)ent.Comp.Level > (byte)args.Level)
args.Pierced = false;
}
}