Skip to content
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

Shitmed: Implementing Existing Newmed Code Into SS14 #1159

Open
wants to merge 44 commits into
base: master
Choose a base branch
from

Conversation

gluesniffler
Copy link
Contributor

@gluesniffler gluesniffler commented Oct 28, 2024

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
  • Have fun :)

Demo/Walkthrough

Surgery Demo

---

Tasks currently being worked on:

  • Porting an upgraded body doll that is less shit to use.
  • Add a completely innocuous felinization/defelinization surgery. (Highly sought after feature :D )
  • 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
  • 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.

@github-actions github-actions bot added Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: UI Changes any XAML files Changes: YML Changes any yml files Changes: Sprite Changes any png or json in an RSI Changes: Audio Changes any ogg files labels Oct 28, 2024
@SimpleStation14 SimpleStation14 changed the title Shitmed: Implementing Existing Newmed Code into SS14 Shitmed: Implementing Existing Newmed Code Into SS14 Oct 28, 2024
Copy link
Contributor

github-actions bot commented Oct 28, 2024

RSI Diff Bot; head commit e58d88a merging into 04cdc14
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Interface/Targeting/Status/groin.rsi

State Old New Status
groin_0 Added
groin_1 Added
groin_2 Added
groin_3 Added
groin_4 Added
groin_5 Added
groin_6 Added
groin_7 Added
groin_8 Added

Resources/Textures/Interface/Targeting/Status/head.rsi

State Old New Status
head_0 Added
head_1 Added
head_2 Added
head_3 Added
head_4 Added
head_5 Added
head_6 Added
head_7 Added
head_8 Added

Resources/Textures/Interface/Targeting/Status/leftarm.rsi

State Old New Status
leftarm_0 Added
leftarm_1 Added
leftarm_2 Added
leftarm_3 Added
leftarm_4 Added
leftarm_5 Added
leftarm_6 Added
leftarm_7 Added
leftarm_8 Added

Resources/Textures/Interface/Targeting/Status/leftfoot.rsi

State Old New Status
leftfoot_0 Added
leftfoot_1 Added
leftfoot_2 Added
leftfoot_3 Added
leftfoot_4 Added
leftfoot_5 Added
leftfoot_6 Added
leftfoot_7 Added
leftfoot_8 Added

Resources/Textures/Interface/Targeting/Status/lefthand.rsi

State Old New Status
lefthand_0 Added
lefthand_1 Added
lefthand_2 Added
lefthand_3 Added
lefthand_4 Added
lefthand_5 Added
lefthand_6 Added
lefthand_7 Added
lefthand_8 Added

Edit: diff updated after e58d88a

@gluesniffler
Copy link
Contributor Author

dont be scared at the test fail count btw :)

tests DO NOT like recursive part dropping code as of now lmao

@github-actions github-actions bot added the Status: Merge Conflict FIX YOUR PR AAAGH label Oct 28, 2024
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@Crono209ggg
Copy link

Surgery is finally becoming a reality!!

@github-actions github-actions bot added the Status: Merge Conflict FIX YOUR PR AAAGH label Nov 7, 2024
Copy link
Contributor

github-actions bot commented Nov 7, 2024

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@bruhmogus
Copy link

