using Content.Shared._CP14.MagicSpell.Components; using Content.Shared._CP14.MagicSpell.Events; using Content.Shared.Movement.Systems; namespace Content.Shared._CP14.MagicSpell; public abstract partial class CP14SharedMagicSystem { private void InitializeSlowdown() { SubscribeLocalEvent(OnSlowdownCaster); SubscribeLocalEvent(OnUnslowdownCaster); SubscribeLocalEvent(OnCasterRefreshMovespeed); } private void OnSlowdownCaster(Entity ent, ref CP14StartCastMagicEffectEvent args) { if (!TryComp(args.Performer, out var caster)) return; caster.SpeedModifier = ent.Comp.SpeedMultiplier; _movement.RefreshMovementSpeedModifiers(args.Performer); } private void OnUnslowdownCaster(Entity ent, ref CP14EndCastMagicEffectEvent args) { if (!TryComp(args.Performer, out var caster)) return; caster.SpeedModifier = 1f; _movement.RefreshMovementSpeedModifiers(args.Performer); } private void OnCasterRefreshMovespeed(Entity ent, ref RefreshMovementSpeedModifiersEvent args) { args.ModifySpeed(ent.Comp.SpeedModifier); } }