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;
}