using JetBrains.Annotations;
namespace Content.Shared.Disease
{
[ImplicitDataDefinitionForInheritors]
[MeansImplicitUse]
public abstract class DiseaseEffect
{
///
/// What's the chance, from 0 to 1, that this effect will occur?
///
[DataField("probability")]
public float Probability = 1.0f;
///
/// What effect the disease will have.
///
public abstract void Effect(DiseaseEffectArgs args);
}
///
/// What you have to work with in any disease effect/cure.
/// Includes an entity manager because it is out of scope
/// otherwise.
///
public readonly record struct DiseaseEffectArgs(
EntityUid DiseasedEntity,
DiseasePrototype Disease,
IEntityManager EntityManager
);
}