using Content.Shared.Movement.Systems; namespace Content.Shared._DV.Carrying; public sealed class CarryingSlowdownSystem : EntitySystem { [Dependency] private readonly MovementSpeedModifierSystem _movementSpeed = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnRefreshMoveSpeed); } public void SetModifier(Entity ent, float modifier) { ent.Comp ??= EnsureComp(ent); ent.Comp.Modifier = modifier; Dirty(ent, ent.Comp); _movementSpeed.RefreshMovementSpeedModifiers(ent); } private void OnRefreshMoveSpeed(Entity ent, ref RefreshMovementSpeedModifiersEvent args) { args.ModifySpeed(ent.Comp.Modifier, ent.Comp.Modifier); } }