Files

136 lines
73 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><link rel="stylesheet" href="dmdoc.css"><title>/atom - Space Station 13</title></head><body><header><a href="index.html">Space Station 13</a> - <a href="index.html#modules">Modules</a> - <a href="index.html#types">Types</a><a href="atom.html#var">Var Details</a> - <a href="atom.html#proc">Proc Details</a></header><main><h1>atom <aside>/<a href="atom.html">atom</a></aside><aside> inherits /<a href="datum.html">datum</a></aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1"></a></h1><table class="summary" cellspacing="0"><tr><td colspan="2"><h2>Vars</h2></td></tr><tr><th><a href="atom.html#var/ai_controller">ai_controller</a></th><td>AI controller that controls this atom. type on init, then turned into an instance during runtime</td></tr><tr><th><a href="atom.html#var/alternate_appearances">alternate_appearances</a></th><td>The alternate appearances we own. Lazylist</td></tr><tr><th><a href="atom.html#var/attack_info">attack_info</a></th><td>Information about attacks performed on this atom.</td></tr><tr><th><a href="atom.html#var/base_icon_state">base_icon_state</a></th><td>Used for changing icon states for different base sprites.</td></tr><tr><th><a href="atom.html#var/bottom_left_corner">bottom_left_corner</a></th><td>Smoothing variable</td></tr><tr><th><a href="atom.html#var/bottom_right_corner">bottom_right_corner</a></th><td>Smoothing variable</td></tr><tr><th><a href="atom.html#var/bubble_icon">bubble_icon</a></th><td>What icon the mob uses for speechbubbles</td></tr><tr><th><a href="atom.html#var/canSmoothWith">canSmoothWith</a></th><td>List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself.</td></tr><tr><th><a href="atom.html#var/can_pathfind_pass">can_pathfind_pass</a></th><td>How this atom should react to having its astar blocking checked</td></tr><tr><th><a href="atom.html#var/cares_about_temperature">cares_about_temperature</a></th><td>Do we care about temperature at all? Saves us a ton of proc calls during big fires.</td></tr><tr><th><a href="atom.html#var/chat_color">chat_color</a></th><td>Last color calculated for the the chatmessage overlays. Used for caching.</td></tr><tr><th><a href="atom.html#var/chat_color_name">chat_color_name</a></th><td>Last name used to calculate a color for the chatmessage overlays. Used for caching.</td></tr><tr><th><a href="atom.html#var/drag_start">drag_start</a></th><td>Contains the world.time of when we start dragging something with our mouse. Used to prevent weird situations where you fail to click on something</td></tr><tr><th><a href="atom.html#var/explosion_block">explosion_block</a></th><td>Value used to increment ex_act() if reactionary_explosions is on</td></tr><tr><th><a href="atom.html#var/filter_data">filter_data</a></th><td>For handling persistent filters</td></tr><tr><th><a href="atom.html#var/flags_ricochet">flags_ricochet</a></th><td>how the atom should handle ricochet behavior</td></tr><tr><th><a href="atom.html#var/germ_level">germ_level</a></th><td>The higher the germ level, the more germ on the atom.</td></tr><tr><th><a href="atom.html#var/hud_list">hud_list</a></th><td>This atom's HUD (med/sec, etc) images. Associative list.</td></tr><tr><th><a href="atom.html#var/hud_possible">hud_possible</a></th><td>HUD images that this atom can provide.</td></tr><tr><th><a href="atom.html#var/light_power">light_power</a></th><td>Intensity of the light. Can be negative to remove light</td></tr><tr><th><a href="atom.html#var/managed_overlays">managed_overlays</a></th><td>overlays managed by <a href="atom.html#proc/update_overlays" title="/atom">update_overlays</a> to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.</td></tr><tr><th><a href="atom.html#var/managed_vis_overlays">managed_vis_overlays</a></th><td>vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays.</td></tr><tr><th><a href="atom.html#var/map_json_data">map_json_data</a></th><td>This var isn't actually used for anything, but is present so that DM's map reader doesn't forfeit on reading a JSON-serialized map. AKA DO NOT FUCK WITH</td></tr><tr><th><a href="atom.html#var/new_attack_chain">new_attack_chain</a></th><td>Whether this atom is using the new attack chain.</td></tr><tr><th><a href="atom.html#var/pass_flags_self">pass_flags_self</a></th><td>pass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.</td></tr><tr><th><a href="atom.html#var/rad_insulation_alpha">rad_insulation_alpha</a></th><td>Radiation insulation for alpha emissions</td></tr><tr><th><a href="atom.html#var/rad_insulation_beta">rad_insulation_beta</a></th><td>Radiation insulation for beta emissions</td></tr><tr><th><a href="atom.html#var/rad_insulation_gamma">rad_insulation_gamma</a></th><td>Radiation insulation for gamma emissions</td></tr><tr><th><a href="atom.html#var/receive_ricochet_chance_mod">receive_ricochet_chance_mod</a></th><td>When a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this</td></tr><tr><th><a href="atom.html#var/receive_ricochet_damage_coeff">receive_ricochet_damage_coeff</a></th><td>When a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom</td></tr><tr><th><a href="atom.html#var/should_spread_blood">should_spread_blood</a></th><td>Will the atom spread blood when touched?</td></tr><tr><th><a href="atom.html#var/simulated">simulated</a></th><td>Filter for actions - used by lighting overlays</td></tr><tr><th><a href="atom.html#var/smoothing_flags">smoothing_flags</a></th><td>Icon-smoothing behavior.</td></tr><tr><th><a href="atom.html#var/smoothing_groups">smoothing_groups</a></th><td>What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it.</td></tr><tr><th><a href="atom.html#var/smoothing_junction">smoothing_junction</a></th><td>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.</td></tr><tr><th><a href="atom.html#var/suit_fibers">suit_fibers</a></th><td>List of fibers that this atom has</td></tr><tr><th><a href="atom.html#var/top_left_corner">top_left_corner</a></th><td>Smoothing variable</td></tr><tr><th><a href="atom.html#var/top_right_corner">top_right_corner</a></th><td>Smoothing variable</td></tr><tr><th><a href="atom.html#var/viewing_alternate_appearances">viewing_alternate_appearances</a></th><td>The alternate appearances we're viewing, stored here to reestablish them after Logout()s. Lazylist</td></tr><tr><td colspan="2"><h2>Procs</h2></td></tr><tr><th><a href="atom.html#proc/AltClickNoInteract">AltClickNoInteract</a></th><td>Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction</td></tr><tr><th><a href="atom.html#proc/CanPathfindPass">CanPathfindPass</a></th><td>This proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.</td></tr><tr><th><a href="atom.html#proc/Exit">Exit</a></th><td>An atom is attempting to exit this atom's contents</td></tr><tr><th><a href="atom.html#proc/Topic">Topic</a></th><td>Passes Stat Browser Panel clicks to the game and calls client click on an atom</td></tr><tr><th><a href="atom.html#proc/acid_act">acid_act</a></th><td>Respond to acid being used on our atom</td></tr><tr><th><a href="atom.html#proc/after_slip">after_slip</a></th><td>Base proc, intended to be overriden.</td></tr><tr><th><a href="atom.html#proc/attack_basic_mob">attack_basic_mob</a></th><td>When a basic mob attacks something, either by AI or user.</td></tr><tr><th><a href="atom.html#proc/attack_by">attack_by</a></th><td>Called when mob <code>user</code> is hitting us with an item <code>attacking</code>.
Part of the <a href="obj/item.html#proc/melee_attack_chain" title="/obj/item">/obj/item/proc/melee_attack_chain</a>.</td></tr><tr><th><a href="atom.html#proc/attackby__legacy__attackchain">attackby__legacy__attackchain</a></th><td>Called when <code>user</code> attacks us with item <code>W</code>.</td></tr><tr><th><a href="atom.html#proc/attacked_by">attacked_by</a></th><td>Called <em>after</em> we have been attacked with the item <code>attacker</code> by <code>user</code>.</td></tr><tr><th><a href="atom.html#proc/attacked_by__legacy__attackchain">attacked_by__legacy__attackchain</a></th><td>Called after <code>user</code> has attacked us with item <code>W</code>.</td></tr><tr><th><a href="atom.html#proc/base_item_interaction">base_item_interaction</a></th><td></td></tr><tr><th><a href="atom.html#proc/base_rad_act">base_rad_act</a></th><td>Sends a COMSIG_ATOM_RAD_ACT signal, calls the atoms rad_act with the amount of radiation it should have absorbed and returns the rad insulation of the atom that isappropriate for emission_type</td></tr><tr><th><a href="atom.html#proc/base_ranged_item_interaction">base_ranged_item_interaction</a></th><td></td></tr><tr><th><a href="atom.html#proc/bitmask_smooth">bitmask_smooth</a></th><td>Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.</td></tr><tr><th><a href="atom.html#proc/calculate_adjacencies">calculate_adjacencies</a></th><td>Scans all adjacent turfs to find targets to smooth with.</td></tr><tr><th><a href="atom.html#proc/clean_radiation">clean_radiation</a></th><td>Removes some radiation from an atom</td></tr><tr><th><a href="atom.html#proc/contaminate_atom">contaminate_atom</a></th><td>Attempt to contaminate a single atom</td></tr><tr><th><a href="atom.html#proc/contents_ui_distance">contents_ui_distance</a></th><td>public</td></tr><tr><th><a href="atom.html#proc/defile">defile</a></th><td>Begin defile and malfunction on-atom definitions</td></tr><tr><th><a href="atom.html#proc/emag_act">emag_act</a></th><td>This is when an atom is emagged. Should return false if it fails, or it has no emag_act defined.</td></tr><tr><th><a href="atom.html#proc/emp_act">emp_act</a></th><td>Proc which will make the atom act accordingly to an EMP.
This proc can sleep depending on the implementation. So assume it sleeps!</td></tr><tr><th><a href="atom.html#proc/event_cost">event_cost</a></th><td>Returns the cost of the atom for the event system as a list of all requirements. By default this is just 1 crew.</td></tr><tr><th><a href="atom.html#proc/examine_more">examine_more</a></th><td>Extended description of an object. Allows you to double examine objects and have them give you a second description of an item. Useful for writing flavourful stuff.</td></tr><tr><th><a href="atom.html#proc/find_all_cells_containing">find_all_cells_containing</a></th><td>debug proc for checking if a movable is in multiple cells when it shouldnt be (ie always unless multitile entering is implemented)</td></tr><tr><th><a href="atom.html#proc/find_grid_statistics_for_z_level">find_grid_statistics_for_z_level</a></th><td>debug proc for finding how full the cells of src's z level are</td></tr><tr><th><a href="atom.html#proc/find_type_in_direction">find_type_in_direction</a></th><td>Scans direction to find targets to smooth with.</td></tr><tr><th><a href="atom.html#proc/fire_projectile">fire_projectile</a></th><td>Fire a projectile from this atom at another atom</td></tr><tr><th><a href="atom.html#proc/get_all_contents">get_all_contents</a></th><td>Returns the src and all recursive contents as a list.</td></tr><tr><th><a href="atom.html#proc/get_flock_id">get_flock_id</a></th><td>Returns the name that the flock has given an object. Flavor.</td></tr><tr><th><a href="atom.html#proc/get_orbiters">get_orbiters</a></th><td>Simple helper proc to get a list of everything directly orbiting the current atom, without checking contents, or null if nothing is.</td></tr><tr><th><a href="atom.html#proc/get_orbiters_recursive">get_orbiters_recursive</a></th><td>Recursive getter method to return a list of all ghosts transitively orbiting this atom.
This will find orbiters either directly orbiting the followed atom, or any orbiters orbiting them (and so on).</td></tr><tr><th><a href="atom.html#proc/get_orbiters_up_hierarchy">get_orbiters_up_hierarchy</a></th><td>Check every object in the hierarchy above ourselves for orbiters, and return the full list of them.
If an object is being held in a backpack, returns orbiters of the backpack, the person
If recursive == TRUE, this will also check recursively through any ghosts seen to make sure we find <em>everything</em> upstream</td></tr><tr><th><a href="atom.html#proc/get_oversized_icon_offsets">get_oversized_icon_offsets</a></th><td>Returns an x and y value require to reverse the transformations made to center an oversized icon</td></tr><tr><th><a href="atom.html#proc/get_runechat_color">get_runechat_color</a></th><td>Proc to allow atoms to set their own runechat colour</td></tr><tr><th><a href="atom.html#proc/handle_basic_attack">handle_basic_attack</a></th><td>This exists so stuff can override the default call of attack_animal for attack_basic_mob
Remove this when simple animals are removed and everything can be handled on attack basic mob.</td></tr><tr><th><a href="atom.html#proc/hit_by_thrown_mob">hit_by_thrown_mob</a></th><td>This proc applies special effects of a carbon mob hitting something, be it a wall, structure, or window. You can set mob_hurt to false to avoid double dipping through subtypes if returning ..()</td></tr><tr><th><a href="atom.html#proc/is_drainable">is_drainable</a></th><td>Is this atom drainable of reagents</td></tr><tr><th><a href="atom.html#proc/is_drawable">is_drawable</a></th><td>Can we draw from this atom with an injectable atom</td></tr><tr><th><a href="atom.html#proc/is_injectable">is_injectable</a></th><td>Is this atom injectable into other atoms</td></tr><tr><th><a href="atom.html#proc/is_open_container">is_open_container</a></th><td>Convenience proc to see if a container is open for chemistry handling</td></tr><tr><th><a href="atom.html#proc/is_refillable">is_refillable</a></th><td>Can this atoms reagents be refilled</td></tr><tr><th><a href="atom.html#proc/item_interaction">item_interaction</a></th><td>Called when this atom has an item used on it.
IE, a mob is clicking on this atom with an item.</td></tr><tr><th><a href="atom.html#proc/makeHologram">makeHologram</a></th><td>Makes this atom look like a &quot;hologram&quot;
So transparent, blue, with a scanline and an emissive glow
This is acomplished using a combination of filters and render steps/overlays
The degree of the opacity is optional, based off the opacity arg (0 -&gt; 1)</td></tr><tr><th><a href="atom.html#proc/mech_melee_attack">mech_melee_attack</a></th><td>Handle melee attack by a mech</td></tr><tr><th><a href="atom.html#proc/move_camera_by_click">move_camera_by_click</a></th><td>If <code>usr</code> is an AI, set the camera eye's location to the location of the atom clicked.</td></tr><tr><th><a href="atom.html#proc/on_mob_spawn">on_mob_spawn</a></th><td>Used with the spawner component to do something when a mob is spawned.</td></tr><tr><th><a href="atom.html#proc/persistent_load">persistent_load</a></th><td>Atom Persistent Loader</td></tr><tr><th><a href="atom.html#proc/persistent_save">persistent_save</a></th><td>Atom Persistent Saver</td></tr><tr><th><a href="atom.html#proc/rad_act">rad_act</a></th><td>Respond to a radioactive wave hitting this atom</td></tr><tr><th><a href="atom.html#proc/ranged_item_interaction">ranged_item_interaction</a></th><td>Called when this atom has an item used on it from a distance.
IE, a mob is clicking on this atom with an item and is not adjacent.</td></tr><tr><th><a href="atom.html#proc/ray_filter_helper">ray_filter_helper</a></th><td>Used to create rays on an item. Make sure to removefilter(&quot;rays&quot;) when done with it</td></tr><tr><th><a href="atom.html#proc/relaydrive">relaydrive</a></th><td>A special case of relaymove() in which the person relaying the move may be &quot;driving&quot; this atom</td></tr><tr><th><a href="atom.html#proc/remove_orbiter">remove_orbiter</a></th><td>Remove an orbiter from the atom it's orbiting.</td></tr><tr><th><a href="atom.html#proc/rename_interactive">rename_interactive</a></th><td></td></tr><tr><th><a href="atom.html#proc/return_analyzable_air">return_analyzable_air</a></th><td>Return the air if we can analyze it</td></tr><tr><th><a href="atom.html#proc/rust_heretic_act">rust_heretic_act</a></th><td>Causes effects when the atom gets hit by a rust effect from heretics</td></tr><tr><th><a href="atom.html#proc/set_opacity">set_opacity</a></th><td>Updates the atom's opacity value.</td></tr><tr><th><a href="atom.html#proc/set_smoothed_icon_state">set_smoothed_icon_state</a></th><td>Changes the icon state based on the new junction bitmask. Returns the old junction value.</td></tr><tr><th><a href="atom.html#proc/shuttleRotate">shuttleRotate</a></th><td>Base proc</td></tr><tr><th><a href="atom.html#proc/storage_depth">storage_depth</a></th><td>Returns the storage depth of an atom up to the area level.</td></tr><tr><th><a href="atom.html#proc/storage_depth_turf">storage_depth_turf</a></th><td>Like <a href="atom.html#proc/storage_depth" title="/atom">/atom/proc/storage_depth</a>, but returns the depth to the nearest turf.</td></tr><tr><th><a href="atom.html#proc/tool_act">tool_act</a></th><td></td></tr><tr><th><a href="atom.html#proc/update_appearance">update_appearance</a></th><td>Updates the appearence of the atom, including text.</td></tr><tr><th><a href="atom.html#proc/update_desc">update_desc</a></th><td>Updates the description of the atom</td></tr><tr><th><a href="atom.html#proc/update_icon">update_icon</a></th><td>Updates the icon and overlays of the atom</td></tr><tr><th><a href="atom.html#proc/update_icon_state">update_icon_state</a></th><td>Updates the icon state of the atom</td></tr><tr><th><a href="atom.html#proc/update_name">update_name</a></th><td>Updates the name of the atom</td></tr><tr><th><a href="atom.html#proc/update_overlays">update_overlays</a></th><td>Updates the managed overlays of the atom</td></tr><tr><th><a href="atom.html#proc/zap_act">zap_act</a></th><td>Respond to an electric bolt action on our item</td></tr></table><h2 id="var">Var Details</h2><h3 id="var/ai_controller"><aside class="declaration">var </aside>ai_controller <aside> /<a href="datum.html">datum</a>/<a href="datum/ai_controller.html">ai_controller</a></aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L139"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 139"></a></h3><p>AI controller that controls this atom. type on init, then turned into an instance during runtime</p><h3 id="var/alternate_appearances"><aside class="declaration">var </aside>alternate_appearances <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L128"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 128"></a></h3><p>The alternate appearances we own. Lazylist</p><h3 id="var/attack_info"><aside class="declaration">var </aside>attack_info <aside> /<a href="datum.html">datum</a>/<a href="datum/attack_info.html">attack_info</a></aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L141"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 141"></a></h3><p>Information about attacks performed on this atom.</p><h3 id="var/base_icon_state"><aside class="declaration">var </aside>base_icon_state <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L98"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 98"></a></h3><p>Used for changing icon states for different base sprites.</p><h3 id="var/bottom_left_corner"><aside class="declaration">var </aside>bottom_left_corner <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L88"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 88"></a></h3><p>Smoothing variable</p><h3 id="var/bottom_right_corner"><aside class="declaration">var </aside>bottom_right_corner <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L90"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 90"></a></h3><p>Smoothing variable</p><h3 id="var/bubble_icon"><aside class="declaration">var </aside>bubble_icon <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L31"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 31"></a></h3><p>What icon the mob uses for speechbubbles</p><h3 id="var/canSmoothWith"><aside class="declaration">var </aside>canSmoothWith <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L94"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 94"></a></h3><p>List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself.</p><h3 id="var/can_pathfind_pass"><aside class="declaration">var </aside>can_pathfind_pass <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L18"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 18"></a></h3><p>How this atom should react to having its astar blocking checked</p><h3 id="var/cares_about_temperature"><aside class="declaration">var </aside>cares_about_temperature <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L147"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 147"></a></h3><p>Do we care about temperature at all? Saves us a ton of proc calls during big fires.</p><h3 id="var/chat_color"><aside class="declaration">var </aside>chat_color <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L76"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 76"></a></h3><p>Last color calculated for the the chatmessage overlays. Used for caching.</p><h3 id="var/chat_color_name"><aside class="declaration">var </aside>chat_color_name <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L74"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 74"></a></h3><p>Last name used to calculate a color for the chatmessage overlays. Used for caching.</p><h3 id="var/drag_start"><aside class="declaration">var </aside>drag_start <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L132"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 132"></a></h3><p>Contains the world.time of when we start dragging something with our mouse. Used to prevent weird situations where you fail to click on something</p><h3 id="var/explosion_block"><aside class="declaration">var </aside>explosion_block <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L43"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 43"></a></h3><p>Value used to increment ex_act() if reactionary_explosions is on</p><h3 id="var/filter_data"><aside class="declaration">var </aside>filter_data <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L13"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 13"></a></h3><p>For handling persistent filters</p><h3 id="var/flags_ricochet"><aside class="declaration">var </aside>flags_ricochet <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L8"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 8"></a></h3><p>how the atom should handle ricochet behavior</p><h3 id="var/germ_level"><aside class="declaration">var </aside>germ_level <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L26"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 26"></a></h3><p>The higher the germ level, the more germ on the atom.</p><h3 id="var/hud_list"><aside class="declaration">var </aside>hud_list <aside> /list/image</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L38"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 38"></a></h3><p>This atom's HUD (med/sec, etc) images. Associative list.</p><h3 id="var/hud_possible"><aside class="declaration">var </aside>hud_possible <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L40"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 40"></a></h3><p>HUD images that this atom can provide.</p><h3 id="var/light_power"><aside class="declaration">var </aside>light_power <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L106"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 106"></a></h3><p>Intensity of the light. Can be negative to remove light</p><h3 id="var/managed_overlays"><aside class="declaration">var </aside>managed_overlays <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L61"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 61"></a></h3><p>overlays managed by <a href="atom.html#proc/update_overlays" title="/atom">update_overlays</a> to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.</p><h3 id="var/managed_vis_overlays"><aside class="declaration">var </aside>managed_vis_overlays <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L46"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 46"></a></h3><p>vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays.</p><h3 id="var/map_json_data"><aside class="declaration">var </aside>map_json_data <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L100"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 100"></a></h3><p>This var isn't actually used for anything, but is present so that DM's map reader doesn't forfeit on reading a JSON-serialized map. AKA DO NOT FUCK WITH</p><h3 id="var/new_attack_chain"><aside class="declaration">var </aside>new_attack_chain <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L144"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 144"></a></h3><p>Whether this atom is using the new attack chain.</p><h3 id="var/pass_flags_self"><aside class="declaration">var </aside>pass_flags_self <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L16"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 16"></a></h3><p>pass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.</p><h3 id="var/rad_insulation_alpha"><aside class="declaration">var </aside>rad_insulation_alpha <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L67"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 67"></a></h3><p>Radiation insulation for alpha emissions</p><h3 id="var/rad_insulation_beta"><aside class="declaration">var </aside>rad_insulation_beta <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L69"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 69"></a></h3><p>Radiation insulation for beta emissions</p><h3 id="var/rad_insulation_gamma"><aside class="declaration">var </aside>rad_insulation_gamma <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L71"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 71"></a></h3><p>Radiation insulation for gamma emissions</p><h3 id="var/receive_ricochet_chance_mod"><aside class="declaration">var </aside>receive_ricochet_chance_mod <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L135"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 135"></a></h3><p>When a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this</p><h3 id="var/receive_ricochet_damage_coeff"><aside class="declaration">var </aside>receive_ricochet_damage_coeff <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L137"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 137"></a></h3><p>When a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom</p><h3 id="var/should_spread_blood"><aside class="declaration">var </aside>should_spread_blood <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L23"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 23"></a></h3><p>Will the atom spread blood when touched?</p><h3 id="var/simulated"><aside class="declaration">var </aside>simulated <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L28"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 28"></a></h3><p>Filter for actions - used by lighting overlays</p><h3 id="var/smoothing_flags"><aside class="declaration">var </aside>smoothing_flags <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L82"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 82"></a></h3><p>Icon-smoothing behavior.</p><h3 id="var/smoothing_groups"><aside class="declaration">var </aside>smoothing_groups <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L92"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 92"></a></h3><p>What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it.</p><h3 id="var/smoothing_junction"><aside class="declaration">var </aside>smoothing_junction <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L96"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 96"></a></h3><p>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.</p><h3 id="var/suit_fibers"><aside class="declaration">var </aside>suit_fibers <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L51"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 51"></a></h3><p>List of fibers that this atom has</p><h3 id="var/top_left_corner"><aside class="declaration">var </aside>top_left_corner <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L84"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 84"></a></h3><p>Smoothing variable</p><h3 id="var/top_right_corner"><aside class="declaration">var </aside>top_right_corner <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L86"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 86"></a></h3><p>Smoothing variable</p><h3 id="var/viewing_alternate_appearances"><aside class="declaration">var </aside>viewing_alternate_appearances <aside> /list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L130"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 130"></a></h3><p>The alternate appearances we're viewing, stored here to reestablish them after Logout()s. Lazylist</p><h2 id="proc">Proc Details</h2><h3 id="proc/AltClickNoInteract"><aside class="declaration">proc </aside>AltClickNoInteract<aside>(/<a href="mob.html">mob</a>/user, /<a href="atom.html">atom</a>/A) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/_onclick/click.dm#L410"><img src="git.png" width="16" height="16" title="code/_onclick/click.dm 410"></a></aside></h3><p>Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction</p><h3 id="proc/CanPathfindPass"><aside class="declaration">proc </aside>CanPathfindPass<aside>(to_dir, /<a href="datum.html">datum</a>/<a href="datum/can_pass_info.html">can_pass_info</a>/pass_info) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1450"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1450"></a></aside></h3><p>This proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.</p>
<p>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.</p>
<p>For turfs this will only be used if pathing_pass_method is TURF_PATHING_PASS_PROC</p>
<p>Arguments:</p>
<ul>
<li>to_dir - What direction we're trying to move in, relevant for things like directional windows that only block movement in certain directions</li>
<li>pass_info - Datum that stores info about the thing that's trying to pass us</li>
</ul>
<p>IMPORTANT NOTE: /turf/proc/LinkBlockedWithAccess assumes that overrides of CanPathfindPass will always return true if density is FALSE
If this is NOT you, ensure you edit your can_pathfind_pass variable. Check __DEFINES/path.dm</p><h3 id="proc/Exit"><aside class="declaration">proc </aside>Exit<aside>(/<a href="atom.html">atom</a>/<a href="atom/movable.html">movable</a>/leaving, direction) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1281"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1281"></a></aside></h3><p>An atom is attempting to exit this atom's contents</p>
<p>Default behaviour is to send the <a href="code/__DEFINES/dcs/atom_signals.html#define/COMSIG_ATOM_EXIT" title="COMSIG_ATOM_EXIT">COMSIG_ATOM_EXIT</a></p><h3 id="proc/Topic">Topic<aside>(href, /list/href_list) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1460"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1460"></a></aside></h3><p>Passes Stat Browser Panel clicks to the game and calls client click on an atom</p><h3 id="proc/acid_act"><aside class="declaration">proc </aside>acid_act<aside>(acidpwr, acid_volume) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1204"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1204"></a></aside></h3><p>Respond to acid being used on our atom</p>
<p>Default behaviour is to send COMSIG_ATOM_ACID_ACT and return</p><h3 id="proc/after_slip"><aside class="declaration">proc </aside>after_slip<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/<a href="mob/living/carbon/human.html">human</a>/H) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L782"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 782"></a></aside></h3><p>Base proc, intended to be overriden.</p>
<p>This should only be called from one place: inside the slippery component.
Called after a human mob slips on this atom.</p>
<p>If you want the person who slipped to have something special done to them, put it here.</p><h3 id="proc/attack_basic_mob"><aside class="declaration">proc </aside>attack_basic_mob<aside>(/<a href="mob.html">mob</a>/user, /list/modifiers) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/_onclick/other_mobs.dm#L83"><img src="git.png" width="16" height="16" title="code/_onclick/other_mobs.dm 83"></a></aside></h3><p>When a basic mob attacks something, either by AI or user.</p><h3 id="proc/attack_by"><aside class="declaration">proc </aside>attack_by<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/attacking, /<a href="mob.html">mob</a>/user, params) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/_onclick/item_attack.dm#L98"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack.dm 98"></a></aside></h3><p>Called when mob <code>user</code> is hitting us with an item <code>attacking</code>.
Part of the <a href="obj/item.html#proc/melee_attack_chain" title="/obj/item">/obj/item/proc/melee_attack_chain</a>.</p>
<p>Handles calling [/atom/proc/attack] or <a href="obj/item.html#proc/attack_obj" title="/obj/item">/obj/item/proc/attack_obj</a> as necessary.</p>
<p>Arguments:</p>
<ul>
<li>obj/item/attacking_item - The item hitting this atom</li>
<li>mob/user - The wielder of this item</li>
<li>params - click params such as alt/shift etc</li>
</ul>
<p>Handles <a href="code/__DEFINES/dcs/attack_chain_signals.html#define/COMSIG_ATTACK_BY" title="COMSIG_ATTACK_BY">COMSIG_ATTACK_BY</a> returning <a href="code/__DEFINES/dcs/attack_chain_signals.html#define/COMPONENT_SKIP_AFTERATTACK" title="COMPONENT_SKIP_AFTERATTACK">COMPONENT_SKIP_AFTERATTACK</a>.
Returns <a href="code/__DEFINES/dcs/attack_chain_signals.html#define/FINISH_ATTACK" title="FINISH_ATTACK">FINISH_ATTACK</a> if the attack chain should stop here.</p><h3 id="proc/attackby__legacy__attackchain"><aside class="declaration">proc </aside>attackby__legacy__attackchain<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/W, /<a href="mob.html">mob</a>/user, params) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/_onclick/item_attack_legacy.dm#L35"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack_legacy.dm 35"></a></aside></h3><p>Called when <code>user</code> attacks us with item <code>W</code>.</p>
<p>Handles <a href="code/__DEFINES/dcs/attack_chain_signals.html#define/COMSIG_ATTACK_BY" title="COMSIG_ATTACK_BY">COMSIG_ATTACK_BY</a> returning <a href="code/__DEFINES/dcs/attack_chain_signals.html#define/COMPONENT_SKIP_AFTERATTACK" title="COMPONENT_SKIP_AFTERATTACK">COMPONENT_SKIP_AFTERATTACK</a>.
Returns TRUE if afterattack should not be called, FALSE otherwise.</p>
<p>New uses of this proc are prohibited! Use [/atom/proc/attackby] or <a href="atom.html#proc/base_item_interaction" title="/atom">/atom/proc/base_item_interaction</a> instead!
If you are modifiying an existing implementation of this proc, it is expected that you replace it with the proper alternative!</p><h3 id="proc/attacked_by"><aside class="declaration">proc </aside>attacked_by<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/attacker, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/_onclick/item_attack.dm#L223"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack.dm 223"></a></aside></h3><p>Called <em>after</em> we have been attacked with the item <code>attacker</code> by <code>user</code>.</p>
<p>Return value is ignored for purposes of the attack chain.</p><h3 id="proc/attacked_by__legacy__attackchain"><aside class="declaration">proc </aside>attacked_by__legacy__attackchain<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/W, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/_onclick/item_attack_legacy.dm#L7"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack_legacy.dm 7"></a></aside></h3><p>Called after <code>user</code> has attacked us with item <code>W</code>.</p>
<p>New uses of this proc are prohibited! Used <a href="atom.html#proc/attacked_by" title="/atom">/atom/proc/attacked_by</a>.
If you are modifiying an existing implementation of this proc, it is expected that you replace it with the proper alternative!</p><h3 id="proc/base_item_interaction"><aside class="declaration">proc </aside>base_item_interaction<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /list/modifiers) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atom/atom_tool_acts.dm#L8"><img src="git.png" width="16" height="16" title="code/game/atom/atom_tool_acts.dm 8"></a></aside></h3><h2 id="item-interaction">Item interaction</h2>
<p>Handles non-combat iteractions of a tool on this atom,
such as using a tool on a wall to deconstruct it,
or scanning someone with a health analyzer</p><h3 id="proc/base_rad_act"><aside class="declaration">proc </aside>base_rad_act<aside>(/<a href="atom.html">atom</a>/source, amount, emission_type) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L659"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 659"></a></aside></h3><p>Sends a COMSIG_ATOM_RAD_ACT signal, calls the atoms rad_act with the amount of radiation it should have absorbed and returns the rad insulation of the atom that isappropriate for emission_type</p><h3 id="proc/base_ranged_item_interaction"><aside class="declaration">proc </aside>base_ranged_item_interaction<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, params) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atom/atom_tool_acts.dm#L126"><img src="git.png" width="16" height="16" title="code/game/atom/atom_tool_acts.dm 126"></a></aside></h3><h2 id="ranged-item-interaction">Ranged item interaction</h2>
<p>Handles non-combat ranged interactions of a tool on this atom,
such as shooting a gun in the direction of someone*,
having a scanner you can point at someone to scan them at any distance,
or pointing a laser pointer at something.</p>
<p>*While this intuitively sounds combat related, it is not,
because a &quot;combat use&quot; of a gun is gun-butting.</p><h3 id="proc/bitmask_smooth"><aside class="declaration">proc </aside>bitmask_smooth<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__HELPERS/icon_smoothing.dm#L309"><img src="git.png" width="16" height="16" title="code/__HELPERS/icon_smoothing.dm 309"></a></aside></h3><p>Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.</p>
<p>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.</p>
<p>Objects override this to prevent unanchored objects from smoothing, see /obj/bitmask_smooth()</p><h3 id="proc/calculate_adjacencies"><aside class="declaration">proc </aside>calculate_adjacencies<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__HELPERS/icon_smoothing.dm#L97"><img src="git.png" width="16" height="16" title="code/__HELPERS/icon_smoothing.dm 97"></a></aside></h3><p>Scans all adjacent turfs to find targets to smooth with.</p><h3 id="proc/clean_radiation"><aside class="declaration">proc </aside>clean_radiation<aside>(clean_factor) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1064"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1064"></a></aside></h3><p>Removes some radiation from an atom</p>
<p>Removes a configurable amount of radiation from an atom
and stops green glow if radiation gets low enough through it.
Arguments:</p>
<ul>
<li>clean_factor - How much radiation to remove, as a multiple of RAD_BACKGROUND_RADIATION (currently 9)</li>
</ul><h3 id="proc/contaminate_atom"><aside class="declaration">proc </aside>contaminate_atom<aside>(/<a href="atom.html">atom</a>/source, intensity, emission_type) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L672"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 672"></a></aside></h3><p>Attempt to contaminate a single atom</p><h3 id="proc/contents_ui_distance"><aside class="declaration">proc </aside>contents_ui_distance<aside>(src_object, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/tgui/states.dm#L98"><img src="git.png" width="16" height="16" title="code/modules/tgui/states.dm 98"></a></aside></h3><p>public</p>
<p>Check the distance for a living mob.
Really only used for checks outside the context of a mob.
Otherwise, use shared_living_ui_distance().</p>
<p>required src_object The object which owns the UI.
required user mob The mob who opened/is using the UI.</p>
<p>return UI_state The state of the UI.</p><h3 id="proc/defile"><aside class="declaration">proc </aside>defile<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/mob/living/basic/hostile/revenant/revenant_abilities.dm#L424"><img src="git.png" width="16" height="16" title="code/modules/mob/living/basic/hostile/revenant/revenant_abilities.dm 424"></a></aside></h3><p>Begin defile and malfunction on-atom definitions</p><h3 id="proc/emag_act"><aside class="declaration">proc </aside>emag_act<aside>(/<a href="mob.html">mob</a>/user) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L635"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 635"></a></aside></h3><p>This is when an atom is emagged. Should return false if it fails, or it has no emag_act defined.</p><h3 id="proc/emp_act"><aside class="declaration">proc </aside>emp_act<aside>(severity) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L378"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 378"></a></aside></h3><p>Proc which will make the atom act accordingly to an EMP.
This proc can sleep depending on the implementation. So assume it sleeps!</p>
<p>severity - The severity of the EMP. Either EMP_HEAVY, EMP_LIGHT, or EMP_WEAKENED</p><h3 id="proc/event_cost"><aside class="declaration">proc </aside>event_cost<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1573"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1573"></a></aside></h3><p>Returns the cost of the atom for the event system as a list of all requirements. By default this is just 1 crew.</p><h3 id="proc/examine_more"><aside class="declaration">proc </aside>examine_more<aside>(/<a href="mob.html">mob</a>/user) <span class="as"> as </span>/list <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L494"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 494"></a></aside></h3><p>Extended description of an object. Allows you to double examine objects and have them give you a second description of an item. Useful for writing flavourful stuff.</p><h3 id="proc/find_all_cells_containing"><aside class="declaration">proc </aside>find_all_cells_containing<aside>(remove_from_cells) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem/non_firing/SSspatial_grid.dm#L612"><img src="git.png" width="16" height="16" title="code/controllers/subsystem/non_firing/SSspatial_grid.dm 612"></a></aside></h3><p>debug proc for checking if a movable is in multiple cells when it shouldnt be (ie always unless multitile entering is implemented)</p><h3 id="proc/find_grid_statistics_for_z_level"><aside class="declaration">proc </aside>find_grid_statistics_for_z_level<aside>(insert_clients) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem/non_firing/SSspatial_grid.dm#L673"><img src="git.png" width="16" height="16" title="code/controllers/subsystem/non_firing/SSspatial_grid.dm 673"></a></aside></h3><p>debug proc for finding how full the cells of src's z level are</p><h3 id="proc/find_type_in_direction"><aside class="declaration">proc </aside>find_type_in_direction<aside>(direction) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__HELPERS/icon_smoothing.dm#L273"><img src="git.png" width="16" height="16" title="code/__HELPERS/icon_smoothing.dm 273"></a></aside></h3><p>Scans direction to find targets to smooth with.</p><h3 id="proc/fire_projectile"><aside class="declaration">proc </aside>fire_projectile<aside>(projectile_type, /<a href="atom.html">atom</a>/target, sound, firer, /list/ignore_targets) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/projectiles/projectile_base.dm#L649"><img src="git.png" width="16" height="16" title="code/modules/projectiles/projectile_base.dm 649"></a></aside></h3><p>Fire a projectile from this atom at another atom</p><h3 id="proc/get_all_contents"><aside class="declaration">proc </aside>get_all_contents<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1521"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1521"></a></aside></h3><p>Returns the src and all recursive contents as a list.</p><h3 id="proc/get_flock_id"><aside class="declaration">proc </aside>get_flock_id<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/antagonists/flockmind/flock_hooks.dm#L2"><img src="git.png" width="16" height="16" title="code/modules/antagonists/flockmind/flock_hooks.dm 2"></a></aside></h3><p>Returns the name that the flock has given an object. Flavor.</p><h3 id="proc/get_orbiters"><aside class="declaration">proc </aside>get_orbiters<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/datums/components/orbiter.dm#L415"><img src="git.png" width="16" height="16" title="code/datums/components/orbiter.dm 415"></a></aside></h3><p>Simple helper proc to get a list of everything directly orbiting the current atom, without checking contents, or null if nothing is.</p><h3 id="proc/get_orbiters_recursive"><aside class="declaration">proc </aside>get_orbiters_recursive<aside>(/list/processed, source) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/datums/components/orbiter.dm#L436"><img src="git.png" width="16" height="16" title="code/datums/components/orbiter.dm 436"></a></aside></h3><p>Recursive getter method to return a list of all ghosts transitively orbiting this atom.
This will find orbiters either directly orbiting the followed atom, or any orbiters orbiting them (and so on).</p>
<p>This shouldn't be passed arugments.</p><h3 id="proc/get_orbiters_up_hierarchy"><aside class="declaration">proc </aside>get_orbiters_up_hierarchy<aside>(/list/processed, source, recursive) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/datums/components/orbiter.dm#L456"><img src="git.png" width="16" height="16" title="code/datums/components/orbiter.dm 456"></a></aside></h3><p>Check every object in the hierarchy above ourselves for orbiters, and return the full list of them.
If an object is being held in a backpack, returns orbiters of the backpack, the person
If recursive == TRUE, this will also check recursively through any ghosts seen to make sure we find <em>everything</em> upstream</p><h3 id="proc/get_oversized_icon_offsets"><aside class="declaration">proc </aside>get_oversized_icon_offsets<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__HELPERS/iconprocs.dm#L540"><img src="git.png" width="16" height="16" title="code/__HELPERS/iconprocs.dm 540"></a></aside></h3><p>Returns an x and y value require to reverse the transformations made to center an oversized icon</p><h3 id="proc/get_runechat_color"><aside class="declaration">proc </aside>get_runechat_color<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/datums/chatmessage.dm#L332"><img src="git.png" width="16" height="16" title="code/datums/chatmessage.dm 332"></a></aside></h3><p>Proc to allow atoms to set their own runechat colour</p>
<p>This is a proc designed to be overridden in places if you want a specific atom to use a specific runechat colour
Exampls include consoles using a colour based on their screen colour, and mobs using a colour based off of a customisation property</p><h3 id="proc/handle_basic_attack"><aside class="declaration">proc </aside>handle_basic_attack<aside>(user, modifiers) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/_onclick/other_mobs.dm#L91"><img src="git.png" width="16" height="16" title="code/_onclick/other_mobs.dm 91"></a></aside></h3><p>This exists so stuff can override the default call of attack_animal for attack_basic_mob
Remove this when simple animals are removed and everything can be handled on attack basic mob.</p><h3 id="proc/hit_by_thrown_mob"><aside class="declaration">proc </aside>hit_by_thrown_mob<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/C, /<a href="datum.html">datum</a>/<a href="datum/thrownthing.html">thrownthing</a>/throwingdatum, damage, mob_hurt, self_hurt) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L694"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 694"></a></aside></h3><p>This proc applies special effects of a carbon mob hitting something, be it a wall, structure, or window. You can set mob_hurt to false to avoid double dipping through subtypes if returning ..()</p><h3 id="proc/is_drainable"><aside class="declaration">proc </aside>is_drainable<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L366"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 366"></a></aside></h3><p>Is this atom drainable of reagents</p><h3 id="proc/is_drawable"><aside class="declaration">proc </aside>is_drawable<aside>(/<a href="mob.html">mob</a>/user, allowmobs) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L358"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 358"></a></aside></h3><p>Can we draw from this atom with an injectable atom</p><h3 id="proc/is_injectable"><aside class="declaration">proc </aside>is_injectable<aside>(/<a href="mob.html">mob</a>/user, allowmobs) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L354"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 354"></a></aside></h3><p>Is this atom injectable into other atoms</p><h3 id="proc/is_open_container"><aside class="declaration">proc </aside>is_open_container<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L350"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 350"></a></aside></h3><p>Convenience proc to see if a container is open for chemistry handling</p><h3 id="proc/is_refillable"><aside class="declaration">proc </aside>is_refillable<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L362"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 362"></a></aside></h3><p>Can this atoms reagents be refilled</p><h3 id="proc/item_interaction"><aside class="declaration">proc </aside>item_interaction<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/used, /list/modifiers) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atom/atom_tool_acts.dm#L102"><img src="git.png" width="16" height="16" title="code/game/atom/atom_tool_acts.dm 102"></a></aside></h3><p>Called when this atom has an item used on it.
IE, a mob is clicking on this atom with an item.</p>
<p>Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code.
Return NONE to allow default interaction / tool handling.</p><h3 id="proc/makeHologram"><aside class="declaration">proc </aside>makeHologram<aside>(opacity) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/mod/mod_link.dm#L18"><img src="git.png" width="16" height="16" title="code/modules/mod/mod_link.dm 18"></a></aside></h3><p>Makes this atom look like a &quot;hologram&quot;
So transparent, blue, with a scanline and an emissive glow
This is acomplished using a combination of filters and render steps/overlays
The degree of the opacity is optional, based off the opacity arg (0 -&gt; 1)</p><h3 id="proc/mech_melee_attack"><aside class="declaration">proc </aside>mech_melee_attack<aside>(/<a href="obj.html">obj</a>/<a href="obj/mecha.html">mecha</a>/M) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L308"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 308"></a></aside></h3><p>Handle melee attack by a mech</p><h3 id="proc/move_camera_by_click"><aside class="declaration">proc </aside>move_camera_by_click<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/mob/camera/eye.dm#L108"><img src="git.png" width="16" height="16" title="code/modules/mob/camera/eye.dm 108"></a></aside></h3><p>If <code>usr</code> is an AI, set the camera eye's location to the location of the atom clicked.</p><h3 id="proc/on_mob_spawn"><aside class="declaration">proc </aside>on_mob_spawn<aside>(/<a href="mob.html">mob</a>/created_mob) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1517"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1517"></a></aside></h3><p>Used with the spawner component to do something when a mob is spawned.</p><h3 id="proc/persistent_load"><aside class="declaration">proc </aside>persistent_load<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem/non_firing/SSpersistent_data.dm#L57"><img src="git.png" width="16" height="16" title="code/controllers/subsystem/non_firing/SSpersistent_data.dm 57"></a></aside></h3><p>Atom Persistent Loader</p>
<p>Overridden on every atom which needs to load persistent data</p><h3 id="proc/persistent_save"><aside class="declaration">proc </aside>persistent_save<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem/non_firing/SSpersistent_data.dm#L65"><img src="git.png" width="16" height="16" title="code/controllers/subsystem/non_firing/SSpersistent_data.dm 65"></a></aside></h3><p>Atom Persistent Saver</p>
<p>Overridden on every atom which needs to save persistent data</p><h3 id="proc/rad_act"><aside class="declaration">proc </aside>rad_act<aside>(/<a href="atom.html">atom</a>/source, amount, emission_type) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L653"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 653"></a></aside></h3><p>Respond to a radioactive wave hitting this atom</p>
<p>This should only be called through the atom/base_rad_act proc</p><h3 id="proc/ranged_item_interaction"><aside class="declaration">proc </aside>ranged_item_interaction<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /list/modifiers) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atom/atom_tool_acts.dm#L157"><img src="git.png" width="16" height="16" title="code/game/atom/atom_tool_acts.dm 157"></a></aside></h3><p>Called when this atom has an item used on it from a distance.
IE, a mob is clicking on this atom with an item and is not adjacent.</p>
<p>Does NOT include Telekinesis users, they are considered adjacent generally.</p>
<p>Return an ITEM_INTERACT_ flag in the event the interaction was handled, to cancel further interaction code.</p><h3 id="proc/ray_filter_helper"><aside class="declaration">proc </aside>ray_filter_helper<aside>(_priority, _size, _color, _factor, _density, _y) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__HELPERS/filters.dm#L321"><img src="git.png" width="16" height="16" title="code/__HELPERS/filters.dm 321"></a></aside></h3><p>Used to create rays on an item. Make sure to removefilter(&quot;rays&quot;) when done with it</p><h3 id="proc/relaydrive"><aside class="declaration">proc </aside>relaydrive<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, direction) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1496"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1496"></a></aside></h3><p>A special case of relaymove() in which the person relaying the move may be &quot;driving&quot; this atom</p>
<p>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</p><h3 id="proc/remove_orbiter"><aside class="declaration">proc </aside>remove_orbiter<aside>(/<a href="atom.html">atom</a>/<a href="atom/movable.html">movable</a>/orbiter) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/datums/components/orbiter.dm#L425"><img src="git.png" width="16" height="16" title="code/datums/components/orbiter.dm 425"></a></aside></h3><p>Remove an orbiter from the atom it's orbiting.</p><h3 id="proc/rename_interactive"><aside class="declaration">proc </aside>rename_interactive<aside>(/<a href="mob.html">mob</a>/user, /<a href="obj.html">obj</a>/implement, use_prefix, actually_rename, prompt) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1356"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1356"></a></aside></h3><ul>
<li>
<p>Call this when you want to present a renaming prompt to the user.</p>
<p>It's a simple proc, but handles annoying edge cases such as forgetting to add a &quot;cancel&quot; button,
or being able to rename stuff remotely.</p>
<p>Arguments:</p>
<ul>
<li>user - the renamer.</li>
<li>implement - the tool doing the renaming (usually, a pen).</li>
<li>use_prefix - whether the new name should follow the format of &quot;thing - user-given label&quot; or
if we allow to change the name completely arbitrarily.</li>
<li>actually_rename - whether we want to really change the <code>src.name</code>, or if we want to do everything <em>except</em> that.</li>
<li>prompt - a custom &quot;what do you want rename this thing to be?&quot; prompt shown in the inpit box.</li>
</ul>
<p>Returns: Either null if the renaming was aborted, or the user-provided sanitized string.</p>
</li>
</ul><h3 id="proc/return_analyzable_air"><aside class="declaration">proc </aside>return_analyzable_air<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L333"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 333"></a></aside></h3><p>Return the air if we can analyze it</p><h3 id="proc/rust_heretic_act"><aside class="declaration">proc </aside>rust_heretic_act<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1505"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1505"></a></aside></h3><p>Causes effects when the atom gets hit by a rust effect from heretics</p>
<p>Override this if you want custom behaviour in whatever gets hit by the rust
/turf/rust_turf should be used instead for overriding rust on turfs</p><h3 id="proc/set_opacity"><aside class="declaration">proc </aside>set_opacity<aside>(new_opacity) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/lighting/lighting_atom.dm#L57"><img src="git.png" width="16" height="16" title="code/modules/lighting/lighting_atom.dm 57"></a></aside></h3><p>Updates the atom's opacity value.</p>
<p>This exists to act as a hook for associated behavior.
It notifies (potentially) affected light sources so they can update (if needed).</p><h3 id="proc/set_smoothed_icon_state"><aside class="declaration">proc </aside>set_smoothed_icon_state<aside>(new_junction) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__HELPERS/icon_smoothing.dm#L342"><img src="git.png" width="16" height="16" title="code/__HELPERS/icon_smoothing.dm 342"></a></aside></h3><p>Changes the icon state based on the new junction bitmask. Returns the old junction value.</p><h3 id="proc/shuttleRotate"><aside class="declaration">proc </aside>shuttleRotate<aside>(rotation, params) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/modules/shuttle/shuttle_rotate.dm#L8"><img src="git.png" width="16" height="16" title="code/modules/shuttle/shuttle_rotate.dm 8"></a></aside></h3><p>Base proc</p><h3 id="proc/storage_depth"><aside class="declaration">proc </aside>storage_depth<aside>(/<a href="atom.html">atom</a>/container) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/objects/items/storage/storage_base.dm#L710"><img src="git.png" width="16" height="16" title="code/game/objects/items/storage/storage_base.dm 710"></a></aside></h3><p>Returns the storage depth of an atom up to the area level.</p>
<p>The storage depth is the number of storage items the atom is contained in.
Returns <code>-1</code> if the atom was not found in a container.</p><h3 id="proc/storage_depth_turf"><aside class="declaration">proc </aside>storage_depth_turf<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/objects/items/storage/storage_base.dm#L731"><img src="git.png" width="16" height="16" title="code/game/objects/items/storage/storage_base.dm 731"></a></aside></h3><p>Like <a href="atom.html#proc/storage_depth" title="/atom">/atom/proc/storage_depth</a>, but returns the depth to the nearest turf.</p>
<p>Returns <code>-1</code> if there's no top level turf. (A loc was null somewhere, or a non-turf atom's loc was an area somehow.)</p><h3 id="proc/tool_act"><aside class="declaration">proc </aside>tool_act<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/tool, /list/modifiers) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atom/atom_tool_acts.dm#L61"><img src="git.png" width="16" height="16" title="code/game/atom/atom_tool_acts.dm 61"></a></aside></h3><h2 id="tool-act">Tool Act</h2>
<p>Handles using specific tools on this atom directly.</p>
<p>Handles the tool_acts in particular, such as wrenches and screwdrivers.</p>
<p>This can be overriden to handle unique &quot;tool interactions&quot;
IE using an item like a tool (when it's not actually one)
but otherwise does nothing that [item_interaction] doesn't already do.</p>
<p>In other words, use sparingly. It's harder to use (correctly) than [item_interaction].</p><h3 id="proc/update_appearance"><aside class="declaration">proc </aside>update_appearance<aside>(updates) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L510"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 510"></a></aside></h3><p>Updates the appearence of the atom, including text.</p>
<p>Mostly delegates to update_name, update_desc, and update_icon</p>
<p>Arguments:</p>
<ul>
<li>updates: A set of bitflags dictating what should be updated. Defaults to [ALL]</li>
</ul>
<p>Supported bitflags: UPDATE_NAME, UPDATE_DESC, UPDATE_ICON</p><h3 id="proc/update_desc"><aside class="declaration">proc </aside>update_desc<aside>(updates) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L530"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 530"></a></aside></h3><p>Updates the description of the atom</p><h3 id="proc/update_icon"><aside class="declaration">proc </aside>update_icon<aside>(updates) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L545"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 545"></a></aside></h3><p>Updates the icon and overlays of the atom</p>
<p>Mostly delegates to update_icon_state and update_overlays</p>
<p>Arguments:</p>
<ul>
<li>updates: A set of bitflags dictating what should be updated. Defaults to [ALL]</li>
</ul>
<p>Supported bitflags: UPDATE_ICON_STATE, UPDATE_OVERLAYS</p><h3 id="proc/update_icon_state"><aside class="declaration">proc </aside>update_icon_state<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L576"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 576"></a></aside></h3><p>Updates the icon state of the atom</p>
<p>Excluding the base proc, or child overrides that do not intend to change the icon_state, this proc needs a minimum of two possible icon_states, otherwise it effectively becomes permanent and a redundant proc.</p><h3 id="proc/update_name"><aside class="declaration">proc </aside>update_name<aside>(updates) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L524"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 524"></a></aside></h3><p>Updates the name of the atom</p><h3 id="proc/update_overlays"><aside class="declaration">proc </aside>update_overlays<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L587"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 587"></a></aside></h3><p>Updates the managed overlays of the atom</p>
<p>Old overlays from this proc are removed when called, and does not affect overlays from outside it. e.g. add_overlay() called independently in a different proc.</p>
<p>It has to return a list of overlays if it can't call the parent to create one. The list can contain anything that would be valid for the add_overlay proc: Images, mutable appearances, icon state names...</p><h3 id="proc/zap_act"><aside class="declaration">proc </aside>zap_act<aside>(power, zap_flags) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/game/atoms.dm#L1215"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1215"></a></aside></h3><p>Respond to an electric bolt action on our item</p>
<p>Default behaviour is to return, we define here to allow for cleaner code later on</p></main><footer>paradise.dme <a href="https://github.com/ParadiseSS13/Paradise/tree/8a8a00a2a9bec485351e5f219982b7315d3504fa">8a8a00a</a> (master) — <a href="https://github.com/SpaceManiac/SpacemanDMM/blob/master/crates/dmdoc/README.md">dmdoc 1.11.0</a></footer></body></html>