Files
Bubberstation/code/datums/components
SyncIt21 35d008dfab General maintenance for inducer (#86929)
## About The Pull Request
**1. Qol** 
- Adds examines & screentips for screwdriver act, inserting & removing
cell

**2. Code Improvements**
 - Autodocs & removes some unused/redundant vars
 - Corrects return values of `screwdriver_act()`
 
**3. Fixes**
- Fixes #85408. Charging is consistent with cell rating & scales for
higher tier cells
- Syndicate inducers now uses super batteries not cells so they have
higher charge
 
**4. Refactor**
- Moved attack chain to `item_interaction()` & `interact_with_atom()` &
removes a lot of procs to merge with this new attack chain
 

## Changelog
🆑
qol: adds extra examines & screentips for inducer
fix: inducer charging rate scales with cell rating
fix: syndicate inducers now have correct charge & batteries installed
refactor: inducer attack chain has been improved & redundant vars/procs
have been removed, report bugs on github
/🆑

---------

Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-10-06 18:27:40 +00:00
..
2024-08-21 17:07:02 +12:00
2024-05-16 19:54:00 -07:00
2024-08-15 01:28:21 +01:00
2024-05-16 19:54:00 -07:00
2024-05-16 19:54:00 -07:00
2024-08-23 21:49:46 +02:00
2024-08-21 17:07:02 +12:00
2024-03-27 16:49:46 -06:00
2024-07-15 16:28:41 +01:00
2024-05-16 19:54:00 -07:00
2024-08-02 23:12:35 +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