Skip to content

IPC body construction & other fixes #5781

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

Closed
wants to merge 8 commits into from

Conversation

Ziiro
Copy link
Contributor

@Ziiro Ziiro commented Mar 3, 2025

About The Pull Request

  • Adds printing IPC bodies to the mechafab (IPC Core) - torso only, so the roboticist does have to put them together. Allows the crew to replace IPC bodies that got destroyed in cases where the brain is still intact.
  • Blocks the ability to make IPC bodies (or any MOB_ROBOTIC) at a cloner.
  • Adds two new (very specific) surgeries for robotic bodies to resolve damage edge cases

Why It's Good For The Game

  • Cloning IPCs was very silly, and in cases where their body is destroyed there was no other way to replace them.
  • IPCs with Oxygen damage and Toxin damage while dead have no method to clear it, the added surgeries only work on dead IPCs and clears those damage types only.

Changelog

🆑
add: IPC Bodies can now be printed at the mechafab after completing the required research!
add: Moves IPC related objects to its own category in the mechafab under cybernetics
add: Two new surgeries have been added to clear Oxy and Toxin damage types from dead IPCs.
balance: Cloning pods may no longer create bodies that are MOB_ROBOTIC (like IPCs)
balance: IPCs will no longer re-activate automatically when the brain is inserted and must be rebooted manually
balance: IPCs will no longer be stuck in crit limbo and will take burn damage when in crit until they die
fix: IPC activate_monitor and BSOD procs now check to make sure the IPC has a head
fix: IPC Posibrains are now a vital organ and they will die without them
fix: Removed duplicated code in _bodyparts regarding TRAIT_REVIVES_BY_HEALING
/:cl:

@Ziiro
Copy link
Contributor Author

Ziiro commented Mar 3, 2025

Some strange interaction when putting the posibrain into a fully functional body causes the client to be temporarily sent to the shadow realm

ADMIN LOG: Guest-2487534194/(INC-930)(?) (FLW) was found to have no .loc with an attached client, if the cause is unknown it would be wise to ask how this was accomplished.

Other than that it mostly seems to work. This has highlighted that I also need to do something about re-attaching IPC antenna - because it's an external organ.

@pokeyscrypt
Copy link

my name is edwin
i made the ipc
it was difficult to put the pieces together

@Kitsunemitsu Kitsunemitsu added the Feature: Expansion Some addons for a big new thing label Mar 5, 2025
@Ziiro
Copy link
Contributor Author

Ziiro commented Mar 13, 2025

No longer sends them to the shadow realm thanks to INVOKE_ASYNC, however now it just runtimes at the completion of spec_revival.

[18:59:51] Runtime in monkestation/code/modules/mob/living/carbon/human/damage_procs.dm,4: undefined proc or verb /mob/living/carbon/human/species/ipc/().

  proc name: revive (/mob/living/carbon/human/revive)
  usr: Ziiro/(Ziiro)
  usr.loc: (Robotics Lab (117,94,2))
  src: Unknown (/mob/living/carbon/human/species/ipc)
  src.loc: the floor (118,94,2) (/turf/open/floor/iron/white)
  call stack:
  Unknown (/mob/living/carbon/human/species/ipc): revive(0, 0, 0)

@Ziiro
Copy link
Contributor Author

Ziiro commented Mar 16, 2025

Tinkering around further, the "Shadow realm" bug is repeatable in live as follows:

  1. Damage an IPC enough to kill it
  2. Surgically remove the brain from the chest
  3. Repair the IPC up to full
  4. Re-insert the posibrain
  5. IPC brain client is sent to the nullspace area until spec_revival completes

The INVOKE_ASYNC solution that was tried previously kicked the can a different direction by turning it into a runtime rather than this error. However I'm still not sure where this is coming from. It's nothing I've done here, but I intend to fix it here.

@Ziiro
Copy link
Contributor Author

Ziiro commented Mar 18, 2025

thought I'd get around #5956 by making it so the brain doesn't auto revive but it turns out the revival surgery also trips that bug

@Ziiro Ziiro force-pushed the youwouldntdownloadanipc branch from 438d1e7 to cfb1c6f Compare March 18, 2025 06:53
@github-actions github-actions bot added the Merge Conflict DO NOT RENAME THIS LABEL label Mar 18, 2025
@Ziiro
Copy link
Contributor Author

Ziiro commented Mar 24, 2025

I'm going to have to atomize this out into separate PRs because it's gotten too big.

@Ziiro Ziiro closed this Mar 24, 2025
@Ziiro
Copy link
Contributor Author

Ziiro commented Mar 24, 2025

atomization:
#6027
#6031
#6034
to do:
body construction

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature: Expansion Some addons for a big new thing Merge Conflict DO NOT RENAME THIS LABEL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants