using Content.Shared.Anomaly; using Content.Shared.Anomaly.Components; namespace Content.Server.Anomaly.Components; /// /// This is used for projectiles which affect anomalies through colliding with them. /// [RegisterComponent, Access(typeof(SharedAnomalySystem))] public sealed partial class AnomalousParticleComponent : Component { /// /// The type of particle that the projectile /// imbues onto the anomaly on contact. /// [DataField(required: true)] public AnomalousParticleType ParticleType; /// /// The fixture that's checked on collision. /// [DataField] public string FixtureId = "projectile"; /// /// The amount that the increases by when hit /// of an anomalous particle of . /// [DataField] public float SeverityPerSeverityHit = 0.025f; /// /// The amount that the increases by when hit /// of an anomalous particle of . /// [DataField] public float StabilityPerDestabilizingHit = 0.04f; /// /// The amount that the increases by when hit /// of an anomalous particle of . /// [DataField] public float HealthPerWeakeningeHit = -0.05f; /// /// The amount that the increases by when hit /// of an anomalous particle of . /// [DataField] public float StabilityPerWeakeningeHit = -0.1f; /// /// If this is true then the particle will always affect the stability of the anomaly. /// [DataField] public bool DestabilzingOverride = false; /// /// If this is true then the particle will always affect the weakeness of the anomaly. /// [DataField] public bool WeakeningOverride = false; /// /// If this is true then the particle will always affect the severity of the anomaly. /// [DataField] public bool SeverityOverride = false; /// /// If this is true then the particle will always affect the behaviour. /// [DataField] public bool TransmutationOverride = false; }