mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-08 15:47:52 +01:00
5a1eb6c823
* Sneeze Rework: Projectile Combat Edition (#83361) ## About The Pull Request Reworks sneezing. Instead of a range check that checks if you're facing someone, it is now a skill check https://github.com/tgstation/tgstation/assets/7501474/c11ffa16-9bd2-4ed1-8022-2094360657bc All sneezes shoot projectiles, but depends on the virus if they're infectious. Using the sneeze emote is the only method that doesn't shoot a sneeze ## Why It's Good For The Game I think the invisible infection mechanics are unfun. A lot of station dangers challenge your knowledge and mechanical skill, while viruses are gotten by being around people in a roleplay game. You can get a round seriously ruined if you walk past someone with a sneezing virus and don't immediately rush spaceillin or chemistry, which I don't think is mechanically interesting. Now if you get infected, it's a skill issue. Get good and dodge the sneeze Note that this is just one method of infection. I didn't touch coughing and airborne viruses, which do constant area checks and infect everyone around. I plan to, but not now. I'll probably make coughing do a cone or something, and ignore the airborne viruses since they can't be modified and are generally less broken ## Changelog 🆑 balance: You can now dodge sneezes balance: Infectious simple diseases that use sneezes now infect with sneezes and have lowered airborn transmission balance: Damageless attacks, projectiles, hugs etc no longer drain shields /🆑 - [x] Make sneezes shoot to your cursor so you can either intentionally sneeze on people or sneeze away from people if you react fast --------- Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com> * Sneeze Rework: Projectile Combat Edition --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@ 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.