163 lines
58 KiB
HTML
163 lines
58 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><link rel="stylesheet" href="dmdoc.css"><title>/atom - /tg/ Station 13</title></head><body><header><a href="index.html">/tg/ 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/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_rendering/atom_huds/alternate_appearance.dm#L4"><img src="git.png" width="16" height="16" title="code/_rendering/atom_huds/alternate_appearance.dm 4"></a></h1><p>The base type for nearly all physical objects in SS13</p>
|
||
<p>Lots and lots of functionality lives here, although in general we are striving to move
|
||
as much as possible to the components/elements system</p><table class="summary" cellspacing="0"><tr><td colspan="2"><h2>Vars</h2></td></tr><tr><th><a href="atom.html#var/add_overlays">add_overlays</a></th><td>a very temporary list of overlays to add</td></tr><tr><th><a href="atom.html#var/article">article</a></th><td>If non-null, overrides a/an/some in all cases</td></tr><tr><th><a href="atom.html#var/atom_colours">atom_colours</a></th><td>used to store the different colors on an atom</td></tr><tr><th><a href="atom.html#var/attack_hand_is_action">attack_hand_is_action</a></th><td>Should we set last action for attack hand? This implies that attack_hands to this atom should flush to clickdelay buffers instead of discarding.</td></tr><tr><th><a href="atom.html#var/attack_hand_speed">attack_hand_speed</a></th><td>Amount of time to check for from a mob's last attack to allow an attack_hand().</td></tr><tr><th><a href="atom.html#var/attack_hand_unwieldlyness">attack_hand_unwieldlyness</a></th><td>Amount of time to hard stagger (no clicking at all) the mob post attack_hand(). Lower = better</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/chat_color">chat_color</a></th><td>Last color calculated for the the chatmessage overlays</td></tr><tr><th><a href="atom.html#var/chat_color_darkened">chat_color_darkened</a></th><td>A luminescence-shifted value of the last color calculated for chatmessage overlays</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</td></tr><tr><th><a href="atom.html#var/custom_materials">custom_materials</a></th><td>The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.)
|
||
The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use <a href="atom.html#proc/set_custom_materials" title="/atom">set_custom_materials</a>.</td></tr><tr><th><a href="atom.html#var/custom_premium_price">custom_premium_price</a></th><td>Price of an item in a vending machine, overriding the premium vending machine price. Define in terms of paycheck defines as opposed to raw numbers.</td></tr><tr><th><a href="atom.html#var/custom_price">custom_price</a></th><td>Price of an item in a vending machine, overriding the base vending machine price. Define in terms of paycheck defines as opposed to raw numbers.</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/explosion_flags">explosion_flags</a></th><td>Flags for explosions</td></tr><tr><th><a href="atom.html#var/fingerprintslast">fingerprintslast</a></th><td>Last fingerprints to touch this atom</td></tr><tr><th><a href="atom.html#var/flags_1">flags_1</a></th><td>First atom flags var</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/interaction_flags_atom">interaction_flags_atom</a></th><td>Intearaction flags</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</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/material_flags">material_flags</a></th><td>Bitfield for how the atom handles materials.</td></tr><tr><th><a href="atom.html#var/material_modifier">material_modifier</a></th><td>Modifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines.</td></tr><tr><th><a href="atom.html#var/orbit_target">orbit_target</a></th><td>Reference to atom being orbited</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/proximity_monitor">proximity_monitor</a></th><td>Proximity monitor associated with this atom</td></tr><tr><th><a href="atom.html#var/rad_insulation">rad_insulation</a></th><td>Radiation insulation types</td></tr><tr><th><a href="atom.html#var/reagents">reagents</a></th><td>Reagents holder</td></tr><tr><th><a href="atom.html#var/realized_overlays">realized_overlays</a></th><td>List of overlay "keys" (info about the appearance) -> mutable versions of static appearances
|
||
Drawn from the overlays list</td></tr><tr><th><a href="atom.html#var/realized_underlays">realized_underlays</a></th><td>List of underlay "keys" (info about the appearance) -> mutable versions of static appearances
|
||
Drawn from the underlays list</td></tr><tr><th><a href="atom.html#var/remove_overlays">remove_overlays</a></th><td>a very temporary list of overlays to remove</td></tr><tr><th><a href="atom.html#var/ricochet_chance_mod">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/ricochet_damage_mod">ricochet_damage_mod</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/targeted_by">targeted_by</a></th><td>Mobs that are currently do_after'ing this atom, to be cleared from on Destroy()</td></tr><tr><th><a href="atom.html#var/wave_explosion_block">wave_explosion_block</a></th><td>Amount to decrease wave explosions by</td></tr><tr><th><a href="atom.html#var/wave_explosion_multiply">wave_explosion_multiply</a></th><td>Amount to multiply wave explosions by</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/CanAllowThrough">CanAllowThrough</a></th><td>Returns true or false to allow the mover to move through src</td></tr><tr><th><a href="atom.html#proc/ComponentInitialize">ComponentInitialize</a></th><td>Put your <a href="code/__DEFINES/dcs/helpers.html#define/AddComponent" title="AddComponent">AddComponent</a> calls here</td></tr><tr><th><a href="atom.html#proc/Destroy">Destroy</a></th><td>Top level of the destroy chain for most atoms</td></tr><tr><th><a href="atom.html#proc/Initialize">Initialize</a></th><td>The primary method that objects are setup in SS13 with</td></tr><tr><th><a href="atom.html#proc/LateInitialize">LateInitialize</a></th><td>Late Intialization, for code that should run after all atoms have run Intialization</td></tr><tr><th><a href="atom.html#proc/New">New</a></th><td>Called when an atom is created in byond (built in engine proc)</td></tr><tr><th><a href="atom.html#proc/_contents">_contents</a></th><td>Wrapper to return a copy of contents, as SDQL2 can't tell an internal list from a normal list.</td></tr><tr><th><a href="atom.html#proc/add_context">add_context</a></th><td>Creates a "Type-B" contextual screentip interaction.
|
||
When a user hovers over this, this proc will be called in order
|
||
to provide context for contextual screentips.
|
||
You must call <code>register_context()</code> in order for this to be registered.
|
||
A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
|
||
that map to the action as text.
|
||
If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
|
||
<code>source</code> can, in all cases, be replaced with <code>src</code>, and only exists because this proc directly connects to a signal.</td></tr><tr><th><a href="atom.html#proc/audible_message">audible_message</a></th><td>Show a message to all mobs in earshot of this atom</td></tr><tr><th><a href="atom.html#proc/balloon_alert">balloon_alert</a></th><td>Creates text that will float from the atom upwards to the viewer.</td></tr><tr><th><a href="atom.html#proc/balloon_alert_to_viewers">balloon_alert_to_viewers</a></th><td>Create balloon alerts (text that floats up) to everything within range.
|
||
Will only display to people who can see.</td></tr><tr><th><a href="atom.html#proc/bullet_act">bullet_act</a></th><td>React to a hit by a projectile object</td></tr><tr><th><a href="atom.html#proc/check_projectile_ricochet">check_projectile_ricochet</a></th><td>Checks if a projectile should ricochet off of us. Projectiles get final say.
|
||
[__DEFINES/projectiles.dm] for return values.</td></tr><tr><th><a href="atom.html#proc/connect_to_shuttle">connect_to_shuttle</a></th><td>Called after a shuttle is loaded <strong>from map template initially</strong>.</td></tr><tr><th><a href="atom.html#proc/examine_more">examine_more</a></th><td>Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_TIME (default 1.5 seconds)</td></tr><tr><th><a href="atom.html#proc/get_examine_string">get_examine_string</a></th><td>Generate the full examine string of this atom (including icon for goonchat)</td></tr><tr><th><a href="atom.html#proc/get_filter_index">get_filter_index</a></th><td>Returns the indice in filters of the given filter name.
|
||
If it is not found, returns null.</td></tr><tr><th><a href="atom.html#proc/has_gravity">has_gravity</a></th><td>Returns true if this atom has gravity for the passed in turf</td></tr><tr><th><a href="atom.html#proc/hitby">hitby</a></th><td>React to being hit by a thrown object</td></tr><tr><th><a href="atom.html#proc/hitby_react">hitby_react</a></th><td>We have have actually hit the passed in atom</td></tr><tr><th><a href="atom.html#proc/mat_update_desc">mat_update_desc</a></th><td>This proc is called when a material updates an object's description</td></tr><tr><th><a href="atom.html#proc/mech_melee_attack">mech_melee_attack</a></th><td>Called when a mech melee attacks an atom</td></tr><tr><th><a href="atom.html#proc/ninjadrain_act">ninjadrain_act</a></th><td>Atom level proc for space ninja's glove interactions.</td></tr><tr><th><a href="atom.html#proc/onAwayMission">onAwayMission</a></th><td>Is the atom in an away mission</td></tr><tr><th><a href="atom.html#proc/onCentCom">onCentCom</a></th><td>Is this atom currently located on centcom</td></tr><tr><th><a href="atom.html#proc/onSyndieBase">onSyndieBase</a></th><td>Is the atom in any of the centcom syndicate areas</td></tr><tr><th><a href="atom.html#proc/realize_overlays">realize_overlays</a></th><td>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</td></tr><tr><th><a href="atom.html#proc/register_context">register_context</a></th><td>Create a "Type-B" contextual screentip interaction, registering to <code>add_context()</code>.
|
||
This will run <code>add_context()</code> when the atom is hovered over by an item for context.
|
||
<code>add_context()</code> will <em>not</em> be called unless this is run.
|
||
This is not necessary for Type-B interactions, as you can just apply the flag and register to the signal yourself.</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/setClosed">setClosed</a></th><td>Used to set something as 'closed' if it's being used as a supplypod</td></tr><tr><th><a href="atom.html#proc/setOpened">setOpened</a></th><td>Used to set something as 'open' if it's being used as a supplypod</td></tr><tr><th><a href="atom.html#proc/set_custom_materials">set_custom_materials</a></th><td>Sets the custom materials for an item.</td></tr><tr><th><a href="atom.html#proc/set_light_color">set_light_color</a></th><td>Setter for the light color of this atom.</td></tr><tr><th><a href="atom.html#proc/set_light_range">set_light_range</a></th><td>Setter for the light range of this atom.</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/update_appearance">update_appearance</a></th><td>Updates the appearence of the icon</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 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>Builds a list of overlays for the atom, this will not apply them.
|
||
If you need to update overlays, use [update_icon(UPDATE_OVERLAYS)],
|
||
This proc is intended to be overridden.</td></tr><tr><th><a href="atom.html#proc/visible_message">visible_message</a></th><td>Generate a visible message from this atom</td></tr><tr><th><a href="atom.html#proc/wave_ex_act">wave_ex_act</a></th><td>Called when a wave explosion hits this atom.</td></tr><tr><th><a href="atom.html#proc/wave_explode">wave_explode</a></th><td>Called when a wave explosion hits this atom. Do not override this.</td></tr><tr><th><a href="atom.html#proc/zap_act">zap_act</a></th><td>Respond to a electric bolt action on our item</td></tr></table><h2 id="var">Var Details</h2><h3 id="var/add_overlays"><aside class="declaration">var </aside>add_overlays <aside>– /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L60"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 60"></a></h3><p>a very temporary list of overlays to add</p><h3 id="var/article"><aside class="declaration">var </aside>article <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L17"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 17"></a></h3><p>If non-null, overrides a/an/some in all cases</p><h3 id="var/atom_colours"><aside class="declaration">var </aside>atom_colours <aside>– /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L55"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 55"></a></h3><p>used to store the different colors on an atom</p>
|
||
<p>its inherent color, the colored paint applied on it, special color effect etc...</p><h3 id="var/attack_hand_is_action"><aside class="declaration">var </aside>attack_hand_is_action <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L169"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 169"></a></h3><p>Should we set last action for attack hand? This implies that attack_hands to this atom should flush to clickdelay buffers instead of discarding.</p><h3 id="var/attack_hand_speed"><aside class="declaration">var </aside>attack_hand_speed <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L165"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 165"></a></h3><p>Amount of time to check for from a mob's last attack to allow an attack_hand().</p><h3 id="var/attack_hand_unwieldlyness"><aside class="declaration">var </aside>attack_hand_unwieldlyness <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L167"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 167"></a></h3><p>Amount of time to hard stagger (no clicking at all) the mob post attack_hand(). Lower = better</p><h3 id="var/base_icon_state"><aside class="declaration">var </aside>base_icon_state <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L111"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 111"></a></h3><p>Used for changing icon states for different base sprites.</p><h3 id="var/chat_color"><aside class="declaration">var </aside>chat_color <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L106"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 106"></a></h3><p>Last color calculated for the the chatmessage overlays</p><h3 id="var/chat_color_darkened"><aside class="declaration">var </aside>chat_color_darkened <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L108"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 108"></a></h3><p>A luminescence-shifted value of the last color calculated for chatmessage overlays</p><h3 id="var/chat_color_name"><aside class="declaration">var </aside>chat_color_name <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L104"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 104"></a></h3><p>Last name used to calculate a color for the chatmessage overlays</p><h3 id="var/custom_materials"><aside class="declaration">var </aside>custom_materials <aside>– /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L88"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 88"></a></h3><p>The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.)
|
||
The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use <a href="atom.html#proc/set_custom_materials" title="/atom">set_custom_materials</a>.</p><h3 id="var/custom_premium_price"><aside class="declaration">var </aside>custom_premium_price <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L77"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 77"></a></h3><p>Price of an item in a vending machine, overriding the premium vending machine price. Define in terms of paycheck defines as opposed to raw numbers.</p><h3 id="var/custom_price"><aside class="declaration">var </aside>custom_price <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L75"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 75"></a></h3><p>Price of an item in a vending machine, overriding the base vending machine price. Define in terms of paycheck defines as opposed to raw numbers.</p><h3 id="var/explosion_block"><aside class="declaration">var </aside>explosion_block <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L40"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 40"></a></h3><p>Value used to increment ex_act() if reactionary_explosions is on</p><h3 id="var/explosion_flags"><aside class="declaration">var </aside>explosion_flags <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L43"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 43"></a></h3><p>Flags for explosions</p><h3 id="var/fingerprintslast"><aside class="declaration">var </aside>fingerprintslast <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L70"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 70"></a></h3><p>Last fingerprints to touch this atom</p><h3 id="var/flags_1"><aside class="declaration">var </aside>flags_1 <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L20"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 20"></a></h3><p>First atom flags var</p><h3 id="var/hud_list"><aside class="declaration">var </aside>hud_list <aside>– /list/image</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L35"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 35"></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/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L37"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 37"></a></h3><p>HUD images that this atom can provide.</p><h3 id="var/interaction_flags_atom"><aside class="declaration">var </aside>interaction_flags_atom <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L22"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 22"></a></h3><p>Intearaction flags</p><h3 id="var/managed_overlays"><aside class="declaration">var </aside>managed_overlays <aside>– /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L65"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 65"></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</p><h3 id="var/managed_vis_overlays"><aside class="declaration">var </aside>managed_vis_overlays <aside>– /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L63"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 63"></a></h3><p>vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays</p><h3 id="var/material_flags"><aside class="declaration">var </aside>material_flags <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L90"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 90"></a></h3><p>Bitfield for how the atom handles materials.</p><h3 id="var/material_modifier"><aside class="declaration">var </aside>material_modifier <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L92"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 92"></a></h3><p>Modifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines.</p><h3 id="var/orbit_target"><aside class="declaration">var </aside>orbit_target <aside>– /<a href="atom.html">atom</a></aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L119"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 119"></a></h3><p>Reference to atom being orbited</p><h3 id="var/pass_flags_self"><aside class="declaration">var </aside>pass_flags_self <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L13"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 13"></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/proximity_monitor"><aside class="declaration">var </aside>proximity_monitor <aside>– /<a href="datum.html">datum</a>/proximity_monitor</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L68"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 68"></a></h3><p>Proximity monitor associated with this atom</p><h3 id="var/rad_insulation"><aside class="declaration">var </aside>rad_insulation <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L84"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 84"></a></h3><p>Radiation insulation types</p><h3 id="var/reagents"><aside class="declaration">var </aside>reagents <aside>– /<a href="datum.html">datum</a>/<a href="datum/reagents.html">reagents</a></aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L32"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 32"></a></h3><p>Reagents holder</p><h3 id="var/realized_overlays"><aside class="declaration">var </aside>realized_overlays <aside>– /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/controllers/subsystem/overlays.dm#L143"><img src="git.png" width="16" height="16" title="code/controllers/subsystem/overlays.dm 143"></a></h3><p>List of overlay "keys" (info about the appearance) -> mutable versions of static appearances
|
||
Drawn from the overlays list</p><h3 id="var/realized_underlays"><aside class="declaration">var </aside>realized_underlays <aside>– /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/controllers/subsystem/overlays.dm#L148"><img src="git.png" width="16" height="16" title="code/controllers/subsystem/overlays.dm 148"></a></h3><p>List of underlay "keys" (info about the appearance) -> mutable versions of static appearances
|
||
Drawn from the underlays list</p><h3 id="var/remove_overlays"><aside class="declaration">var </aside>remove_overlays <aside>– /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L58"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 58"></a></h3><p>a very temporary list of overlays to remove</p><h3 id="var/ricochet_chance_mod"><aside class="declaration">var </aside>ricochet_chance_mod <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L27"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 27"></a></h3><p>When a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this</p><h3 id="var/ricochet_damage_mod"><aside class="declaration">var </aside>ricochet_damage_mod <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L29"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 29"></a></h3><p>When a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom</p><h3 id="var/targeted_by"><aside class="declaration">var </aside>targeted_by <aside>– /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L114"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 114"></a></h3><p>Mobs that are currently do_after'ing this atom, to be cleared from on Destroy()</p><h3 id="var/wave_explosion_block"><aside class="declaration">var </aside>wave_explosion_block <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L45"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 45"></a></h3><p>Amount to decrease wave explosions by</p><h3 id="var/wave_explosion_multiply"><aside class="declaration">var </aside>wave_explosion_multiply <aside>– </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L47"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 47"></a></h3><p>Amount to multiply wave explosions by</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/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/click.dm#L397"><img src="git.png" width="16" height="16" title="code/_onclick/click.dm 397"></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/CanAllowThrough"><aside class="declaration">proc </aside>CanAllowThrough<aside>(/<a href="atom.html">atom</a>/<a href="atom/movable.html">movable</a>/mover, /<a href="turf.html">turf</a>/target) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L291"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 291"></a></aside></h3><p>Returns true or false to allow the mover to move through src</p><h3 id="proc/ComponentInitialize"><aside class="declaration">proc </aside>ComponentInitialize<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L224"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 224"></a></aside></h3><p>Put your <a href="code/__DEFINES/dcs/helpers.html#define/AddComponent" title="AddComponent">AddComponent</a> calls here</p><h3 id="proc/Destroy"><aside class="parent"><a title="/datum" href="datum.html#proc/Destroy">↑</a></aside>Destroy<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L237"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 237"></a></aside></h3><p>Top level of the destroy chain for most atoms</p>
|
||
<p>Cleans up the following:</p>
|
||
<ul>
|
||
<li>Removes alternate apperances from huds that see them</li>
|
||
<li>qdels the reagent holder from atoms if it exists</li>
|
||
<li>clears the orbiters list</li>
|
||
<li>clears overlays and priority overlays</li>
|
||
<li>clears the light object</li>
|
||
</ul><h3 id="proc/Initialize"><aside class="declaration">proc </aside>Initialize<aside>(mapload, ...) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L178"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 178"></a></aside></h3><p>The primary method that objects are setup in SS13 with</p>
|
||
<p>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</p>
|
||
<p>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</p>
|
||
<p>If you're creating an object at any point after SSInit has run then this proc will be
|
||
immediately be called from New.</p>
|
||
<p>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.</p>
|
||
<p>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)</p>
|
||
<p>You must not sleep in this proc, or any subprocs</p>
|
||
<p>Any parameters from new are passed through (excluding loc), naturally if you're loading from a map
|
||
there are no other arguments</p>
|
||
<p>Must return an <a href="code/__DEFINES/subsystems.html#define/INITIALIZE_HINT_NORMAL" title="INITIALIZE_HINT_NORMAL">initialization hint</a> or a runtime will occur.</p>
|
||
<p>Note: the following functions don't call the base for optimization and must copypasta handling:</p>
|
||
<ul>
|
||
<li><a href="turf.html#proc/Initialize" title="/turf">/turf/proc/Initialize</a></li>
|
||
<li><a href="turf/open/space.html#proc/Initialize" title="/turf/open/space">/turf/open/space/proc/Initialize</a></li>
|
||
</ul><h3 id="proc/LateInitialize"><aside class="declaration">proc </aside>LateInitialize<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L220"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 220"></a></aside></h3><p>Late Intialization, for code that should run after all atoms have run Intialization</p>
|
||
<p>To have your LateIntialize proc be called, your atoms <a href="atom.html#proc/Initialize" title="/atom">Initalization</a>
|
||
proc must return the hint
|
||
<a href="code/__DEFINES/subsystems.html#define/INITIALIZE_HINT_LATELOAD" title="INITIALIZE_HINT_LATELOAD">INITIALIZE_HINT_LATELOAD</a> otherwise you will never be called.</p>
|
||
<p>useful for doing things like finding other machines on GLOB.machines because you can guarantee
|
||
that all atoms will actually exist in the "WORLD" at this time and that all their Intialization
|
||
code has been run</p><h3 id="proc/New">New<aside>(loc, ...) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L129"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 129"></a></aside></h3><p>Called when an atom is created in byond (built in engine proc)</p>
|
||
<p>Not a lot happens here in SS13 code, as we offload most of the work to the
|
||
<a href="atom.html#proc/Initialize" title="/atom">Intialization</a> proc, mostly we run the preloader
|
||
if the preloader is being used and then call <a href="datum/controller/subsystem/atoms.html#proc/InitAtom" title="/datum/controller/subsystem/atoms">InitAtom</a> of which the ultimate
|
||
result is that the Intialize proc is called.</p>
|
||
<p>We also generate a tag here if the DF_USE_TAG flag is set on the atom</p><h3 id="proc/_contents"><aside class="declaration">proc </aside>_contents<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm#L253"><img src="git.png" width="16" height="16" title="code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm 253"></a></aside></h3><p>Wrapper to return a copy of contents, as SDQL2 can't tell an internal list from a normal list.</p><h3 id="proc/add_context"><aside class="declaration">proc </aside>add_context<aside>(/<a href="atom.html">atom</a>/source, /list/context, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/held_item, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/datums/screentips/atom_context.dm#L17"><img src="git.png" width="16" height="16" title="code/datums/screentips/atom_context.dm 17"></a></aside></h3><p>Creates a "Type-B" contextual screentip interaction.
|
||
When a user hovers over this, this proc will be called in order
|
||
to provide context for contextual screentips.
|
||
You must call <code>register_context()</code> in order for this to be registered.
|
||
A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
|
||
that map to the action as text.
|
||
If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
|
||
<code>source</code> can, in all cases, be replaced with <code>src</code>, and only exists because this proc directly connects to a signal.</p><h3 id="proc/audible_message"><aside class="declaration">proc </aside>audible_message<aside>(message, deaf_message, hearing_distance, self_message, ignored_mobs) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L207"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 207"></a></aside></h3><p>Show a message to all mobs in earshot of this atom</p>
|
||
<p>Use for objects performing audible actions</p>
|
||
<p>vars:</p>
|
||
<ul>
|
||
<li>message is the message output to anyone who can hear.</li>
|
||
<li>deaf_message (optional) is what deaf people will see.</li>
|
||
<li>hearing_distance (optional) is the range, how many tiles away the message can be heard.</li>
|
||
<li>ignored_mobs (optional) doesn't show any message to any given mob in the list.</li>
|
||
</ul><h3 id="proc/balloon_alert"><aside class="declaration">proc </aside>balloon_alert<aside>(/<a href="mob.html">mob</a>/viewer, text) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/balloon_alert/balloon_alert.dm#L12"><img src="git.png" width="16" height="16" title="code/modules/balloon_alert/balloon_alert.dm 12"></a></aside></h3><p>Creates text that will float from the atom upwards to the viewer.</p><h3 id="proc/balloon_alert_to_viewers"><aside class="declaration">proc </aside>balloon_alert_to_viewers<aside>(message, self_message, vision_distance, /list/ignored_mobs) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/balloon_alert/balloon_alert.dm#L19"><img src="git.png" width="16" height="16" title="code/modules/balloon_alert/balloon_alert.dm 19"></a></aside></h3><p>Create balloon alerts (text that floats up) to everything within range.
|
||
Will only display to people who can see.</p><h3 id="proc/bullet_act"><aside class="declaration">proc </aside>bullet_act<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/<a href="obj/item/projectile.html">projectile</a>/P, def_zone, piercing_hit) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L477"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 477"></a></aside></h3><p>React to a hit by a projectile object</p>
|
||
<p>Default behaviour is to send the <a href="code/__DEFINES/dcs/signals.html#define/COMSIG_ATOM_BULLET_ACT" title="COMSIG_ATOM_BULLET_ACT">COMSIG_ATOM_BULLET_ACT</a> and then call [on_hit][/obj/item/projectile/proc/on_hit] on the projectile</p>
|
||
<p>@params
|
||
P - projectile
|
||
def_zone - zone hit
|
||
piercing_hit - is this hit piercing or normal?</p><h3 id="proc/check_projectile_ricochet"><aside class="declaration">proc </aside>check_projectile_ricochet<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/<a href="obj/item/projectile.html">projectile</a>/P) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L263"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 263"></a></aside></h3><p>Checks if a projectile should ricochet off of us. Projectiles get final say.
|
||
[__DEFINES/projectiles.dm] for return values.</p><h3 id="proc/connect_to_shuttle"><aside class="declaration">proc </aside>connect_to_shuttle<aside>(/<a href="obj.html">obj</a>/<a href="obj/docking_port.html">docking_port</a>/<a href="obj/docking_port/mobile.html">mobile</a>/port, /<a href="obj.html">obj</a>/<a href="obj/docking_port.html">docking_port</a>/stationary/dock, idnum, override) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L1182"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1182"></a></aside></h3><p>Called after a shuttle is loaded <strong>from map template initially</strong>.</p>
|
||
<p>@params</p>
|
||
<ul>
|
||
<li>port - Mobile port/shuttle</li>
|
||
<li>dock - Stationary dock the shuttle's at</li>
|
||
<li>idnum - ID number of the shuttle</li>
|
||
</ul><h3 id="proc/examine_more"><aside class="declaration">proc </aside>examine_more<aside>(/<a href="mob.html">mob</a>/user) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L560"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 560"></a></aside></h3><p>Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_TIME (default 1.5 seconds)</p>
|
||
<p>This is where you can put extra information on something that may be superfluous or not important in critical gameplay
|
||
moments, while allowing people to manually double-examine to take a closer look</p>
|
||
<p>Produces a signal <a href="code/__DEFINES/dcs/signals.html#define/COMSIG_PARENT_EXAMINE_MORE" title="COMSIG_PARENT_EXAMINE_MORE">COMSIG_PARENT_EXAMINE_MORE</a></p><h3 id="proc/get_examine_string"><aside class="declaration">proc </aside>get_examine_string<aside>(/<a href="mob.html">mob</a>/user, thats) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L515"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 515"></a></aside></h3><p>Generate the full examine string of this atom (including icon for goonchat)</p><h3 id="proc/get_filter_index"><aside class="declaration">proc </aside>get_filter_index<aside>(name) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L1365"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1365"></a></aside></h3><p>Returns the indice in filters of the given filter name.
|
||
If it is not found, returns null.</p><h3 id="proc/has_gravity"><aside class="declaration">proc </aside>has_gravity<aside>(/<a href="turf.html">turf</a>/T) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L1418"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1418"></a></aside></h3><p>Returns true if this atom has gravity for the passed in turf</p>
|
||
<p>Sends signals COMSIG_ATOM_HAS_GRAVITY and COMSIG_TURF_HAS_GRAVITY, both can force gravity with
|
||
the forced gravity var</p>
|
||
<p>Gravity situations:</p>
|
||
<ul>
|
||
<li>No gravity if you're not in a turf</li>
|
||
<li>No gravity if this atom is in is a space turf</li>
|
||
<li>Gravity if the area it's in always has gravity</li>
|
||
<li>Gravity if there's a gravity generator on the z level</li>
|
||
<li>Gravity if the Z level has an SSMappingTrait for ZTRAIT_GRAVITY</li>
|
||
<li>otherwise no gravity</li>
|
||
</ul><h3 id="proc/hitby"><aside class="declaration">proc </aside>hitby<aside>(/<a href="atom.html">atom</a>/<a href="atom/movable.html">movable</a>/hitting_atom, skipcatch, hitpush, blocked, /<a href="datum.html">datum</a>/<a href="datum/thrownthing.html">thrownthing</a>/throwingdatum) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L703"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 703"></a></aside></h3><p>React to being hit by a thrown object</p>
|
||
<p>Default behaviour is to call <a href="atom.html#proc/hitby_react" title="/atom">hitby_react</a> on ourselves after 2 seconds if we are dense
|
||
and under normal gravity.</p>
|
||
<p>Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is
|
||
deleted shortly after hitting something (during explosions or other massive events that
|
||
throw lots of items around - singularity being a notable example)</p><h3 id="proc/hitby_react"><aside class="declaration">proc </aside>hitby_react<aside>(/<a href="atom.html">atom</a>/<a href="atom/movable.html">movable</a>/harmed_atom) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L713"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 713"></a></aside></h3><p>We have have actually hit the passed in atom</p>
|
||
<p>Default behaviour is to move back from the item that hit us</p><h3 id="proc/mat_update_desc"><aside class="declaration">proc </aside>mat_update_desc<aside>(/<a href="datum.html">datum</a>/<a href="datum/material.html">material</a>/mat) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/datums/materials/_material.dm#L96"><img src="git.png" width="16" height="16" title="code/datums/materials/_material.dm 96"></a></aside></h3><p>This proc is called when a material updates an object's description</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/vehicle.html">vehicle</a>/<a href="obj/vehicle/sealed/mecha.html">sealed/mecha</a>/mecha_attacker) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/vehicles/mecha/mech_melee_attack.dm#L2"><img src="git.png" width="16" height="16" title="code/modules/vehicles/mecha/mech_melee_attack.dm 2"></a></aside></h3><p>Called when a mech melee attacks an atom</p><h3 id="proc/ninjadrain_act"><aside class="declaration">proc </aside>ninjadrain_act<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/<a href="obj/item/clothing.html">clothing</a>/<a href="obj/item/clothing/suit/space/space_ninja.html">suit/space/space_ninja</a>/ninja_suit, /<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>/ninja, /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/<a href="obj/item/clothing.html">clothing</a>/<a href="obj/item/clothing/gloves/space_ninja.html">gloves/space_ninja</a>/ninja_gloves) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/ninja/suit/ninjaDrainAct.dm#L11"><img src="git.png" width="16" height="16" title="code/modules/ninja/suit/ninjaDrainAct.dm 11"></a></aside></h3><p>Atom level proc for space ninja's glove interactions.</p>
|
||
<p>Proc which only occurs when space ninja uses his gloves on an atom.
|
||
Does nothing by default, but effects will vary.
|
||
Arguments:</p>
|
||
<ul>
|
||
<li>ninja_suit - The offending space ninja's suit.</li>
|
||
<li>ninja - The human mob wearing the suit.</li>
|
||
<li>ninja_gloves - The offending space ninja's gloves.</li>
|
||
</ul><h3 id="proc/onAwayMission"><aside class="declaration">proc </aside>onAwayMission<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L366"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 366"></a></aside></h3><p>Is the atom in an away mission</p>
|
||
<p>Must be in the away mission z-level to return TRUE</p>
|
||
<p>Also used in gamemode code for win conditions</p><h3 id="proc/onCentCom"><aside class="declaration">proc </aside>onCentCom<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L309"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 309"></a></aside></h3><p>Is this atom currently located on centcom</p>
|
||
<p>Specifically, is it on the z level and within the centcom areas</p>
|
||
<p>You can also be in a shuttleshuttle during endgame transit</p>
|
||
<p>Used in gamemode to identify mobs who have escaped and for some other areas of the code
|
||
who don't want atoms where they shouldn't be</p><h3 id="proc/onSyndieBase"><aside class="declaration">proc </aside>onSyndieBase<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L346"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 346"></a></aside></h3><p>Is the atom in any of the centcom syndicate areas</p>
|
||
<p>Either in the syndie base on centcom, or any of their shuttles</p>
|
||
<p>Also used in gamemode code for win conditions</p><h3 id="proc/realize_overlays"><aside class="declaration">proc </aside>realize_overlays<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/controllers/subsystem/overlays.dm#L157"><img src="git.png" width="16" height="16" title="code/controllers/subsystem/overlays.dm 157"></a></aside></h3><p>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</p><h3 id="proc/register_context"><aside class="declaration">proc </aside>register_context<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/datums/screentips/atom_context.dm#L5"><img src="git.png" width="16" height="16" title="code/datums/screentips/atom_context.dm 5"></a></aside></h3><p>Create a "Type-B" contextual screentip interaction, registering to <code>add_context()</code>.
|
||
This will run <code>add_context()</code> when the atom is hovered over by an item for context.
|
||
<code>add_context()</code> will <em>not</em> be called unless this is run.
|
||
This is not necessary for Type-B interactions, as you can just apply the flag and register to the signal yourself.</p><h3 id="proc/rust_heretic_act"><aside class="declaration">proc </aside>rust_heretic_act<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L1455"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1455"></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</p><h3 id="proc/setClosed"><aside class="declaration">proc </aside>setClosed<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L1471"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1471"></a></aside></h3><p>Used to set something as 'closed' if it's being used as a supplypod</p>
|
||
<p>Override this if you want an atom to be usable as a supplypod.</p><h3 id="proc/setOpened"><aside class="declaration">proc </aside>setOpened<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L1463"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1463"></a></aside></h3><p>Used to set something as 'open' if it's being used as a supplypod</p>
|
||
<p>Override this if you want an atom to be usable as a supplypod.</p><h3 id="proc/set_custom_materials"><aside class="declaration">proc </aside>set_custom_materials<aside>(/list/materials, multiplier) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L1387"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 1387"></a></aside></h3><p>Sets the custom materials for an item.</p><h3 id="proc/set_light_color"><aside class="declaration">proc </aside>set_light_color<aside>(new_color) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/lighting/lighting_atom.dm#L157"><img src="git.png" width="16" height="16" title="code/modules/lighting/lighting_atom.dm 157"></a></aside></h3><p>Setter for the light color of this atom.</p><h3 id="proc/set_light_range"><aside class="declaration">proc </aside>set_light_range<aside>(new_range) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/lighting/lighting_atom.dm#L147"><img src="git.png" width="16" height="16" title="code/modules/lighting/lighting_atom.dm 147"></a></aside></h3><p>Setter for the light range of this atom.</p><h3 id="proc/shuttleRotate"><aside class="declaration">proc </aside>shuttleRotate<aside>(rotation, params) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/shuttle/shuttle_rotate.dm#L9"><img src="git.png" width="16" height="16" title="code/modules/shuttle/shuttle_rotate.dm 9"></a></aside></h3><p>Base proc</p><h3 id="proc/update_appearance"><aside class="declaration">proc </aside>update_appearance<aside>(updates) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L574"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 574"></a></aside></h3><p>Updates the appearence of the icon</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><h3 id="proc/update_desc"><aside class="declaration">proc </aside>update_desc<aside>(updates) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L593"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 593"></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/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L598"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 598"></a></aside></h3><p>Updates the icon of the atom</p><h3 id="proc/update_icon_state"><aside class="declaration">proc </aside>update_icon_state<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L627"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 627"></a></aside></h3><p>Updates the icon state of the atom</p><h3 id="proc/update_name"><aside class="declaration">proc </aside>update_name<aside>(updates) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L588"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 588"></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/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L636"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 636"></a></aside></h3><p>Builds a list of overlays for the atom, this will not apply them.
|
||
If you need to update overlays, use [update_icon(UPDATE_OVERLAYS)],
|
||
This proc is intended to be overridden.</p><h3 id="proc/visible_message"><aside class="declaration">proc </aside>visible_message<aside>(message, self_message, blind_message, vision_distance, ignored_mobs, /<a href="mob.html">mob</a>/target, target_message, omni) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L143"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 143"></a></aside></h3><p>Generate a visible message from this atom</p>
|
||
<p>Show a message to all player mobs who sees this atom</p>
|
||
<p>Show a message to the src mob (if the src is a mob)</p>
|
||
<p>Use for atoms performing visible actions</p>
|
||
<p>message is output to anyone who can see, e.g. "The [src] does something!"</p>
|
||
<p>Vars:</p>
|
||
<ul>
|
||
<li>self_message (optional) is what the src mob sees e.g. "You do something!"</li>
|
||
<li>blind_message (optional) is what blind people will hear e.g. "You hear something!"</li>
|
||
<li>vision_distance (optional) define how many tiles away the message can be seen.</li>
|
||
<li>ignored_mobs (optional) doesn't show any message to any given mob in the list.</li>
|
||
<li>target (optional) is the other mob involved with the visible message. For example, the attacker in many combat messages.</li>
|
||
<li>target_message (optional) is what the target mob will see e.g. "[src] does something to you!"</li>
|
||
<li>omni (optional) if TRUE, will show to users no matter what.</li>
|
||
</ul><h3 id="proc/wave_ex_act"><aside class="declaration">proc </aside>wave_ex_act<aside>(power, /<a href="datum.html">datum</a>/<a href="datum/wave_explosion.html">wave_explosion</a>/explosion, dir) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L681"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 681"></a></aside></h3><p>Called when a wave explosion hits this atom.</p>
|
||
<p>Returns explosion power to "allow through". Standard handling and flag overrides in [wave_explode()].</p><h3 id="proc/wave_explode"><aside class="declaration">proc </aside>wave_explode<aside>(power, /<a href="datum.html">datum</a>/<a href="datum/wave_explosion.html">wave_explosion</a>/explosion, dir) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L662"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 662"></a></aside></h3><p>Called when a wave explosion hits this atom. Do not override this.</p>
|
||
<p>Returns explosion power to "allow through".</p><h3 id="proc/zap_act"><aside class="declaration">proc </aside>zap_act<aside>(power, zap_flags, shocked_targets) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms.dm#L911"><img src="git.png" width="16" height="16" title="code/game/atoms.dm 911"></a></aside></h3><p>Respond to a 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>tgstation.dme <a href="https://github.com/evilew/GS13-Citadel/tree/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e">e8e0068</a> (master) — <a href="https://github.com/SpaceManiac/SpacemanDMM/blob/master/crates/dmdoc/README.md">dmdoc 1.9.0</a></footer></body></html> |