byond - Modules - TypesVar Details - Proc Details

surgery

Base surgery datum and procs. There is an important distinction between surgery datums and surgery steps. The surgery is a separate instance for each individual operation; the steps are shared globally. datum/surgery and datum/surgery_step are intertwined. The surgery calls the step which modifies the surgery. Defines are in __DEFINES/human.dm and __DEFINES/surgery.dm.

Vars

affected_limbThe limb the surgery is being performed on. If designing a surgery for a species without limbs, this var won't be usable.
invasivenessHow deep the incision must be before this operation is a valid option.
locationThe location this instance of the surgery is being performed on.
lying_requiredDoes the victim needs to be lying down? Surgeries that can be performed while standing aren't affected by the surface the patient is on.
pain_reduction_requiredHow strong a level of anesthesia is needed to avoid risking pain causing a step to fail?
possible_locsList of possible locations the surgery can be performed on. This is target zones: DEFENSE_ZONES_LIVING lists all options. ALL_LIMBS doesn't include eyes/mouth. Note also that steps don't check this and it is possible to include a step that can't be performed on a target limb.
priorityWhen initiating surgeries, this defines their order when listed in initiation selector or 'you can't use this tool for anything, but could x, y, or z' messages.
required_surgery_skillHow much training is needed to do this surgery?
requires_bodypartTRUE if the surgery requires a non-destroyed limb; FALSE if it requires a destroyed one, or doesn't need a limb.
requires_bodypart_typeStatus flag(s) required on the target limb to perform an operation. NONE for any limb type. (FLAG|FLAG) is an OR check, granular this-but-not-this or this-and-this checks should be in can_start()
self_operableCan the surgery be performed on yourself?
statusThe step the surgery is currently on. When status > number of steps, the surgery ends.
stepsList of steps in the surgery.
target_mobtypesWhat species can this be performed on?

Procs

attempt_next_stepUsed on attackby and attackhand; TRUE means it stops the attack there, FALSE means it performs an item/open hand attack. CHECK OPENHAND ATTACK IS BLOCKED PROPERLY
can_startCatch-all proc for additional preconditions for starting the surgery. Return FALSE if the surgery can't be done.

Var Details

affected_limb

The limb the surgery is being performed on. If designing a surgery for a species without limbs, this var won't be usable.

invasiveness

How deep the incision must be before this operation is a valid option.

location

The location this instance of the surgery is being performed on.

lying_required

Does the victim needs to be lying down? Surgeries that can be performed while standing aren't affected by the surface the patient is on.

pain_reduction_required

How strong a level of anesthesia is needed to avoid risking pain causing a step to fail?

possible_locs

List of possible locations the surgery can be performed on. This is target zones: DEFENSE_ZONES_LIVING lists all options. ALL_LIMBS doesn't include eyes/mouth. Note also that steps don't check this and it is possible to include a step that can't be performed on a target limb.

priority

When initiating surgeries, this defines their order when listed in initiation selector or 'you can't use this tool for anything, but could x, y, or z' messages.

required_surgery_skill

How much training is needed to do this surgery?

requires_bodypart

TRUE if the surgery requires a non-destroyed limb; FALSE if it requires a destroyed one, or doesn't need a limb.

requires_bodypart_type

Status flag(s) required on the target limb to perform an operation. NONE for any limb type. (FLAG|FLAG) is an OR check, granular this-but-not-this or this-and-this checks should be in can_start()

self_operable

Can the surgery be performed on yourself?

status

The step the surgery is currently on. When status > number of steps, the surgery ends.

steps

List of steps in the surgery.

target_mobtypes

What species can this be performed on?

Proc Details

attempt_next_step

Used on attackby and attackhand; TRUE means it stops the attack there, FALSE means it performs an item/open hand attack. CHECK OPENHAND ATTACK IS BLOCKED PROPERLY

can_start

Catch-all proc for additional preconditions for starting the surgery. Return FALSE if the surgery can't be done.