## About The Pull Request
One of the more recent incidents involving viral outbreaks utilized
these viruses to easily produce a ton of advanced, mutated diseases out
of the floor diseases. You can get some details here:
https://github.com/tgstation/tgstation/issues/90054
These diseases have bespoke behaviours, yet are capable of being
mutated. It doesn't really make much sense for them to be advanced
diseases because of their unique behaviour. Given it starts with a flag
that indicates that it is meant to not spread, but ,obviously, mutating
it causes it to become contagious anyway, we've just made them basic
viruses with some of the relevant parts of the symptoms they were using
added in.
## Why It's Good For The Game
It makes it too easy to get an advanced virus with which to mutate.
Which results in...well, a Urgathoan/Nurgle Incident waiting to happen.
Don't drink spoiled milk, kids. Or do if you're based.
## Changelog
🆑
code: Changes floor diseases from advanced diseases into basic diseases.
Should mostly function the same, except you can't mutate them.
/🆑
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.