Files
Paradise/code/modules/surgery/abstract_steps.html

18 lines
4.2 KiB
HTML

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><base href="../../../"><link rel="stylesheet" href="dmdoc.css"><title>code/modules/surgery/abstract_steps.dm - 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="code/modules/surgery/abstract_steps.html#define">Define Details</a></header><main><h1>code/modules/surgery/abstract_steps.dm <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/abstract_steps.dm"><img src="git.png" width="16" height="16" title="code/modules/surgery/abstract_steps.dm"></a></h1><table class="summary" cellspacing="0"><tr><th><a href="code/modules/surgery/abstract_steps.html#define/SURGERY_TOOL_HAND">SURGERY_TOOL_HAND</a></th><td>This file consists of how we manage somewhat non-linear surgeries.
Essentially what goes on here is that we have some &quot;proxy&quot; 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.</td></tr><tr><th>/<a href="datum.html">datum</a>/<a href="datum/surgery.html">surgery</a>/intermediate</th><td>A 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.</td></tr><tr><th><a href="datum/surgery_step/proxy.html">/datum/surgery_step/proxy</a></th><td>Here'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.</td></tr><tr><th>/<a href="datum.html">datum</a>/<a href="datum/surgery_step.html">surgery_step</a>/<a href="datum/surgery_step/proxy.html">proxy</a>/open_organ</th><td>Proxy surgery step to allow healing bleeding, bones, and burns.
Should be added into surgeries just after the first three standard steps.</td></tr><tr><th>/<a href="datum.html">datum</a>/<a href="datum/surgery_step.html">surgery_step</a>/<a href="datum/surgery_step/proxy.html">proxy</a>/ib</th><td>Mend IB without healing bones</td></tr><tr><th>/<a href="datum.html">datum</a>/<a href="datum/surgery_step.html">surgery_step</a>/<a href="datum/surgery_step/proxy.html">proxy</a>/robotics/repair_limb</th><td>The robotic equivalent</td></tr></table><h2 id="define">Define Details</h2><h3 id="define/SURGERY_TOOL_HAND"><aside class="declaration">#define </aside>SURGERY_TOOL_HAND <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/surgery/abstract_steps.dm#L16"><img src="git.png" width="16" height="16" title="code/modules/surgery/abstract_steps.dm 16"></a></h3><p>This file consists of how we manage somewhat non-linear surgeries.
Essentially what goes on here is that we have some &quot;proxy&quot; 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.</p>
<p>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.</p>
<p>Adding a new intermediate surgery:</p>
<ul>
<li>Define a new intermediate surgery datum with the list of steps that you want to inject. This forms one surgery &quot;branch&quot;.</li>
<li>Define a new proxy surgery step with branches containing the typepath of your new surgery datum.</li>
<li>Insert that surgery step into an existing surgery.</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>