Daedalus Dock - Modules - TypesVar Details - Proc Details

atom

The base type for nearly all physical objects in SS13

Lots and lots of functionality lives here, although in general we are striving to move as much as possible to the components/elements system

Vars

active_hud_listall of this atom's HUD images which can actually be seen by players with that hud
add_overlaysa very temporary list of overlays to add
ai_controllerAI controller that controls this atom. type on init, then turned into an instance during runtime. Note: If you are for some reason giving this to a non-mob, it needs to create it's own in Initialize()
armorAtom armor. Use returnArmor()
articleIf non-null, overrides a/an/some in all cases
atom_coloursused to store the different colors on an atom
atom_storagethe datum handler for our contents - see create_storage() for creation method
base_icon_stateUsed for changing icon states for different base sprites.
base_pixel_xDefault pixel x shifting for the atom's icon.
base_pixel_yDefault pixel y shifting for the atom's icon.
bottom_left_cornerSmoothing variable
bottom_right_cornerSmoothing variable
buckle_message_cooldownCooldown tick timer for buckle messages
canSmoothWithList of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself. Must be sorted.
can_astar_passHow this atom should react to having its astar blocking checked
chat_colorLast color calculated for the the chatmessage overlays
chat_color_darkenedA luminescence-shifted value of the last color calculated for chatmessage overlays
chat_color_nameLast name used to calculate a color for the chatmessage overlays
custom_materialsThe custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.) The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use set_custom_materials.
damage_deflectionDamage under this value will be completely ignored
debris_amountAmount of debris particles
debris_icon_stateIcon state of debris when impacted by a projectile
debris_scaleScale of particle debris
debris_velocityVelocity of debris particles
explosion_blockValue used to increment ex_act() if reactionary_explosions is on
fingerprintslastLast fingerprints to touch this atom
flags_1First atom flags var
flags_2Second atom flags var
forensicsForensics datum, initialzed when needed.
greyscale_colorsA string of hex format colors to be used by greyscale sprites, ex: "#0054aa#badcff"
greyscale_configThe config type to use for greyscaled sprites. Both this and greyscale_colors must be assigned to work.
hud_listall of this atom's HUD (med/sec, etc) images. Associative list of the form: list(hud category = hud image or images for that category). most of the time hud category is associated with a single image, sometimes its associated with a list of images. not every hud in this list is actually used. for ones available for others to see, look at active_hud_list.
hud_possibleHUD images that this atom can provide.
in_atom_hudsA list of atom huds this object is within
initializedHas this atom's constructor ran?
interaction_flags_atomIntearaction flags
is_mouseover_interactable!DO NOT DIRECTLY EDIT! Can mobs "interact" with this item? THIS IS ONLY USED FOR MOUSE ICONS. SEE interactables.dm.
lightOur light source. Don't fuck with this directly unless you have a good reason!
light_colorHexadecimal RGB string representing the colour of the light. White by default.
light_falloff_curveAdjusts curve for falloff gradient
light_flagsBitflags to determine lighting-related atom properties.
light_inner_rangeRange of the maximum brightness of light in tiles. Zero means no light.
light_onBoolean variable for toggleable lights. Has no effect without the proper light_system, light_range and light_power values.
light_outer_rangeRange where light begins to taper into darkness in tiles.
light_powerIntensity of the light. The stronger, the less shadows you will see on the lit area.
light_sourcesAny light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.
light_systemLight systems, both shouldn't be active at the same time.
managed_overlaysoverlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.
managed_vis_overlaysvis overlays managed by SSvis_overlays to automaticaly turn them like other overlays.
material_flagsBitfield for how the atom handles materials.
material_modifierModifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines.
mergersHolds merger groups currently active on the atom. Do not access directly, use GetMergeGroup() instead.
orbit_targetReference to atom being orbited
pass_flags_selfpass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.
rad_insulationRadiation insulation types
reagentsReagents holder
receive_ricochet_chance_modWhen a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this
receive_ricochet_damage_coeffWhen a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom
remove_overlaysa very temporary list of overlays to remove
smoothing_flagsIcon-smoothing behavior.
smoothing_groupsWhat smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it. Must be sorted.
smoothing_junctionWhat directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.
top_left_cornerSmoothing variable
top_right_cornerSmoothing variable
uses_integrityany atom that uses integrity and can be damaged must set this to true, otherwise the integrity procs will throw an error

Procs

