Fix broken dmdoc crosslinks (#53896)

- Backtick-escape code samples which contain `[]` syntax.
- Fix all crosslinks to nonexistent symbols.
- Somewhat improve docs for qdel defines, research defines, dynamic mode, and others.
- Remove unused bloodcrawling defines.

Some crosslinks to defined but undocumented symbols remain. For BYOND builtins, a future dmdoc version may link those symbols to their entries in the DM reference. Other symbols could be documented by a future PR.

New "file" crosslinks as used in `research.dm` are slated for release in a future dmdoc version.
This commit is contained in:
Tad Hardesty
2020-09-22 23:47:44 -07:00
committed by GitHub
parent 68e21de1a7
commit f80836d00d
38 changed files with 135 additions and 104 deletions

View File

@@ -167,7 +167,7 @@
///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) ///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message)
#define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents" #define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents"
/// Prevents the atom from being exposed to reagents if returned on [COMPONENT_ATOM_EXPOSE_REAGENTS] /// Prevents the atom from being exposed to reagents if returned on [COMSIG_ATOM_EXPOSE_REAGENTS]
#define COMPONENT_NO_EXPOSE_REAGENTS (1<<0) #define COMPONENT_NO_EXPOSE_REAGENTS (1<<0)
///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume) ///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume)
#define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent" #define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent"
@@ -530,7 +530,7 @@
#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" #define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed"
///from [/obj/effect/mine/proc/triggermine]: ///from [/obj/effect/mine/proc/triggermine]:
#define COMSIG_MINE_TRIGGERED "minegoboom" #define COMSIG_MINE_TRIGGERED "minegoboom"
///from [/obj/structure/closet/supplypod/proc/endlaunch]: ///from [/obj/structure/closet/supplypod/proc/preOpen]:
#define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom" #define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom"
// /obj signals for economy // /obj signals for economy

View File

@@ -40,10 +40,6 @@
#define VENTCRAWLER_NUDE 1 #define VENTCRAWLER_NUDE 1
#define VENTCRAWLER_ALWAYS 2 #define VENTCRAWLER_ALWAYS 2
//Bloodcrawling defines
#define BLOODCRAWL 1 /// bloodcrawling, see: [/mob/living/var/bloodcrawl]
#define BLOODCRAWL_EAT 2 /// crawling+mob devour
//Mob bio-types flags //Mob bio-types flags
#define MOB_ORGANIC (1 << 0) #define MOB_ORGANIC (1 << 0)
#define MOB_MINERAL (1 << 1) #define MOB_MINERAL (1 << 1)

View File

@@ -1,20 +1,27 @@
//defines that give qdel hints. these can be given as a return in destory() or by calling //! Defines that give qdel hints.
//!
//! These can be given as a return in [/atom/proc/Destroy] or by calling [/proc/qdel].
/// `qdel` should queue the object for deletion.
#define QDEL_HINT_QUEUE 0
/// `qdel` should let the object live after calling [/atom/proc/Destroy].
#define QDEL_HINT_LETMELIVE 1
/// Functionally the same as the above. `qdel` should assume the object will gc on its own, and not check it.
#define QDEL_HINT_IWILLGC 2
/// Qdel should assume this object won't GC, and queue a hard delete using a hard reference.
#define QDEL_HINT_HARDDEL 3
// Qdel should assume this object won't gc, and hard delete it posthaste.
#define QDEL_HINT_HARDDEL_NOW 4
#define QDEL_HINT_QUEUE 0 //qdel should queue the object for deletion. //! Defines for the [gc_destroyed][/datum/var/gc_destroyed] var.
#define QDEL_HINT_LETMELIVE 1 //qdel should let the object live after calling destory.
#define QDEL_HINT_IWILLGC 2 //functionally the same as the above. qdel should assume the object will gc on its own, and not check it.
#define QDEL_HINT_HARDDEL 3 //qdel should assume this object won't gc, and queue a hard delete using a hard reference.
#define QDEL_HINT_HARDDEL_NOW 4 //qdel should assume this object won't gc, and hard del it post haste.
//defines for the gc_destroyed var
#ifdef LEGACY_REFERENCE_TRACKING #ifdef LEGACY_REFERENCE_TRACKING
/** If LEGACY_REFERENCE_TRACKING is enabled, qdel will call this object's find_references() verb. /** If LEGACY_REFERENCE_TRACKING is enabled, qdel will call this object's find_references() verb.
* *
* Functionally identical to QDEL_HINT_QUEUE if GC_FAILURE_HARD_LOOKUP is not enabled in _compiler_options.dm. * Functionally identical to [QDEL_HINT_QUEUE] if [GC_FAILURE_HARD_LOOKUP] is not enabled in _compiler_options.dm.
*/ */
#define QDEL_HINT_FINDREFERENCE 5 #define QDEL_HINT_FINDREFERENCE 5
/// Behavior as QDEL_HINT_FINDREFERENCE, but only if the GC fails and a hard delete is forced. /// Behavior as [QDEL_HINT_FINDREFERENCE], but only if the GC fails and a hard delete is forced.
#define QDEL_HINT_IFFAIL_FINDREFERENCE 6 #define QDEL_HINT_IFFAIL_FINDREFERENCE 6
#endif #endif

View File

@@ -1,4 +1,4 @@
///Defines for the R&D console, see: [/modules/research/rdconsole][rdconsole] //! Defines for the R&D console, see: [/obj/machinery/computer/rdconsole]
#define RDCONSOLE_UI_MODE_NORMAL 1 #define RDCONSOLE_UI_MODE_NORMAL 1
#define RDCONSOLE_UI_MODE_EXPERT 2 #define RDCONSOLE_UI_MODE_EXPERT 2
#define RDCONSOLE_UI_MODE_LIST 3 #define RDCONSOLE_UI_MODE_LIST 3
@@ -14,7 +14,7 @@
#define RDSCREEN_NOBREAK "<NO_HTML_BREAK>" #define RDSCREEN_NOBREAK "<NO_HTML_BREAK>"
///Sanity check defines for when these devices aren't connected or no disk is inserted //! Sanity check defines for when these devices aren't connected or no disk is inserted
#define RDSCREEN_TEXT_NO_PROTOLATHE "<div><h3>No Protolathe Linked!</h3></div><br>" #define RDSCREEN_TEXT_NO_PROTOLATHE "<div><h3>No Protolathe Linked!</h3></div><br>"
#define RDSCREEN_TEXT_NO_IMPRINTER "<div><h3>No Circuit Imprinter Linked!</h3></div><br>" #define RDSCREEN_TEXT_NO_IMPRINTER "<div><h3>No Circuit Imprinter Linked!</h3></div><br>"
#define RDSCREEN_TEXT_NO_DECONSTRUCT "<div><h3>No Destructive Analyzer Linked!</h3></div><br>" #define RDSCREEN_TEXT_NO_DECONSTRUCT "<div><h3>No Destructive Analyzer Linked!</h3></div><br>"
@@ -31,14 +31,14 @@
#define RDSCREEN_UI_SNODE_CHECK if(!selected_node) { return RDSCREEN_TEXT_NO_SNODE } #define RDSCREEN_UI_SNODE_CHECK if(!selected_node) { return RDSCREEN_TEXT_NO_SNODE }
#define RDSCREEN_UI_SDESIGN_CHECK if(!selected_design) { return RDSCREEN_TEXT_NO_SDESIGN } #define RDSCREEN_UI_SDESIGN_CHECK if(!selected_design) { return RDSCREEN_TEXT_NO_SDESIGN }
///Defines for the Protolathe screens, see: [/modules/research/machinery/protolathe][Protolathe] //! Defines for the Protolathe screens, see: [/obj/machinery/rnd/production/protolathe]
#define RESEARCH_FABRICATOR_SCREEN_MAIN 1 #define RESEARCH_FABRICATOR_SCREEN_MAIN 1
#define RESEARCH_FABRICATOR_SCREEN_CHEMICALS 2 #define RESEARCH_FABRICATOR_SCREEN_CHEMICALS 2
#define RESEARCH_FABRICATOR_SCREEN_MATERIALS 3 #define RESEARCH_FABRICATOR_SCREEN_MATERIALS 3
#define RESEARCH_FABRICATOR_SCREEN_SEARCH 4 #define RESEARCH_FABRICATOR_SCREEN_SEARCH 4
#define RESEARCH_FABRICATOR_SCREEN_CATEGORYVIEW 5 #define RESEARCH_FABRICATOR_SCREEN_CATEGORYVIEW 5
///Department flags for techwebs. Defines which department can print what from each protolathe so Cargo can't print guns, etc. //! Department flags for techwebs. Defines which department can print what from each protolathe so Cargo can't print guns, etc.
#define DEPARTMENTAL_FLAG_SECURITY (1<<0) #define DEPARTMENTAL_FLAG_SECURITY (1<<0)
#define DEPARTMENTAL_FLAG_MEDICAL (1<<1) #define DEPARTMENTAL_FLAG_MEDICAL (1<<1)
#define DEPARTMENTAL_FLAG_CARGO (1<<2) #define DEPARTMENTAL_FLAG_CARGO (1<<2)
@@ -46,26 +46,27 @@
#define DEPARTMENTAL_FLAG_ENGINEERING (1<<4) #define DEPARTMENTAL_FLAG_ENGINEERING (1<<4)
#define DEPARTMENTAL_FLAG_SERVICE (1<<5) #define DEPARTMENTAL_FLAG_SERVICE (1<<5)
#define DESIGN_ID_IGNORE "IGNORE_THIS_DESIGN" ///For instances where we don't want a design showing up due to it being for debug/sanity purposes /// For instances where we don't want a design showing up due to it being for debug/sanity purposes
#define DESIGN_ID_IGNORE "IGNORE_THIS_DESIGN"
#define RESEARCH_MATERIAL_DESTROY_ID "__destroy" #define RESEARCH_MATERIAL_DESTROY_ID "__destroy"
///Techweb names for new point types. Can be used to define specific point values for specific types of research (science, security, engineering, etc.) //! Techweb names for new point types. Can be used to define specific point values for specific types of research (science, security, engineering, etc.)
#define TECHWEB_POINT_TYPE_GENERIC "General Research" #define TECHWEB_POINT_TYPE_GENERIC "General Research"
#define TECHWEB_POINT_TYPE_NANITES "Nanite Research" #define TECHWEB_POINT_TYPE_NANITES "Nanite Research"
#define TECHWEB_POINT_TYPE_DEFAULT TECHWEB_POINT_TYPE_GENERIC #define TECHWEB_POINT_TYPE_DEFAULT TECHWEB_POINT_TYPE_GENERIC
///Associative names for techweb point values, see: [/modules/research/techweb/all_nodes][all_nodes] //! Associative names for techweb point values, see: [all_nodes][code/modules/research/techweb/all_nodes.dm]
#define TECHWEB_POINT_TYPE_LIST_ASSOCIATIVE_NAMES list(\ #define TECHWEB_POINT_TYPE_LIST_ASSOCIATIVE_NAMES list(\
TECHWEB_POINT_TYPE_GENERIC = "General Research",\ TECHWEB_POINT_TYPE_GENERIC = "General Research",\
TECHWEB_POINT_TYPE_NANITES = "Nanite Research"\ TECHWEB_POINT_TYPE_NANITES = "Nanite Research"\
) )
///R&D point value for a maxcap bomb. Can be adjusted if need be. Current Value Cap Radius: 100 /// R&D point value for a maxcap bomb. Can be adjusted if need be. Current Value Cap Radius: 100
#define TECHWEB_BOMB_POINTCAP 50000 #define TECHWEB_BOMB_POINTCAP 50000
///Research point values for slime extracts, see: [/modules/research/xenobiology/xenobio_camera][xenobio_camera] //! Research point values for slime extracts, see: [xenobio_camera][code/modules/research/xenobiology/xenobio_camera.dm]
#define SLIME_RESEARCH_TIER_0 100 #define SLIME_RESEARCH_TIER_0 100
#define SLIME_RESEARCH_TIER_1 500 #define SLIME_RESEARCH_TIER_1 500
#define SLIME_RESEARCH_TIER_2 1000 #define SLIME_RESEARCH_TIER_2 1000
@@ -74,17 +75,17 @@
#define SLIME_RESEARCH_TIER_5 2500 #define SLIME_RESEARCH_TIER_5 2500
#define SLIME_RESEARCH_TIER_RAINBOW 5000 #define SLIME_RESEARCH_TIER_RAINBOW 5000
///Amount of points gained per second by a single R&D server, see: [/controllers/subsystem/research.dm][research] //! Amount of points gained per second by a single R&D server, see: [research][code/controllers/subsystem/research.dm]
#define TECHWEB_SINGLE_SERVER_INCOME 52.3 #define TECHWEB_SINGLE_SERVER_INCOME 52.3
///Swab cell line types //! Swab cell line types
#define CELL_LINE_TABLE_SLUDGE "cell_line_sludge_table" #define CELL_LINE_TABLE_SLUDGE "cell_line_sludge_table"
#define CELL_LINE_TABLE_MOLD "cell_line_mold_table" #define CELL_LINE_TABLE_MOLD "cell_line_mold_table"
#define CELL_LINE_TABLE_MOIST "cell_line_moist_table" #define CELL_LINE_TABLE_MOIST "cell_line_moist_table"
#define CELL_LINE_TABLE_BLOB "cell_line_blob_table" #define CELL_LINE_TABLE_BLOB "cell_line_blob_table"
#define CELL_LINE_TABLE_CLOWN "cell_line_clown_table" #define CELL_LINE_TABLE_CLOWN "cell_line_clown_table"
///Biopsy cell line types //! Biopsy cell line types
#define CELL_LINE_TABLE_BEAR "cell_line_bear_table" #define CELL_LINE_TABLE_BEAR "cell_line_bear_table"
#define CELL_LINE_TABLE_BLOBBERNAUT "cell_line_blobbernaut_table" #define CELL_LINE_TABLE_BLOBBERNAUT "cell_line_blobbernaut_table"
#define CELL_LINE_TABLE_BLOBSPORE "cell_line_blobspore_table" #define CELL_LINE_TABLE_BLOBSPORE "cell_line_blobspore_table"
@@ -105,9 +106,10 @@
#define CELL_LINE_TABLE_VATBEAST "cell_line_vatbeast_table" #define CELL_LINE_TABLE_VATBEAST "cell_line_vatbeast_table"
#define CELL_LINE_TABLE_NETHER "cell_line_nether_table" #define CELL_LINE_TABLE_NETHER "cell_line_nether_table"
///All cell virus types //! All cell virus types
#define CELL_VIRUS_TABLE_GENERIC "cell_virus_generic_table" #define CELL_VIRUS_TABLE_GENERIC "cell_virus_generic_table"
#define CELL_VIRUS_TABLE_GENERIC_MOB "cell_virus_generic_mob_table" #define CELL_VIRUS_TABLE_GENERIC_MOB "cell_virus_generic_mob_table"
///General defines for vatgrowing //! General defines for vatgrowing
#define VATGROWING_DANGER_MINIMUM 30 //Past how much growth can the other cell_lines affect a finished cell line negatively /// Past how much growth can the other cell_lines affect a finished cell line negatively
#define VATGROWING_DANGER_MINIMUM 30

