atom

Vars | |
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 |
Procs | |
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 |
Exit | An atom is attempting to exit this atom's contents |
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 |
LateInitialize | called if Initialize returns INITIALIZE_HINT_LATELOAD |
New | Called when an atom is created in byond (built in engine proc) |
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 |
attack_powerloader | This proc is called when an atom gets attacked (clicked on) by a powerloader clamp |
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. |
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. |
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 |
examine | Called when a mob examines this atom. /mob/verb/examinate |
examine_descriptor | This is called when we want to get a sort-of "descriptor" for this item, where applicable. |
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. |
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 |
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 |
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 |
link_interior | generic linkage proc for atoms to an interior. e.g loading the tank |
log_message | Generic logging helper |
log_talk | Helper for logging chat messages or other logs with arbitrary inputs (e.g. announcements) |
mech_melee_attack | |
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 |
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 |
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). |
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. |
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 |
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 |
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:
- [/turf/Initialize]
- /turf/open/space/Initialize
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:
- user: The mob clicking on the atom
attack_powerloader
This proc is called when an atom gets attacked (clicked on) by a powerloader clamp
Arguments:
- user: The mob doing the attacking
- attached_clamp: The clamp used by the mob for attacking
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:
- jitter: The amount of jitter in this animation. Extremely high values, such as 500 or 1000, are recommended.
- jitter_duration: The duration of the jitter animation.
- jitter_loops: The amount of times to loop this animation.
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.
- TGUI tooltips (not the main text) in chat cannot use HTML stuff at all, so
including something like
<b><big>ffff</big></b>
will not work for tooltips.
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
link_interior
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:
- message - The message being logged
- message_type - the type of log the message is(ATTACK, SAY, etc)
- color - color of the log text
- log_globally - boolean checking whether or not we write this log to the log file
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:
- message - The message being logged
- message_type - the type of log the message is(ATTACK, SAY, etc)
- tag - tag that indicates the type of text(announcement, telepathy, etc)
- log_globally - boolean checking whether or not we write this log to the log file
- forced_by - source that forced the dialogue if any
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:
- mecha_attacker: Mech attacking this target
- user: mob that initiated the attack from inside the mech as a controller
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
- Damage_amount: The original unmodified damage
- armor_type: The type of armor by which the damage will be modified
- penetration: How much the damage source might bypass the armour value (optional)
- def_zone: What part of the body we want to check the armor of (optional)
- attack_dir: What direction the attack was from (optional)
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:
- updates: A set of bitflags dictating what should be updated. Defaults to [ALL]
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
- Arguments:
- veh is the vehicle that is ramming
- facing is the direction the vehicle is facing for when we ram it
- T is the turf where the vehicle is used with-
- temp to check whether a mob is squished
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