Files
Bubberstation/code/datums/components
Lucy 4ac6f4226b Make it easier to click on heretic influences (#82375)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

This makes it so heretic influences are easier for heretics to click:
- Clicking a codex cicatrix on the turf of an influence will let you the
drain said influence, rather than having to click directly on the sprite
- Any right click on the turf of an influence will be redirected to the
influence. This really isn't as necessary as the first bit, but eh, why
not, doesn't hurt.




https://github.com/tgstation/tgstation/assets/65794972/124393a4-337d-49af-9f67-3e865e151aeb



## Why It's Good For The Game

Way too easy to misclick the sprite due to the animation - last thing
you want is to _accidentally start drawing a rune_ when you're trying to
sneakily drain a reality butthole.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
qol: Makes it easier for heretics to click on influences without
accidentally drawing a rune with their codex cicatrix because the
animation shifted and made you click on the floor instead.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2024-04-02 05:23:02 -04:00
..
2023-10-16 16:14:31 +02:00
2024-03-29 22:26:35 -06:00
2023-10-11 16:58:29 -06:00
2023-12-25 13:00:50 +01:00
2024-02-11 03:17:55 +01:00
2024-02-29 04:24:10 +00:00
2024-03-21 18:47:04 -06:00
2023-12-04 14:42:43 -08:00
2023-11-12 09:25:59 +00:00
2024-03-16 12:06:02 +00:00
2023-10-21 23:36:48 +00:00
2024-01-26 02:23:24 +01:00
2023-10-08 03:04:35 +01:00
2023-12-04 14:42:43 -08:00
2024-03-29 22:26:35 -06:00
2023-10-05 13:20:16 -06:00
2024-03-27 16:49:46 -06:00
2023-10-16 16:14:31 +02:00
2024-03-21 20:30:56 -06:00
2024-03-16 12:06:02 +00:00
2023-08-14 12:39:30 -06:00
2023-12-09 13:31:50 +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