mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 17:52:36 +00:00
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:
@@ -167,7 +167,7 @@
|
||||
|
||||
///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message)
|
||||
#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)
|
||||
///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume)
|
||||
#define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent"
|
||||
@@ -530,7 +530,7 @@
|
||||
#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed"
|
||||
///from [/obj/effect/mine/proc/triggermine]:
|
||||
#define COMSIG_MINE_TRIGGERED "minegoboom"
|
||||
///from [/obj/structure/closet/supplypod/proc/endlaunch]:
|
||||
///from [/obj/structure/closet/supplypod/proc/preOpen]:
|
||||
#define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom"
|
||||
|
||||
// /obj signals for economy
|
||||
|
||||
@@ -40,10 +40,6 @@
|
||||
#define VENTCRAWLER_NUDE 1
|
||||
#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
|
||||
#define MOB_ORGANIC (1 << 0)
|
||||
#define MOB_MINERAL (1 << 1)
|
||||
|
||||
@@ -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.
|
||||
#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
|
||||
//! Defines for the [gc_destroyed][/datum/var/gc_destroyed] var.
|
||||
|
||||
#ifdef LEGACY_REFERENCE_TRACKING
|
||||
/** 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
|
||||
/// 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
|
||||
#endif
|
||||
|
||||
|
||||
@@ -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_EXPERT 2
|
||||
#define RDCONSOLE_UI_MODE_LIST 3
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
#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_IMPRINTER "<div><h3>No Circuit Imprinter 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_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_CHEMICALS 2
|
||||
#define RESEARCH_FABRICATOR_SCREEN_MATERIALS 3
|
||||
#define RESEARCH_FABRICATOR_SCREEN_SEARCH 4
|
||||
#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_MEDICAL (1<<1)
|
||||
#define DEPARTMENTAL_FLAG_CARGO (1<<2)
|
||||
@@ -46,26 +46,27 @@
|
||||
#define DEPARTMENTAL_FLAG_ENGINEERING (1<<4)
|
||||
#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"
|
||||
|
||||
///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_NANITES "Nanite Research"
|
||||
|
||||
#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(\
|
||||
TECHWEB_POINT_TYPE_GENERIC = "General 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
|
||||
|
||||
///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_1 500
|
||||
#define SLIME_RESEARCH_TIER_2 1000
|
||||
@@ -74,17 +75,17 @@
|
||||
#define SLIME_RESEARCH_TIER_5 2500
|
||||
#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
|
||||
|
||||
///Swab cell line types
|
||||
//! Swab cell line types
|
||||
#define CELL_LINE_TABLE_SLUDGE "cell_line_sludge_table"
|
||||
#define CELL_LINE_TABLE_MOLD "cell_line_mold_table"
|
||||
#define CELL_LINE_TABLE_MOIST "cell_line_moist_table"
|
||||
#define CELL_LINE_TABLE_BLOB "cell_line_blob_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_BLOBBERNAUT "cell_line_blobbernaut_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_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_MOB "cell_virus_generic_mob_table"
|
||||
|
||||
///General defines for vatgrowing
|
||||
#define VATGROWING_DANGER_MINIMUM 30 //Past how much growth can the other cell_lines affect a finished cell line negatively
|
||||
//! General defines for vatgrowing
|
||||
/// Past how much growth can the other cell_lines affect a finished cell line negatively
|
||||
#define VATGROWING_DANGER_MINIMUM 30
|
||||
|
||||
@@ -208,7 +208,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
|
||||
/// Used for limbs.
|
||||
#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"
|
||||
|
||||
// item traits
|
||||
|
||||
@@ -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.
|
||||
* 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
|
||||
* @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)
|
||||
//ASSERT(len > 0 && hint >= 0 && hint < len)
|
||||
|
||||
@@ -71,9 +71,10 @@
|
||||
/**
|
||||
* 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.
|
||||
* 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:
|
||||
* * t - The text to "render"
|
||||
*/
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
return I.attack(src, user)
|
||||
|
||||
/**
|
||||
* Called from [/mob/living/attackby]
|
||||
* Called from [/mob/living/proc/attackby]
|
||||
*
|
||||
* Arguments:
|
||||
* * mob/living/M - The mob being hit by this item
|
||||
|
||||
@@ -256,8 +256,9 @@ SUBSYSTEM_DEF(garbage)
|
||||
name = "[mytype]"
|
||||
|
||||
|
||||
// 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.
|
||||
/// 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.
|
||||
/proc/qdel(datum/D, force=FALSE, ...)
|
||||
if(!istype(D))
|
||||
del(D)
|
||||
|
||||
@@ -9,14 +9,14 @@ SUBSYSTEM_DEF(sounds)
|
||||
var/static/random_channels_min = 50
|
||||
|
||||
// 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
|
||||
/// Assoc list datum = list(channel1, channel2, ...) for what channels something reserved.
|
||||
var/list/using_channels_by_datum
|
||||
// Special datastructure for fast channel management
|
||||
/// List of all channels as numbers
|
||||
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
|
||||
/// 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
|
||||
|
||||
@@ -194,8 +194,8 @@
|
||||
* Must return an [initialization hint][INITIALIZE_HINT_NORMAL] or a runtime will occur.
|
||||
*
|
||||
* Note: the following functions don't call the base for optimization and must copypasta handling:
|
||||
* * [/turf/Initialize]
|
||||
* * [/turf/open/space/Initialize]
|
||||
* * [/turf/proc/Initialize]
|
||||
* * [/turf/open/space/proc/Initialize]
|
||||
*/
|
||||
/atom/proc/Initialize(mapload, ...)
|
||||
SHOULD_NOT_SLEEP(TRUE)
|
||||
@@ -883,7 +883,7 @@
|
||||
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]
|
||||
*/
|
||||
|
||||
@@ -598,7 +598,7 @@
|
||||
*
|
||||
* 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:
|
||||
* * movement_dir - 0 when stopping or any dir when trying to move
|
||||
|
||||
@@ -1,46 +1,53 @@
|
||||
# DYNAMIC
|
||||
# Dynamic Mode
|
||||
|
||||
## ROUNDSTART
|
||||
## Roundstart
|
||||
|
||||
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
|
||||
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()
|
||||
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.
|
||||
|
||||
## 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)
|
||||
**If true, add to drafted rules
|
||||
**NOTE that acceptable uses threat_level not threat!
|
||||
**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)
|
||||
|
||||
[After collecting all draftble rules...]
|
||||
(After collecting all draftble rules...)
|
||||
-> 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)
|
||||
[After collecting all draftble rules...]
|
||||
(After collecting all draftble rules...)
|
||||
-> picking_midround_ruleset(drafted_rules) -> spend threat -> ruleset.execute()
|
||||
|
||||
## FORCED
|
||||
## Forced
|
||||
|
||||
For latejoin, it simply sets forced_latejoin_rule
|
||||
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 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.
|
||||
**NOTE that we currently only send threat_level as the second arg, not threat.
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
var/list/team_keys = list()
|
||||
/// List of outfit datums/types indexed by team id, can be empty
|
||||
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
|
||||
|
||||
/// Is the arena template loading in
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
/**
|
||||
/*
|
||||
|
||||
Here is the big, bad function that broadcasts a message given the appropriate
|
||||
parameters.
|
||||
|
||||
@@ -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)
|
||||
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_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
|
||||
@@ -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)
|
||||
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()
|
||||
if(!LAZYLEN(embedding))
|
||||
return
|
||||
|
||||
@@ -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)
|
||||
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.
|
||||
@@ -10,7 +10,7 @@
|
||||
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)
|
||||
var/json = data
|
||||
var/list/preloaded_assets = json_decode(json)
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
var/list/panel_tabs = list()
|
||||
/// list of tabs containing spells and abilities
|
||||
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/parallax_layers
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
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
|
||||
* 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() 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!)
|
||||
* 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
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
light_on = FALSE
|
||||
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"
|
||||
///Whether the headlamp is on or off.
|
||||
var/on = FALSE
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
var/species = ""
|
||||
///the file that stores the sprites of the growing plant from this seed.
|
||||
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
|
||||
/// 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
|
||||
/// 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
|
||||
/// How long before the plant begins to take damage from age.
|
||||
var/lifespan = 25
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/list/spectators = list()
|
||||
///all roles in the game, dead or alive. check their game status if you only want living or dead.
|
||||
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()
|
||||
///what part of the game you're playing in. day phases, night phases, judgement phases, etc.
|
||||
var/phase = MAFIA_PHASE_SETUP
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
/// - `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).
|
||||
/// - `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).
|
||||
/// - `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)
|
||||
var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly)
|
||||
if(parsed.bounds && !measureOnly)
|
||||
|
||||
@@ -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
|
||||
var/original_path
|
||||
var/list/bad_paths = list()
|
||||
|
||||
@@ -56,7 +56,13 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
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.
|
||||
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()
|
||||
///Internal organs that are unique to this race, like a tail.
|
||||
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 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()
|
||||
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)
|
||||
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.
|
||||
*
|
||||
* Arguments:
|
||||
* * 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.
|
||||
|
||||
@@ -709,7 +709,7 @@
|
||||
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()
|
||||
var/brute_ratio = round(getBruteLoss() / maxHealth, 0.1)
|
||||
return max(1, brute_ratio * 2)
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/flip_on_death = FALSE
|
||||
|
||||
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/speak_chance = 0
|
||||
///Hearable emotes
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
*
|
||||
* 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:
|
||||
* * self_message (optional) is what the src mob sees e.g. "You do something!"
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
var/list/held_items = list()
|
||||
@@ -207,7 +207,10 @@
|
||||
|
||||
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/client_colours = list()
|
||||
var/hud_type = /datum/hud
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
|
||||
var/id
|
||||
var/obscured = FALSE
|
||||
///[0-1] measure of obscuration -- multipllier against power generation
|
||||
///`[0-1]` measure of obscuration -- multipllier against power generation
|
||||
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_target = 0 //same but what way we're going to face next time we turn
|
||||
var/obj/machinery/power/solar_control/control
|
||||
|
||||
@@ -206,8 +206,8 @@
|
||||
* * no_react - passed through to [/datum/reagents/proc/add_reagent]
|
||||
* * mob/transfered_by - used for logging
|
||||
* * 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]
|
||||
* * show_message - passed through to [/datum/reagents/proc/react_single]
|
||||
* * methods - passed through to [/datum/reagents/proc/expose_single] and [/datum/reagent/proc/on_transfer]
|
||||
* * 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
|
||||
* * ignore_stomach - when using methods INGEST will not use the stomach as the target
|
||||
*/
|
||||
|
||||
@@ -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 amounts created is stored in SSresearch.created_anomaly_types[ANOMALY_CORE_TYPE_DEFINE] = amount
|
||||
* The hard limits are in code/__DEFINES/anomalies.dm
|
||||
* 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`.
|
||||
*/
|
||||
/obj/item/raw_anomaly_core
|
||||
name = "raw anomaly core"
|
||||
|
||||
@@ -96,8 +96,9 @@
|
||||
if(istype(target,src))
|
||||
copy_extra_settings_to(target)
|
||||
|
||||
///Register extra settings by overriding this.
|
||||
///extra_settings[name] = new typepath() for each extra setting
|
||||
/// Register extra settings by overriding this.
|
||||
///
|
||||
/// `extra_settings[name] = new typepath()` for each extra setting.
|
||||
/datum/nanite_program/proc/register_extra_settings()
|
||||
return
|
||||
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
var/effectmod ///Which type of crossbred
|
||||
var/list/activate_reagents = list() ///Reagents required for activation
|
||||
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)
|
||||
. = ..()
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
var/generic_bleedstacks
|
||||
/// If we have a gauze wrapping currently applied (not including splints)
|
||||
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
|
||||
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* Arguments:
|
||||
|
||||
@@ -47,9 +47,11 @@
|
||||
* Sends the message to the recipient (target).
|
||||
*
|
||||
* Recommended way to write to_chat calls:
|
||||
* ```
|
||||
* to_chat(client,
|
||||
* type = MESSAGE_TYPE_INFO,
|
||||
* html = "You have found <strong>[object]</strong>")
|
||||
* ```
|
||||
*/
|
||||
/proc/to_chat(target, html,
|
||||
type = null,
|
||||
|
||||
@@ -168,9 +168,13 @@ own integrity back to max. Shield is automatically dropped if we run out of powe
|
||||
return ..()
|
||||
|
||||
/**
|
||||
*Handles activating and deactivating the shield. This proc is called by a signal sent from the mech's action button
|
||||
*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)
|
||||
* Handles activating and deactivating the shield.
|
||||
*
|
||||
* 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:
|
||||
* * source: the shield
|
||||
* * owner: mob that activated the shield
|
||||
|
||||
Reference in New Issue
Block a user