Paradise Station 13 - Modules - TypesDefine Details

code/modules/surgery/abstract_steps.dm

SURGERY_TOOL_HANDThis file consists of how we manage somewhat non-linear surgeries. Essentially what goes on here is that we have some "proxy" surgery steps that get inserted into existing surgeries at key points. Depending on the tool used after that point, the proxy step chooses the next step(s) that should be executed.
/datum/surgery/intermediateA partial surgery that consists of a few steps that may be found in the middle of another operation. An existing surgery can yield to an intermediate surgery for a few steps by way of a proxy surgery_step.
/datum/surgery_step/proxyHere's the special sauce: a surgery step that can pretend to be a few different surgery steps. These proxy steps will, depending on the tool that's used, either continue to the next surgery step, or temporarily spin off a new surgery by adding new steps to the current surgery.
/datum/surgery_step/proxy/open_organProxy surgery step to allow healing bleeding and mending bones. Should be added into surgeries just after the first three standard steps.
/datum/surgery_step/proxy/ibMend IB without healing bones
/datum/surgery_step/proxy/robotics/repair_limbThe robotic equivalent

Define Details

SURGERY_TOOL_HAND

This file consists of how we manage somewhat non-linear surgeries. Essentially what goes on here is that we have some "proxy" surgery steps that get inserted into existing surgeries at key points. Depending on the tool used after that point, the proxy step chooses the next step(s) that should be executed.

These proxy steps use a list of surgeries, so a full procedure can be inserted into an existing surgery. Just make sure that the user's state after an intermediate surgery is (in the context of the surgery) identical to before the intermediate surgery. Don't heal things that will need to be healed during the surgery, for example.

Adding a new intermediate surgery: