private void OnCreamPiedHitBy(EntityUid uid, CreamPiedComponent creamPied, ThrowHitByEvent args)
        {
            if (!EntityManager.EntityExists(args.Thrown) || !EntityManager.TryGetComponent(args.Thrown, out CreamPieComponent? creamPie))
            {
                return;
            }

            SetCreamPied(uid, creamPied, true);

            CreamedEntity(uid, creamPied, args);

            _stunSystem.TryParalyze(uid, TimeSpan.FromSeconds(creamPie.ParalyzeTime), true);
        }
        private void OnCreamPiedHitBy(EntityUid uid, CreamPiedComponent creamPied, ThrowHitByEvent args)
        {
            if (args.Thrown.Deleted || !args.Thrown.TryGetComponent(out CreamPieComponent? creamPie))
            {
                return;
            }

            SetCreamPied(uid, creamPied, true);

            CreamedEntity(uid, creamPied, args);

            _stunSystem.TryParalyze(uid, TimeSpan.FromSeconds(creamPie.ParalyzeTime));
        }
        public void SetCreamPied(EntityUid uid, CreamPiedComponent creamPied, bool value)
        {
            if (value == creamPied.CreamPied)
            {
                return;
            }

            creamPied.CreamPied = value;

            if (EntityManager.TryGetComponent(uid, out AppearanceComponent? appearance))
            {
                appearance.SetData(CreamPiedVisuals.Creamed, value);
            }
        }
        private void OnCreamPiedHitBy(EntityUid uid, CreamPiedComponent creamPied, ThrowHitByEvent args)
        {
            if (args.Thrown.Deleted || !args.Thrown.TryGetComponent(out CreamPieComponent? creamPie))
            {
                return;
            }

            SetCreamPied(uid, creamPied, true);

            CreamedEntity(uid, creamPied, args);

            if (ComponentManager.TryGetComponent(uid, out SharedStunnableComponent? stun))
            {
                stun.Paralyze(creamPie.ParalyzeTime);
            }
        }
 protected override void CreamedEntity(EntityUid uid, CreamPiedComponent creamPied, ThrowHitByEvent args)
 {
     creamPied.Owner.PopupMessage(Loc.GetString("cream-pied-component-on-hit-by-message", ("thrower", args.Thrown)));
     creamPied.Owner.PopupMessageOtherClients(Loc.GetString("cream-pied-component-on-hit-by-message-others", ("owner", creamPied.Owner), ("thrower", args.Thrown)));
 }
 protected virtual void CreamedEntity(EntityUid uid, CreamPiedComponent creamPied, ThrowHitByEvent args)
 {
 }