Files
Bubberstation/code/datums/components
Ghom c5c5446cf1 Improved dooting for spectral instruments. New fantasy suffix. (#88489)
## About The Pull Request
The spooky element is quite old with a lot of single-letter variables.
Had too many species typechecks, and there's an issue that's been
bothering me, so I had to bring the code a bit up to date.

Furthermore the element wasn't used anywhere but on a couple of very
rare instruments, so I've been thinking a likewise very rare fantasy
suffix (mythril and wizard rpg event) would've been cool.

## Why It's Good For The Game
This will fix #88474. I believe the single-use versions of the spectral
instruments should be spent once someone is skeletonized, not before. It
was my fault for not noticing it earlier.

## Changelog

🆑
fix: Fixed single-use spectral instruments losing their powers before
skeletonizing anyone.
add: A very rare spooky suffix for mythril items and the wizard RPG
event.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2025-01-23 17:54:38 +00:00
..
2024-10-09 02:03:50 +02:00
2024-05-16 19:54:00 -07:00
2025-01-02 14:15:23 +00:00
2024-05-16 19:54:00 -07:00
2024-08-21 17:07:02 +12:00
2025-01-22 20:50:07 -07:00
2024-07-15 16:28:41 +01:00
2024-10-09 02:03:50 +02:00
2024-10-07 13:34:36 +02:00
2024-05-16 19:54:00 -07: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