Files
Bubberstation/code/datums/components
Goat 873c4951c3 Adds a var to specify if damage should damage clothes (#86755)
## About The Pull Request
Adds a new var called `wound_clothing` to `apply_damage` and
`receive_damage` which will be checked in `check_woundings_mods` if it
should also apply the damage to the jumpsuit. It's `TRUE` by default.
Changes `irradiated` and `body_temperature_damage` to not wound
clothing. This also removes the `10 >= damage` check for burns for
clothing damage as it was there to prevent freezing from harming clothes
which is no longer a problem.
## Why It's Good For The Game
Not all brute/burn should also the damage the clothes. This allows for
damage to specify if it should damage clothes or not. Radiation burns
should not shred my clothes. Code that prevents all damage equal or
below ten burn from damaging clothes is BAD, my clothes should BURN.
`TRUE` by default so everything else should work normally.
fix: #84046 
## Changelog
🆑 Goat
balance: burn damage equal or under to ten will now damage your jumpsuit
(does not apply to internal temp damage)
fix: radiation burns no longer damage your jumpsuit.
code: added a new var to applying damage to set if it should apply
damage to clothes.
/🆑
2024-09-19 23:30:52 +02:00
..
2024-08-21 17:07:02 +12:00
2024-05-16 19:54:00 -07:00
2024-06-05 10:17:34 -04:00
2024-08-15 01:28:21 +01:00
2024-05-16 19:54:00 -07:00
2024-06-13 13:29:45 -07:00
2024-04-16 17:48:03 -06: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-29 22:26:35 -06:00
2024-03-27 16:49:46 -06:00
2024-07-15 16:28:41 +01:00
2024-08-21 17:07:02 +12: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