using System; using JetBrains.Annotations; using Robust.Shared.Analyzers; using Robust.Shared.GameObjects; namespace Content.Shared.Throwing { /// /// Base class for all throw events. /// public abstract class ThrowEvent : HandledEntityEventArgs { /// /// The entity that threw . /// public IEntity? User { get; } /// /// The entity thrown by that hit /// public IEntity Thrown { get; } /// /// The entity hit with by /// public IEntity Target { get; } public ThrowEvent(IEntity? user, IEntity thrown, IEntity target) { User = user; Thrown = thrown; Target = target; } } /// /// Raised directed on the target entity being hit by the thrown entity. /// public class ThrowHitByEvent : ThrowEvent { public ThrowHitByEvent(IEntity? user, IEntity thrown, IEntity target) : base(user, thrown, target) { } } /// /// Raised directed on the thrown entity that hits another. /// public class ThrowDoHitEvent : ThrowEvent { public ThrowDoHitEvent(IEntity? user, IEntity thrown, IEntity target) : base(user, thrown, target) { } } }