using System.Text.Json.Serialization; using JetBrains.Annotations; using Robust.Shared.Prototypes; namespace Content.Shared.Chemistry.Reagent { [ImplicitDataDefinitionForInheritors] [MeansImplicitUse] public abstract class ReagentEffectCondition { [JsonPropertyName("id")] private protected string _id => this.GetType().Name; public abstract bool Condition(ReagentEffectArgs args); /// /// Effect explanations are of the form "[chance to] [action] when [condition] and [condition]" /// /// /// public abstract string GuidebookExplanation(IPrototypeManager prototype); } }