using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.Trigger.Components.Effects;
///
/// Sends a tippy message to either the entity or all players when triggered.
/// If TargetUser is true the user will receive the message.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class TippyOnTriggerComponent : BaseXOnTriggerComponent
{
///
/// Unlocalized message text to send to the player(s).
/// Intended only for admeme purposes. For anything else you should use instead.
///
[DataField, AutoNetworkedField]
public string Message = string.Empty;
///
/// Localized message text to send to the player(s).
/// This has priority over .
///
[DataField, AutoNetworkedField]
public LocId? LocMessage;
///
/// If true the message will be send to all players.
/// If false it will be send to the user or owning entity, depending on .
///
[DataField, AutoNetworkedField]
public bool SendToAll;
///
/// The entity prototype to show to the client.
/// Will default to tippy if null.
///
[DataField, AutoNetworkedField]
public EntProtoId? Prototype;
///
/// Use the prototype of the entity owning this component?
/// Will take priority over .
///
[DataField, AutoNetworkedField]
public bool UseOwnerPrototype;
///
/// The time the speech bubble is shown, in seconds.
/// Will be calculated automatically from the message length if null.
///
[DataField, AutoNetworkedField]
public float? SpeakTime;
///
/// The time the entity takes to walk onto the screen, in seconds.
///
[DataField, AutoNetworkedField]
public float SlideTime = 3f;
///
/// The time between waddle animation steps, in seconds.
///
[DataField, AutoNetworkedField]
public float WaddleInterval = 0.5f;
}