using Content.Server.Damage.Components;
using Content.Server.Popups;
using Content.Shared.Damage;
using Content.Shared.Damage.Systems;
using Robust.Shared.Player;
using Robust.Shared.Random;
namespace Content.Server.Damage.Systems;
///
/// Outputs a random pop-up from the strings list when an object receives damage
///
public sealed class DamageRandomPopupSystem : EntitySystem
{
[Dependency] private readonly PopupSystem _popupSystem = default!;
[Dependency] private readonly IRobustRandom _random = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent(OnDamageChange);
}
private void OnDamageChange(EntityUid uid, DamageRandomPopupComponent component, DamageChangedEvent args)
{
_popupSystem.PopupEntity(Loc.GetString(_random.Pick(component.Popups)), uid);
}
}