View File

@@ -208,7 +208,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Used for limbs. /// Used for limbs.
#define TRAIT_DISABLED_BY_WOUND "disabled-by-wound" #define TRAIT_DISABLED_BY_WOUND "disabled-by-wound"
///Used for managing KEEP_TOGETHER in [appearance_flags] ///Used for managing KEEP_TOGETHER in [/atom/var/appearance_flags]
#define TRAIT_KEEP_TOGETHER "keep-together" #define TRAIT_KEEP_TOGETHER "keep-together"
// item traits // item traits

View File

@@ -313,7 +313,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sort_instance, new())
* @param hint the index at which to begin the search, 0 <= hint < n. * @param hint the index at which to begin the search, 0 <= hint < n.
* The closer hint is to the result, the faster this method will run. * The closer hint is to the result, the faster this method will run.
* @param c the comparator used to order the range, and to search * @param c the comparator used to order the range, and to search
* @return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k] * @return the int k, 0 <= k <= n such that `a[b + k - 1] <= key < a[b + k]`
*/ */
/datum/sort_instance/proc/gallopRight(key, base, len, hint) /datum/sort_instance/proc/gallopRight(key, base, len, hint)
//ASSERT(len > 0 && hint >= 0 && hint < len) //ASSERT(len > 0 && hint >= 0 && hint < len)

