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);