AllowDropAre you allowed to drop this atom
AltClickNoInteractUse this instead of /mob/proc/AltClickOn where you only want turf content listing without additional atom alt-click interaction
BeamThis is what you use to start a beam. Example: origin.Beam(target, args). Store the return of this proc if you don't set maxdist or time, you need it to delete the beam.
CanAStarPassThis proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.
CanAllowThroughReturns true or false to allow the mover to move through src
CanMoveOntoA version of CanPass() that accounts for vertical movement.
CanPassWhether the mover object can avoid being blocked by this atom, while arriving from (or leaving through) the border_dir.
CheckPartsEnsure a list of atoms/reagents exists inside this atom
ClickBefore anything else, defer these calls to a per-mobtype handler. This allows us to remove istype() spaghetti code, but requires the addition of other handler procs to simplify it.
DestroyTop level of the destroy chain for most atoms
EnteredAn atom has entered this atom's contents
ExitAn atom is attempting to exit this atom's contents
ExitedAn atom has exited this atom's contents
GetExplosionBlockreturns how much the object blocks an explosion. Used by subtypes.
GetMergeGroupGets a merger datum representing the connected blob of objects in the allowed_types argument
HasProximityIs this atom within 1 tile of another atom
InitializeThe primary method that objects are setup in SS13 with
IsObscuredIs the atom obscured by a PREVENT_CLICK_UNDER_1 object above it
LateInitializeLate Intialization, for code that should run after all atoms have run Intialization
NewCalled when an atom is created in byond (built in engine proc)
ShakePerform a shake on an atom, resets its position afterwards
ShowProcessingGuiCreates the radial and processes the selected option
TopicPasses Stat Browser Panel clicks to the game and calls client click on an atom
_Clickstupid workaround for byond not recognizing the /atom/Click typepath for the queued click callbacks
acid_actRespond to acid being used on our atom
add_atom_colourAdds an instance of colour_type to the atom's atom_colours list
add_blood_DNAReturns TRUE if new blood dna was added.
add_contextCreates a "Type-B" contextual screentip interaction. When a user hovers over this, this proc will be called in order to provide context for contextual screentips. You must call register_context() in order for this to be registered. A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) that map to the action as text. If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET. source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.
add_fiber_listAdd a list of fibers
add_fibersAdds the fibers of M to our fiber list.
add_fingerprintAdds the fingerprint of M to our fingerprint list. Ignoregloves will ignore any gloves they may be wearing.
add_fingerprint_listAdd a list of fingerprints
add_gunshot_residueAdd a list of residues
add_mob_bloodto add blood from a mob onto something, and transfer their dna info
airflow_hit_actCalled when "flying" calls airflow_hit() on src
alt_click_on_secondaryThe base proc of when something is right clicked on when alt is held - generally use alt_click_secondary instead
alt_click_secondaryThe base proc of when something is right clicked on when alt is held
analyzer_actCalled on an object when a tool with analyzer capabilities is used to left click an object
analyzer_act_secondaryCalled on an object when a tool with analyzer capabilities is used to right click an object
assume_airTake air from the passed in gas mixture datum
atmos_exposeThis is your process() proc
atom_breakCalled after the atom takes damage and integrity is below integrity_failure level
atom_destructionwhat happens when the atom's integrity reaches zero.
atom_fixCalled when integrity is repaired above the breaking point having been broken before
attack_ai_secondaryWhat happens when the AI holds right-click on an item. Returns a SECONDARY_ATTACK_* value.
attack_droneDefaults to attack_hand or attack_hand_secondary. Override it when you don't want drones to do same stuff as humans.
attack_grabInteraction handler for being clicked on with a grab. This is called regardless of user intent.
attack_handReturn TRUE to cancel other attack hand effects that respect it. Modifiers is the assoc list for click info such as if it was a right click.
attack_hand_secondaryWhen the user uses their hand on an item while holding right-click Returns a SECONDARY_ATTACK_* value.
attack_hulkThis atom has been hit by a hulkified mob in hulk mode (user)
attack_pawAttacked by monkey
attack_robot_secondaryWhat happens when the cyborg without active module holds right-click on an item. Returns a SECONDARY_ATTACK_* value.
attack_self_tkTelekinesis item attack_self act.
attack_tkTelekinesis attack act, happens when the TK user clicks on a non-adjacent target in range.
attackbyCalled on an object being hit by an item
attackby_secondaryCalled on an object being right-clicked on by an item
attacked_byCalled from [/obj/item/proc/attack_atom] and /obj/item/proc/attack if the attack succeeds
attempt_chargeUsed to attempt to charge an object with a payment component.
audible_messageShow a message to all mobs in earshot of this atom
balloon_alertCreates text that will float from the atom upwards to the viewer.
balloon_alert_to_viewersCreate balloon alerts (text that floats up) to everything within range. Will only display to people who can see.
become_atmos_sensitiveallows this movable to know when it's container's temperature has changed
bitmask_smoothBasic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.
blob_actReact to a hit by a blob objecd
bullet_actReact to a hit by a projectile object
calculate_adjacenciesScans all adjacent turfs to find targets to smooth with.
check_eyeCheck if this atoms eye is still alive (probably)
check_projectile_armorA cut-out proc for /atom/proc/bullet_act so living mobs can have their own armor behavior checks without causing issues with needing their own on_hit call
clone_storageA quick and easy way to /clone/ a storage datum for an atom (does not copy over contents, only the datum details)
connect_to_shuttleConnect this atom to a shuttle
container_resist_actCalled when something resists while this atom is its loc
containsReturns true if the src countain the atom target
contents_explosionHandle what happens when your contents are exploded by a bomb
create_forensicsCreates our forensics datum
create_reagentsConvenience proc to create a reagents holder for an atom
create_storageA quick and easy way to create a storage datum for an atom
crowbar_actCalled on an object when a tool with crowbar capabilities is used to left click an object
crowbar_act_secondaryCalled on an object when a tool with crowbar capabilities is used to right click an object
cut_overlaysTracks the current index into build_overlays so that we can preserve ordering.
do_alert_animationDoes the MGS ! animation
do_hurt_animationPlays an animation for getting hit.
drop_locationWhere atoms should drop if taken from this atom
emag_actRespond to an emag being used on our atom
emp_actReact to an EMP of the given severity
ex_actReact to being hit by an explosion
examineCalled when a mob examines (shift click or verb) this atom
examine_moreCalled when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_WINDOW (default 1 second)
expose_reagents
find_all_cells_containingdebug proc for checking if a movable is in multiple cells when it shouldnt be (ie always unless multitile entering is implemented)
find_type_in_directionScans direction to find targets to smooth with.
get_all_contentsReturns the src and all recursive contents as a list.
get_all_contents_ignoringLike get_all_contents_type, but uses a typecache list as argument
get_all_contents_typeidentical to get_all_contents but returns a list of atoms of the type passed in the argument.
get_all_orbitersRecursive getter method to return a list of all ghosts orbitting this atom
get_antag_infoReturns a list of antagonist-related information about this object.
get_controls_infoReturns a list of controls information about this object.
get_custom_material_amountGets the total amount of materials in this atom.
get_dumping_locationIf someone's trying to dump items onto our atom, where should they be dumped to?
get_examine_nameGet the name of this object for examine
get_examine_stringGenerate the full examine string of this atom (including icon for goonchat)
get_hud_pixel_yReturns a pixel_y value to use for hud code
get_id_examine_stringsReturns an extended list of examine strings for any contained ID cards.
get_integrityThis mostly exists to keep atom_integrity private. Might be useful in the future.
get_integrity_percentageRetrieves the atom's current damage as a percentage where 100% is 100. If use_raw_values is TRUE, uses the raw var values instead of the get_* proc results.
get_lore_infoReturns a list of lore information about this object.
get_master_materialGets the most common material in the object.
get_material_compositionReturns the material composition of the atom.
get_mechanics_infoReturns a list of mechanics information for this object.
get_name_chaserUsed to insert text after the name but before the description in examine()
get_remote_view_fullscreensthe vision impairment to give to the mob whose perspective is set to that atom
handle_atom_delThis proc is called when an atom in our contents has it's Destroy called
handle_fallUsed for making a sound when a mob involuntarily falls into the ground.
handle_slipHandle the atom being slipped over
has_gravityReturns true if this atom has gravity for the passed in turf
has_material_categoryFetches a list of all of the materials this object has with the desired material category.
has_material_typeFetches a list of all of the materials this object has of the desired type. Returns null if there is no valid materials of the type
hear_locationWhat atom is actually "Hearing".
hitbyReact to being hit by a thrown object
hitby_reactWe have have actually hit the passed in atom
hulk_damageCalled to get the damage that hulks will deal to the atom.
in_contents_ofReturn true if we're inside the passed in atom
is_drainableIs this atom drainable of reagents
is_drawableCan we draw from this atom with an injectable atom
is_injectableIs this atom injectable into other atoms
is_open_containerConvenience proc to see if a container is open for chemistry handling
is_refillableCan this atoms reagents be refilled
isinspaceIs this atom in space
log_messageGeneric logging helper
log_talkHelper for logging chat messages or other logs with arbitrary inputs(e.g. announcements)
log_touchFor admins. Logs when mobs players with this thing.
lose_atmos_sensitivityremoves temperature sensitivity
makeHologramMakes this atom look like a "hologram" So transparent, blue and with a scanline
mat_update_descThis proc is called when a material updates an object's description
mech_melee_attack
modify_max_integritychanges max_integrity while retaining current health percentage, returns TRUE if the atom got broken.
multitool_actCalled on an object when a tool with multitool capabilities is used to left click an object
multitool_act_secondaryCalled on an object when a tool with multitool capabilities is used to right click an object
multitool_check_bufferCheck if the multitool has an item in it's data buffer
narsie_actRespond to narsie eating our atom
ninjadrain_actAtom level proc for space ninja's glove interactions.
onAwayMissionIs the atom in an away mission
onCentComIs this atom currently located on centcom
onSyndieBaseIs the atom in any of the centcom syndicate areas
on_logCalled when the atom log's in or out
on_mouse_enterFired whenever this atom is the most recent to be hovered over in the tick. Preferred over MouseEntered if you do not need information such as the position of the mouse. Especially because this is deferred over a tick, do not trust that client is not null.
play_attack_soundthe sound played when the atom is damaged.
prepare_hudsPrepare the huds for this atom
rcd_actRespond to an RCD acting on our item
rcd_valsReturn the values you get when an RCD eats you?
register_contextCreate a "Type-B" contextual screentip interaction, registering to add_context(). This will run add_context() when the atom is hovered over by an item for context. add_context() will not be called unless this is run. This is not necessary for Type-B interactions, as you can just apply the flag and register to the signal yourself.
relaydriveA special case of relaymove() in which the person relaying the move may be "driving" this atom
relaymoveAn atom we are buckled or is contained within us has tried to move
remove_airRemove air from this atom
remove_atom_colourRemoves an instance of colour_type from the atom's atom_colours list
repair_damageProc for recovering atom_integrity. Returns the amount repaired by
replace_smooth_overlaysInternal: Takes icon states as text to replace smoothing corner overlays
reset_plane_and_layerReset plane and layer values to their defaults.
returnArmorRetreive an atom's armor, creating it if it doesn't exist
return_airReturn the current air environment in this atom
return_analyzable_airReturn the air if we can analyze it
return_breathable_airReturn air that a contained mob will be breathing.
return_temperatureReturn atom temperature
run_atom_armorreturns the damage value of the attack after processing the atom's various armor protections
runechat_prefs_checkReturns the client runechat visible messages preference according to the message type.
rust_heretic_actCauses effects when the atom gets hit by a rust effect from heretics
screwdriver_actCalled on an object when a tool with screwdriver capabilities is used to left click an object
screwdriver_act_secondaryCalled on an object when a tool with screwdriver capabilities is used to right click an object
setArmorSetter for armor
setClosedUsed to set something as 'closed' if it's being used as a supplypod
setDirHook for running code when a dir change occurs
setOpenedUsed to set something as 'open' if it's being used as a supplypod
set_base_pixel_xSetter for the base_pixel_x variable to append behavior related to its changing.
set_base_pixel_ySetter for the base_pixel_y variable to append behavior related to its changing.
set_custom_materialsSets the custom materials for an item.
set_densitySetter for the density variable to append behavior related to its changing.
set_greyscaleHandles updates to greyscale value updates. The colors argument can be either a list or the full color string. Child procs should call parent last so the update happens after all changes.
set_hud_image_activeset every hud image in the given category active so other people with the given hud can see it. Arguments:
set_hud_image_inactivesets every hud image in the given category inactive so no one can see it
set_hud_image_varsUpdate the icon_state of an atom hud image.
set_light_colorSetter for the light color of this atom.
set_light_curveSetter for this atom's light falloff curve.
set_light_flagsSetter for the light flags of this atom.
set_light_onSetter for whether or not this atom's light is on.
set_light_powerSetter for the light power of this atom.
set_light_rangeSetter for the light range of this atom.
set_opacityUpdates the atom's opacity value.
set_smoothed_icon_stateChanges the icon state based on the new junction bitmask. Returns the old junction value.
shuttleRotateBase proc
singularity_actRespond to the singularity eating this atom
singularity_pullRespond to the singularity pulling on us
smooth_icondo not use, use QUEUE_SMOOTH(atom)
take_damageThe essential proc to call when an atom must receive damage of any kind.
tool_actTool behavior procedure. Redirects to tool-specific procs by default.
transfer_mob_blood_dnato add a mob's dna info into an object's blood_dna list.
unsafe_return_airReturn the current air environment in this atom. If this atom is a turf, it will not automatically update the zone.
update_aboveUpdates whatever openspace objects may be mimicking us. On turfs this queues an openturf update on the above openturf, on movables this updates their bound movable (if present). Meaningless on any type other than /turf or /atom/movable (incl. children).
update_appearanceUpdates the appearence of the icon
update_atom_colourResets the atom's color to null, and then sets it to the highest priority colour available
update_descUpdates the description of the atom
update_greyscaleChecks if this atom uses the GAGS system and if so updates the icon
update_iconUpdates the icon of the atom
update_icon_stateUpdates the icon state of the atom
update_integrityHandles the integrity of an atom changing. This must be called instead of changing integrity directly.
update_lightWill update the light (duh). Creates or destroys it if needed, makes it update values, makes sure it's got the correct source turf...
update_nameUpdates the name of the atom
update_overlaysUpdates the overlays of the atom
update_remote_sightthe sight changes to give to the mob whose perspective is set to that atom
visible_messageGenerate a visible message from this atom
vv_edit_varcall back when a var is edited on this atom
vv_get_dropdownReturn the markup to for the dropdown list for the VV panel for this atom
washWash this atom
welder_actCalled on an object when a tool with welder capabilities is used to left click an object
welder_act_secondaryCalled on an object when a tool with welder capabilities is used to right click an object
wirecutter_actCalled on an object when a tool with wirecutter capabilities is used to left click an object
wirecutter_act_secondaryCalled on an object when a tool with wirecutter capabilities is used to right click an object
wrench_actCalled on an object when a tool with wrench capabilities is used to left click an object
wrench_act_secondaryCalled on an object when a tool with wrench capabilities is used to right click an object
zap_actRespond to an electric bolt action on our item
zas_canpassChecks whether or not ZAS can occupy this atom's turf. Invoked by the ATMOS_CANPASS_TURF macro.
zas_update_locTells ZAS to mark the tile the atom is in to update.