View File

@@ -71,9 +71,10 @@
/** /**
* Perform a whitespace cleanup on the text, similar to what HTML renderers do * Perform a whitespace cleanup on the text, similar to what HTML renderers do
* *
* This is useful if you want to better predict how text is going to look like when displaying it to a user * This is useful if you want to better predict how text is going to look like when displaying it to a user.
* HTML renderers collapse multiple whitespaces into one, trims prepending and appending spaces, among other things. This proc attempts to do the same thing. * HTML renderers collapse multiple whitespaces into one, trims prepending and appending spaces, among other things. This proc attempts to do the same thing.
* HTML5 defines whitespace pretty much exactly like regex defines the \s group, [ \t\r\n\f]. * HTML5 defines whitespace pretty much exactly like regex defines the `\s` group, `[ \t\r\n\f]`.
*
* Arguments: * Arguments:
* * t - The text to "render" * * t - The text to "render"
*/ */

View File

@@ -65,7 +65,7 @@
return I.attack(src, user) return I.attack(src, user)
/** /**
* Called from [/mob/living/attackby] * Called from [/mob/living/proc/attackby]
* *
* Arguments: * Arguments:
* * mob/living/M - The mob being hit by this item * * mob/living/M - The mob being hit by this item

View File

@@ -256,8 +256,9 @@ SUBSYSTEM_DEF(garbage)
name = "[mytype]" name = "[mytype]"
// Should be treated as a replacement for the 'del' keyword. /// Should be treated as a replacement for the 'del' keyword.
// Datums passed to this will be given a chance to clean up references to allow the GC to collect them. ///
/// Datums passed to this will be given a chance to clean up references to allow the GC to collect them.
/proc/qdel(datum/D, force=FALSE, ...) /proc/qdel(datum/D, force=FALSE, ...)
if(!istype(D)) if(!istype(D))
del(D) del(D)

View File

@@ -9,14 +9,14 @@ SUBSYSTEM_DEF(sounds)
var/static/random_channels_min = 50 var/static/random_channels_min = 50
// Hey uh these two needs to be initialized fast because the whole "things get deleted before init" thing. // Hey uh these two needs to be initialized fast because the whole "things get deleted before init" thing.
/// Assoc list, "[channel]" = either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel /// Assoc list, `"[channel]" =` either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel
var/list/using_channels var/list/using_channels
/// Assoc list datum = list(channel1, channel2, ...) for what channels something reserved. /// Assoc list datum = list(channel1, channel2, ...) for what channels something reserved.
var/list/using_channels_by_datum var/list/using_channels_by_datum
// Special datastructure for fast channel management // Special datastructure for fast channel management
/// List of all channels as numbers /// List of all channels as numbers
var/list/channel_list var/list/channel_list
/// Associative list of all reserved channels associated to their position. "[channel_number]" = index as number /// Associative list of all reserved channels associated to their position. `"[channel_number]" =` index as number
var/list/reserved_channels var/list/reserved_channels
/// lower iteration position - Incremented and looped to get "random" sound channels for normal sounds. The channel at this index is returned when asking for a random channel. /// lower iteration position - Incremented and looped to get "random" sound channels for normal sounds. The channel at this index is returned when asking for a random channel.
var/channel_random_low var/channel_random_low

View File

@@ -194,8 +194,8 @@
* Must return an [initialization hint][INITIALIZE_HINT_NORMAL] or a runtime will occur. * Must return an [initialization hint][INITIALIZE_HINT_NORMAL] or a runtime will occur.
* *
* Note: the following functions don't call the base for optimization and must copypasta handling: * Note: the following functions don't call the base for optimization and must copypasta handling:
* * [/turf/Initialize] * * [/turf/proc/Initialize]
* * [/turf/open/space/Initialize] * * [/turf/open/space/proc/Initialize]
*/ */
/atom/proc/Initialize(mapload, ...) /atom/proc/Initialize(mapload, ...)
SHOULD_NOT_SLEEP(TRUE) SHOULD_NOT_SLEEP(TRUE)
@@ -883,7 +883,7 @@
return null return null
/** /**
* This proc is called when an atom in our contents has it's [Destroy][/atom/Destroy] called * This proc is called when an atom in our contents has it's [Destroy][/atom/proc/Destroy] called
* *
* Default behaviour is to simply send [COMSIG_ATOM_CONTENTS_DEL] * Default behaviour is to simply send [COMSIG_ATOM_CONTENTS_DEL]
*/ */

