private void OnStepTrigger(EntityUid uid, MousetrapComponent component, ref StepTriggeredEvent args)
    {
        component.IsActive = false;
        _triggerSystem.Trigger(uid);

        UpdateVisuals(uid);
    }
    private void BeforeDamageOnTrigger(EntityUid uid, MousetrapComponent component, BeforeDamageOnTriggerEvent args)
    {
        foreach (var slot in component.IgnoreDamageIfSlotFilled)
        {
            if (!_inventorySystem.TryGetSlotContainer(args.Tripper, slot, out var container, out _))
            {
                continue;
            }

            // This also means that wearing slippers won't
            // hurt the entity.
            if (container.ContainedEntity != null)
            {
                args.Damage *= 0;
                return;
            }
        }

        if (TryComp(args.Tripper, out PhysicsComponent? physics) && physics.Mass != 0)
        {
            // The idea here is inverse,
            // Small - big damage,
            // Large - small damage
            // yes i punched numbers into a calculator until the graph looked right
            var scaledDamage = -50 * Math.Atan(physics.Mass - component.MassBalance) + (25 * Math.PI);
            args.Damage *= scaledDamage;
        }
    }
    private void OnUseInHand(EntityUid uid, MousetrapComponent component, UseInHandEvent args)
    {
        component.IsActive = !component.IsActive;
        _popupSystem.PopupEntity(component.IsActive
            ? Loc.GetString("mousetrap-on-activate")
            : Loc.GetString("mousetrap-on-deactivate"),
                                 uid,
                                 Filter.Entities(args.User));

        UpdateVisuals(uid);
    }
 private void BeforeDamageOnTrigger(EntityUid uid, MousetrapComponent component, BeforeDamageUserOnTriggerEvent args)
 {
     if (TryComp(args.Tripper, out PhysicsComponent? physics) && physics.Mass != 0)
     {
         // The idea here is inverse,
         // Small - big damage,
         // Large - small damage
         // yes i punched numbers into a calculator until the graph looked right
         var scaledDamage = -50 * Math.Atan(physics.Mass - component.MassBalance) + (25 * Math.PI);
         args.Damage *= scaledDamage;
     }
 }
 private void OnStepTriggerAttempt(EntityUid uid, MousetrapComponent component, ref StepTriggerAttemptEvent args)
 {
     args.Continue = component.IsActive;
 }
 private void OnTrigger(EntityUid uid, MousetrapComponent component, TriggerEvent args)
 {
     component.IsActive = false;
     UpdateVisuals(uid);
 }