Var Details

active_hud_list

all of this atom's HUD images which can actually be seen by players with that hud

add_overlays

a very temporary list of overlays to add

ai_controller

AI controller that controls this atom. type on init, then turned into an instance during runtime. Note: If you are for some reason giving this to a non-mob, it needs to create it's own in Initialize()

armor

Atom armor. Use returnArmor()

article

If non-null, overrides a/an/some in all cases

atom_colours

used to store the different colors on an atom

its inherent color, the colored paint applied on it, special color effect etc...

atom_storage

the datum handler for our contents - see create_storage() for creation method

base_icon_state

Used for changing icon states for different base sprites.

base_pixel_x

Default pixel x shifting for the atom's icon.

base_pixel_y

Default pixel y shifting for the atom's icon.

bottom_left_corner

Smoothing variable

bottom_right_corner

Smoothing variable

buckle_message_cooldown

Cooldown tick timer for buckle messages

canSmoothWith

List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself. Must be sorted.

can_astar_pass

How this atom should react to having its astar blocking checked

chat_color

Last color calculated for the the chatmessage overlays

chat_color_darkened

A luminescence-shifted value of the last color calculated for chatmessage overlays

chat_color_name

Last name used to calculate a color for the chatmessage overlays

custom_materials

The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.) The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use set_custom_materials.

