using Content.Shared.Inventory; namespace Content.Shared.Flash; /// /// 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, once for each flashed player. /// 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); /// /// Raised once on the flash entity when it was used, regardless of the flashed status being applied or not. /// [ByRefEvent] public record struct AfterFlashActivatedEvent(EntityUid? Target, EntityUid? User);