using JetBrains.Annotations; using Robust.Shared.Serialization; namespace Content.Shared.Weapons.Ranged.Components; /// /// Used to define a complicated condition that requires C# /// [ImplicitDataDefinitionForInheritors] [MeansImplicitUse] public abstract partial class FireModeCondition { /// /// Determines whether or not a certain entity can change firemode. /// /// Whether or not the firemode can be changed public abstract bool Condition(FireModeConditionConditionArgs args); } public readonly record struct FireModeConditionConditionArgs(EntityUid Shooter, EntityUid? Weapon, BatteryWeaponFireMode? FireMode, IEntityManager EntityManager);