damage_deflection

Damage under this value will be completely ignored

debris_amount

Amount of debris particles

debris_icon_state

Icon state of debris when impacted by a projectile

debris_scale

Scale of particle debris

debris_velocity

Velocity of debris particles

explosion_block

Value used to increment ex_act() if reactionary_explosions is on

fingerprintslast

Last fingerprints to touch this atom

flags_1

First atom flags var

flags_2

Second atom flags var

forensics

Forensics datum, initialzed when needed.

greyscale_colors

A string of hex format colors to be used by greyscale sprites, ex: "#0054aa#badcff"

greyscale_config

The config type to use for greyscaled sprites. Both this and greyscale_colors must be assigned to work.

hud_list

all of this atom's HUD (med/sec, etc) images. Associative list of the form: list(hud category = hud image or images for that category). most of the time hud category is associated with a single image, sometimes its associated with a list of images. not every hud in this list is actually used. for ones available for others to see, look at active_hud_list.

hud_possible

HUD images that this atom can provide.

in_atom_huds

A list of atom huds this object is within

initialized

Has this atom's constructor ran?

interaction_flags_atom

Intearaction flags

is_mouseover_interactable

!DO NOT DIRECTLY EDIT! Can mobs "interact" with this item? THIS IS ONLY USED FOR MOUSE ICONS. SEE interactables.dm.

light

Our light source. Don't fuck with this directly unless you have a good reason!

light_color

Hexadecimal RGB string representing the colour of the light. White by default.

light_falloff_curve

Adjusts curve for falloff gradient

light_flags

Bitflags to determine lighting-related atom properties.

light_inner_range

Range of the maximum brightness of light in tiles. Zero means no light.

light_on

Boolean variable for toggleable lights. Has no effect without the proper light_system, light_range and light_power values.

light_outer_range

Range where light begins to taper into darkness in tiles.

light_power

Intensity of the light. The stronger, the less shadows you will see on the lit area.

light_sources

Any light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.

light_system

Light systems, both shouldn't be active at the same time.

managed_overlays

overlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.

managed_vis_overlays

vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays.

material_flags

Bitfield for how the atom handles materials.

material_modifier

Modifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines.

mergers

Holds merger groups currently active on the atom. Do not access directly, use GetMergeGroup() instead.

orbit_target

Reference to atom being orbited

pass_flags_self

pass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.

rad_insulation

Radiation insulation types

reagents

Reagents holder

receive_ricochet_chance_mod

When a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this

receive_ricochet_damage_coeff

When a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom

remove_overlays

a very temporary list of overlays to remove

smoothing_flags

Icon-smoothing behavior.

smoothing_groups

What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it. Must be sorted.

smoothing_junction

What directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.

top_left_corner

Smoothing variable

top_right_corner

Smoothing variable

uses_integrity

any atom that uses integrity and can be damaged must set this to true, otherwise the integrity procs will throw an error

Proc Details

AllowDrop

Are you allowed to drop this atom

AltClickNoInteract

Use this instead of /mob/proc/AltClickOn where you only want turf content listing without additional atom alt-click interaction

Beam

This is what you use to start a beam. Example: origin.Beam(target, args). Store the return of this proc if you don't set maxdist or time, you need it to delete the beam.

