-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Engine Update & EE Surgery #481
base: master
Are you sure you want to change the base?
Engine Update & EE Surgery #481
Conversation
# Description ## The mythical surgery system. Heard whispered in hushed tones in the corners of [REDACTED], it has been real since 2 years ago. If you listen very carefully you might be able to hear the sound of arachne crashing the server. Jokes aside. Lets set some expectations, ideally this will not mess too much with existing body code, besides trying to not die from all the fucking test fails, all the while introducing needed systems for handling wounds, surgery, part/organ manipulation, and displaying all of those to the players. The PR in its current state **is** working properly, you can pick it up and get surgery on your server today, though of course its buggy due to the unhandled issues it has right now. If you do pick it up, give me a heads up and I'll see if I can help you out. This PR is mostly intended as a public roasting ground for my shitcode, so that other contribs/maints can pitch in to help improve it as well. --- # TODO - [ ] FIX MY FUCKING SHITCODE AAAAAAAAAAAAAAAAAAAAAAAAAA - [x] Have fun :) --- # Demo/Walkthrough <p> [![Surgery Demo](https://i.ytimg.com/vi/UhxS5b3LC-A/maxresdefault.jpg)](https://www.youtube.com/watch?v=UhxS5b3LC-A "Surgery Demo") </p> --- # Tasks currently being worked on: - [x] Porting an upgraded body doll that is less shit to use. - [x] Add a completely innocuous felinization/defelinization surgery. (Highly sought after feature :D ) - [x] Implement pizza limb sprites and add em as a surgery (soon ™️) - [ ] Add CyberneticsSystem - [ ] Add a series of cybernetic limbs with special properties, and different susceptibilities to EMPs - [ ] Add the associated surgeries to cybernetic implants and their associated maintenance. - [ ] Tweak Cybernetics Traits to use CyberneticsSystem, and overwrite the entity's limbs on spawn (I LOVE SHITCODE) - [ ] Add Cybernetic Limbs to Research - [x] Start adding a shitload of Shitmed comments on wherever I made changes, since we're getting fairly close to what I could call a stable v1 - [ ] Refactor SurgeryBUI to be slightly less shitcodey, and properly use BUI states instead of a half-assed BUIMessage. - [ ] Separate harpy wings into two distinct wings rather than a single layer. --- # Reported bugs that I haven't been able to replicate - Apparently returning to the body kicks you back to the body instead of the entity that the brain is attached to? - Disconnecting and reconnecting after a brain/head transplant makes the client crash. Seems to be related to identity. - Transplanting a head sometimes makes it so that you cannot strip other entities. --- # Changelog 🆑 Mocho - add: A week has passed. Surgery is here. --------- Signed-off-by: gluesniffler <[email protected]> Co-authored-by: FoxxoTrystan <[email protected]> Co-authored-by: goet <[email protected]> Co-authored-by: Saphire Lattice <[email protected]>
This is an automated Pull Request. This PR updates the GitHub contributors in the credits section. Co-authored-by: SimpleStation Changelogs <[email protected]>
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> An attempt to do all engine updates in one go. Not focusing on content associated, only what's needed for it to run and any bug fixes. --- # TODO - [x] Fix bug where unbuckling resets you to lying down. - [x] Fix bug where you can no longer get up after lying down. - [x] See what else I broke. --- --------- Signed-off-by: sleepyyapril <[email protected]> Co-authored-by: metalgearsloth <[email protected]> Co-authored-by: Leon Friedrich <[email protected]> Co-authored-by: Tayrtahn <[email protected]> Co-authored-by: VMSolidus <[email protected]> Co-authored-by: Nemanja <[email protected]> Co-authored-by: ShadowCommander <[email protected]> Co-authored-by: Plykiya <[email protected]> Co-authored-by: plykiya <[email protected]> Co-authored-by: Pieter-Jan Briers <[email protected]> Co-authored-by: metalgearsloth <[email protected]> Co-authored-by: Chief-Engineer <[email protected]> Co-authored-by: deltanedas <[email protected]>
# Description I hate that I have to check if the map even exists at all. How the hell is there a station even existing in the first place if the default loaded map is NULLSPACE?! GetSpawnableStations should have returned a list containing zero stations if that was the case, which would then exit out. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. I hate these stupid tests. # Changelog No CL because this isn't player facing.
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> Goal of this PR is to fix the stamina system, as was caused by #1220. --- # Changelog <!-- You can add an author after the `:cl:` to change the name that appears in the changelog (ex: `:cl: Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> :cl: - fix: Fixed stamina system Co-authored-by: sleepyyapril <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>
# Description Add real world Day/Night cycle changing, with Ambient color interpolation and some configurable features for mappers. High inspired by [Nuclear-14](https://github.com/Vault-Overseers/nuclear-14.git) and [Crystall Punk 14](https://github.com/crystallpunk-14/) TimeCycle use 24h day calculation, instead coefficient, like in N14. --- # TODO [ ] - Add more examples/prepared map palettes for Day/Night ambient. [ ] - (Optional) Move all palette description into List of variables, instead calling `IPrototypeManager` every minute passing. --- https://github.com/user-attachments/assets/cc5d1b8c-bd25-4042-8cee-e2edfa0d9acc ![image](https://github.com/user-attachments/assets/abcdc11d-fdb1-4b48-8599-0116a5797f8b) --- # Changelog :cl: - add: Added Day/Night time cycle for admins and mapers.
# Description First in a series of PRs to introduce bugfixes and updates to Shitmed, this will generally feature PRs from Goobstation or Backmen as well since they are actively helping me maintain the code. Usual Shoutouts: Deltanedas: Goob-Station/Goob-Station#882 --- # Changelog :cl: Mocho, Deltanedas - add: You can now perform surgery as a monke. Rejoice. - add: You can perform surgery on a lot of animals now, I missed a lot of them so just ask if you want any particular critter to get it. - tweak: Entities now perish after 60 seconds of losing their heart and/or brain. - fix: Entities properly take asphyxiation damage after losing their brain. - fix: Torsos being gibbable, which would break surgery or just about anything. - fix: Items not being removed from their respective slots if the parts were gibbed rather than dropped. - fix: Animal organs not being usable properly in surgeries - fix: Cyborg limbs are now usable as pseudo-peg arm/legs. --------- Signed-off-by: gluesniffler <[email protected]> Co-authored-by: FoxxoTrystan <[email protected]> Co-authored-by: goet <[email protected]> Co-authored-by: Saphire Lattice <[email protected]>
# Description Quick fix to prevent the Self-Aware trait from crashing the client of a player when examining their character's health. [`HealthExaminableSystem.CreateMarkupSelfAware`](https://github.com/Simple-Station/Einstein-Engines/blob/6945e3027bc14eac1de0099d30f8f35b19a3034e/Content.Shared/HealthExaminable/HealthExaminableSystem.cs#L119) attempts to access the `AnalyzableTypes` and `DetectableGroups` data fields from [`SelfAwareComponent`](https://github.com/Simple-Station/Einstein-Engines/blob/6945e3027bc14eac1de0099d30f8f35b19a3034e/Content.Shared/Traits/Assorted/Components/SelfAwareComponent.cs), but since they are only initialized in the server and `null` in the client, the client crashes. I believe this could be related to the recent trait overhauls, but not sure. I just fixed it by adding `AutoNetworkedField` to those fields to automatically propagate the initialized values. Other traits might have a similar bug to this. ## Changelog :cl: Skubman - fix: Examining yourself with the Self-Aware trait will no longer crash your game client.
# Description Adds popups for surgery steps in Shitmed that every player within PVS range can see. This allows other players to see if the correct procedure is being performed. This PR also includes locale text for the new procedures and steps in #1240. ## Media **Remove Brain / Insert Brain** https://github.com/user-attachments/assets/ac20afa1-df74-48ab-b1d5-2e9a273dfba2 <details><summary>See more</summary> **Amputate Right Arm** https://github.com/user-attachments/assets/17f78683-6d3b-44ee-aea3-bb6987844fdc **Attach Right Arm** https://github.com/user-attachments/assets/584d4da2-d8b0-4c82-a323-26636e7fa4b8 </details> ## Changelog :cl: Skubman - add: Surgery step descriptions (like making an incision, removing/attaching limbs and organs) are now shown as popups to everyone in range upon the start of the step. This makes it clear which surgical procedure is being done and to which body part. No more stealthy brain-stealing in front of everyone!
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> Fixes the silly heisentest. --------- Co-authored-by: sleepyyapril <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>
…errypick/ee-surgery
…errypick/ee-surgery
…errypick/ee-surgery
…errypick/ee-surgery
…errypick/ee-surgery
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> Mass bug fixing, for bugs related to #1220. Feel free to link or send bugs. Fix list: - #1242 - #1243 - #1244 - space-wizards/space-station-14#28084 - space-wizards/space-station-14#28282 - Actually fixed PirateRadioSpawnRule heisentest (with a bandaid) (I cancel if it's 0) - Simple-Station/Einstein-Engines#1263 --- # Changelog <!-- You can add an author after the `:cl:` to change the name that appears in the changelog (ex: `:cl: Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> :cl: - fix: Fixed chair visuals drawing depth wrongly if you sat in a north-facing chair. - fix: Fixed buckling doing several buckles each time you did one. - fix: Fixed the magic mirror. - fix: Fixed beds re-positioning you every few seconds. - fix: Fixed E not opening containers that are in another container. - fix: Fixed disposal systems not flushing or ejecting properly. --------- Co-authored-by: sleepyyapril <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> Co-authored-by: Nemanja <[email protected]> (cherry picked from commit 41501bd335c5e1e2e65b5d2ad040a3ae6851d4e8)
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> + Buffed applicable medication heal values. + Buffed applicable medication stack sizes. + Slightly buffed dylovene, burn, and brute chems. + Buffed applicable medication doAfter delay from 3s to 2s. --- ## Why / Balance <!-- Discuss how this would affect game balance or explain why it was changed. Link any relevant discussions or issues. --> This change was made with the advent of the new Limb Damage system. This PR seeks to achieve making SS14 Medical more equivalent to SS13 Medical when it comes to healing damage values. This was done as Bruise Packs and Ointment only heal 5 Brute or 5 Burn respectively when applied to a limb. When each limb has a 100 Crit threshold, this can make it extremely hard even with surgery to heal limbs in the absence of Chemicals. Furthermore on higher pop, this will lead to people burning through applicable meds even faster than before Limb Damage was implemented. It would take 34 bruise packs to heal someone with 170 Blunt spread out across their limbs, with this change it would reduce that to 12 bruise packs. Full list of numerical val changes: - Healing component doAfter Delay reduced. was 3s, now its 2s. - Applicable medical items now have a max stack size of 15 (was 10). - Ointment heals 15 of each burn type, 10 caustic (was 5 of each burn type, 1.5 caustic) - Mesh now heals 20 of each burn type (was 10 of each burn type). - Bruise Packs now heal 15 of each brute type (was 5 of each brute type) - Sutures now heal 20 of each brute type (was 10 of each brute type) - Bloodpacks now heal 2.5 Bloodloss & restore 10% bloodlevel (was .5 Bloodloss and 5%) - Gauzes now heal 15 Slash and 20 Pierce (was 5 Slash and 10 Pierce) - Dylovene now heals 1.5 Poison per .5u (was 1 Poison per .5u) - Bicaridine now heals 2.5 Brute per .5u (Was 2 Brute per .5u) - Dermaline now heals 2 Burn per .5u (was 1.5 Burn per .5u) - Epinephrine now heals 1 Burn & 1 Brute per .5u (was .5 for each per .5u) - Kelotane now heals .5 Burn per .5u (was .33 Burn per .5u) - Omnizine now heals 3 Burn, Toxin, Airloss, and Brute per .5u (was 2 per .5u) - Lacerinol now heals 4 Slash per .5u (was 3 per .5u) - Bruizine now heals 4 Blunt per .5u (was 3.5 per .5u) # TODO <!-- A list of everything you have to do before this PR is "complete" You probably won't have to complete everything before merging but it's good to leave future references --> - [x] Cherry-pick Medical changes merged in Goobstation --- <!-- This is default collapsed, readers click to expand it and see all your media The PR media section can get very large at times, so this is a good way to keep it clean The title is written using HTML tags The title must be within the <summary> tags or you won't see it --> --- ## Breaking changes <!-- List any breaking changes, including namespaces, public class/method/field changes, prototype renames; and provide instructions for fixing them. This will be posted in #codebase-changes. --> Should values be overtuned, they can be reduced in a future PR or before this PR is merged. **Changelog** <!-- Add a Changelog entry to make players aware of new features or changes that could affect gameplay. Make sure to read the guidelines and take this Changelog template out of the comment block in order for it to show up. Changelog must have a 🆑 symbol, so the bot recognizes the changes and adds them to the game's changelog. --> 🆑 - tweak: Increased applicable medication heal values. - tweak: Increased stack size of applicable medications. - tweak: Slightly increased dylovene, burn, and brute chemicals heal values. - tweak: Decreased Medical item application time from 3s to 2s --------- Signed-off-by: sleepyyapril <[email protected]> Signed-off-by: Tmanzxd <[email protected]> Co-authored-by: sleepyyapril <[email protected]> (cherry picked from commit b431d24f86f94433ea0c53982db83e40ef1d3f2c)
# Description ![image](https://github.com/user-attachments/assets/b10f1e33-94fb-4ded-a644-b9945b58dbc5) Honey wake up, another shitmed PR with 5 features and a trillion bugs! I love bloat. --- # Known Bugs - A lot of shit with changelings lol - Markings suddenly disappear from your entity apparently at random. Wizden exclusive issue as of now. - Fire heretics explode when ascending due to part damage shitcode (sorry) - Some exceptions/null point references at round end, tentatively related to salvage corpses. - Slots having wonky behavior due to not being networked. More of a broad issue with how I implemented them initially. - Arachne are FUCKED with surgery, I was incredibly tempted to set them to roundstart: false, but I'll try to hotfix it this week. --- # Changelog :cl: Mocho, Deltanedas - add: Ported Ghetto Surgery from Deltanedas! - add: Ported fishops organs from Deltanedas! - add: Added different step durations to each surgery step. - add: Added a T2 research for advanced surgical tools - add: Added a T3 research for an omnitool for surgery. - add: Added Surgical and Advanced Surgical modules for Mediborgs - add: Mediborgs can now perform surgery! - add: Added lobotomies as an operation. Godspeed you psychopaths. - add: Added cybernetic arms, legs and eyes. - add: Added EMP weaknesses to all cybernetic parts (the day of reckoning will come for IPCs soon) - add: Losing your eyes now blinds you. - fix: Fixed a few species that did not inherit from BasePart's, thus taking damage types they shouldn't on their limbs. - fix: Fixed harpy lungs not being usable in surgeries. - fix: Fixed biosynthetic and other printable parts not allowing you to attach body parts to them. - fix: Fixed fire being able to destroy your chest. - fix: Fixed entities being able to take over your body by just inserting a brain or another head on top of you. - fix: Fixed some shitcode that didnt let rejuvenate or godmode work properly. - fix: Fixed bionic arm, and cybernetic eyes traits not working properly due to shitty networking. - tweak: Increased tend wounds's speed by double, and bumped up the values on its calculations. DEATH TO TOPICALS, LEAVE THOSE TO TIDERS. - tweak: Beheading an entity now doesnt let it move, speak, and forces it to the ground immediately (literally 1984!!11!!) - tweak: Changed sprites on most surgical tools to now use /tg/ sprites. - tweak: Unbound shitmed targeting doll keybinds by default (did you know we have those). --------- Signed-off-by: gluesniffler <[email protected]> Co-authored-by: FoxxoTrystan <[email protected]> Co-authored-by: goet <[email protected]> Co-authored-by: Saphire Lattice <[email protected]> (cherry picked from commit 2eafa0d47e7b9a3270ae797f82dd7b1772dffb15)
# Description Fixes several bugs in the lobotomy procedure. The lobotomy effect is now stored in the brain instead of the body, so transferring a lobotomized brain will still give the lobotomy effects, and a brain transplant to a body where a lobotomy occurred no longer applies the lobotomy effects. The "Mend brain tissue" procedure to reverse a lobotomy has been unlocked after a bug prevented it from showing in the surgery UI. Lobotomies now add the `ClumsyComponent`, which makes the lobotomized target as clumsy as clowns. ## Technical Details This deletes [SurgeryComponentConditionComponent.cs](https://github.com/Simple-Station/Einstein-Engines/compare/master...angelofallars:Einstein-Engines:fix-lobotomy?expand=1#diff-3786e2be1879fd877a8b501352bbd92baa3a17aecfa4a62827ad41497deb0fd7) which was only used for the lobotomy procedures (incorrectly, it was checking for `OhioAccentComponent` in the body part) in favor of [SurgeryPartComponentConditionComponent.cs](https://github.com/Simple-Station/Einstein-Engines/compare/master...angelofallars:Einstein-Engines:fix-lobotomy?expand=1#diff-7e180742b3a6f00b9f867d3ee4e8891dd00587dc4a2da8ad5e199180a387d18d) and [SurgeryBodyComponentConditionComponent.cs](https://github.com/Simple-Station/Einstein-Engines/compare/master...angelofallars:Einstein-Engines:fix-lobotomy?expand=1#diff-249e5a937ba929ffc76f85e8a43f17918afc9ba866e81f4ea4eba2c90fd0c408). These two components are currently unused as the lobotomy procedures use a new condition component checking for the brain's `OrganComponent.OnAdd` field, but they provide a way to check for components on the body part and on the body, respectively. ## Media **Lobotomy** ![image](https://github.com/user-attachments/assets/4deb80a8-30d1-4a01-9caa-bc288a88ba95) **Mend brain tissue** ![image](https://github.com/user-attachments/assets/44403092-cac1-4d12-bd25-ebb7f3f1bc53) **Remove organ step picture** ![image](https://github.com/user-attachments/assets/85d6960a-1f54-4525-ad53-84b039c91fda) ## Changelog <!-- You can add an author after the `:cl:` to change the name that appears in the changelog (ex: `:cl: Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> :cl: Skubman - add: The lobotomy procedure makes the target clumsy like the clown. This makes them bonk when climbing tables and makes guns they're shooting blow up on their face. - tweak: The lobotomy step now requires a scalpel instead of a drill. - fix: Enabled the "Mend brain tissue" surgical procedure on a lobotomized target. - fix: The lobotomized effect is now stored in the brain instead of the body. The same brain stays lobotomized throughout brain transplants, and transferring a normal brain to a body where a lobotomy occurred no longer applies the lobotomized effect. - fix: The lobotomy procedure now shows the proper popup during the lobotomization step. - fix: Removed the ability to perform lobotomies on bodies without a brain. - fix: The "Remove organ" surgery step on the UI now properly shows the retractor sprite instead of the hemostat. --------- Co-authored-by: sleepyyapril <[email protected]> (cherry picked from commit 1895f3addc871e3ad18845c22c61f422f9807107)
"We don't want" is a vague definition. Most of the playerbase seems to want it. But it is not a fully finished NewMed system, just a part of it, with its own bugs and quirks (which have slowly been being fixed however), which is why from maintenance perspective it's not the best addition at the moment. It's possible to disable most of its effects on the gameplay, but it's simply not worth it. (at least in my opinion). And besides, goobstation has been hosting surgery for months now and is still going without complaints I think. |
my "We don't want" statement was based on the inflection used here "Merging surgery is unfortunately a necessary requirement to performing the engine update." if it is "unfortunately necessary" it sounds like something we aren't wanting to do but are being forced to. |
Well, yeah, we can either do engine updates ourselves (which is a monumental amount of effort), or merge EE's mostly-successful attempt at doing them all at once. This PR does the latter, at the cost of bringing a feature some people were advising again. I myself think the positives outweigh the negatives, but not everyone may have the same opinion. |
I'm down with adding surgery |
Looks good for me, a reminder that to merge you need at least 2 Maintainer Approval. |
I should probably wait until the next update then, to see if any concerns or issues arise. Or until Floofmin voices their opinion. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
…o floof/cherrypick/ee-surgery
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Description
Whispered within maintenance ha- wait, we've been here twice already. Ahem. What was the line again?
This merges the Einstein Engines' Robust Toolbox update to v237.1.0, as well as newmed and all followup changes. To limit the scope and impact of this PR, only the most important changes were merged. The only new feature is newmed/surgery.
Merging surgery is unfortunately a necessary requirement to performing the engine update. However, Einstein Engines' surgery system has gone a long way and most of the critical issues with it have been fixed.
The following changes have been performed floofstation-side:
Note: EE has included some of Wizden's roleplay guidelines in among the new rules. I had to comment them out for now; they will need to undergo admin discussion in case they contradict floofstation's rules and roleplay expectations.
TODO
Test:
Known bugs:
Media
Rules:
weeee-2025-01-13_20.34.39.mp4
UristMcRagdoll:
naming.sucks.mp4
Random testing: some basic stuff, locker fills, glimmer wisp:
uhhh.naming.again.mp4
Changelog
🆑