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 class AnomalousParticleComponent : Component { /// /// The type of particle that the projectile /// imbues onto the anomaly on contact. /// [DataField("particleType", required: true)] public AnomalousParticleType ParticleType; /// /// The fixture that's checked on collision. /// [DataField("fixtureId")] public string FixtureId = "projectile"; /// /// The amount that the increases by when hit /// of an anomalous particle of . /// [DataField("severityPerSeverityHit")] public float SeverityPerSeverityHit = 0.025f; /// /// The amount that the increases by when hit /// of an anomalous particle of . /// [DataField("stabilityPerDestabilizingHit")] public float StabilityPerDestabilizingHit = 0.04f; /// /// The amount that the increases by when hit /// of an anomalous particle of . /// [DataField("healthPerWeakeningeHit")] public float HealthPerWeakeningeHit = -0.05f; /// /// The amount that the increases by when hit /// of an anomalous particle of . /// [DataField("stabilityPerWeakeningeHit")] public float StabilityPerWeakeningeHit = -0.1f; /// /// If this is true then the particle will always affect the stability of the anomaly. /// [DataField("destabilzingOverride")] public bool DestabilzingOverride = false; /// /// If this is true then the particle will always affect the weakeness of the anomaly. /// [DataField("weakeningOverride")] public bool WeakeningOverride = false; /// /// If this is true then the particle will always affect the severity of the anomaly. /// [DataField("severityOverride")] public bool SeverityOverride = false; }