Unless you're making a custom beam effect (see the beam_type argument), you won't actually have to mess with any other procs. Make sure you store the return of this Proc, you'll need it to kill the beam. Arguments: BeamTarget: Where you're beaming from. Where do you get origin? You didn't read the docs, fuck you. icon_state: What the beam's icon_state is. The datum effect isn't the ebeam object, it doesn't hold any icon and isn't type dependent. icon: What the beam's icon file is. Don't change this, man. All beam icons should be in beam.dmi anyways. maxdistance: how far the beam will go before stopping itself. Used mainly for two things: preventing lag if the beam may go in that direction and setting a range to abilities that use beams. beam_type: The type of your custom beam. This is for adding other wacky stuff for your beam only. Most likely, you won't (and shouldn't) change it.

CanAStarPass

This proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.

Trying to generate one long path across the station will call this proc on every single object on every single tile that we're seeing if we can move through, likely multiple times per tile since we're likely checking if we can access said tile from multiple directions, so keep these as lightweight as possible.

For turfs this will only be used if pathing_pass_method is TURF_PATHING_PASS_PROC

Arguments:

IMPORTANT NOTE: /turf/proc/LinkBlockedWithAccess assumes that overrides of CanAStarPass will always return true if density is FALSE If this is NOT you, ensure you edit your can_astar_pass variable. Check __DEFINES/path.dm

CanAllowThrough

Returns true or false to allow the mover to move through src

CanMoveOnto

A version of CanPass() that accounts for vertical movement.

CanPass

Whether the mover object can avoid being blocked by this atom, while arriving from (or leaving through) the border_dir.

CheckParts

Ensure a list of atoms/reagents exists inside this atom

Goes throught he list of passed in parts, if they're reagents, adds them to our reagent holder creating the reagent holder if it exists.

If the part is a moveable atom and the previous location of the item was a mob/living, it calls the inventory handler transferItemToLoc for that mob/living and transfers the part to this atom

Otherwise it simply forceMoves the atom into this atom

Click

Before anything else, defer these calls to a per-mobtype handler. This allows us to remove istype() spaghetti code, but requires the addition of other handler procs to simplify it.

Alternately, you could hardcode every mob's variation in a flat /mob/proc/ClickOn proc; however, that's a lot of code duplication and is hard to maintain.

Note that this proc can be overridden, and is in the case of screen objects.

Destroy

Top level of the destroy chain for most atoms

Cleans up the following:

Entered

An atom has entered this atom's contents

Default behaviour is to send the COMSIG_ATOM_ENTERED

Exit

An atom is attempting to exit this atom's contents

Default behaviour is to send the COMSIG_ATOM_EXIT

Exited

An atom has exited this atom's contents

Default behaviour is to send the COMSIG_ATOM_EXITED

GetExplosionBlock

returns how much the object blocks an explosion. Used by subtypes.

GetMergeGroup

Gets a merger datum representing the connected blob of objects in the allowed_types argument

HasProximity

Is this atom within 1 tile of another atom

Initialize

The primary method that objects are setup in SS13 with

we don't use New as we have better control over when this is called and we can choose to delay calls or hook other logic in and so forth

During roundstart map parsing, atoms are queued for intialization in the base atom/New(), After the map has loaded, then Initalize is called on all atoms one by one. NB: this is also true for loading map templates as well, so they don't Initalize until all objects in the map file are parsed and present in the world

If you're creating an object at any point after SSInit has run then this proc will be immediately be called from New.

mapload: This parameter is true if the atom being loaded is either being intialized during the Atom subsystem intialization, or if the atom is being loaded from the map template. If the item is being created at runtime any time after the Atom subsystem is intialized then it's false.

The mapload argument occupies the same position as loc when Initialize() is called by New(). loc will no longer be needed after it passed New(), and thus it is being overwritten with mapload at the end of atom/New() before this proc (atom/Initialize()) is called.

You must always call the parent of this proc, otherwise failures will occur as the item will not be seen as initalized (this can lead to all sorts of strange behaviour, like the item being completely unclickable)

You must not sleep in this proc, or any subprocs

Any parameters from new are passed through (excluding loc), naturally if you're loading from a map there are no other arguments

Must return an initialization hint or a runtime will occur.

Note: the following functions don't call the base for optimization and must copypasta handling:

IsObscured

Is the atom obscured by a PREVENT_CLICK_UNDER_1 object above it

LateInitialize

Late Intialization, for code that should run after all atoms have run Intialization

To have your LateIntialize proc be called, your atoms Initalization proc must return the hint INITIALIZE_HINT_LATELOAD otherwise you will never be called.

useful for doing things like finding other machines using INSTANCES_OF() because you can guarantee that all atoms will actually exist in the "WORLD" at this time and that all their Intialization code has been run

New

Called when an atom is created in byond (built in engine proc)

Not a lot happens here in SS13 code, as we offload most of the work to the Intialization proc, mostly we run the preloader if the preloader is being used and then call InitAtom of which the ultimate result is that the Intialize proc is called.

Shake

Perform a shake on an atom, resets its position afterwards

ShowProcessingGui

Creates the radial and processes the selected option

Topic

Passes Stat Browser Panel clicks to the game and calls client click on an atom

_Click

stupid workaround for byond not recognizing the /atom/Click typepath for the queued click callbacks

acid_act

Respond to acid being used on our atom

Default behaviour is to send COMSIG_ATOM_ACID_ACT and return

add_atom_colour

Adds an instance of colour_type to the atom's atom_colours list

add_blood_DNA

Returns TRUE if new blood dna was added.

add_context

Creates a "Type-B" contextual screentip interaction. When a user hovers over this, this proc will be called in order to provide context for contextual screentips. You must call register_context() in order for this to be registered. A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm) that map to the action as text. If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET. source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.

add_fiber_list

Add a list of fibers

add_fibers

Adds the fibers of M to our fiber list.

add_fingerprint

Adds the fingerprint of M to our fingerprint list. Ignoregloves will ignore any gloves they may be wearing.

add_fingerprint_list

Add a list of fingerprints

add_gunshot_residue

Add a list of residues

add_mob_blood

to add blood from a mob onto something, and transfer their dna info

airflow_hit_act

Called when "flying" calls airflow_hit() on src

alt_click_on_secondary

The base proc of when something is right clicked on when alt is held - generally use alt_click_secondary instead

alt_click_secondary

The base proc of when something is right clicked on when alt is held

analyzer_act

Called on an object when a tool with analyzer capabilities is used to left click an object

analyzer_act_secondary

Called on an object when a tool with analyzer capabilities is used to right click an object

