Files
RoxyandGitHub 15332a183e Prevents light step/walk intent/bots from knocking down micros (#5216)
## About The Pull Request
Light step already prevented the damaging squash that happened, but
still did the knockdown. I think it's thematically appropriate for
people who watch their step to not accidentally throw people to the
side. ESPECIALLY BEEPSKY AND MEDIBOTS AND JANIBOTS. THAT IS JUST HORRID.

## Why It's Good For The Game
I take the quirk because of me not wanting to hurt them over by
accidentally walking into them. The knockdown is still annoying as hell
even when I do play my micro and someone walks into me. Everything
functions as normal when not having light step. Bots doing it is extra
un-fun.

## Proof Of Testing
I tested it and it works

<details>
<summary>Screenshots/Videos</summary>

</details>

## Changelog

🆑
balance: Light step now prevents you from knocking down micros.
balance: Walking intent now prevents you from knocking down micros
balance: small bots (janibots, medibots, etc.) can no longer knock down
micros.
/🆑
2026-02-07 20:16:13 +02:00
..
2025-12-13 10:44:01 +01:00
2025-10-02 18:15:25 +02:00
2025-09-07 09:24:34 +02:00
2024-10-09 02:03:50 +02:00
2024-11-25 18:54:51 -05:00
2026-02-02 00:51:17 -05:00
2024-10-19 08:04:33 -07:00
2025-09-07 09:24:34 +02:00
2024-10-19 08:04:33 -07:00
2025-01-11 11:38:00 -08:00
2025-10-07 20:28:59 +02:00
2025-01-22 20:50:07 -07:00
2025-01-28 03:12:59 +01:00
2025-07-11 18:07:40 -04:00
2025-10-07 20:28:59 +02:00
2024-10-19 08:04:33 -07:00
2025-10-02 18:17:38 +00:00

Datum Component System (DCS)

Concept

Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward its arguments with a SendSignal() call. Now every component that want's to can also know about this happening.

HackMD page for an introduction to the system as a whole.

See/Define signals and their arguments in __DEFINES\components.dm