View File

@@ -598,7 +598,7 @@
* *
* Return 0 to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting * Return 0 to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting
* *
* Mobs should return 1 if they should be able to move of their own volition, see [/client/Move] * Mobs should return 1 if they should be able to move of their own volition, see [/client/proc/Move]
* *
* Arguments: * Arguments:
* * movement_dir - 0 when stopping or any dir when trying to move * * movement_dir - 0 when stopping or any dir when trying to move

View File

@@ -1,46 +1,53 @@
# DYNAMIC # Dynamic Mode
## ROUNDSTART ## Roundstart
Dynamic rolls threat based on a special sauce formula: Dynamic rolls threat based on a special sauce formula:
"dynamic_curve_width \* tan((3.1416 \* (rand() - 0.5) \* 57.2957795)) + dynamic_curve_centre"
> [dynamic_curve_width][/datum/controller/global_vars/var/dynamic_curve_width] \* tan((3.1416 \* (rand() - 0.5) \* 57.2957795)) + [dynamic_curve_centre][/datum/controller/global_vars/var/dynamic_curve_centre]
Latejoin and midround injection cooldowns are set using exponential distribution between Latejoin and midround injection cooldowns are set using exponential distribution between
5 minutes and 25 for latejoin
15 minutes and 35 for midround
this value is then added to world.time and assigned to the injection cooldown variables.
rigged_roundstart() is called instead if there are forced rules (an admin set the mode) - 5 minutes and 25 for latejoin
- 15 minutes and 35 for midround
can_start() -> pre_setup() -> roundstart() OR rigged_roundstart() -> picking_roundstart_rule(drafted_rules) -> post_setup() this value is then added to `world.time` and assigned to the injection cooldown variables.
## PROCESS [rigged_roundstart][/datum/game_mode/dynamic/proc/rigged_roundstart] is called instead if there are forced rules (an admin set the mode)
Calls rule_process on every rule which is in the current_rules list. 1. [can_start][/datum/game_mode/proc/can_start]\()
2. [pre_setup][/datum/game_mode/proc/pre_setup]\()
3. [roundstart][/datum/game_mode/dynamic/proc/roundstart]\() OR [rigged_roundstart][/datum/game_mode/dynamic/proc/rigged_roundstart]\()
4. [picking_roundstart_rule][/datum/game_mode/dynamic/proc/picking_roundstart_rule]\(drafted_rules)
5. [post_setup][/datum/game_mode/proc/post_setup]\()
## Process
Calls [rule_process][/datum/dynamic_ruleset/proc/rule_process] on every rule which is in the current_rules list.
Every sixty seconds, update_playercounts() Every sixty seconds, update_playercounts()
Midround injection time is checked against world.time to see if an injection should happen. Midround injection time is checked against world.time to see if an injection should happen.
If midround injection time is lower than world.time, it updates playercounts again, then tries to inject and generates a new cooldown regardless of whether a rule is picked. If midround injection time is lower than world.time, it updates playercounts again, then tries to inject and generates a new cooldown regardless of whether a rule is picked.
## LATEJOIN ## Latejoin
make_antag_chance(newPlayer) -> [For each latespawn rule...] make_antag_chance(newPlayer) -> (For each latespawn rule...)
-> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE) -> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE)
**If true, add to drafted rules **If true, add to drafted rules
**NOTE that acceptable uses threat_level not threat! **NOTE that acceptable uses threat_level not threat!
**NOTE Latejoin timer is ONLY reset if at least one rule was drafted. **NOTE Latejoin timer is ONLY reset if at least one rule was drafted.
**NOTE the new_player.dm AttemptLateSpawn() calls OnPostSetup for all roles (unless assigned role is MODE) **NOTE the new_player.dm AttemptLateSpawn() calls OnPostSetup for all roles (unless assigned role is MODE)
[After collecting all draftble rules...] (After collecting all draftble rules...)
-> picking_latejoin_ruleset(drafted_rules) -> spend threat -> ruleset.execute() -> picking_latejoin_ruleset(drafted_rules) -> spend threat -> ruleset.execute()
## MIDROUND ## Midround
process() -> [For each midround rule...] process() -> (For each midround rule...
-> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE) -> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE)
[After collecting all draftble rules...] (After collecting all draftble rules...)
-> picking_midround_ruleset(drafted_rules) -> spend threat -> ruleset.execute() -> picking_midround_ruleset(drafted_rules) -> spend threat -> ruleset.execute()
## FORCED ## Forced
For latejoin, it simply sets forced_latejoin_rule For latejoin, it simply sets forced_latejoin_rule
make_antag_chance(newPlayer) -> trim_candidates() -> ready(forced=TRUE) **NOTE no acceptable() call make_antag_chance(newPlayer) -> trim_candidates() -> ready(forced=TRUE) **NOTE no acceptable() call
@@ -50,7 +57,7 @@ picking_specific_rule(ruletype,forced) -> forced OR acceptable(living_players, t
**NOTE specific rule can be called by RS traitor->MR autotraitor w/ forced=FALSE **NOTE specific rule can be called by RS traitor->MR autotraitor w/ forced=FALSE
**NOTE that due to short circuiting acceptable() need not be called if forced. **NOTE that due to short circuiting acceptable() need not be called if forced.
## RULESET ## Ruleset
acceptable(population,threat) just checks if enough threat_level for population indice. acceptable(population,threat) just checks if enough threat_level for population indice.
**NOTE that we currently only send threat_level as the second arg, not threat. **NOTE that we currently only send threat_level as the second arg, not threat.

View File

@@ -46,7 +46,7 @@
var/list/team_keys = list() var/list/team_keys = list()
/// List of outfit datums/types indexed by team id, can be empty /// List of outfit datums/types indexed by team id, can be empty
var/list/outfits = list() var/list/outfits = list()
/// Default team outfit if outfits[team] is empty /// Default team outfit if `outfits[team]` is empty
var/default_outfit = /datum/outfit/job/assistant var/default_outfit = /datum/outfit/job/assistant
/// Is the arena template loading in /// Is the arena template loading in

View File

@@ -1,5 +1,4 @@
/*
/**
Here is the big, bad function that broadcasts a message given the appropriate Here is the big, bad function that broadcasts a message given the appropriate
parameters. parameters.

View File

@@ -127,7 +127,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
///How long it takes to resist out of the item (cuffs and such) ///How long it takes to resist out of the item (cuffs and such)
var/breakouttime = 0 var/breakouttime = 0
///Used in [atom/proc/attackby] to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" ///Used in [atom/proc/attackby] to say how something was attacked `"[x] has been [z.attack_verb] by [y] with [z]"`
var/list/attack_verb_continuous var/list/attack_verb_continuous
var/list/attack_verb_simple var/list/attack_verb_simple
///list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item ///list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item
@@ -980,7 +980,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
SEND_SIGNAL(src, COMSIG_ITEM_DISABLE_EMBED) SEND_SIGNAL(src, COMSIG_ITEM_DISABLE_EMBED)
return return
///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. ///For when you want to add/update the embedding on an item. Uses the vars in [/obj/item/var/embedding], and defaults to config values for values that aren't set. Will automatically detach previous embed elements on this item.
/obj/item/proc/updateEmbedding() /obj/item/proc/updateEmbedding()
if(!LAZYLEN(embedding)) if(!LAZYLEN(embedding))
return return

View File

@@ -1,5 +1,5 @@
/// Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]" /// Process asset cache client topic calls for `"asset_cache_confirm_arrival=[INT]"`
/client/proc/asset_cache_confirm_arrival(job_id) /client/proc/asset_cache_confirm_arrival(job_id)
var/asset_cache_job = round(text2num(job_id)) var/asset_cache_job = round(text2num(job_id))
//because we skip the limiter, we have to make sure this is a valid arrival and not somebody tricking us into letting them append to a list without limit. //because we skip the limiter, we have to make sure this is a valid arrival and not somebody tricking us into letting them append to a list without limit.
@@ -10,7 +10,7 @@
return asset_cache_job || TRUE return asset_cache_job || TRUE
/// Process asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING] /// Process asset cache client topic calls for `"asset_cache_preload_data=[HTML+JSON_STRING]"`
/client/proc/asset_cache_preload_data(data) /client/proc/asset_cache_preload_data(data)
var/json = data var/json = data
var/list/preloaded_assets = json_decode(json) var/list/preloaded_assets = json_decode(json)

View File

@@ -154,7 +154,7 @@
var/list/panel_tabs = list() var/list/panel_tabs = list()
/// list of tabs containing spells and abilities /// list of tabs containing spells and abilities
var/list/spell_tabs = list() var/list/spell_tabs = list()
///A lazy list of atoms we've examined in the last EXAMINE_MORE_TIME (default 1.5) seconds, so that we will call [atom/proc/examine_more()] instead of [atom/proc/examine()] on them when examining ///A lazy list of atoms we've examined in the last EXAMINE_MORE_TIME (default 1.5) seconds, so that we will call [/atom/proc/examine_more] instead of [/atom/proc/examine] on them when examining
var/list/recent_examines var/list/recent_examines
var/list/parallax_layers var/list/parallax_layers

View File

@@ -132,7 +132,7 @@
to_chat(user, "<span class='notice'>You fix the damage on [src].</span>") to_chat(user, "<span class='notice'>You fix the damage on [src].</span>")
/** /**
* take_damage_zone() is used for dealing damage to specific bodyparts on a worn piece of clothing, meant to be called from [/obj/item/bodypart/proc/check_woundings_mods()] * take_damage_zone() is used for dealing damage to specific bodyparts on a worn piece of clothing, meant to be called from [/obj/item/bodypart/proc/check_woundings_mods]
* *
* This proc only matters when a bodypart that this clothing is covering is harmed by a direct attack (being on fire or in space need not apply), and only if this clothing covers * This proc only matters when a bodypart that this clothing is covering is harmed by a direct attack (being on fire or in space need not apply), and only if this clothing covers
* more than one bodypart to begin with. No point in tracking damage by zone for a hat, and I'm not cruel enough to let you fully break them in a few shots. * more than one bodypart to begin with. No point in tracking damage by zone for a hat, and I'm not cruel enough to let you fully break them in a few shots.
@@ -158,7 +158,7 @@
disable_zone(def_zone, damage_type) disable_zone(def_zone, damage_type)
/** /**
* disable_zone() is used to disable a given bodypart's protection on our clothing item, mainly from [/obj/item/clothing/proc/take_damage_zone()] * disable_zone() is used to disable a given bodypart's protection on our clothing item, mainly from [/obj/item/clothing/proc/take_damage_zone]
* *
* This proc disables all protection on the specified bodypart for this piece of clothing: it'll be as if it doesn't cover it at all anymore (because it won't!) * This proc disables all protection on the specified bodypart for this piece of clothing: it'll be as if it doesn't cover it at all anymore (because it won't!)
* If every possible bodypart has been disabled on the clothing, we put it out of commission entirely and mark it as shredded, whereby it will have to be repaired in * If every possible bodypart has been disabled on the clothing, we put it out of commission entirely and mark it as shredded, whereby it will have to be repaired in

View File

@@ -15,7 +15,7 @@
light_on = FALSE light_on = FALSE
dog_fashion = /datum/dog_fashion/head dog_fashion = /datum/dog_fashion/head
///Determines used sprites: hardhat[on]_[hat_type] and hardhat[on]_[hat_type]2 (lying down sprite) ///Determines used sprites: `hardhat[on]_[hat_type]` and `hardhat[on]_[hat_type]2` (lying down sprite)
var/hat_type = "yellow" var/hat_type = "yellow"
///Whether the headlamp is on or off. ///Whether the headlamp is on or off.
var/on = FALSE var/on = FALSE

View File

@@ -18,11 +18,11 @@
var/species = "" var/species = ""
///the file that stores the sprites of the growing plant from this seed. ///the file that stores the sprites of the growing plant from this seed.
var/growing_icon = 'icons/obj/hydroponics/growing.dmi' var/growing_icon = 'icons/obj/hydroponics/growing.dmi'
/// Used to override grow icon (default is "[species]-grow"). You can use one grow icon for multiple closely related plants with it. /// Used to override grow icon (default is `"[species]-grow"`). You can use one grow icon for multiple closely related plants with it.
var/icon_grow var/icon_grow
/// Used to override dead icon (default is "[species]-dead"). You can use one dead icon for multiple closely related plants with it. /// Used to override dead icon (default is `"[species]-dead"`). You can use one dead icon for multiple closely related plants with it.
var/icon_dead var/icon_dead
/// Used to override harvest icon (default is "[species]-harvest"). If null, plant will use [icon_grow][growthstages]. /// Used to override harvest icon (default is `"[species]-harvest"`). If null, plant will use `[icon_grow][growthstages]`.
var/icon_harvest var/icon_harvest
/// How long before the plant begins to take damage from age. /// How long before the plant begins to take damage from age.
var/lifespan = 25 var/lifespan = 25

View File

@@ -9,7 +9,7 @@
var/list/spectators = list() var/list/spectators = list()
///all roles in the game, dead or alive. check their game status if you only want living or dead. ///all roles in the game, dead or alive. check their game status if you only want living or dead.
var/list/all_roles = list() var/list/all_roles = list()
///exists to speed up role retrieval, it's a dict. player_role_lookup[player ckey] will give you the role they play ///exists to speed up role retrieval, it's a dict. `player_role_lookup[player ckey]` will give you the role they play
var/list/player_role_lookup = list() var/list/player_role_lookup = list()
///what part of the game you're playing in. day phases, night phases, judgement phases, etc. ///what part of the game you're playing in. day phases, night phases, judgement phases, etc.
var/phase = MAFIA_PHASE_SETUP var/phase = MAFIA_PHASE_SETUP

View File

@@ -38,9 +38,9 @@
/// - `x_offset`, `y_offset`, `z_offset`: Positions representign where to load the map (Optional). /// - `x_offset`, `y_offset`, `z_offset`: Positions representign where to load the map (Optional).
/// - `cropMap`: When true, the map will be cropped to fit the existing world dimensions (Optional). /// - `cropMap`: When true, the map will be cropped to fit the existing world dimensions (Optional).
/// - `measureOnly`: When true, no changes will be made to the world (Optional). /// - `measureOnly`: When true, no changes will be made to the world (Optional).
/// - `no_changeturf`: When true, [turf/AfterChange] won't be called on loaded turfs /// - `no_changeturf`: When true, [/turf/proc/AfterChange] won't be called on loaded turfs
/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the map) to crop to (Optional). /// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the map) to crop to (Optional).
/// - `placeOnTop`: Whether to use [turf/PlaceOnTop] rather than [turf/ChangeTurf] (Optional). /// - `placeOnTop`: Whether to use [/turf/proc/PlaceOnTop] rather than [/turf/proc/ChangeTurf] (Optional).
/proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num) /proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num)
var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly) var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly)
if(parsed.bounds && !measureOnly) if(parsed.bounds && !measureOnly)

View File

@@ -1,4 +1,4 @@
/// An error report generated by [parsed_map/check_for_errors]. /// An error report generated by [/datum/parsed_map/proc/check_for_errors].
/datum/map_report /datum/map_report
var/original_path var/original_path
var/list/bad_paths = list() var/list/bad_paths = list()

View File

@@ -56,7 +56,13 @@ GLOBAL_LIST_EMPTY(roundstart_races)
var/species_language_holder = /datum/language_holder var/species_language_holder = /datum/language_holder
/// Default mutant bodyparts for this species, like horns. Don't forget to set one for every mutant bodypart you allow this species to have. /// Default mutant bodyparts for this species, like horns. Don't forget to set one for every mutant bodypart you allow this species to have.
var/list/default_features = list() var/list/default_features = list()
/// Visible CURRENT bodyparts that are unique to a species. DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK SHIT UP! Changes to this list for non-species specific bodyparts (ie cat ears and tails) should be assigned at organ level if possible. Layer hiding is handled by [datum/species/handle_mutant_bodyparts()] below. /// Visible CURRENT bodyparts that are unique to a species.
///
/// DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK
/// SHIT UP! Changes to this list for non-species specific bodyparts (ie
/// cat ears and tails) should be assigned at organ level if possible.
/// Layer hiding is handled by [/datum/species/proc/handle_mutant_bodyparts]
/// below.
var/list/mutant_bodyparts = list() var/list/mutant_bodyparts = list()
///Internal organs that are unique to this race, like a tail. ///Internal organs that are unique to this race, like a tail.
var/list/mutant_organs = list() var/list/mutant_organs = list()
@@ -197,7 +203,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
* Checks if a species is eligible to be picked at roundstart. * Checks if a species is eligible to be picked at roundstart.
* *
* Checks the config to see if this species is allowed to be picked in the character setup menu. * Checks the config to see if this species is allowed to be picked in the character setup menu.
* Used by [proc/generate_selectable_species]. * Used by [/proc/generate_selectable_species].
*/ */
/datum/species/proc/check_roundstart_eligible() /datum/species/proc/check_roundstart_eligible()
if(id in (CONFIG_GET(keyed_list/roundstart_races))) if(id in (CONFIG_GET(keyed_list/roundstart_races)))
@@ -240,11 +246,12 @@ GLOBAL_LIST_EMPTY(roundstart_races)
/datum/species/proc/copy_properties_from(datum/species/old_species) /datum/species/proc/copy_properties_from(datum/species/old_species)
return return
/** regenerate_organs /**
* Corrects organs in a carbon, removing ones it doesn't need and adding ones it does * Corrects organs in a carbon, removing ones it doesn't need and adding ones it does.
* *
* takes all organ slots, removes organs a species should not have, adds organs a species should have. * Takes all organ slots, removes organs a species should not have, adds organs a species should have.
* can use replace_current to refresh all organs, creating an entirely new set. * can use replace_current to refresh all organs, creating an entirely new set.
*
* Arguments: * Arguments:
* * C - carbon, the owner of the species datum AKA whoever we're regenerating organs in * * C - carbon, the owner of the species datum AKA whoever we're regenerating organs in
* * old_species - datum, used when regenerate organs is called in a switching species to remove old mutant organs. * * old_species - datum, used when regenerate organs is called in a switching species to remove old mutant organs.

View File

@@ -709,7 +709,7 @@
return return
..() ..()
///Returns how much blood we're losing from being dragged a tile, from [mob/living/proc/makeTrail] ///Returns how much blood we're losing from being dragged a tile, from [/mob/living/proc/makeTrail]
/mob/living/proc/bleedDragAmount() /mob/living/proc/bleedDragAmount()
var/brute_ratio = round(getBruteLoss() / maxHealth, 0.1) var/brute_ratio = round(getBruteLoss() / maxHealth, 0.1)
return max(1, brute_ratio * 2) return max(1, brute_ratio * 2)

View File

@@ -50,7 +50,7 @@
var/list/surgeries = list() ///a list of surgery datums. generally empty, they're added when the player wants them. var/list/surgeries = list() ///a list of surgery datums. generally empty, they're added when the player wants them.
var/now_pushing = null ///used by [living/Bump()][/mob/living/Bump] and [living/PushAM()][/mob/living/PushAM] to prevent potential infinite loop. var/now_pushing = null //! Used by [living/Bump()][/mob/living/proc/Bump] and [living/PushAM()][/mob/living/proc/PushAM] to prevent potential infinite loop.
var/cameraFollow = null var/cameraFollow = null

View File

@@ -16,7 +16,7 @@
var/flip_on_death = FALSE var/flip_on_death = FALSE
var/list/speak = list() var/list/speak = list()
///Emotes while speaking IE: Ian [emote], [text] -- Ian barks, "WOOF!". Spoken text is generated from the speak variable. ///Emotes while speaking IE: `Ian [emote], [text]` -- `Ian barks, "WOOF!".` Spoken text is generated from the speak variable.
var/list/speak_emote = list() var/list/speak_emote = list()
var/speak_chance = 0 var/speak_chance = 0
///Hearable emotes ///Hearable emotes

View File

@@ -172,7 +172,7 @@
* *
* Use for atoms performing visible actions * Use for atoms performing visible actions
* *
* message is output to anyone who can see, e.g. "The [src] does something!" * message is output to anyone who can see, e.g. `"The [src] does something!"`
* *
* Vars: * Vars:
* * self_message (optional) is what the src mob sees e.g. "You do something!" * * self_message (optional) is what the src mob sees e.g. "You do something!"

View File

@@ -130,7 +130,7 @@
* *
* NB: contains nulls! * NB: contains nulls!
* *
* held_items[active_hand_index] is the actively held item, but please use * `held_items[active_hand_index]` is the actively held item, but please use
* [get_active_held_item()][/mob/proc/get_active_held_item] instead, because OOP * [get_active_held_item()][/mob/proc/get_active_held_item] instead, because OOP
*/ */
var/list/held_items = list() var/list/held_items = list()
@@ -207,7 +207,10 @@
var/memory_throttle_time = 0 var/memory_throttle_time = 0
var/list/alerts = list() /// contains [/obj/screen/alert only] // On /mob so clientless mobs will throw alerts properly /// Contains [/obj/screen/alert] only.
///
/// On [/mob] so clientless mobs will throw alerts properly.
var/list/alerts = list()
var/list/screens = list() var/list/screens = list()
var/list/client_colours = list() var/list/client_colours = list()
var/hud_type = /datum/hud var/hud_type = /datum/hud

View File

@@ -15,9 +15,9 @@
var/id var/id
var/obscured = FALSE var/obscured = FALSE
///[0-1] measure of obscuration -- multipllier against power generation ///`[0-1]` measure of obscuration -- multipllier against power generation
var/sunfrac = 0 var/sunfrac = 0
///[0-360) degrees, which direction are we facing? ///`[0-360)` degrees, which direction are we facing?
var/azimuth_current = 0 var/azimuth_current = 0
var/azimuth_target = 0 //same but what way we're going to face next time we turn var/azimuth_target = 0 //same but what way we're going to face next time we turn
var/obj/machinery/power/solar_control/control var/obj/machinery/power/solar_control/control

View File

@@ -206,8 +206,8 @@
* * no_react - passed through to [/datum/reagents/proc/add_reagent] * * no_react - passed through to [/datum/reagents/proc/add_reagent]
* * mob/transfered_by - used for logging * * mob/transfered_by - used for logging
* * remove_blacklisted - skips transferring of reagents with can_synth = FALSE * * remove_blacklisted - skips transferring of reagents with can_synth = FALSE
* * methods - passed through to [/datum/reagents/proc/react_single] and [/datum/reagent/proc/on_transfer] * * methods - passed through to [/datum/reagents/proc/expose_single] and [/datum/reagent/proc/on_transfer]
* * show_message - passed through to [/datum/reagents/proc/react_single] * * show_message - passed through to [/datum/reagents/proc/expose_single]
* * round_robin - if round_robin=TRUE, so transfer 5 from 15 water, 15 sugar and 15 plasma becomes 10, 15, 15 instead of 13.3333, 13.3333 13.3333. Good if you hate floating point errors * * round_robin - if round_robin=TRUE, so transfer 5 from 15 water, 15 sugar and 15 plasma becomes 10, 15, 15 instead of 13.3333, 13.3333 13.3333. Good if you hate floating point errors
* * ignore_stomach - when using methods INGEST will not use the stomach as the target * * ignore_stomach - when using methods INGEST will not use the stomach as the target
*/ */

View File

@@ -3,8 +3,8 @@
* *
* The current precursor to anomaly cores, these are manufactured into 'finished' anomaly cores for use in research, items, and more. * The current precursor to anomaly cores, these are manufactured into 'finished' anomaly cores for use in research, items, and more.
* *
* The current amounts created is stored in SSresearch.created_anomaly_types[ANOMALY_CORE_TYPE_DEFINE] = amount * The current amounts created is stored in `SSresearch.created_anomaly_types[ANOMALY_CORE_TYPE_DEFINE] = amount`.
* The hard limits are in code/__DEFINES/anomalies.dm * The hard limits are in `code/__DEFINES/anomalies.dm`.
*/ */
/obj/item/raw_anomaly_core /obj/item/raw_anomaly_core
name = "raw anomaly core" name = "raw anomaly core"

View File

@@ -96,8 +96,9 @@
if(istype(target,src)) if(istype(target,src))
copy_extra_settings_to(target) copy_extra_settings_to(target)
///Register extra settings by overriding this. /// Register extra settings by overriding this.
///extra_settings[name] = new typepath() for each extra setting ///
/// `extra_settings[name] = new typepath()` for each extra setting.
/datum/nanite_program/proc/register_extra_settings() /datum/nanite_program/proc/register_extra_settings()
return return

View File

@@ -16,7 +16,8 @@
var/effectmod ///Which type of crossbred var/effectmod ///Which type of crossbred
var/list/activate_reagents = list() ///Reagents required for activation var/list/activate_reagents = list() ///Reagents required for activation
var/recurring = FALSE var/recurring = FALSE
var/research ///Research point value for slime cores. These are defines stored in [/__DEFINES/research] - the actual values are updated there. /// Research point value for slime cores. These are defines stored in [code/__DEFINES/research.dm] - the actual values are updated there.
var/research
/obj/item/slime_extract/examine(mob/user) /obj/item/slime_extract/examine(mob/user)
. = ..() . = ..()

View File

@@ -92,7 +92,7 @@
var/generic_bleedstacks var/generic_bleedstacks
/// If we have a gauze wrapping currently applied (not including splints) /// If we have a gauze wrapping currently applied (not including splints)
var/obj/item/stack/current_gauze var/obj/item/stack/current_gauze
/// If something is currently grasping this bodypart and trying to staunch bleeding (see [/obj/item/grasp_self]) /// If something is currently grasping this bodypart and trying to staunch bleeding (see [/obj/item/self_grasp])
var/obj/item/self_grasp/grasped_by var/obj/item/self_grasp/grasped_by
@@ -364,7 +364,7 @@
/** /**
* check_wounding() is where we handle rolling for, selecting, and applying a wound if we meet the criteria * check_wounding() is where we handle rolling for, selecting, and applying a wound if we meet the criteria
* *
* We generate a "score" for how woundable the attack was based on the damage and other factors discussed in [/obj/item/bodypart/proc/check_wounding_mods], then go down the list from most severe to least severe wounds in that category. * We generate a "score" for how woundable the attack was based on the damage and other factors discussed in [/obj/item/bodypart/proc/check_woundings_mods], then go down the list from most severe to least severe wounds in that category.
* We can promote a wound from a lesser to a higher severity this way, but we give up if we have a wound of the given type and fail to roll a higher severity, so no sidegrades/downgrades * We can promote a wound from a lesser to a higher severity this way, but we give up if we have a wound of the given type and fail to roll a higher severity, so no sidegrades/downgrades
* *
* Arguments: * Arguments:

View File

@@ -47,9 +47,11 @@
* Sends the message to the recipient (target). * Sends the message to the recipient (target).
* *
* Recommended way to write to_chat calls: * Recommended way to write to_chat calls:
* ```
* to_chat(client, * to_chat(client,
* type = MESSAGE_TYPE_INFO, * type = MESSAGE_TYPE_INFO,
* html = "You have found <strong>[object]</strong>") * html = "You have found <strong>[object]</strong>")
* ```
*/ */
/proc/to_chat(target, html, /proc/to_chat(target, html,
type = null, type = null,

View File

@@ -168,9 +168,13 @@ own integrity back to max. Shield is automatically dropped if we run out of powe
return ..() return ..()
/** /**
*Handles activating and deactivating the shield. This proc is called by a signal sent from the mech's action button * Handles activating and deactivating the shield.
*and relayed by the mech itself. The "forced" variabe, signal_args[1], will skip the to-pilot text and is meant for when *
*the shield is disabled by means other than the action button (like running out of power) * This proc is called by a signal sent from the mech's action button and
* relayed by the mech itself. The "forced" variable, `signal_args[1]`, will
* skip the to-pilot text and is meant for when the shield is disabled by
* means other than the action button (like running out of power).
*
* Arguments: * Arguments:
* * source: the shield * * source: the shield
* * owner: mob that activated the shield * * owner: mob that activated the shield