found a bug (since this isnt actually merged i'll get executed for making a bug report ISSUE) in which if you take enough body damage to which it's crossed out with red lines and a grey background, it seems to be incapable of healing (through surgery***)

@gluesniffler
Copy link
Contributor Author

gluesniffler commented Nov 8, 2024

found a bug (since this isnt actually merged i'll get executed for making a bug report ISSUE) in which if you take enough body damage to which it's crossed out with red lines and a grey background, it seems to be incapable of healing (through surgery***)

Yeah I need to add a guidebook entry on the indicators since its hard to tell if its legitimate bugs, or people not knowing how it works.

Basically that state you describe is the "Disabled" part state, some parts such as hands, arms or legs cause negative effects while thats going on, the state will remove itself once you heal the part enough (should be 60-80% of its original integrity). I'll try to reproduce it but im almost sure its just confusion due to me not adding any information on the disabled state.

The health analyzer also needs some improvements to make this information clearer to the player, it will be worked upon over the course of the following two weeks along with refactors to surgery.

@bruhmogus
Copy link

bruhmogus commented Nov 8, 2024

found a bug (since this isnt actually merged i'll get executed for making a bug report ISSUE) in which if you take enough body damage to which it's crossed out with red lines and a grey background, it seems to be incapable of healing (through surgery***)

Yeah I need to add a guidebook entry on the indicators since its hard to tell if its legitimate bugs, or people not knowing how it works.

Basically that state you describe is the "Disabled" part state, some parts such as hands, arms or legs cause negative effects while thats going on, the state will remove itself once you heal the part enough (should be 60-80% of its original integrity). I'll try to reproduce it but im almost sure its just confusion due to me not adding any information on the disabled state.

The health analyzer also needs some improvements to make this information clearer to the player, it will be worked upon over the course of the following two weeks along with refactors to surgery.

oh, in that case there should probably be some kind of cap to the damage after disabled, to prevent someone being fucked because their corpse was in space for two minutes, like THERE NEEDS TO BE ONE, since i've dealt over 3000 poison trying to heal someone who was in a spaced room for less time than it takes to rot scratch that it just doesnt stop you from surgerying after a specific amount of damage NEVERMIND AGAIN, THAT WASNT EVEN ALL THE DAMAGE : sob :

@gluesniffler
Copy link
Contributor Author

gluesniffler commented Nov 8, 2024

Yup, tend wounds keeps going until the part is fully healed and the body doesnt have the matching damage type anymore.

As for the poison damage, skill issue, put gloves and mask on, dont commit malpractice :trollface:

If a body is that fucked, you should pivot to thinking of discarding, since its far cheaper in terms of time and resources to just attach new body parts, or move their brain to a donor body. Also remember you can reverse rot with a heart transplant as of now if you're hellbent on rescuing a given corpse.

@bruhmogus
Copy link

Yup, tend wounds keeps going until the part is fully healed and the body doesnt have the matching damage type anymore.

As for the poison damage, skill issue, put gloves and mask on, dont commit malpractice :trollface:

If a body is that fucked, you should pivot to thinking of discarding, since its far cheaper in terms of time and resources to just attach new body parts, or move their brain to a donor body. Also remember you can reverse rot with a heart transplant as of now if you're hellbent on rescuing a given corpse.

you can make the rats uneat a body by giving it a new heart... what.

@bruhmogus
Copy link

while we're on the topic of bugs, the surgery pain mood debuff seems to be broken. as in it literally never goes away. ever. i've waited entire three hour shifts with surgery at the START due to Space™ and was basically capped at mediocre because of tangerine saturine

epic webedit ops

Signed-off-by: gluesniffler <[email protected]>
@gluesniffler
Copy link
Contributor Author

while we're on the topic of bugs, the surgery pain mood debuff seems to be broken. as in it literally never goes away. ever. i've waited entire three hour shifts with surgery at the START due to Space™ and was basically capped at mediocre because of tangerine saturine

Whoops, didnt add the timeout attribute to the mood effect, fixed!

@gluesniffler
Copy link
Contributor Author

Also for any future reports remember that we have a bug thread on the EE server, probably will be less cluttery to put them there. :blunt:

@github-actions github-actions bot removed the Status: Merge Conflict FIX YOUR PR AAAGH label Nov 11, 2024
@gluesniffler
Copy link
Contributor Author

Getting ready for a first round of "harassing maintainers for reviews" Todos for now are:

  • Getting de-felinization surgery working, missing some functions and it should be good to go
  • Adding a CVAR that lets server operators disable Shitmed if i break the server or something. (gee i wonder if that would ever happen :clueless:)
  • Making a huge commit where I move things to a Shitmed namespace.

Could someone enable the test runners on this? I'd like to see how many tests are failing as of now.

@VMSolidus VMSolidus marked this pull request as ready for review November 14, 2024 20:03
@gluesniffler
Copy link
Contributor Author

All tests passing. Only test fail is related to a funny heisenbug thats been plaguing us for a while (#1225). Should be good to start code reviews!

image

Copy link
Member

@VMSolidus VMSolidus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Audio Changes any ogg files Changes: C# Changes any cs files Changes: Documentation Changes any xml or md files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an RSI Changes: UI Changes any XAML files Changes: YML Changes any yml files Holy Shit Priority: 2-High Needs to be resolved as soon as possible Size: 1-Very Large For especially large issues/PRs Type: Feature Creation of or significant changes to a feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.