using Content.Shared.Chat.Prototypes; using Content.Shared.Chat.V2; using Content.Shared.Radio; namespace Content.Server.Chat.V2; /// /// Raised locally when a comms announcement is made. /// public sealed class CommsAnnouncementCreatedEvent(EntityUid sender, EntityUid console, string message) : IChatEvent { public uint Id { get; set; } public EntityUid Sender { get; set; } = sender; public string Message { get; set; } = message; public MessageType Type => MessageType.Announcement; public EntityUid Console = console; } /// /// Raised locally when a character speaks in Dead Chat. /// public sealed class DeadChatCreatedEvent(EntityUid speaker, string message, bool isAdmin) : IChatEvent { public uint Id { get; set; } public EntityUid Sender { get; set; } = speaker; public string Message { get; set; } = message; public MessageType Type => MessageType.DeadChat; public bool IsAdmin = isAdmin; } /// /// Raised locally when a character emotes. /// public sealed class EmoteCreatedEvent(EntityUid sender, string message, float range) : IChatEvent { public uint Id { get; set; } public EntityUid Sender { get; set; } = sender; public string Message { get; set; } = message; public MessageType Type => MessageType.Emote; public float Range = range; } /// /// Raised locally when a character talks in local. /// public sealed class LocalChatCreatedEvent(EntityUid speaker, string message, float range) : IChatEvent { public uint Id { get; set; } public EntityUid Sender { get; set; } = speaker; public string Message { get; set; } = message; public MessageType Type => MessageType.Local; public float Range = range; } /// /// Raised locally when a character speaks in LOOC. /// public sealed class LoocCreatedEvent(EntityUid speaker, string message) : IChatEvent { public uint Id { get; set; } public EntityUid Sender { get; set; } = speaker; public string Message { get; set; } = message; public MessageType Type => MessageType.Looc; } /// /// Raised locally when a character speaks on the radio. /// public sealed class RadioCreatedEvent( EntityUid speaker, string message, RadioChannelPrototype channel) : IChatEvent { public uint Id { get; set; } public EntityUid Sender { get; set; } = speaker; public string Message { get; set; } = message; public RadioChannelPrototype Channel = channel; public MessageType Type => MessageType.Radio; } /// /// Raised locally when a character whispers. /// public sealed class WhisperCreatedEvent(EntityUid speaker, string message, float minRange, float maxRange) : IChatEvent { public uint Id { get; set; } public EntityUid Sender { get; set; } = speaker; public string Message { get; set; } = message; public MessageType Type => MessageType.Whisper; public float MinRange = minRange; public float MaxRange = maxRange; }