Files
Bubberstation/code/datums/components
LT3 88cde17ea3 Surgery speed bonus revert/refactor (#2569)
## About The Pull Request

Skyrat reverts
- Removes the Skyrat surgery speed bonus for 3 tiles of free space
- Removes Skyrat surgery mood debuff

Removes tend wounds slowdown on on dead people. Replaces with a slowdown
on husks.
Slightly buffs tend wounds damage healed per cycle

Introduces new surgery speed bonuses, based on TG speed mods:
- Speed bonus for operating table
- Speed bonus for operating computer
- Speed bonus for using sterilizine/cryostylane now applies to all
surgery steps, not just the one where the reagent is applied
- Speed bonus for anaesthetics/painkillers

Visual feedback of what your surgery speed modifier is

## Why It's Good For The Game

The Skyrat check is dumb and doesn't solve any problems, rather creates
them with TC still being surgery central except now people are screaming
at you to move, which there isn't enough space to do in the TC anyways.

Two doctors working on a patient should not slow down surgery. This
should not count as a clean, quiet environment for lightspeed surgery:


![dirty-medbay2](https://github.com/user-attachments/assets/abe9dfa3-144a-4fae-a9eb-c65afa8d50ee)

## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>


https://github.com/user-attachments/assets/abea1be8-463c-451f-a58b-501600bab8f0

</details>

## Changelog

🆑 LT3
balance: Removed Skyrat surgery speed bonus
balance: Removed Skyrat negative mood events for surgery
balance: Removed operating tables automatically applying numbing
balance: Added surgery speed bonus for operating computers
balance: Added surgery speed bonus for anaesthetic/painkillers
balance: Added surgery speed bonus for sterilizine/cryostylane treatment
balance: Adjusted surgery speed penalty for stasis beds
balance: Removed speed penalty for tending wounds on dead bodies,
replaced with penalty for husked body
balance: Increased tend wounds healed damage per cycle
balance: Increased functional duration of sterilizine
balance: N2O is now eligible for the analgesia surgery bonus
balance: Surgery and treatment room scrubbers filter N2O by default
qol: Bubble notification for surgery speed and damage healed
qol: Medical HUD, health analyzer, and operating computer provide tend
wounds results
qol: Text log indicates what surgery bonuses are active, and which are
available
add: added lidocaine and sterilizine to surgery trays, NanoMed, and
NanoDrug
image: anesthetic machine is now breath machine, usable with all gas
types
/🆑

---------

Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
2025-01-12 16:10:39 -05:00
..
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-11-25 18:54:51 -05:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-12-24 11:06:36 -08:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2025-01-11 11:38:00 -08:00
2024-10-19 08:04:33 -07:00
2024-12-07 16:17:17 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-10-19 08:04:33 -07:00
2024-11-11 00:43:41 -08:00
2024-10-19 08:04:33 -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