assume_air

Take air from the passed in gas mixture datum

atmos_expose

This is your process() proc

atom_break

Called after the atom takes damage and integrity is below integrity_failure level

atom_destruction

what happens when the atom's integrity reaches zero.

atom_fix

Called when integrity is repaired above the breaking point having been broken before

attack_ai_secondary

What happens when the AI holds right-click on an item. Returns a SECONDARY_ATTACK_* value.

Arguments:

attack_drone

Defaults to attack_hand or attack_hand_secondary. Override it when you don't want drones to do same stuff as humans.

attack_grab

Interaction handler for being clicked on with a grab. This is called regardless of user intent.

Parameters:

Returns boolean to indicate whether the attack call was handled or not. If FALSE, the next use_* proc in the resolve chain will be called.

attack_hand

Return TRUE to cancel other attack hand effects that respect it. Modifiers is the assoc list for click info such as if it was a right click.

attack_hand_secondary

When the user uses their hand on an item while holding right-click Returns a SECONDARY_ATTACK_* value.

attack_hulk

This atom has been hit by a hulkified mob in hulk mode (user)

attack_paw

Attacked by monkey

attack_robot_secondary

What happens when the cyborg without active module holds right-click on an item. Returns a SECONDARY_ATTACK_* value.

Arguments:

attack_self_tk

Telekinesis item attack_self act.

attack_tk

Telekinesis attack act, happens when the TK user clicks on a non-adjacent target in range.

attackby

Called on an object being hit by an item

Arguments:

See: /obj/item/proc/melee_attack_chain

attackby_secondary

Called on an object being right-clicked on by an item

Arguments:

See: /obj/item/proc/melee_attack_chain

attacked_by

Called from [/obj/item/proc/attack_atom] and /obj/item/proc/attack if the attack succeeds

attempt_charge

Used to attempt to charge an object with a payment component.

Use this if an atom needs to attempt to charge another atom.

audible_message

Show a message to all mobs in earshot of this atom

Use for objects performing audible actions

vars:

balloon_alert

Creates text that will float from the atom upwards to the viewer.

balloon_alert_to_viewers

Create balloon alerts (text that floats up) to everything within range. Will only display to people who can see.

become_atmos_sensitive

allows this movable to know when it's container's temperature has changed

bitmask_smooth

Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.

Returns the previous smoothing_junction state so the previous state can be compared with the new one after the proc ends, and see the changes, if any.

blob_act

React to a hit by a blob objecd

default behaviour is to send the COMSIG_ATOM_BLOB_ACT signal

bullet_act

React to a hit by a projectile object

Default behaviour is to send the COMSIG_ATOM_BULLET_ACT and then call on_hit on the projectile.

@params hitting_projectile - projectile def_zone - zone hit piercing_hit - is this hit piercing or normal?

calculate_adjacencies

Scans all adjacent turfs to find targets to smooth with.

check_eye

Check if this atoms eye is still alive (probably)

check_projectile_armor

A cut-out proc for /atom/proc/bullet_act so living mobs can have their own armor behavior checks without causing issues with needing their own on_hit call

clone_storage

A quick and easy way to /clone/ a storage datum for an atom (does not copy over contents, only the datum details)

connect_to_shuttle

Connect this atom to a shuttle

container_resist_act

Called when something resists while this atom is its loc

contains

Returns true if the src countain the atom target

contents_explosion

Handle what happens when your contents are exploded by a bomb

create_forensics

Creates our forensics datum

create_reagents

Convenience proc to create a reagents holder for an atom

Arguments:

create_storage

A quick and easy way to create a storage datum for an atom

crowbar_act

Called on an object when a tool with crowbar capabilities is used to left click an object

crowbar_act_secondary

Called on an object when a tool with crowbar capabilities is used to right click an object

cut_overlays

Tracks the current index into build_overlays so that we can preserve ordering.

do_alert_animation

Does the MGS ! animation

do_hurt_animation

Plays an animation for getting hit.

drop_location

Where atoms should drop if taken from this atom

emag_act

Respond to an emag being used on our atom

Default behaviour is to send COMSIG_ATOM_EMAG_ACT and return

emp_act

React to an EMP of the given severity

Default behaviour is to send the COMSIG_ATOM_EMP_ACT signal

If the signal does not return protection, and there are attached wires then we call emp_pulse on the wires

We then return the protection value

ex_act

React to being hit by an explosion

Should be called through the EX_ACT wrapper macro. The wrapper takes care of the COMSIG_ATOM_EX_ACT signal. as well as calling /atom/proc/contents_explosion.

examine

Called when a mob examines (shift click or verb) this atom

Default behaviour is to get the name and icon of the object and it's reagents where the [TRANSPARENT] flag is set on the reagents holder

Produces a signal COMSIG_PARENT_EXAMINE

examine_more

Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_WINDOW (default 1 second)

This is where you can put extra information on something that may be superfluous or not important in critical gameplay moments, while allowing people to manually double-examine to take a closer look

Produces a signal COMSIG_PARENT_EXAMINE_MORE

expose_reagents

find_all_cells_containing

debug proc for checking if a movable is in multiple cells when it shouldnt be (ie always unless multitile entering is implemented)

find_type_in_direction

Scans direction to find targets to smooth with.

get_all_contents

Returns the src and all recursive contents as a list.

get_all_contents_ignoring

Like get_all_contents_type, but uses a typecache list as argument

get_all_contents_type

identical to get_all_contents but returns a list of atoms of the type passed in the argument.

get_all_orbiters

Recursive getter method to return a list of all ghosts orbitting this atom

This will work fine without manually passing arguments.

get_antag_info

Returns a list of antagonist-related information about this object.

get_controls_info

Returns a list of controls information about this object.

get_custom_material_amount

Gets the total amount of materials in this atom.

get_dumping_location

If someone's trying to dump items onto our atom, where should they be dumped to?

Return a loc to place objects, or null to stop dumping.

get_examine_name

Get the name of this object for examine

You can override what is returned from this proc by registering to listen for the COMSIG_ATOM_GET_EXAMINE_NAME signal

get_examine_string

Generate the full examine string of this atom (including icon for goonchat)

get_hud_pixel_y

Returns a pixel_y value to use for hud code

get_id_examine_strings

