mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-29 03:32:28 +00:00
* Initial commit * Add RNG tip behavior, including free items. * Add some additional checks * Small cleanups * Add squishing, drop normal damage to 40 * Haha, unless? (this is how it is on tg) * Datumizes vendor tips, part one * Datumizing, part 2 * Remove unused * Remove old "key" var * Fix .proc call * double dwarf damage * Update code/game/machinery/vendors/vending.dm Thanks, sean Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com> * Add a warning hit * squish component review * update visible message * remove extra defines * charlie review * Add explosion tilts, some slight cleanups * Review changes - Tweaks self knockover damage slightly to not be the same as crit damage - farie's reviews * Unindent, clean up crit logic * Refactor some code out of main vendor proc also re-adds the head-popping crit lol * making linter happy :) * Removes global list in favor of static one --------- Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>
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.
See this thread for an introduction to the system as a whole.