using Content.Shared.Tag; using Robust.Shared.Prototypes; namespace Content.Server._DV.Projectiles.Components; [RegisterComponent] public sealed partial class PiercingProjectileComponent : Component { /// /// The health threshold that a target has to supersede to block the projectile. /// A normal wall has 200. /// [DataField(required: true)] public float HealthThreshold; /// /// The number of entities it pierced. /// It'll only count the entities with the . /// [DataField] public float PierceCounter; /// /// The tag that will cause the piercing bullet to increment it's . /// [DataField] public List> PierceBlockTag = ["Wall", "Window"]; /// /// The number of entities it is allowed to pierce before being deleted. /// When is higher than this number, it'll be deleted. /// /// /// A bullet with a MaxPierceNumberThreshold of 3 will pierce 3 entities with the and be deleted when hitting the fourth. /// [DataField] public float MaxPierceNumberThreshold = 1f; /// /// The cardinal direction that the bullet is flying toward. /// [DataField] public Direction? Direction; /// /// The vertical/horizontal coordinate that will be ignored for . /// /// /// A bullet going positive Y hitting a wall at X 3 and Y 5 will not increment the when hitting other walls at Y 5. /// [DataField] public float? IgnoreRowCoordinate; }