Returns an extended list of examine strings for any contained ID cards.

Arguments:

get_integrity

This mostly exists to keep atom_integrity private. Might be useful in the future.

get_integrity_percentage

Retrieves the atom's current damage as a percentage where 100% is 100. If use_raw_values is TRUE, uses the raw var values instead of the get_* proc results.

get_lore_info

Returns a list of lore information about this object.

get_master_material

Gets the most common material in the object.

get_material_composition

Returns the material composition of the atom.

Used when recycling items, specifically to turn alloys back into their component mats.

Exists because I'd need to add a way to un-alloy alloys or otherwise deal with people converting the entire stations material supply into alloys.

Arguments:

get_mechanics_info

Returns a list of mechanics information for this object.

get_name_chaser

Used to insert text after the name but before the description in examine()

get_remote_view_fullscreens

the vision impairment to give to the mob whose perspective is set to that atom

(e.g. an unfocused camera giving you an impaired vision when looking through it)

handle_atom_del

This proc is called when an atom in our contents has it's Destroy called

Default behaviour is to simply send COMSIG_ATOM_CONTENTS_DEL

handle_fall

Used for making a sound when a mob involuntarily falls into the ground.

handle_slip

Handle the atom being slipped over

has_gravity

Returns true if this atom has gravity for the passed in turf

Sends signals COMSIG_ATOM_HAS_GRAVITY and COMSIG_TURF_HAS_GRAVITY, both can force gravity with the forced gravity var.

micro-optimized to hell because this proc is very hot, being called several times per movement every movement.

HEY JACKASS, LISTEN IF YOU ADD SOMETHING TO THIS PROC, MAKE SURE /mob/living ACCOUNTS FOR IT Living mobs treat gravity in an event based manner. We've decomposed this proc into different checks for them to use. If you add more to it, make sure you do that, or things will behave strangely

Gravity situations:

has_material_category

Fetches a list of all of the materials this object has with the desired material category.

Arguments:

has_material_type

Fetches a list of all of the materials this object has of the desired type. Returns null if there is no valid materials of the type

Arguments:

hear_location

What atom is actually "Hearing".

hitby

React to being hit by a thrown object

Default behaviour is to call hitby_react on ourselves after 2 seconds if we are dense and under normal gravity.

Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is deleted shortly after hitting something (during explosions or other massive events that throw lots of items around - singularity being a notable example)

hitby_react

We have have actually hit the passed in atom

Default behaviour is to move back from the item that hit us

hulk_damage

Called to get the damage that hulks will deal to the atom.

in_contents_of

Return true if we're inside the passed in atom

is_drainable

Is this atom drainable of reagents

is_drawable

Can we draw from this atom with an injectable atom

is_injectable

Is this atom injectable into other atoms

is_open_container

Convenience proc to see if a container is open for chemistry handling

is_refillable

Can this atoms reagents be refilled

isinspace

Is this atom in space

log_message

Generic logging helper

reads the type of the log and writes it to the respective log file unless log_globally is FALSE Arguments:

log_talk

Helper for logging chat messages or other logs with arbitrary inputs(e.g. announcements)

This proc compiles a log string by prefixing the tag to the message and suffixing what it was forced_by if anything if the message lacks a tag and suffix then it is logged on its own Arguments:

log_touch

For admins. Logs when mobs players with this thing.

lose_atmos_sensitivity

removes temperature sensitivity

makeHologram

Makes this atom look like a "hologram" So transparent, blue and with a scanline

mat_update_desc

This proc is called when a material updates an object's description

mech_melee_attack

Mech melee attack

Called when a mech melees a target with fists Handles damaging the target & associated effects return value is number of damage dealt Arguments:

modify_max_integrity

changes max_integrity while retaining current health percentage, returns TRUE if the atom got broken.

multitool_act

Called on an object when a tool with multitool capabilities is used to left click an object

multitool_act_secondary

Called on an object when a tool with multitool capabilities is used to right click an object

multitool_check_buffer

Check if the multitool has an item in it's data buffer

narsie_act

Respond to narsie eating our atom

Default behaviour is to send COMSIG_ATOM_NARSIE_ACT and return

ninjadrain_act

Atom level proc for space ninja's glove interactions.

Proc which only occurs when space ninja uses his gloves on an atom. Does nothing by default, but effects will vary. Arguments:

onAwayMission

Is the atom in an away mission

Must be in the away mission z-level to return TRUE

Also used in gamemode code for win conditions

onCentCom

Is this atom currently located on centcom

Specifically, is it on the z level and within the centcom areas

You can also be in a shuttleshuttle during endgame transit

Used in gamemode to identify mobs who have escaped and for some other areas of the code who don't want atoms where they shouldn't be

onSyndieBase

Is the atom in any of the centcom syndicate areas

Either in the syndie base on centcom, or any of their shuttles

Also used in gamemode code for win conditions

on_log

Called when the atom log's in or out

Default behaviour is to call on_log on the location this atom is in

on_mouse_enter

Fired whenever this atom is the most recent to be hovered over in the tick. Preferred over MouseEntered if you do not need information such as the position of the mouse. Especially because this is deferred over a tick, do not trust that client is not null.

play_attack_sound

the sound played when the atom is damaged.

prepare_huds

Prepare the huds for this atom

Goes through hud_possible list and adds the images to the hud_list variable (if not already cached)

rcd_act

Respond to an RCD acting on our item

Default behaviour is to send COMSIG_ATOM_RCD_ACT and return FALSE

rcd_vals

Return the values you get when an RCD eats you?

register_context

Create a "Type-B" contextual screentip interaction, registering to add_context(). This will run add_context() when the atom is hovered over by an item for context. add_context() will not be called unless this is run. This is not necessary for Type-B interactions, as you can just apply the flag and register to the signal yourself.

relaydrive

A special case of relaymove() in which the person relaying the move may be "driving" this atom

This is a special case for vehicles and ridden animals where the relayed movement may be handled by the riding component attached to this atom. Returns TRUE as long as there's nothing blocking the movement, or FALSE if the signal gets a reply that specifically blocks the movement

relaymove

An atom we are buckled or is contained within us has tried to move

Default behaviour is to send a warning that the user can't move while buckled as long as the buckle_message_cooldown has expired (50 ticks)

