using Content.Server.Damage.Components; using Content.Server.Popups; using Content.Shared.Damage; 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); } }