Files
GS13NG/obj/item.html
2025-02-05 06:19:18 +00:00

85 lines
50 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"><base href="../"><link rel="stylesheet" href="dmdoc.css"><title>/obj/item - /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="obj/item.html#var">Var Details</a> - <a href="obj/item.html#proc">Proc Details</a></header><main><h1>item <aside>/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a></aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L11"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 11"></a></h1><table class="summary" cellspacing="0"><tr><td colspan="2"><h2>Vars</h2></td></tr><tr><th><a href="obj/item.html#var/attack_speed">attack_speed</a></th><td>Amount of time to check for from a mob's last attack, checked before an attack happens. Lower = faster attacks</td></tr><tr><th><a href="obj/item.html#var/attack_unwieldlyness">attack_unwieldlyness</a></th><td>Amount of time to hard-stagger (no clicking at all) the mob when attacking. Lower = better</td></tr><tr><th><a href="obj/item.html#var/block_chance">block_chance</a></th><td>The 0% to 100% chance for the default implementation of random block rolls.</td></tr><tr><th><a href="obj/item.html#var/block_priority">block_priority</a></th><td>Block priority, higher means we check this higher in the &quot;chain&quot;.</td></tr><tr><th><a href="obj/item.html#var/clickdelay_from_next_action">clickdelay_from_next_action</a></th><td>This item checks clickdelay from a user's delayed next action variable rather than the last time they attacked.</td></tr><tr><th><a href="obj/item.html#var/clickdelay_ignores_next_action">clickdelay_ignores_next_action</a></th><td>This item ignores next action delays.</td></tr><tr><th><a href="obj/item.html#var/clickdelay_mod_bypass">clickdelay_mod_bypass</a></th><td>This item bypasses any click delay mods</td></tr><tr><th><a href="obj/item.html#var/drop_sound">drop_sound</a></th><td>Sound uses when dropping the item, or when its thrown.</td></tr><tr><th><a href="obj/item.html#var/dye_color">dye_color</a></th><td>Used as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm</td></tr><tr><th><a href="obj/item.html#var/dying_key">dying_key</a></th><td>What dye registry should be looked at when dying this item; see washing_machine.dm</td></tr><tr><th><a href="obj/item.html#var/equip_sound">equip_sound</a></th><td>Sound used when equipping the item into a valid slot</td></tr><tr><th><a href="obj/item.html#var/force_string">force_string</a></th><td>string form of an item's force. Edit this var only to set a custom force string</td></tr><tr><th><a href="obj/item.html#var/hitsound">hitsound</a></th><td>Sound played when you hit something with the item</td></tr><tr><th><a href="obj/item.html#var/item_flags">item_flags</a></th><td>Item flags for the item</td></tr><tr><th><a href="obj/item.html#var/item_state">item_state</a></th><td>icon state name for inhand overlays</td></tr><tr><th><a href="obj/item.html#var/lefthand_file">lefthand_file</a></th><td>Icon file for left hand inhand overlays</td></tr><tr><th><a href="obj/item.html#var/mob_overlay_icon">mob_overlay_icon</a></th><td>Icon file for mob worn overlays.
no var for state because it should <em>always</em> be the same as icon_state</td></tr><tr><th><a href="obj/item.html#var/mob_throw_hit_sound">mob_throw_hit_sound</a></th><td>Used when yate into a mob</td></tr><tr><th><a href="obj/item.html#var/pickup_sound">pickup_sound</a></th><td>Sound uses when picking the item up (into your hands)</td></tr><tr><th><a href="obj/item.html#var/righthand_file">righthand_file</a></th><td>Icon file for right inhand overlays</td></tr><tr><th><a href="obj/item.html#var/sharpness">sharpness</a></th><td>All items with sharpness of SHARP_EDGED or higher will automatically get the butchering component.</td></tr><tr><th><a href="obj/item.html#var/stagger_force">stagger_force</a></th><td>How long, in deciseconds, this staggers for, if null it will autocalculate from w_class and force. Unlike total mass this supports 0 and negatives.</td></tr><tr><th><a href="obj/item.html#var/stealthy_audio">stealthy_audio</a></th><td>Whether or not we use stealthy audio levels for this item's attack sounds</td></tr><tr><th><a href="obj/item.html#var/throw_verb">throw_verb</a></th><td>Used if we want to have a custom verb text for throwing. &quot;John Spaceman flicks the ciggerate&quot; for example.</td></tr><tr><th><a href="obj/item.html#var/thrownby">thrownby</a></th><td>A weakref to the mob who threw the item</td></tr><tr><th><a href="obj/item.html#var/total_mass">total_mass</a></th><td>The amount of stamina it takes to swing an item in a normal melee attack do not lie to me and say it's for realism because it ain't. If null it will autocalculate from w_class.</td></tr><tr><th><a href="obj/item.html#var/undyeable">undyeable</a></th><td>Whether the item is unaffected by standard dying.</td></tr><tr><th><a href="obj/item.html#var/used_skills">used_skills</a></th><td>Skills vars</td></tr><tr><th><a href="obj/item.html#var/usesound">usesound</a></th><td>Played when the item is used, for example tools</td></tr><tr><th><a href="obj/item.html#var/w_class">w_class</a></th><td>Weight class for how much storage capacity it uses and how big it physically is meaning storages can't hold it if their maximum weight class isn't as high as it.</td></tr><tr><th><a href="obj/item.html#var/w_volume">w_volume</a></th><td>Volume override for the item, otherwise automatically calculated from w_class.</td></tr><tr><td colspan="2"><h2>Procs</h2></td></tr><tr><th><a href="obj/item.html#proc/ApplyAttackCooldown">ApplyAttackCooldown</a></th><td>Called after a successful attack to set a mob's clickdelay.</td></tr><tr><th><a href="obj/item.html#proc/CheckAttackCooldown">CheckAttackCooldown</a></th><td>Checks if a user's clickdelay is met for a standard attack, this is called before an attack happens.</td></tr><tr><th><a href="obj/item.html#proc/GetEstimatedAttackSpeed">GetEstimatedAttackSpeed</a></th><td>Get estimated time that a user has to not attack for to use us</td></tr><tr><th><a href="obj/item.html#proc/UseStaminaBufferStandard">UseStaminaBufferStandard</a></th><td>Uses the amount of stamina required for a standard hit</td></tr><tr><th><a href="obj/item.html#proc/active_block_calculate_final_damage">active_block_calculate_final_damage</a></th><td>Calculates FINAL ATTACK DAMAGE after mitigation</td></tr><tr><th><a href="obj/item.html#proc/active_block_do_stamina_damage">active_block_do_stamina_damage</a></th><td>Apply the stamina damage to our user, notice how damage argument is stamina_amount.</td></tr><tr><th><a href="obj/item.html#proc/active_block_stamina_cost">active_block_stamina_cost</a></th><td>Amount of stamina from damage blocked. Note that the damage argument is damage_blocked.</td></tr><tr><th><a href="obj/item.html#proc/active_parry_reflex_counter">active_parry_reflex_counter</a></th><td>Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack.</td></tr><tr><th><a href="obj/item.html#proc/add_item_context">add_item_context</a></th><td>Creates a &quot;Type-A&quot; contextual screentip interaction.
When a user hovers over something with this item in hand, this proc will be called in order
to provide context for contextual screentips.
You must call <code>register_item_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="obj/item.html#proc/afterattack">afterattack</a></th><td>Called after attacking something if the melee attack chain isn't interrupted before.
Also called when clicking on something with an item without being in melee range</td></tr><tr><th><a href="obj/item.html#proc/attack">attack</a></th><td>Called when someone uses us to attack a mob in melee combat.</td></tr><tr><th><a href="obj/item.html#proc/blockable_directions">blockable_directions</a></th><td>Gets the block direction bitflags of what we can block.</td></tr><tr><th><a href="obj/item.html#proc/can_active_block">can_active_block</a></th><td>Returns if we can actively block.</td></tr><tr><th><a href="obj/item.html#proc/can_active_parry">can_active_parry</a></th><td>Determines if we can actively parry.</td></tr><tr><th><a href="obj/item.html#proc/can_block_direction">can_block_direction</a></th><td>Checks if we can block from a specific direction from our direction.</td></tr><tr><th><a href="obj/item.html#proc/can_block_directions_multiple">can_block_directions_multiple</a></th><td>can_block_direction but for &quot;compound&quot; directions to check all of them and return the number of directions that were blocked.</td></tr><tr><th><a href="obj/item.html#proc/check_block">check_block</a></th><td>Returns block information using list/block_return. Used for check_block() on mobs.</td></tr><tr><th><a href="obj/item.html#proc/cyborg_unequip">cyborg_unequip</a></th><td>Parent proc - triggers when an item/module is unequipped from a cyborg.</td></tr><tr><th><a href="obj/item.html#proc/disableEmbedding">disableEmbedding</a></th><td>For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it.</td></tr><tr><th><a href="obj/item.html#proc/failedEmbed">failedEmbed</a></th><td>In case we want to do something special (like self delete) upon failing to embed in something, return true</td></tr><tr><th><a href="obj/item.html#proc/get_block_parry_data">get_block_parry_data</a></th><td>Gets this item's datum/block_parry_data</td></tr><tr><th><a href="obj/item.html#proc/get_w_volume">get_w_volume</a></th><td>Get an item's volume that it uses when being stored.</td></tr><tr><th><a href="obj/item.html#proc/getweight">getweight</a></th><td>How much stamina this takes to swing this is not for realism purposes hecc off.</td></tr><tr><th><a href="obj/item.html#proc/isEmbedHarmless">isEmbedHarmless</a></th><td>Does the current embedding var meet the criteria for being harmless? Namely, does it explicitly define the pain multiplier and jostle pain mult to be 0? If so, return true.</td></tr><tr><th><a href="obj/item.html#proc/melee_attack_chain">melee_attack_chain</a></th><td>This is the proc that handles the order of an item_attack.
The order of procs called is:
tool_act on the target. If it returns TRUE, the chain will be stopped.
pre_attack() on src. If this returns TRUE, the chain will be stopped.
attackby on the target. If it returns TRUE, the chain will be stopped.
and lastly
afterattack. The return value does not matter.</td></tr><tr><th><a href="obj/item.html#proc/melee_stagger_duration">melee_stagger_duration</a></th><td>How long this staggers for. 0 and negatives supported.</td></tr><tr><th><a href="obj/item.html#proc/on_active_parry">on_active_parry</a></th><td>Called when an attack is parried using this, whether or not the parry was successful.</td></tr><tr><th><a href="obj/item.html#proc/on_offer_taken">on_offer_taken</a></th><td>An interrupt for someone trying to accept an offered item, called mainly from <a href="mob/living/carbon.html#proc/take" title="/mob/living/carbon">/mob/living/carbon/proc/take</a>, in case you want to run your own take behavior instead.</td></tr><tr><th><a href="obj/item.html#proc/on_offered">on_offered</a></th><td>An interrupt for offering an item to other people, called mainly from <a href="mob/living/carbon.html#proc/give" title="/mob/living/carbon">/mob/living/carbon/proc/give</a>, in case you want to run your own offer behavior instead.</td></tr><tr><th><a href="obj/item.html#proc/on_outfit_equip">on_outfit_equip</a></th><td>Special stuff you want to do when an outfit equips this item.</td></tr><tr><th><a href="obj/item.html#proc/on_thrown">on_thrown</a></th><td>Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else.</td></tr><tr><th><a href="obj/item.html#proc/pick_painting_tool_color">pick_painting_tool_color</a></th><td>Common proc used by painting tools like spraycans and palettes that can access the entire 24 bits color space.</td></tr><tr><th><a href="obj/item.html#proc/ranged_attack_chain">ranged_attack_chain</a></th><td>Like melee_attack_chain but for ranged.</td></tr><tr><th><a href="obj/item.html#proc/register_item_context">register_item_context</a></th><td>Create a &quot;Type-A&quot; contextual screentip interaction, registering to <code>add_item_context()</code>.
This will run <code>add_item_context()</code> when the item hovers over another object for context.
<code>add_item_context()</code> will <em>not</em> be called unless this is run.
This is not necessary for Type-A interactions, as you can just apply the flag and register to the signal yourself.</td></tr><tr><th><a href="obj/item.html#proc/run_block">run_block</a></th><td>Runs block and returns flag for do_run_block to process.</td></tr><tr><th><a href="obj/item.html#proc/set_slowdown">set_slowdown</a></th><td>Sets our slowdown and updates equipment slowdown of any mob we're equipped on.</td></tr><tr><th><a href="obj/item.html#proc/tryEmbed">tryEmbed</a></th><td>tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targetting the target.</td></tr><tr><th><a href="obj/item.html#proc/updateEmbedding">updateEmbedding</a></th><td>For when you want to add/update the embedding on an item. Uses the vars in [/obj/item/embedding], and defaults to config values for values that aren't set. Will automatically detach previous embed elements on this item.</td></tr><tr><th><a href="obj/item.html#proc/update_action_buttons">update_action_buttons</a></th><td>Updates all action buttons associated with this item</td></tr></table><h2 id="var">Var Details</h2><h3 id="var/attack_speed"><aside class="declaration">var </aside>attack_speed <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L174"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 174"></a></h3><p>Amount of time to check for from a mob's last attack, checked before an attack happens. Lower = faster attacks</p><h3 id="var/attack_unwieldlyness"><aside class="declaration">var </aside>attack_unwieldlyness <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L176"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 176"></a></h3><p>Amount of time to hard-stagger (no clicking at all) the mob when attacking. Lower = better</p><h3 id="var/block_chance"><aside class="declaration">var </aside>block_chance <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_block.dm#L77"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_block.dm 77"></a></h3><p>The 0% to 100% chance for the default implementation of random block rolls.</p><h3 id="var/block_priority"><aside class="declaration">var </aside>block_priority <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_block.dm#L79"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_block.dm 79"></a></h3><p>Block priority, higher means we check this higher in the &quot;chain&quot;.</p><h3 id="var/clickdelay_from_next_action"><aside class="declaration">var </aside>clickdelay_from_next_action <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L180"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 180"></a></h3><p>This item checks clickdelay from a user's delayed next action variable rather than the last time they attacked.</p><h3 id="var/clickdelay_ignores_next_action"><aside class="declaration">var </aside>clickdelay_ignores_next_action <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L182"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 182"></a></h3><p>This item ignores next action delays.</p><h3 id="var/clickdelay_mod_bypass"><aside class="declaration">var </aside>clickdelay_mod_bypass <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L178"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 178"></a></h3><p>This item bypasses any click delay mods</p><h3 id="var/drop_sound"><aside class="declaration">var </aside>drop_sound <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L64"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 64"></a></h3><p>Sound uses when dropping the item, or when its thrown.</p><h3 id="var/dye_color"><aside class="declaration">var </aside>dye_color <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L153"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 153"></a></h3><p>Used as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm</p><h3 id="var/dying_key"><aside class="declaration">var </aside>dying_key <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L157"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 157"></a></h3><p>What dye registry should be looked at when dying this item; see washing_machine.dm</p><h3 id="var/equip_sound"><aside class="declaration">var </aside>equip_sound <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L60"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 60"></a></h3><p>Sound used when equipping the item into a valid slot</p><h3 id="var/force_string"><aside class="declaration">var </aside>force_string <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L147"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 147"></a></h3><p>string form of an item's force. Edit this var only to set a custom force string</p><h3 id="var/hitsound"><aside class="declaration">var </aside>hitsound <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L54"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 54"></a></h3><p>Sound played when you hit something with the item</p><h3 id="var/item_flags"><aside class="declaration">var </aside>item_flags <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L51"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 51"></a></h3><p>Item flags for the item</p><h3 id="var/item_state"><aside class="declaration">var </aside>item_state <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L21"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 21"></a></h3><p>icon state name for inhand overlays</p><h3 id="var/lefthand_file"><aside class="declaration">var </aside>lefthand_file <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L23"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 23"></a></h3><p>Icon file for left hand inhand overlays</p><h3 id="var/mob_overlay_icon"><aside class="declaration">var </aside>mob_overlay_icon <aside> /icon</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L29"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 29"></a></h3><p>Icon file for mob worn overlays.
no var for state because it should <em>always</em> be the same as icon_state</p><h3 id="var/mob_throw_hit_sound"><aside class="declaration">var </aside>mob_throw_hit_sound <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L58"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 58"></a></h3><p>Used when yate into a mob</p><h3 id="var/pickup_sound"><aside class="declaration">var </aside>pickup_sound <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L62"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 62"></a></h3><p>Sound uses when picking the item up (into your hands)</p><h3 id="var/righthand_file"><aside class="declaration">var </aside>righthand_file <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L25"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 25"></a></h3><p>Icon file for right inhand overlays</p><h3 id="var/sharpness"><aside class="declaration">var </aside>sharpness <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L125"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 125"></a></h3><p>All items with sharpness of SHARP_EDGED or higher will automatically get the butchering component.</p><h3 id="var/stagger_force"><aside class="declaration">var </aside>stagger_force <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L76"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 76"></a></h3><p>How long, in deciseconds, this staggers for, if null it will autocalculate from w_class and force. Unlike total mass this supports 0 and negatives.</p><h3 id="var/stealthy_audio"><aside class="declaration">var </aside>stealthy_audio <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L66"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 66"></a></h3><p>Whether or not we use stealthy audio levels for this item's attack sounds</p><h3 id="var/throw_verb"><aside class="declaration">var </aside>throw_verb <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L182"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 182"></a></h3><p>Used if we want to have a custom verb text for throwing. &quot;John Spaceman flicks the ciggerate&quot; for example.</p><h3 id="var/thrownby"><aside class="declaration">var </aside>thrownby <aside> /<a href="datum.html">datum</a>/weakref</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L116"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 116"></a></h3><p>A weakref to the mob who threw the item</p><h3 id="var/total_mass"><aside class="declaration">var </aside>total_mass <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L74"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 74"></a></h3><p>The amount of stamina it takes to swing an item in a normal melee attack do not lie to me and say it's for realism because it ain't. If null it will autocalculate from w_class.</p><h3 id="var/undyeable"><aside class="declaration">var </aside>undyeable <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L155"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 155"></a></h3><p>Whether the item is unaffected by standard dying.</p><h3 id="var/used_skills"><aside class="declaration">var </aside>used_skills <aside> /list/datum/skill</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L175"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 175"></a></h3><p>Skills vars</p><h3 id="var/usesound"><aside class="declaration">var </aside>usesound <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L56"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 56"></a></h3><p>Played when the item is used, for example tools</p><h3 id="var/w_class"><aside class="declaration">var </aside>w_class <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L69"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 69"></a></h3><p>Weight class for how much storage capacity it uses and how big it physically is meaning storages can't hold it if their maximum weight class isn't as high as it.</p><h3 id="var/w_volume"><aside class="declaration">var </aside>w_volume <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L71"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 71"></a></h3><p>Volume override for the item, otherwise automatically calculated from w_class.</p><h2 id="proc">Proc Details</h2><h3 id="proc/ApplyAttackCooldown"><aside class="declaration">proc </aside>ApplyAttackCooldown<aside>(/<a href="mob.html">mob</a>/user, /<a href="atom.html">atom</a>/target, attackchain_flags) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L193"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 193"></a></aside></h3><p>Called after a successful attack to set a mob's clickdelay.</p><h3 id="proc/CheckAttackCooldown"><aside class="declaration">proc </aside>CheckAttackCooldown<aside>(/<a href="mob.html">mob</a>/user, /<a href="atom.html">atom</a>/target) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L187"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 187"></a></aside></h3><p>Checks if a user's clickdelay is met for a standard attack, this is called before an attack happens.</p><h3 id="proc/GetEstimatedAttackSpeed"><aside class="declaration">proc </aside>GetEstimatedAttackSpeed<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L199"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 199"></a></aside></h3><p>Get estimated time that a user has to not attack for to use us</p><h3 id="proc/UseStaminaBufferStandard"><aside class="declaration">proc </aside>UseStaminaBufferStandard<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, multiplier, trait, warn) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/item_attack.dm#L252"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack.dm 252"></a></aside></h3><p>Uses the amount of stamina required for a standard hit</p><h3 id="proc/active_block_calculate_final_damage"><aside class="declaration">proc </aside>active_block_calculate_final_damage<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/owner, /<a href="atom.html">atom</a>/object, damage, attack_text, attack_type, armour_penetration, /<a href="mob.html">mob</a>/attacker, def_zone, final_block_chance, /list/block_return, passive) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_block.dm#L143"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_block.dm 143"></a></aside></h3><p>Calculates FINAL ATTACK DAMAGE after mitigation</p><h3 id="proc/active_block_do_stamina_damage"><aside class="declaration">proc </aside>active_block_do_stamina_damage<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/owner, /<a href="atom.html">atom</a>/object, stamina_amount, attack_text, attack_type, armour_penetration, /<a href="mob.html">mob</a>/attacker, def_zone, final_block_chance, /list/block_return) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_block.dm#L181"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_block.dm 181"></a></aside></h3><p>Apply the stamina damage to our user, notice how damage argument is stamina_amount.</p><h3 id="proc/active_block_stamina_cost"><aside class="declaration">proc </aside>active_block_stamina_cost<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/owner, /<a href="atom.html">atom</a>/object, damage_blocked, attack_text, attack_type, armour_penetration, /<a href="mob.html">mob</a>/attacker, def_zone, final_block_chance, /list/block_return, passive) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_block.dm#L168"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_block.dm 168"></a></aside></h3><p>Amount of stamina from damage blocked. Note that the damage argument is damage_blocked.</p><h3 id="proc/active_parry_reflex_counter"><aside class="declaration">proc </aside>active_parry_reflex_counter<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/owner, /<a href="atom.html">atom</a>/object, damage, attack_text, attack_type, armour_penetration, /<a href="mob.html">mob</a>/attacker, def_zone, /list/return_list, parry_efficiency, /list/effect_text) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_parry.dm#L216"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_parry.dm 216"></a></aside></h3><p>Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack.</p><h3 id="proc/add_item_context"><aside class="declaration">proc </aside>add_item_context<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/source, /list/context, /<a href="atom.html">atom</a>/target, /<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/item_context.dm#L21"><img src="git.png" width="16" height="16" title="code/datums/screentips/item_context.dm 21"></a></aside></h3><p>Creates a &quot;Type-A&quot; contextual screentip interaction.
When a user hovers over something with this item in hand, this proc will be called in order
to provide context for contextual screentips.
You must call <code>register_item_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/afterattack"><aside class="declaration">proc </aside>afterattack<aside>(/<a href="atom.html">atom</a>/target, /<a href="mob.html">mob</a>/user, proximity_flag, click_parameters) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/item_attack.dm#L210"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack.dm 210"></a></aside></h3><p>Called after attacking something if the melee attack chain isn't interrupted before.
Also called when clicking on something with an item without being in melee range</p>
<p>WARNING: This does not automatically check clickdelay if not in a melee attack! Be sure to account for this!</p>
<p>@params</p>
<ul>
<li>target - The thing we clicked</li>
<li>user - mob of person clicking</li>
<li>proximity_flag - are we in melee range/doing it in a melee attack</li>
<li>click_parameters - mouse control parameters, check BYOND ref.</li>
</ul><h3 id="proc/attack"><aside class="declaration">proc </aside>attack<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/M, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, attackchain_flags, damage_multiplier) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/item_attack.dm#L79"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack.dm 79"></a></aside></h3><p>Called when someone uses us to attack a mob in melee combat.</p>
<p>This proc respects CheckAttackCooldown() default clickdelay handling.</p>
<p>@params</p>
<ul>
<li>mob/living/M - target</li>
<li>mob/living/user - attacker</li>
<li>attackchain_Flags - see <a href="code/__DEFINES/_flags/return_values.html" title="code/__DEFINES/_flags/return_values.dm">code/__DEFINES/_flags/return_values.dm</a></li>
<li>damage_multiplier - what to multiply the damage by</li>
</ul><h3 id="proc/blockable_directions"><aside class="declaration">proc </aside>blockable_directions<aside>(passive) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_block.dm#L269"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_block.dm 269"></a></aside></h3><p>Gets the block direction bitflags of what we can block.</p><h3 id="proc/can_active_block"><aside class="declaration">proc </aside>can_active_block<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_block.dm#L137"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_block.dm 137"></a></aside></h3><p>Returns if we can actively block.</p><h3 id="proc/can_active_parry"><aside class="declaration">proc </aside>can_active_parry<aside>(/<a href="mob.html">mob</a>/user) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_parry.dm#L5"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_parry.dm 5"></a></aside></h3><p>Determines if we can actively parry.</p><h3 id="proc/can_block_direction"><aside class="declaration">proc </aside>can_block_direction<aside>(our_dir, their_dir, passive) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_block.dm#L280"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_block.dm 280"></a></aside></h3><p>Checks if we can block from a specific direction from our direction.</p>
<p>@params</p>
<ul>
<li>our_dir - our direction.</li>
<li>their_dir - their direction. Must be a single direction, or NONE for an attack from the same tile. This is incoming direction.</li>
</ul><h3 id="proc/can_block_directions_multiple"><aside class="declaration">proc </aside>can_block_directions_multiple<aside>(our_dir, /list/their_dirs) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_block.dm#L296"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_block.dm 296"></a></aside></h3><p>can_block_direction but for &quot;compound&quot; directions to check all of them and return the number of directions that were blocked.</p>
<p>@params</p>
<ul>
<li>our_dir - our direction.</li>
<li>their_dirs - list of their directions as we cannot use bitfields here.</li>
</ul><h3 id="proc/check_block"><aside class="declaration">proc </aside>check_block<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/owner, /<a href="atom.html">atom</a>/object, damage, attack_text, attack_type, armour_penetration, /<a href="mob.html">mob</a>/attacker, def_zone, final_block_chance, /list/block_return) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_block.dm#L93"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_block.dm 93"></a></aside></h3><p>Returns block information using list/block_return. Used for check_block() on mobs.</p><h3 id="proc/cyborg_unequip"><aside class="declaration">proc </aside>cyborg_unequip<aside>(/<a href="mob.html">mob</a>/user) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/silicon/robot/inventory.dm#L25"><img src="git.png" width="16" height="16" title="code/modules/mob/living/silicon/robot/inventory.dm 25"></a></aside></h3><p>Parent proc - triggers when an item/module is unequipped from a cyborg.</p><h3 id="proc/disableEmbedding"><aside class="declaration">proc </aside>disableEmbedding<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1219"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1219"></a></aside></h3><p>For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it.</p><h3 id="proc/failedEmbed"><aside class="declaration">proc </aside>failedEmbed<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1124"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1124"></a></aside></h3><p>In case we want to do something special (like self delete) upon failing to embed in something, return true</p><h3 id="proc/get_block_parry_data"><aside class="declaration">proc </aside>get_block_parry_data<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_parry.dm#L193"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_parry.dm 193"></a></aside></h3><p>Gets this item's datum/block_parry_data</p><h3 id="proc/get_w_volume"><aside class="declaration">proc </aside>get_w_volume<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1076"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1076"></a></aside></h3><p>Get an item's volume that it uses when being stored.</p><h3 id="proc/getweight"><aside class="declaration">proc </aside>getweight<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/user, multiplier, trait) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/item_attack.dm#L242"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack.dm 242"></a></aside></h3><p>How much stamina this takes to swing this is not for realism purposes hecc off.</p><h3 id="proc/isEmbedHarmless"><aside class="declaration">proc </aside>isEmbedHarmless<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1119"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1119"></a></aside></h3><p>Does the current embedding var meet the criteria for being harmless? Namely, does it explicitly define the pain multiplier and jostle pain mult to be 0? If so, return true.</p><h3 id="proc/melee_attack_chain"><aside class="declaration">proc </aside>melee_attack_chain<aside>(/<a href="mob.html">mob</a>/user, /<a href="atom.html">atom</a>/target, params, attackchain_flags, damage_multiplier) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/item_attack.dm#L10"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack.dm 10"></a></aside></h3><p>This is the proc that handles the order of an item_attack.
The order of procs called is:
tool_act on the target. If it returns TRUE, the chain will be stopped.
pre_attack() on src. If this returns TRUE, the chain will be stopped.
attackby on the target. If it returns TRUE, the chain will be stopped.
and lastly
afterattack. The return value does not matter.</p><h3 id="proc/melee_stagger_duration"><aside class="declaration">proc </aside>melee_stagger_duration<aside>(force_override) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/item_attack.dm#L258"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack.dm 258"></a></aside></h3><p>How long this staggers for. 0 and negatives supported.</p><h3 id="proc/on_active_parry"><aside class="declaration">proc </aside>on_active_parry<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/owner, /<a href="atom.html">atom</a>/object, damage, attack_text, attack_type, armour_penetration, /<a href="mob.html">mob</a>/attacker, def_zone, /list/block_return, parry_efficiency, parry_time, autoparry) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_active_parry.dm#L201"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_active_parry.dm 201"></a></aside></h3><p>Called when an attack is parried using this, whether or not the parry was successful.</p><h3 id="proc/on_offer_taken"><aside class="declaration">proc </aside>on_offer_taken<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/offerer, /<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/taker) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1280"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1280"></a></aside></h3><p>An interrupt for someone trying to accept an offered item, called mainly from <a href="mob/living/carbon.html#proc/take" title="/mob/living/carbon">/mob/living/carbon/proc/take</a>, in case you want to run your own take behavior instead.</p>
<p>Return TRUE if you want to interrupt the taking.</p>
<p>Arguments:
offerer - the person offering the item
taker - the person trying to accept the offer</p><h3 id="proc/on_offered"><aside class="declaration">proc </aside>on_offered<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/offerer) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1267"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1267"></a></aside></h3><p>An interrupt for offering an item to other people, called mainly from <a href="mob/living/carbon.html#proc/give" title="/mob/living/carbon">/mob/living/carbon/proc/give</a>, in case you want to run your own offer behavior instead.</p>
<p>Return TRUE if you want to interrupt the offer.</p>
<p>Arguments:
offerer - the person offering the item</p><h3 id="proc/on_outfit_equip"><aside class="declaration">proc </aside>on_outfit_equip<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>/outfit_wearer, visuals_only, item_slot) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1296"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1296"></a></aside></h3><p>Special stuff you want to do when an outfit equips this item.</p><h3 id="proc/on_thrown"><aside class="declaration">proc </aside>on_thrown<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/<a href="mob/living/carbon.html">carbon</a>/user, /<a href="atom.html">atom</a>/target) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1130"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1130"></a></aside></h3><p>Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else.</p><h3 id="proc/pick_painting_tool_color"><aside class="declaration">proc </aside>pick_painting_tool_color<aside>(/<a href="mob.html">mob</a>/user, default_color) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/atoms_movable.dm#L608"><img src="git.png" width="16" height="16" title="code/game/atoms_movable.dm 608"></a></aside></h3><p>Common proc used by painting tools like spraycans and palettes that can access the entire 24 bits color space.</p><h3 id="proc/ranged_attack_chain"><aside class="declaration">proc </aside>ranged_attack_chain<aside>(/<a href="mob.html">mob</a>/user, /<a href="atom.html">atom</a>/target, params) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/item_attack.dm#L28"><img src="git.png" width="16" height="16" title="code/_onclick/item_attack.dm 28"></a></aside></h3><p>Like melee_attack_chain but for ranged.</p><h3 id="proc/register_item_context"><aside class="declaration">proc </aside>register_item_context<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/datums/screentips/item_context.dm#L5"><img src="git.png" width="16" height="16" title="code/datums/screentips/item_context.dm 5"></a></aside></h3><p>Create a &quot;Type-A&quot; contextual screentip interaction, registering to <code>add_item_context()</code>.
This will run <code>add_item_context()</code> when the item hovers over another object for context.
<code>add_item_context()</code> will <em>not</em> be called unless this is run.
This is not necessary for Type-A interactions, as you can just apply the flag and register to the signal yourself.</p><h3 id="proc/run_block"><aside class="declaration">proc </aside>run_block<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/owner, /<a href="atom.html">atom</a>/object, damage, attack_text, attack_type, armour_penetration, /<a href="mob.html">mob</a>/attacker, def_zone, final_block_chance, /list/block_return) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living_block.dm#L82"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living_block.dm 82"></a></aside></h3><p>Runs block and returns flag for do_run_block to process.</p><h3 id="proc/set_slowdown"><aside class="declaration">proc </aside>set_slowdown<aside>(new_slowdown) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1091"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1091"></a></aside></h3><p>Sets our slowdown and updates equipment slowdown of any mob we're equipped on.</p><h3 id="proc/tryEmbed"><aside class="declaration">proc </aside>tryEmbed<aside>(/<a href="atom.html">atom</a>/target, forced, silent) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1175"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1175"></a></aside></h3><p>tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targetting the target.</p>
<p>Really, this is used mostly with projectiles with shrapnel payloads, from <a href="datum/element/embed.html#proc/checkEmbedProjectile" title="/datum/element/embed">/datum/element/embed/proc/checkEmbedProjectile</a>, and called on said shrapnel. Mostly acts as an intermediate between different embed elements.</p>
<p>Arguments:</p>
<ul>
<li>
<p>target- Either a body part, a carbon, or a closed turf. What are we hitting?</p>
</li>
<li>
<p>forced- Do we want this to go through 100%?</p>
</li>
</ul><h3 id="proc/updateEmbedding"><aside class="declaration">proc </aside>updateEmbedding<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1239"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1239"></a></aside></h3><p>For when you want to add/update the embedding on an item. Uses the vars in [/obj/item/embedding], and defaults to config values for values that aren't set. Will automatically detach previous embed elements on this item.</p><h3 id="proc/update_action_buttons"><aside class="declaration">proc </aside>update_action_buttons<aside>(status_only, force) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/game/objects/items.dm#L1291"><img src="git.png" width="16" height="16" title="code/game/objects/items.dm 1291"></a></aside></h3><p>Updates all action buttons associated with this item</p>
<p>Arguments:</p>
<ul>
<li>status_only - Update only current availability status of the buttons to show if they are ready or not to use</li>
<li>force - Force buttons update even if the given button icon state has not changed</li>
</ul></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>