remove_air

Remove air from this atom

remove_atom_colour

Removes an instance of colour_type from the atom's atom_colours list

repair_damage

Proc for recovering atom_integrity. Returns the amount repaired by

replace_smooth_overlays

Internal: Takes icon states as text to replace smoothing corner overlays

reset_plane_and_layer

Reset plane and layer values to their defaults.

returnArmor

Retreive an atom's armor, creating it if it doesn't exist

return_air

Return the current air environment in this atom

return_analyzable_air

Return the air if we can analyze it

return_breathable_air

Return air that a contained mob will be breathing.

return_temperature

Return atom temperature

run_atom_armor

returns the damage value of the attack after processing the atom's various armor protections

runechat_prefs_check

Returns the client runechat visible messages preference according to the message type.

rust_heretic_act

Causes effects when the atom gets hit by a rust effect from heretics

Override this if you want custom behaviour in whatever gets hit by the rust

screwdriver_act

Called on an object when a tool with screwdriver capabilities is used to left click an object

screwdriver_act_secondary

Called on an object when a tool with screwdriver capabilities is used to right click an object

setArmor

Setter for armor

setClosed

Used to set something as 'closed' if it's being used as a supplypod

Override this if you want an atom to be usable as a supplypod.

setDir

Hook for running code when a dir change occurs

Not recommended to use, listen for the COMSIG_ATOM_DIR_CHANGE signal instead (sent by this proc)

setOpened

Used to set something as 'open' if it's being used as a supplypod

Override this if you want an atom to be usable as a supplypod.

set_base_pixel_x

Setter for the base_pixel_x variable to append behavior related to its changing.

set_base_pixel_y

Setter for the base_pixel_y variable to append behavior related to its changing.

set_custom_materials

Sets the custom materials for an item.

set_density

Setter for the density variable to append behavior related to its changing.

set_greyscale

Handles updates to greyscale value updates. The colors argument can be either a list or the full color string. Child procs should call parent last so the update happens after all changes.

set_hud_image_active

set every hud image in the given category active so other people with the given hud can see it. Arguments:

set_hud_image_inactive

sets every hud image in the given category inactive so no one can see it

set_hud_image_vars

Update the icon_state of an atom hud image.

set_light_color

Setter for the light color of this atom.

set_light_curve

Setter for this atom's light falloff curve.

set_light_flags

Setter for the light flags of this atom.

set_light_on

Setter for whether or not this atom's light is on.

set_light_power

Setter for the light power of this atom.

set_light_range

Setter for the light range of this atom.

set_opacity

Updates the atom's opacity value.

This exists to act as a hook for associated behavior. It notifies (potentially) affected light sources so they can update (if needed).

set_smoothed_icon_state

Changes the icon state based on the new junction bitmask. Returns the old junction value.

shuttleRotate

Base proc

singularity_act

Respond to the singularity eating this atom

singularity_pull

Respond to the singularity pulling on us

Default behaviour is to send COMSIG_ATOM_SING_PULL and return

smooth_icon

do not use, use QUEUE_SMOOTH(atom)

take_damage

The essential proc to call when an atom must receive damage of any kind.

tool_act

Tool behavior procedure. Redirects to tool-specific procs by default.

You can override it to catch all tool interactions, for use in complex deconstruction procs.

Must return parent proc ..() in the end if overridden

transfer_mob_blood_dna

to add a mob's dna info into an object's blood_dna list.

unsafe_return_air

Return the current air environment in this atom. If this atom is a turf, it will not automatically update the zone.

update_above

Updates whatever openspace objects may be mimicking us. On turfs this queues an openturf update on the above openturf, on movables this updates their bound movable (if present). Meaningless on any type other than /turf or /atom/movable (incl. children).

update_appearance

Updates the appearence of the icon

Mostly delegates to update_name, update_desc, and update_icon

Arguments:

update_atom_colour

Resets the atom's color to null, and then sets it to the highest priority colour available

update_desc

Updates the description of the atom

update_greyscale

Checks if this atom uses the GAGS system and if so updates the icon

update_icon

Updates the icon of the atom

update_icon_state

Updates the icon state of the atom

update_integrity

Handles the integrity of an atom changing. This must be called instead of changing integrity directly.

update_light

Will update the light (duh). Creates or destroys it if needed, makes it update values, makes sure it's got the correct source turf...

update_name

Updates the name of the atom

update_overlays

Updates the overlays of the atom

update_remote_sight

the sight changes to give to the mob whose perspective is set to that atom

(e.g. A mob with nightvision loses its nightvision while looking through a normal camera)

visible_message

Generate a visible message from this atom

Show a message to all player mobs who sees this atom

Show a message to the src mob (if the src is a mob)

Use for atoms performing visible actions

message is output to anyone who can see, e.g. "[src] does something!"

Vars:

vv_edit_var

call back when a var is edited on this atom

Can be used to implement special handling of vars

At the atom level, if you edit a var named "color" it will add the atom colour with admin level priority to the atom colours list

Also, if GLOB.Debug2 is FALSE, it sets the ADMIN_SPAWNED_1 flag on flags_1, which signifies the object has been admin edited

vv_get_dropdown

Return the markup to for the dropdown list for the VV panel for this atom

Override in subtypes to add custom VV handling in the VV panel

wash

Wash this atom

This will clean it off any temporary stuff like blood. Override this in your item to add custom cleaning behavior. Returns true if any washing was necessary and thus performed Arguments:

welder_act

Called on an object when a tool with welder capabilities is used to left click an object

welder_act_secondary

Called on an object when a tool with welder capabilities is used to right click an object

wirecutter_act

Called on an object when a tool with wirecutter capabilities is used to left click an object

wirecutter_act_secondary

Called on an object when a tool with wirecutter capabilities is used to right click an object

wrench_act

Called on an object when a tool with wrench capabilities is used to left click an object

wrench_act_secondary

Called on an object when a tool with wrench capabilities is used to right click an object

zap_act

Respond to an electric bolt action on our item

Default behaviour is to return, we define here to allow for cleaner code later on

zas_canpass

Checks whether or not ZAS can occupy this atom's turf. Invoked by the ATMOS_CANPASS_TURF macro.

zas_update_loc

Tells ZAS to mark the tile the atom is in to update.