byond - Modules - TypesVar Details - Proc Details

atom

Vars

add_overlaysa very temporary list of overlays to add
allow_pass_flagsThings can move past this atom if they have the corrosponding flag
alternate_appearancesThe list of alternate appearances for this atom
articleIf non-null, overrides a/an/some in all cases
atom_coloursused to store the different colors on an atom. its inherent color, the colored paint applied on it, special color effect etc...
base_icon_stateUsed for changing icon states for different base sprites.
bottom_left_cornerSmoothing variable
bottom_right_cornerSmoothing variable
buckle_message_cooldownCooldown for telling someone they're buckled
canSmoothWithList of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself.
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
display_iconsRelated to do_after/do_mob overlays, I can't get my hopes high.
examine_thatsText that appears preceding the name in /atom/proc/examine_title. Don't include spaces after this, since that proc adds a space on its own.
explosion_blockHow much does this atom block the explosion's shock wave.
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_listThis atom's HUD (med/sec, etc) images. Associative list.
hud_possibleHUD images that this mob can provide.
hybrid_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.
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_mask_typetypepath for the lighting maskfor dynamic light sources
light_onBoolean variable for toggleable lights. Has no effect without the proper light_system, light_range and light_power values.
light_pixel_xx offset for dynamic lights on this atom
light_pixel_yy offset for dynamic lights on this atom
light_powerIntensity of the light. The stronger, the less shadows you will see on the lit area.
light_rangeRange of the light in tiles. Zero means no light.
light_systemLight systems, only one of the three should 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.
minimap_colorThe color this atom will be if we choose to draw it on the minimap
realized_overlaysList of overlay "keys" (info about the appearance) -> mutable versions of static appearances Drawn from the overlays list
realized_underlaysList of underlay "keys" (info about the appearance) -> mutable versions of static appearances Drawn from the underlays list
remove_overlaysa very temporary list of overlays to remove
smoothing_behaviorWhether this atom smooths with things around it, and what type of smoothing if any.
smoothing_flagsIcon-smoothing behavior.
smoothing_groupsWhat smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it.
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.
static_lightThe light source, datum. Dont fuck with this directly
static_light_sourcesStatic light sources currently attached to this atom, this includes ones owned by atoms inside this atom
storage_datumvar containing our storage, see atom/proc/create_storage()
top_left_cornerSmoothing variable
top_right_cornerSmoothing variable
update_on_zLazylist of all images (or atoms, I'm sorry) (hopefully attached to us) to update when we change z levels You will need to manage adding/removing from this yourself, but I'll do the updating for you
update_overlays_on_zLazylist of all overlays attached to us to update when we change z levels You will need to manage adding/removing from this yourself, but I'll do the updating for you Oh and note, if order of addition is important this WILL break that. so mind yourself

Procs

AltRightClickCalled when a mob Alt + Rightmouseclicks this atom, given that mobs Altclick() does not return TRUE
CanAllowThroughReturns true or false to allow the mover to move through src
CanPassCan the mover object pass this atom, while heading for the target turf
CheckPartsEnsure a list of atoms/reagents exists inside this atom
ExitAn atom is attempting to exit this atom's contents
GetAllContentsReturns the src and all recursive contents as a list.
HandleTurfChangecalled when the turf the atom resides on is ChangeTurfed
InitializeThe primary method that objects are setup in SS13 with
LateInitializecalled if Initialize returns INITIALIZE_HINT_LATELOAD
NewCalled when an atom is created in byond (built in engine proc)
RightClickCalled when a mob Rightmouseclicks this atom
ShakePerform a shake on an atom, resets its position afterwards
ShiftRightClickCalled when a mob Shift + Rightmouseclicks this atom
accelerate_crosserSpeeds up xeno on crossed
add_bloodadd_blood
add_debris_elementAdds the debris element for projectile impacts
animation_spinSpins the atom
apply_fire_support_laserSets a laser overlay for fire support binos
attack_hand_alternateThis proc is called when a human user right clicks on an atom with an empty hand
attack_powerloaderThis proc is called when an atom gets attacked (clicked on) by a powerloader clamp
audible_messageShow a message to all mobs in earshot of this atom Use for objects performing audible actions message is the message output to anyone who can hear. deaf_message (optional) is what deaf people will see. hearing_distance (optional) is the range, how many tiles away the message can be heard.
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.
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.
calculate_adjacenciesScans all adjacent turfs to find targets to smooth with.
can_slipFunction that determines if we can slip when we walk over this atom.
clean_bloodRemoves blood from our atom
connect_to_shuttleThis proc is called on atoms when they are loaded into a shuttle
create_reagentsConvenience proc to create a reagents holder for an atom Max vol is maximum volume of holder
create_storageHelper proc to give something storage
dissolvabilityreturns if we can melt an object, but also the speed at which it happens. 1 just means we melt it. 0,5 means we need a higher strength acid. higher than 1 just makes it melt faster
do_acid_meltWhat happens when with atom is melted by acid
do_ai_interactAI mob interaction with this atom, such as picking it up
do_jitter_animationDoes a jitter animation, with a few settings so as to allow changing the animation as needed:
ex_actReact to being hit by an explosion
examineCalled when a mob examines this atom. /mob/verb/examinate
examine_descriptorThis is called when we want to get a sort-of "descriptor" for this item, where applicable.
examine_tagsA list of "tags" displayed after atom's description in examine. This should return an assoc list of tags -> tooltips for them. Should probably be calling parent so signals can modify it.
examine_titleGenerate the full examine string of this atom (including icon for chat)
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_grid_statistics_for_z_leveldebug proc for finding how full the cells of src's z level are
find_type_in_directionScans direction to find targets to smooth with.
fire_actEffects of fire
get_ai_hazard_radiusReturns the radius around this considered a hazard
get_all_contents_typeidentical to getallcontents 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_examine_iconIcon displayed in examine. Really just an icon2html wrapper, BUT we can override this on something like a mob if it has issues with icon2html
get_examine_nameGet the name of this object for examine
get_hard_armorReturns the hard armor for the given atom. If human and a limb is specified, gets the armor for that specific limb.
get_self_acidChecks if there is acid melting this atom
get_soft_armorReturns the soft armor for the given atom. If human and a limb is specified, gets the armor for that specific limb.
get_weld_spark_icon_and_statefetches the correct weldint spark sprite to use. ideally we should replace this with an automatically centering system
grab_interactInteraction for using a grab on an atom
is_open_containerConvenience proc for reagents handling.
lava_actEffects of lava. Return true where we want the lava to keep processing
link_interiorgeneric linkage proc for atoms to an interior. e.g loading the tank
log_messageGeneric logging helper
log_talkHelper for logging chat messages or other logs with arbitrary inputs (e.g. announcements)
mech_melee_attack
mech_shift_clickMech shift click functionality
modify_by_armorReturns a number after taking into account both soft and hard armor for the specified damage type, usually damage
notify_ai_hazardNotifies AI of a new hazard
plastique_actHandles the effect of c4 on the atom - overridden as needed
plastique_time_modAllows the c4 timer to be tweaked on certain atoms as required
psi_actPsionic interaction with this atom
punch_actHandles anything that should happen when the Warrior's punch hits any atom.
rc_vc_msg_prefs_checkReturns the client runechat visible messages preference according to the message type.
realize_overlaysTakes the atoms's existing overlays and underlays, and makes them mutable so they can be properly vv'd in the realized_overlays/underlays list
relaydriveA special case of relaymove() in which the person relaying the move may be "driving" this atom
remove_fire_support_laserRemoves a laser overlay for fire support binos
reset_lightTurn on the light, should be called by a timer
search_contents_foratom/proc/search_contents_for(path,list/filter_path=null) Recursevly searches all atom contens (including contents contents and so on).
set_greyscale_colorsChecks if the colors given are different and if so causes a greyscale icon update The colors argument can be either a list or the full color string
set_greyscale_configChecks if the greyscale config given is different and if so causes a greyscale icon update
set_opacityUpdates the atom's opacity value.
set_smoothed_icon_stateChanges the icon state based on the new junction bitmask.
should_apply_acidreturns if we are able to apply acid to the atom, also checks if there is already a stronger acid on this atom
shuttleRotateBase proc
static_update_lightPretty simple, just updates static lights on this atom
turn_lightIf this object has lights, turn it on/off. user: the mob actioning this toggle_on: if TRUE, will try to turn ON the light. Opposite if FALSE cooldown: how long until you can toggle the light on/off again sparks: if a spark effect will be generated forced: if TRUE and toggle_on = FALSE, will cause the light to turn on in cooldown second originated_turf: if not null, will check if the obj_turf is closer than distance_max to originated_turf, and the proc will return if not distance_max: used to check if originated_turf is close to obj.loc
update_appearanceUpdates the appearence of the icon
update_descUpdates the description of the atom
update_greyscaleChecks if this atom uses the GAS system and if so updates the icon
update_iconUpdates the icon of the atom
update_icon_stateUpdates the icon state of the atom
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
vehicle_collisionThis proc is called when a atom is crashed into by a armored vehicle. Damage is then dealt to both the vehicle and atom
visible_messageShow 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. "The [src] does something!" self_message (optional) is what the src mob sees e.g. "You do something!" blind_message (optional) is what blind people will hear e.g. "You hear something!" vision_distance (optional) define how many tiles away the message can be seen. ignored_mob (optional) doesn't show any message to a given mob if TRUE.
washWash this atom

Var Details

add_overlays

a very temporary list of overlays to add

allow_pass_flags

Things can move past this atom if they have the corrosponding flag

alternate_appearances

The list of alternate appearances for this atom

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...

base_icon_state

Used for changing icon states for different base sprites.

bottom_left_corner

Smoothing variable

bottom_right_corner

Smoothing variable

buckle_message_cooldown

Cooldown for telling someone they're buckled

canSmoothWith

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

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

display_icons

Related to do_after/do_mob overlays, I can't get my hopes high.

examine_thats

Text that appears preceding the name in /atom/proc/examine_title. Don't include spaces after this, since that proc adds a space on its own.

explosion_block

How much does this atom block the explosion's shock wave.

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

This atom's HUD (med/sec, etc) images. Associative list.

hud_possible

HUD images that this mob can provide.

hybrid_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

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_mask_type

typepath for the lighting maskfor dynamic light sources

light_on

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

light_pixel_x

x offset for dynamic lights on this atom

light_pixel_y

y offset for dynamic lights on this atom

light_power

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

light_range

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

light_system

Light systems, only one of the three should 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.

minimap_color

The color this atom will be if we choose to draw it on the minimap

realized_overlays

List of overlay "keys" (info about the appearance) -> mutable versions of static appearances Drawn from the overlays list

realized_underlays

List of underlay "keys" (info about the appearance) -> mutable versions of static appearances Drawn from the underlays list

remove_overlays

a very temporary list of overlays to remove

smoothing_behavior

Whether this atom smooths with things around it, and what type of smoothing if any.

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.

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.

static_light

The light source, datum. Dont fuck with this directly

static_light_sources

Static light sources currently attached to this atom, this includes ones owned by atoms inside this atom

storage_datum

var containing our storage, see atom/proc/create_storage()

top_left_corner

Smoothing variable

top_right_corner

Smoothing variable

update_on_z

Lazylist of all images (or atoms, I'm sorry) (hopefully attached to us) to update when we change z levels You will need to manage adding/removing from this yourself, but I'll do the updating for you

update_overlays_on_z

Lazylist of all overlays attached to us to update when we change z levels You will need to manage adding/removing from this yourself, but I'll do the updating for you Oh and note, if order of addition is important this WILL break that. so mind yourself

Proc Details

AltRightClick

Called when a mob Alt + Rightmouseclicks this atom, given that mobs Altclick() does not return TRUE

CanAllowThrough

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

CanPass

Can the mover object pass this atom, while heading for the target turf

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

Exit

An atom is attempting to exit this atom's contents

Default behaviour is to send the [COMSIG_ATOM_EXIT]

GetAllContents

Returns the src and all recursive contents as a list.

HandleTurfChange

called when the turf the atom resides on is ChangeTurfed

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.

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][INITIALIZE_HINT_NORMAL] or a runtime will occur.

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

LateInitialize

called if Initialize returns INITIALIZE_HINT_LATELOAD

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 Initialization proc, mostly we run the preloader if the preloader is being used and then call InitAtom of which the ultimate result is that the Initialize proc is called.

RightClick

Called when a mob Rightmouseclicks this atom

Shake

Perform a shake on an atom, resets its position afterwards

ShiftRightClick

Called when a mob Shift + Rightmouseclicks this atom

accelerate_crosser

Speeds up xeno on crossed

add_blood

add_blood

add_debris_element

Adds the debris element for projectile impacts

animation_spin

Spins the atom

apply_fire_support_laser

Sets a laser overlay for fire support binos

attack_hand_alternate

This proc is called when a human user right clicks on an atom with an empty hand

Arguments:

attack_powerloader

This proc is called when an atom gets attacked (clicked on) by a powerloader clamp

Arguments:

audible_message

Show a message to all mobs in earshot of this atom Use for objects performing audible actions message is the message output to anyone who can hear. deaf_message (optional) is what deaf people will see. hearing_distance (optional) is the range, how many tiles away the message can be heard.

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.

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.

calculate_adjacencies

Scans all adjacent turfs to find targets to smooth with.

can_slip

Function that determines if we can slip when we walk over this atom.

Returns true if we can, false if we can't. Put your special checks here.

clean_blood

Removes blood from our atom

connect_to_shuttle

This proc is called on atoms when they are loaded into a shuttle

create_reagents

Convenience proc to create a reagents holder for an atom Max vol is maximum volume of holder

create_storage

Helper proc to give something storage

dissolvability

returns if we can melt an object, but also the speed at which it happens. 1 just means we melt it. 0,5 means we need a higher strength acid. higher than 1 just makes it melt faster

do_acid_melt

What happens when with atom is melted by acid

do_ai_interact

AI mob interaction with this atom, such as picking it up

do_jitter_animation

Does a jitter animation, with a few settings so as to allow changing the animation as needed:

ex_act

React to being hit by an explosion

Default behaviour is to call [contents_explosion][/atom/proc/contents_explosion] and send the [COMSIG_ATOM_EX_ACT] signal

examine

Called when a mob examines this atom. /mob/verb/examinate

This is the actual proc that generates the text for examining something

Default behaviour is to get the name and icon of the object and its reagents where the TRANSPARENT flag is set on the reagents holder

SIGNAL FUN: Produces a signal COMSIG_ATOM_EXAMINE - can use this to directly modify/add stuff to the examine list

examine_descriptor

This is called when we want to get a sort-of "descriptor" for this item, where applicable.

Must return a string. Can be something like "item" "weapon" etc.

Used for [/obj/item/examine_tags], will appear in the weight class tooltip, like: It is a normal-sized (whatever this returns).

examine_tags

A list of "tags" displayed after atom's description in examine. This should return an assoc list of tags -> tooltips for them. Should probably be calling parent so signals can modify it.

Things to keep in mind:

Example usage:

.["small"] = "It is a small [examine_descriptor(user)]." // It is a small item.
.["fireproof"] = "It is made of fire-retardant materials."
.["and conductive"] = "Blah blah blah." // Using 'and' in the final element's main text will work aswell.

This will result in

It is small, fireproof and conductive.

SIGNAL FUN: Produces a signal COMSIG_ATOM_EXAMINE_TAGS - can use this to directly modify/add stuff to the examine tags list

examine_title

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

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_grid_statistics_for_z_level

debug proc for finding how full the cells of src's z level are

find_type_in_direction

Scans direction to find targets to smooth with.

fire_act

Effects of fire

get_ai_hazard_radius

Returns the radius around this considered a hazard

get_all_contents_type

identical to getallcontents 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_examine_icon

Icon displayed in examine. Really just an icon2html wrapper, BUT we can override this on something like a mob if it has issues with icon2html

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_hard_armor

Returns the hard armor for the given atom. If human and a limb is specified, gets the armor for that specific limb.

get_self_acid

Checks if there is acid melting this atom

get_soft_armor

Returns the soft armor for the given atom. If human and a limb is specified, gets the armor for that specific limb.

get_weld_spark_icon_and_state

fetches the correct weldint spark sprite to use. ideally we should replace this with an automatically centering system

grab_interact

Interaction for using a grab on an atom

is_open_container

Convenience proc for reagents handling.

lava_act

Effects of lava. Return true where we want the lava to keep processing

generic linkage proc for atoms to an interior. e.g loading the tank

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:

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:

mech_shift_click

Mech shift click functionality

modify_by_armor

Returns a number after taking into account both soft and hard armor for the specified damage type, usually damage

Arguments

Hard armor reduces penetration by a flat amount, and sunder in the case of xenos Penetration reduces soft armor by a flat amount. Damage cannot go into the negative, or exceed the original amount.

notify_ai_hazard

Notifies AI of a new hazard

plastique_act

Handles the effect of c4 on the atom - overridden as needed

plastique_time_mod

Allows the c4 timer to be tweaked on certain atoms as required

psi_act

Psionic interaction with this atom

punch_act

Handles anything that should happen when the Warrior's punch hits any atom.

rc_vc_msg_prefs_check

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

realize_overlays

Takes the atoms's existing overlays and underlays, and makes them mutable so they can be properly vv'd in the realized_overlays/underlays list

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

remove_fire_support_laser

Removes a laser overlay for fire support binos

reset_light

Turn on the light, should be called by a timer

search_contents_for

atom/proc/search_contents_for(path,list/filter_path=null) Recursevly searches all atom contens (including contents contents and so on).

ARGS: path - search atom contents for atoms of this type list/filter_path - if set, contents of atoms not of types in this list are excluded from search.

RETURNS: list of found atoms

set_greyscale_colors

Checks if the colors given are different and if so causes a greyscale icon update The colors argument can be either a list or the full color string

set_greyscale_config

Checks if the greyscale config given is different and if so causes a greyscale icon update

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.

should_apply_acid

returns if we are able to apply acid to the atom, also checks if there is already a stronger acid on this atom

shuttleRotate

Base proc

static_update_light

Pretty simple, just updates static lights on this atom

turn_light

If this object has lights, turn it on/off. user: the mob actioning this toggle_on: if TRUE, will try to turn ON the light. Opposite if FALSE cooldown: how long until you can toggle the light on/off again sparks: if a spark effect will be generated forced: if TRUE and toggle_on = FALSE, will cause the light to turn on in cooldown second originated_turf: if not null, will check if the obj_turf is closer than distance_max to originated_turf, and the proc will return if not distance_max: used to check if originated_turf is close to obj.loc

update_appearance

Updates the appearence of the icon

Mostly delegates to update_name, update_desc, and update_icon

Arguments:

update_desc

Updates the description of the atom

update_greyscale

Checks if this atom uses the GAS 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_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

vehicle_collision

This proc is called when a atom is crashed into by a armored vehicle. Damage is then dealt to both the vehicle and atom

visible_message

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. "The [src] does something!" self_message (optional) is what the src mob sees e.g. "You do something!" blind_message (optional) is what blind people will hear e.g. "You hear something!" vision_distance (optional) define how many tiles away the message can be seen. ignored_mob (optional) doesn't show any message to a given mob if TRUE.

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