using Content.Shared.Inventory; namespace Content.Shared._Goobstation.Flashbang; /// /// Called before a flash is used to check if the attempt is cancelled by blindness, items or FlashImmunityComponent. /// Raised on the target hit by the flash and their inventory items. /// [ByRefEvent] public record struct FlashAttemptEvent(EntityUid Target, EntityUid? User, EntityUid? Used, bool Cancelled = false) : IInventoryRelayEvent { SlotFlags IInventoryRelayEvent.TargetSlots => SlotFlags.HEAD | SlotFlags.EYES | SlotFlags.MASK; } /// /// Called when a player is successfully flashed. /// Raised on the target hit by the flash, the user of the flash and the flash used. /// The Melee parameter is used to check for rev conversion. /// [ByRefEvent] public record struct AfterFlashedEvent(EntityUid Target, EntityUid? User, EntityUid? Used, bool Melee); /// /// Goob edit /// public sealed class FlashDurationMultiplierEvent : EntityEventArgs, IInventoryRelayEvent { public float Multiplier = 1f; public SlotFlags TargetSlots => SlotFlags.EYES | SlotFlags.HEAD | SlotFlags.MASK; } /// /// Goob edit /// public sealed class AreaFlashEvent(float range, float distance, EntityUid target) : EntityEventArgs { public float Range = range; public float Distance = distance; public EntityUid Target = target; }