Files
Bubberstation/code/datums/components
Jacquerel d439808c2a Cursed quirk doesn't go away after triggering a single time (#75477)
## About The Pull Request

Fixes #75471
Someone added some optional initialise arguments and forgot to make an
important one optional, leading to it always setting the "permanent"
value to "null", which of course evaluates falsily to FALSE.

## Why It's Good For The Game

If you take this quirk you _want_ to be repeatedly pulverised by vending
machines until your skull pops. We shouldn't deny people their agency.

## Changelog

🆑
fix: The Cursed quirk will once more plague you with bad luck for your
entire shift rather than just once.
/🆑
2023-05-17 18:47:36 -06:00
..
2023-05-07 22:45:20 +00:00
2023-05-07 23:52:03 -07:00
2023-05-15 04:27:43 +00:00
2023-04-05 16:54:22 +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