Files
Bubberstation/code/datums/components
MrMelbert 9420370cd1 Zombies use the regenerator component (#79208)
## About The Pull Request

https://github.com/tgstation/tgstation/pull/79207#discussion_r1368165636

Simple enough, just moves zombie regeneration to the regenerator
component.

Adapts the component slightly to support it. Minor code cleanup, etc
etc.

## Why It's Good For The Game

Besides more consistent behavior, it gives a lot more user feedback on
how zombie regeneration works.

Makes 'em glow green and gives a visible message when it starts, rather
than just needing to guess (as it is currently).

## Changelog

🆑 Melbert
refactor: Refactored zombies to use the regenerator component. Now
they'll have a slight glow/animation when the regeneration actually
kicks in.
/🆑
2023-10-23 23:50:58 -06:00
..
2023-10-16 16:14:31 +02:00
2023-09-19 19:07:51 +00:00
2023-10-11 16:58:29 -06:00
2023-10-21 23:36:48 +00:00
2023-10-08 03:04:35 +01:00
2023-08-16 13:04:41 -06:00
2023-07-12 18:52:02 -06:00
2023-10-05 13:20:16 -06:00
2023-10-16 16:14:31 +02:00
2023-08-14 12:39:30 -06:00
2023-10-14 15:53:28 -07:00
2023-09-07 20:25:52 +01: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 it's 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