using System;
using Robust.Shared.Analyzers;
using Robust.Shared.GameObjects;
namespace Content.Server.Interfaces.GameObjects
{
///
/// Implements behavior when an entity is disarmed.
///
[RequiresExplicitImplementation]
public interface IDisarmedAct
{
///
/// Behavior when the entity is disarmed.
/// Return true to prevent the default disarm behavior,
/// or rest of IDisarmedAct behaviors that come after this one from happening.
///
bool Disarmed(DisarmedActEventArgs eventArgs);
///
/// Priority for this disarm act.
/// Used to determine act execution order.
///
int Priority => 0;
}
public class DisarmedActEventArgs : EventArgs
{
///
/// The entity being disarmed.
///
public IEntity Target { get; init; }
///
/// The entity performing the disarm.
///
public IEntity Source { get; init; }
///
/// Probability for push/knockdown.
///
public float PushProbability { get; init; }
}
}