Files
Paradise/datum/surgery_step.html

66 lines
24 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><base href="../"><link rel="stylesheet" href="dmdoc.css"><title>/datum/surgery_step - Space Station 13</title></head><body><header><a href="index.html">Space Station 13</a> - <a href="index.html#modules">Modules</a> - <a href="index.html#types">Types</a><a href="datum/surgery_step.html#var">Var Details</a> - <a href="datum/surgery_step.html#proc">Proc Details</a></header><main><h1>surgery_step <aside>/<a href="datum.html">datum</a>/<a href="datum/surgery_step.html">surgery_step</a></aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L182"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 182"></a></h1><table class="summary" cellspacing="0"><tr><td colspan="2"><h2>Vars</h2></td></tr><tr><th><a href="datum/surgery_step.html#var/accept_any_item">accept_any_item</a></th><td>Does the surgery step accept any item? If true, ignores implements. Compatible with accept_hand.</td></tr><tr><th><a href="datum/surgery_step.html#var/accept_hand">accept_hand</a></th><td>does the surgery step require an open hand? If true, ignores implements. Compatible with accept_any_item.</td></tr><tr><th><a href="datum/surgery_step.html#var/allowed_tools">allowed_tools</a></th><td>Type path of tools that can be used to complete this step. Format is <code>path = probability of success</code>.
If the tool has a specific surgery tooltype, you can use that as a key as well.</td></tr><tr><th><a href="datum/surgery_step.html#var/blood_level">blood_level</a></th><td>How much blood this step can get on surgeon. See SURGERY_BLOODSPREAD_* defines</td></tr><tr><th><a href="datum/surgery_step.html#var/can_infect">can_infect</a></th><td>Whether this surgery step can cause an infection.</td></tr><tr><th><a href="datum/surgery_step.html#var/chems_needed">chems_needed</a></th><td>List of chems needed in the mob to complete the step. Even on success, this step will have no effect if the required chems aren't in the mob.</td></tr><tr><th><a href="datum/surgery_step.html#var/failure_sound">failure_sound</a></th><td>Sound played if the step fails. Single value only</td></tr><tr><th><a href="datum/surgery_step.html#var/implement_type">implement_type</a></th><td>The current type of implement from allowed_tools in use. This has to be stored, as the typepath of the tool might not match the list type (such as if we're using tool behavior)</td></tr><tr><th><a href="datum/surgery_step.html#var/preop_sound">preop_sound</a></th><td>Sound played when the step is started. Lists or single value can be used for this var as well as tool defines</td></tr><tr><th><a href="datum/surgery_step.html#var/repeatable">repeatable</a></th><td>Is this step repeatable by using the same tool again after it's finished?
Make sure it isn't the last step, or it's used in a cancellable surgery. Otherwise, you might get stuck in a loop!</td></tr><tr><th><a href="datum/surgery_step.html#var/require_all_chems">require_all_chems</a></th><td>Do we require any of the needed chems, or all of them?</td></tr><tr><th><a href="datum/surgery_step.html#var/silicons_ignore_prob">silicons_ignore_prob</a></th><td>Whether silicons ignore any probabilities (and are therefore &quot;perfect&quot; surgeons)</td></tr><tr><th><a href="datum/surgery_step.html#var/success_sound">success_sound</a></th><td>Sound played if the step succeeded. Single value only</td></tr><tr><th><a href="datum/surgery_step.html#var/time">time</a></th><td>duration of the step</td></tr><tr><th><a href="datum/surgery_step.html#var/times_repeated">times_repeated</a></th><td>How many times this step has been automatically repeated.</td></tr><tr><td colspan="2"><h2>Procs</h2></td></tr><tr><th><a href="datum/surgery_step.html#proc/can_repeat">can_repeat</a></th><td>Determines whether or not this surgery step can repeat if its end/fail steps returned SURGERY_STEP_RETRY.</td></tr><tr><th><a href="datum/surgery_step.html#proc/chem_check">chem_check</a></th><td>Check that the target contains the chems we expect them to.</td></tr><tr><th><a href="datum/surgery_step.html#proc/deal_pain">deal_pain</a></th><td>Try to inflict pain during a surgery, a surgeon's dream come true.
This will wake up the user if they're voluntarily sleeping.</td></tr><tr><th><a href="datum/surgery_step.html#proc/end_step">end_step</a></th><td>Finish a surgery step, performing anything that runs on the tail-end of a successful surgery.
This runs if the surgery step passes the probability check, and therefore is a success.</td></tr><tr><th><a href="datum/surgery_step.html#proc/fail_step">fail_step</a></th><td>Play out the failure state of a surgery step.
This runs if the surgery step fails the probability check, the right chems weren't present, or if the user deliberately failed the surgery.</td></tr><tr><th><a href="datum/surgery_step.html#proc/get_step_information">get_step_information</a></th><td>Get the action that will be performed during this surgery step, in context of the surgery it is a part of.</td></tr><tr><th><a href="datum/surgery_step.html#proc/initiate">initiate</a></th><td>Initiate and really perform the surgery itself.
This includes the main do-after and the checking of probabilities for successful surgeries.
If try_to_fail is TRUE, then this surgery will be deliberately failed out of.</td></tr><tr><th><a href="datum/surgery_step.html#proc/is_valid_tool">is_valid_tool</a></th><td>Whether or not the tool being used is usable for the surgery.
Checks both the tool itself as well as any tool behaviors defined in allowed_tools.
Arguments:</td></tr><tr><th><a href="datum/surgery_step.html#proc/slowdown_immune">slowdown_immune</a></th><td>Check for mobs that would be immune to surgery slowdowns/speedups.</td></tr><tr><th><a href="datum/surgery_step.html#proc/spread_germs_by_incision">spread_germs_by_incision</a></th><td>Spread germs directly from a tool.</td></tr><tr><th><a href="datum/surgery_step.html#proc/spread_germs_to_organ">spread_germs_to_organ</a></th><td>Spread some nasty germs to an organ.</td></tr><tr><th><a href="datum/surgery_step.html#proc/tool_check">tool_check</a></th><td>Get whether the tool should be usable in its current state. Useful for checks to see if a welder is on, for example.</td></tr><tr><th><a href="datum/surgery_step.html#proc/try_op">try_op</a></th><td>Try to perform an operation on a user.
Arguments:</td></tr></table><h2 id="var">Var Details</h2><h3 id="var/accept_any_item"><aside class="declaration">var </aside>accept_any_item <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L192"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 192"></a></h3><p>Does the surgery step accept any item? If true, ignores implements. Compatible with accept_hand.</p><h3 id="var/accept_hand"><aside class="declaration">var </aside>accept_hand <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L190"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 190"></a></h3><p>does the surgery step require an open hand? If true, ignores implements. Compatible with accept_any_item.</p><h3 id="var/allowed_tools"><aside class="declaration">var </aside>allowed_tools <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L186"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 186"></a></h3><p>Type path of tools that can be used to complete this step. Format is <code>path = probability of success</code>.
If the tool has a specific surgery tooltype, you can use that as a key as well.</p><h3 id="var/blood_level"><aside class="declaration">var </aside>blood_level <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L218"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 218"></a></h3><p>How much blood this step can get on surgeon. See SURGERY_BLOODSPREAD_* defines</p><h3 id="var/can_infect"><aside class="declaration">var </aside>can_infect <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L216"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 216"></a></h3><p>Whether this surgery step can cause an infection.</p><h3 id="var/chems_needed"><aside class="declaration">var </aside>chems_needed <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L199"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 199"></a></h3><p>List of chems needed in the mob to complete the step. Even on success, this step will have no effect if the required chems aren't in the mob.</p><h3 id="var/failure_sound"><aside class="declaration">var </aside>failure_sound <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L211"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 211"></a></h3><p>Sound played if the step fails. Single value only</p><h3 id="var/implement_type"><aside class="declaration">var </aside>implement_type <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L188"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 188"></a></h3><p>The current type of implement from allowed_tools in use. This has to be stored, as the typepath of the tool might not match the list type (such as if we're using tool behavior)</p><h3 id="var/preop_sound"><aside class="declaration">var </aside>preop_sound <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L207"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 207"></a></h3><p>Sound played when the step is started. Lists or single value can be used for this var as well as tool defines</p><h3 id="var/repeatable"><aside class="declaration">var </aside>repeatable <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L197"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 197"></a></h3><p>Is this step repeatable by using the same tool again after it's finished?
Make sure it isn't the last step, or it's used in a cancellable surgery. Otherwise, you might get stuck in a loop!</p><h3 id="var/require_all_chems"><aside class="declaration">var </aside>require_all_chems <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L201"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 201"></a></h3><p>Do we require any of the needed chems, or all of them?</p><h3 id="var/silicons_ignore_prob"><aside class="declaration">var </aside>silicons_ignore_prob <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L203"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 203"></a></h3><p>Whether silicons ignore any probabilities (and are therefore &quot;perfect&quot; surgeons)</p><h3 id="var/success_sound"><aside class="declaration">var </aside>success_sound <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L209"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 209"></a></h3><p>Sound played if the step succeeded. Single value only</p><h3 id="var/time"><aside class="declaration">var </aside>time <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L194"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 194"></a></h3><p>duration of the step</p><h3 id="var/times_repeated"><aside class="declaration">var </aside>times_repeated <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L205"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 205"></a></h3><p>How many times this step has been automatically repeated.</p><h2 id="proc">Proc Details</h2><h3 id="proc/can_repeat"><aside class="declaration">proc </aside>can_repeat<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/target, target_zone, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/surgery) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L310"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 310"></a></aside></h3><p>Determines whether or not this surgery step can repeat if its end/fail steps returned SURGERY_STEP_RETRY.</p>
<p>Arguments:</p>
<ul>
<li>user - mob performing the surgery</li>
<li>target - mob the surgery is being performed on</li>
<li>target_zone - body zone of the surgery</li>
<li>tool - tool used for the surgery</li>
<li>surgery - the operation this surgery step is a part of</li>
</ul>
<p>If this returns TRUE, the step will automatically retry. If not, the user will have to manually start the step again.</p><h3 id="proc/chem_check"><aside class="declaration">proc </aside>chem_check<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/target) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L591"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 591"></a></aside></h3><p>Check that the target contains the chems we expect them to.</p><h3 id="proc/deal_pain"><aside class="declaration">proc </aside>deal_pain<aside>(/<a href="mob.html">mob</a>/user, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/target, target_zone, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/surgery, try_to_fail) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L427"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 427"></a></aside></h3><p>Try to inflict pain during a surgery, a surgeon's dream come true.
This will wake up the user if they're voluntarily sleeping.</p>
<p>Returns the success rate that the user's amount of pain would deal, while also handling extra pain behavior.</p><h3 id="proc/end_step"><aside class="declaration">proc </aside>end_step<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/<a href="mob/living/carbon/human.html">human</a>/target, target_zone, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/surgery) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L498"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 498"></a></aside></h3><p>Finish a surgery step, performing anything that runs on the tail-end of a successful surgery.
This runs if the surgery step passes the probability check, and therefore is a success.</p>
<p>Should return SURGERY_STEP_CONTINUE to advance the surgery, though may return SURGERY_STEP_INCOMPLETE to keep the surgery step from advancing.</p><h3 id="proc/fail_step"><aside class="declaration">proc </aside>fail_step<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/<a href="mob/living/carbon/human.html">human</a>/target, target_zone, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/surgery) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L507"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 507"></a></aside></h3><p>Play out the failure state of a surgery step.
This runs if the surgery step fails the probability check, the right chems weren't present, or if the user deliberately failed the surgery.</p>
<p>Should return SURGERY_STEP_INCOMPLETE to prevent the surgery step from advancing, though may return SURGERY_STEP_CONTINUE to advance to the next step regardless.</p><h3 id="proc/get_step_information"><aside class="declaration">proc </aside>get_step_information<aside>(/<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/surgery, with_tools) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L518"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 518"></a></aside></h3><p>Get the action that will be performed during this surgery step, in context of the surgery it is a part of.</p>
<p>Arguments:</p>
<ul>
<li>surgery - The main surgery this is being invoked by.</li>
<li>with_tools - Whether to include the tool necessary for the step at the end of the step information.</li>
</ul><h3 id="proc/initiate"><aside class="declaration">proc </aside>initiate<aside>(/<a href="mob.html">mob</a>/user, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/target, target_zone, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/surgery, try_to_fail) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L324"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 324"></a></aside></h3><p>Initiate and really perform the surgery itself.
This includes the main do-after and the checking of probabilities for successful surgeries.
If try_to_fail is TRUE, then this surgery will be deliberately failed out of.</p>
<p>Returns TRUE if the surgery should proceed to the next step, or FALSE otherwise.</p><h3 id="proc/is_valid_tool"><aside class="declaration">proc </aside>is_valid_tool<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L228"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 228"></a></aside></h3><p>Whether or not the tool being used is usable for the surgery.
Checks both the tool itself as well as any tool behaviors defined in allowed_tools.
Arguments:</p>
<ul>
<li>user - User handling the tool.</li>
<li>tool - The tool (or item) being used in this surgery step.
Returns TRUE if the tool can be used, or FALSE otherwise</li>
</ul><h3 id="proc/slowdown_immune"><aside class="declaration">proc </aside>slowdown_immune<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L462"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 462"></a></aside></h3><p>Check for mobs that would be immune to surgery slowdowns/speedups.</p><h3 id="proc/spread_germs_by_incision"><aside class="declaration">proc </aside>spread_germs_by_incision<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/<a href="obj/item/organ.html">organ</a>/<a href="obj/item/organ/external.html">external</a>/E, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/surgery) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L560"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 560"></a></aside></h3><p>Spread germs directly from a tool.</p>
<ul>
<li>E - An external organ being operated on.</li>
<li>tool - The tool performing the operation.</li>
</ul><h3 id="proc/spread_germs_to_organ"><aside class="declaration">proc </aside>spread_germs_to_organ<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/<a href="obj/item/organ.html">organ</a>/target_organ, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/<a href="mob/living/carbon/human.html">human</a>/user, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/surgery) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L542"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 542"></a></aside></h3><p>Spread some nasty germs to an organ.</p>
<ul>
<li>target_organ - The organ to try spreading germs to.</li>
<li>user - The user who's manipulating the organ.</li>
<li>tool - The tool the user is using to mess with the organ.</li>
</ul><h3 id="proc/tool_check"><aside class="declaration">proc </aside>tool_check<aside>(/<a href="mob.html">mob</a>/user, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L456"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 456"></a></aside></h3><p>Get whether the tool should be usable in its current state. Useful for checks to see if a welder is on, for example.</p>
<p>Arguments:</p>
<ul>
<li>user - The user using the tool.</li>
<li>tool - The tool in use.</li>
</ul><h3 id="proc/try_op"><aside class="declaration">proc </aside>try_op<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/target, target_zone, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/surgery) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/surgery.dm#L273"><img src="git.png" width="16" height="16" title="code/modules/surgery/surgery.dm 273"></a></aside></h3><p>Try to perform an operation on a user.
Arguments:</p>
<ul>
<li>user - The user performing the surgery.</li>
<li>target - The user on whom the surgery is being performed.</li>
<li>target_zone - the zone the user is targeting for the surgery.</li>
<li>tool - The object that the user is using to perform the surgery (optional)</li>
<li>surgery - The surgery being performed.
Returns TRUE if the step was a success, or FALSE if the step can't be performed for some reason.</li>
</ul></main><footer>paradise.dme <a href="https://github.com/ParadiseSS13/Paradise/tree/8a8a00a2a9bec485351e5f219982b7315d3504fa">8a8a00a</a> (master) — <a href="https://github.com/SpaceManiac/SpacemanDMM/blob/master/crates/dmdoc/README.md">dmdoc 1.11.0</a></footer></body></html>