Jump to content
  • 0

Repeated bonesetting failure in surgery


Nanako

Question

Posted (edited)

A problem i've run into in the past, which reared up tremendously today when trying to fix two broken legs.


I start repairing the bones with bone gel, set them with the bone setter, and finish the repair with bone gel again. For severe breakages, this cycle needs to be done more than once


Today, i ran into something, i don't know if it's a bug, or something i did wrong.


I did the gel, set, gel, fine. Did it again because the legs were broken badly, fine. Then a third time. And on the setting step of the thirc cyle, despite me not moving or interrupting the action, the bone is set in the wrong place, and the patient screams. The implications of this are not imediately obvious, but i assumed it set the process back. I was able to try setting again, then gel.


since i assume it set the process back, i tried again, and again on the setting step, the bone is set in the wrong place. And once again i'm able to retry and set it correctly.

Infact this happened consistently, i spent about 20 minutes trying to figure out what was wrong, probably went through 15 cycles. I doublechecked i wasn't moving, changing intents or typing everything, i stopped to wash all my hands and tools, i went and got new gloves, tried everything i could think of.


Every single time on the setting step, the bone is set in the wrong place. And i'm able to retry and set it correctly.


I eventually gave up and called in a colleague to take over, i couldn't figure it out. I'm not sure how, or if, he figured it out either.


What is going on here?


In addition, another player seems quite sure that the making of mistakes is caused by either/both of my character's Anatomy skill being less than Professional, and my character's title not being Surgeon (I'm a nurse, both are alt-titles of medical doctor)

I'm fairly sure that both of these things have no mechanical effect and are only for RP. They don't affect the success rate or outcome of any ingame actions. But just to be certain, i'd like confirmation on that.


Can character skills or alt titles have any mechanical effects?

Edited by Guest

11 answers to this question

Recommended Posts

  • 0
Posted

Procedure should actually go like this:


if it's NOT listed as a fracture:


gel, gel, cauterize.


IF listed as a fracture,


gel, boneset, gel, cauterize


Always ensure you've healed all external brute damage.


oh you mean that


If you set the bone in the incorrect place, just re-set it, then gel and gel. However, gelling twice will prevent you from needing to set the bone for a non-fracture.

  • 0
Posted
Procedure should actually go like this:


if it's NOT listed as a fracture:


gel, gel, cauterize.

If there's no fracture listed, then why would i be operating on the bones there in the first place?


 

If you set the bone in the incorrect place, just re-set it, then gel and gel. However, gelling twice will prevent you from needing to set the bone for a non-fracture.

You can't gel twice over a bone that needs set. You get the message "You don't see any useful way to apply the bone gel to " and nothing happens


I'm not quite understanding this response


And what about completely broken bones, that requires more than one cycle.

The problem here is that it lets me keep doing an infinite loop of cycles and i don't know why. perhaps a flag isn't being set correctly, could it be a bug?


Also, i updated the OP with an additional question at the end

  • 0
Posted

If you cannot gel twice, cauterize and observe. I've fixed bones before, with little issue aside from a long time ago when I had the same issue. You need to ensure your final step before cauterizing is bone gel.


Actually wait, here's what you do with whatever regarding failed bone setting. Just bone gel it, then reset the bone, and then gel it again, then cauterize. ENSURE THEIR LIMBS ARE ENTIRELY HEALED.


https://github.com/Aurorastation/Aurora/blob/282d19b9495cb3e6116ab24fff8057dac7633616/code/modules/organs/organ_external.dm


this is useful as well.

  • 0
Posted

curious.

Does this code handle surgery? I tried searching for references to bone gel, or the bone setter in there, but none are found. it seems to be more for handling organs and defining damage levels. Perhaps it's in there somewhere, could you help me look?

  • 0
Posted
I believe this does? https://github.com/Aurorastation/Aurora/tree/4417b05ae63b5553d822f943b81cb2e185846826/code/modules/surgery


May serve as more of a mechanical/literal guide as to how the game handles these things.

Ok, i found it in bones.dm, and i think i've found the issue. There's two things that don't make sense


First of all, the bonegel here

/datum/surgery_step/glue_bone
allowed_tools = list(
/obj/item/weapon/bonegel = 100,	\
/obj/item/weapon/screwdriver = 75
)
can_infect = 1
blood_level = 1

min_duration = 50
max_duration = 60

can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
	if (!hasorgans(target))
		return 0
	var/datum/organ/external/affected = target.get_organ(target_zone)
	return affected.open >= 2 && affected.stage == 0

begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
	var/datum/organ/external/affected = target.get_organ(target_zone)
	if (affected.stage == 0)
		user.visible_message("[user] starts applying medication to the damaged bones in [target]'s [affected.display_name] with \the [tool]." , \
		"You start applying medication to the damaged bones in [target]'s [affected.display_name] with \the [tool].")
	target.custom_pain("Something in your [affected.display_name] is causing you a lot of pain!",1)
	..()

 

I don't see anything in here that checks if the bone is actually broken. It displays ""[user] starts applying medication to the damaged bones in...." Even when there is no damaged bone.

It's convention everywhere else in surgery that if you attempt to do something unnecessary, you instead get a "you don't see any useful way to use ". So this is an abnormality.


Perhaps it's intended as a means to make surgery less easy, i'd approve of that, but then the message should be changed to not mention the bone being broken.


Best solution just seems to reject the action though.


The Other problem is farther down:

if (affected.status & ORGAN_BROKEN)
		user.visible_message("\blue [user] sets the bone in [target]'s [affected.display_name] in place with \the [tool].", \
			"\blue You set the bone in [target]'s [affected.display_name] in place with \the [tool].")
		affected.stage = 2
	else
		user.visible_message("\blue [user] sets the bone in [target]'s [affected.display_name]\red in the WRONG place with \the [tool].", \
			"\blue You set the bone in [target]'s [affected.display_name]\red in the WRONG place with \the [tool].")
		affected.fracture()

 

It's not clear what affected.status is, that's a property in another class. But in order for bone setting to work, that value has to be true (or >0, unsure of type) and the organ has to not be broken. Otherwise it gives that custom failure


Again, i don't feel this makes sense. If the bone isn't broken, then the bonesetter should be blocked with the "no useful way.." message, as is convention everywhere else.


I'm going to call this a bug. Can anyone get skull's attention to have a look?

  • 0
Posted

It's not a bug.


Allow me to explain the code. First, you are right in saying that there is no check in bonegel code to see if the bone is actually broken or not. There doesn't really need to be, you should be aware of the patient's status. Instead, the check for whether or not bonegel can be used is this:

 

affected.open >= 2 && affected.stage == 0

This will return a boolean value (True or False). True is returned if the target limb "affected" is cut open enough, at stage 2 or higher, and if the target limb "affected" is at the right surgery stage, 0. False otherwise. Ergo, it only checks whether or not you have access to the bone in order to apply the gel, which makes sense.


EDIT: and no, you shouldn't be alerted whether or not you're gelling a broken or not broken bone. Fractures and breaks are not super easy to spot, even when you're hand deep in flesh. If you're not paying attention to what the shit you're doing, then you should be punished for it. There is also a very stupid silly easy way to actually figure out if someone's bone is broken/fractured/whatever that works instantly, and is accessible to any medical doctor. Use it.


Second, and this apparently is what you consider bugged.

      if (affected.status & ORGAN_BROKEN)
        user.visible_message("\blue [user] sets the bone in [target]'s [affected.display_name] in place with \the [tool].", \
           "\blue You set the bone in [target]'s [affected.display_name] in place with \the [tool].")
        affected.stage = 2
     else
        user.visible_message("\blue [user] sets the bone in [target]'s [affected.display_name]\red in the WRONG place with \the [tool].", \
           "\blue You set the bone in [target]'s [affected.display_name]\red in the WRONG place with \the [tool].")
        affected.fracture()

 

Allow me to condense this into English. If the targeted bone (called affected) is broken, we execute the first condition and fix the bone by setting it. We also escalate to op stage 2, etcetera. Now, the else condition: if the targeted bone (called affected) is not broken, we execute the else condition and break it. This is because you cannot "set" a good bone, you will break it.


So, what most likely happened: your plan was to execute three cycles of "gel, set, gel". After successfully executing two cycles, the bone was either completely healed, or healed to the point where the first "gel" of the third "gel, set, gel" cycle fixed it fully. At this point, your third attempt to set it simply broke the bone. You weren't paying attention, and that's what happened.

  • 0
Posted
If you're not paying attention to what the shit you're doing, then you should be punished for it.

 

I'm not disagreeing with this statement, but it is in conflict with the design ethos of most of the rest of the surgery system.


If you use the bone setter on a bone without gelling it first, nothing happens. Nor does anything happen if you use it on an intact leg. The hemostat and retractor often don't do anything outside of their specific niches either. You use a trauma kit on organs to heal them, and then using it again doesn't have any farther effect, letting you know for certain that the organ is fixed.


In i'd say the vast majority of cases, the surgery system holds your hand, and does nothing in the case that you try to do something unnecessary. This case is an anomaly. Why punish in one specific case?


This is probably to simplify the process of roleplaying a surgeon when you, in real life, are not.


I don't disagree with increasing complexity, but this is clearly not optimal

If you can break an intact bone with a bone setter, then it shouldn't matter if it has gel on it or not. And in that case you're not setting it in the wrong place, you're breaking it. Your character, presumably being a doctor, should have the knowledge of what the right place for a bone is.


I'd say the simplest fix is to change the messages. Don't mention that the bones are broken when spreading gel on them in either case. And when setting an intact bone, change the message to something like "You start breaking the bone in "

The current setup doesn't communicate to the player that they've completed the bone repair, or that they (the player, not the character) are doing anything wrong.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...