diff --git a/.gitattributes b/.gitattributes index 115b676a959..8a6fa13e041 100644 --- a/.gitattributes +++ b/.gitattributes @@ -39,5 +39,8 @@ *.dmm text eol=lf merge=dmm *.dmi binary merge=dmi +##Force tab indents on dm files +*.dm whitespace=indent-with-non-tab + ## Force changelog merging to use union html/changelog.html text eol=lf merge=union diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index d4ec45b99b4..b1a955e411e 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -2,12 +2,12 @@ #define MC_SPLIT_TICK_INIT(phase_count) var/original_tick_limit = Master.current_ticklimit; var/split_tick_phases = ##phase_count #define MC_SPLIT_TICK \ - if(split_tick_phases > 1){\ - Master.current_ticklimit = ((original_tick_limit - TICK_USAGE) / split_tick_phases) + TICK_USAGE;\ - --split_tick_phases;\ - } else {\ - Master.current_ticklimit = original_tick_limit;\ - } + if(split_tick_phases > 1){\ + Master.current_ticklimit = ((original_tick_limit - TICK_USAGE) / split_tick_phases) + TICK_USAGE;\ + --split_tick_phases;\ + } else {\ + Master.current_ticklimit = original_tick_limit;\ + } // Used to smooth out costs to try and avoid oscillation. #define MC_AVERAGE_FAST(average, current) (0.7 * (average) + 0.3 * (current)) @@ -64,14 +64,14 @@ #define SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/##X);\ /datum/controller/subsystem/##X/New(){\ - NEW_SS_GLOBAL(SS##X);\ - PreInit();\ + NEW_SS_GLOBAL(SS##X);\ + PreInit();\ }\ /datum/controller/subsystem/##X #define PROCESSING_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/processing/##X);\ /datum/controller/subsystem/processing/##X/New(){\ - NEW_SS_GLOBAL(SS##X);\ - PreInit();\ + NEW_SS_GLOBAL(SS##X);\ + PreInit();\ }\ /datum/controller/subsystem/processing/##X diff --git a/code/__DEFINES/_globals.dm b/code/__DEFINES/_globals.dm index f85f3f973df..e68cc764f8a 100644 --- a/code/__DEFINES/_globals.dm +++ b/code/__DEFINES/_globals.dm @@ -3,8 +3,8 @@ /// Creates a global initializer with a given InitValue expression, do not use #define GLOBAL_MANAGED(X, InitValue)\ /datum/controller/global_vars/proc/InitGlobal##X(){\ - ##X = ##InitValue;\ - gvars_datum_init_order += #X;\ + ##X = ##InitValue;\ + gvars_datum_init_order += #X;\ } /// Creates an empty global initializer, do not use #define GLOBAL_UNMANAGED(X) /datum/controller/global_vars/proc/InitGlobal##X() { return; } @@ -13,8 +13,8 @@ #ifndef TESTING #define GLOBAL_PROTECT(X)\ /datum/controller/global_vars/InitGlobal##X(){\ - ..();\ - gvars_datum_protected_varlist[#X] = TRUE;\ + ..();\ + gvars_datum_protected_varlist[#X] = TRUE;\ } #else #define GLOBAL_PROTECT(X) diff --git a/code/__DEFINES/_protect.dm b/code/__DEFINES/_protect.dm index 8e162a8b336..dbe25203c0b 100644 --- a/code/__DEFINES/_protect.dm +++ b/code/__DEFINES/_protect.dm @@ -1,11 +1,11 @@ ///Protects a datum from being VV'd #define GENERAL_PROTECT_DATUM(Path)\ ##Path/can_vv_get(var_name){\ - return FALSE;\ + return FALSE;\ }\ ##Path/vv_edit_var(var_name, var_value){\ - return FALSE;\ + return FALSE;\ }\ ##Path/CanProcCall(procname){\ - return FALSE;\ + return FALSE;\ } diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 532aa8952d3..21de860a388 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -2,7 +2,7 @@ #define ACCESS_SECURITY 1 /// Brig cells+timers, permabrig, gulag+gulag shuttle, prisoner management console #define ACCESS_BRIG 2 - /// Armory, gulag teleporter, execution chamber +/// Armory, gulag teleporter, execution chamber #define ACCESS_ARMORY 3 ///Detective's office, forensics lockers, security+medical records #define ACCESS_FORENSICS_LOCKERS 4 diff --git a/code/__DEFINES/cargo.dm b/code/__DEFINES/cargo.dm index ad579284441..b8f94ec3041 100644 --- a/code/__DEFINES/cargo.dm +++ b/code/__DEFINES/cargo.dm @@ -40,18 +40,18 @@ GLOBAL_LIST_EMPTY(supplypod_loading_bays) GLOBAL_LIST_INIT(podstyles, list(\ - list(POD_SHAPE_NORML, "pod", TRUE, "default", "yellow", RUBBLE_NORMAL, "supply pod", "A Nanotrasen supply drop pod."),\ - list(POD_SHAPE_NORML, "advpod", TRUE, "bluespace", "blue", RUBBLE_NORMAL, "bluespace supply pod" , "A Nanotrasen Bluespace supply pod. Teleports back to CentCom after delivery."),\ - list(POD_SHAPE_NORML, "advpod", TRUE, "centcom", "blue", RUBBLE_NORMAL, "\improper CentCom supply pod", "A Nanotrasen supply pod, this one has been marked with Central Command's designations. Teleports back to CentCom after delivery."),\ - list(POD_SHAPE_NORML, "darkpod", TRUE, "syndicate", "red", RUBBLE_NORMAL, "blood-red supply pod", "An intimidating supply pod, covered in the blood-red markings of the Syndicate. It's probably best to stand back from this."),\ - list(POD_SHAPE_NORML, "darkpod", TRUE, "deathsquad", "blue", RUBBLE_NORMAL, "\improper Deathsquad drop pod", "A Nanotrasen drop pod. This one has been marked the markings of Nanotrasen's elite strike team."),\ - list(POD_SHAPE_NORML, "pod", TRUE, "cultist", "red", RUBBLE_NORMAL, "bloody supply pod", "A Nanotrasen supply pod covered in scratch-marks, blood, and strange runes."),\ - list(POD_SHAPE_OTHER, "missile", FALSE, FALSE, FALSE, RUBBLE_THIN, "cruise missile", "A big ass missile that didn't seem to fully detonate. It was likely launched from some far-off deep space missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ - list(POD_SHAPE_OTHER, "smissile", FALSE, FALSE, FALSE, RUBBLE_THIN, "\improper Syndicate cruise missile", "A big ass, blood-red missile that didn't seem to fully detonate. It was likely launched from some deep space Syndicate missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ - list(POD_SHAPE_OTHER, "box", TRUE, FALSE, FALSE, RUBBLE_WIDE, "\improper Aussec supply crate", "An incredibly sturdy supply crate, designed to withstand orbital re-entry. Has 'Aussec Armory - 2532' engraved on the side."),\ - list(POD_SHAPE_NORML, "clownpod", TRUE, "clown", "green", RUBBLE_NORMAL, "\improper HONK pod", "A brightly-colored supply pod. It likely originated from the Clown Federation."),\ - list(POD_SHAPE_OTHER, "orange", TRUE, FALSE, FALSE, RUBBLE_NONE, "\improper Orange", "An angry orange."),\ - list(POD_SHAPE_OTHER, FALSE, FALSE, FALSE, FALSE, RUBBLE_NONE, "\improper S.T.E.A.L.T.H. pod MKVII", "A supply pod that, under normal circumstances, is completely invisible to conventional methods of detection. How are you even seeing this?"),\ - list(POD_SHAPE_OTHER, "gondola", FALSE, FALSE, FALSE, RUBBLE_NONE, "gondola", "The silent walker. This one seems to be part of a delivery agency."),\ - list(POD_SHAPE_OTHER, FALSE, FALSE, FALSE, FALSE, RUBBLE_NONE, FALSE, FALSE, "rl_click", "give_po")\ + list(POD_SHAPE_NORML, "pod", TRUE, "default", "yellow", RUBBLE_NORMAL, "supply pod", "A Nanotrasen supply drop pod."),\ + list(POD_SHAPE_NORML, "advpod", TRUE, "bluespace", "blue", RUBBLE_NORMAL, "bluespace supply pod" , "A Nanotrasen Bluespace supply pod. Teleports back to CentCom after delivery."),\ + list(POD_SHAPE_NORML, "advpod", TRUE, "centcom", "blue", RUBBLE_NORMAL, "\improper CentCom supply pod", "A Nanotrasen supply pod, this one has been marked with Central Command's designations. Teleports back to CentCom after delivery."),\ + list(POD_SHAPE_NORML, "darkpod", TRUE, "syndicate", "red", RUBBLE_NORMAL, "blood-red supply pod", "An intimidating supply pod, covered in the blood-red markings of the Syndicate. It's probably best to stand back from this."),\ + list(POD_SHAPE_NORML, "darkpod", TRUE, "deathsquad", "blue", RUBBLE_NORMAL, "\improper Deathsquad drop pod", "A Nanotrasen drop pod. This one has been marked the markings of Nanotrasen's elite strike team."),\ + list(POD_SHAPE_NORML, "pod", TRUE, "cultist", "red", RUBBLE_NORMAL, "bloody supply pod", "A Nanotrasen supply pod covered in scratch-marks, blood, and strange runes."),\ + list(POD_SHAPE_OTHER, "missile", FALSE, FALSE, FALSE, RUBBLE_THIN, "cruise missile", "A big ass missile that didn't seem to fully detonate. It was likely launched from some far-off deep space missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ + list(POD_SHAPE_OTHER, "smissile", FALSE, FALSE, FALSE, RUBBLE_THIN, "\improper Syndicate cruise missile", "A big ass, blood-red missile that didn't seem to fully detonate. It was likely launched from some deep space Syndicate missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ + list(POD_SHAPE_OTHER, "box", TRUE, FALSE, FALSE, RUBBLE_WIDE, "\improper Aussec supply crate", "An incredibly sturdy supply crate, designed to withstand orbital re-entry. Has 'Aussec Armory - 2532' engraved on the side."),\ + list(POD_SHAPE_NORML, "clownpod", TRUE, "clown", "green", RUBBLE_NORMAL, "\improper HONK pod", "A brightly-colored supply pod. It likely originated from the Clown Federation."),\ + list(POD_SHAPE_OTHER, "orange", TRUE, FALSE, FALSE, RUBBLE_NONE, "\improper Orange", "An angry orange."),\ + list(POD_SHAPE_OTHER, FALSE, FALSE, FALSE, FALSE, RUBBLE_NONE, "\improper S.T.E.A.L.T.H. pod MKVII", "A supply pod that, under normal circumstances, is completely invisible to conventional methods of detection. How are you even seeing this?"),\ + list(POD_SHAPE_OTHER, "gondola", FALSE, FALSE, FALSE, RUBBLE_NONE, "gondola", "The silent walker. This one seems to be part of a delivery agency."),\ + list(POD_SHAPE_OTHER, FALSE, FALSE, FALSE, FALSE, RUBBLE_NONE, FALSE, FALSE, "rl_click", "give_po")\ )) diff --git a/code/__DEFINES/chat.dm b/code/__DEFINES/chat.dm index fcf8d2b8b7c..c96598ae729 100644 --- a/code/__DEFINES/chat.dm +++ b/code/__DEFINES/chat.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/__DEFINES/dcs/flags.dm b/code/__DEFINES/dcs/flags.dm index e0645fd34c6..40da960ea94 100644 --- a/code/__DEFINES/dcs/flags.dm +++ b/code/__DEFINES/dcs/flags.dm @@ -12,9 +12,9 @@ /// Causes the detach proc to be called when the host object is being deleted #define ELEMENT_DETACH (1 << 0) /** - * Only elements created with the same arguments given after `id_arg_index` share an element instance - * The arguments are the same when the text and number values are the same and all other values have the same ref - */ + * Only elements created with the same arguments given after `id_arg_index` share an element instance + * The arguments are the same when the text and number values are the same and all other values have the same ref + */ #define ELEMENT_BESPOKE (1 << 1) // How multiple components of the exact same type are handled in the same datum diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index e0eb302c9eb..3f4fe5105c4 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -133,7 +133,7 @@ #define COMPONENT_BLOCK_CONTAMINATION (1<<0) ///from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width) #define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass" - #define COMPONENT_RAD_WAVE_HANDLED (1<<0) + #define COMPONENT_RAD_WAVE_HANDLED (1<<0) ///from internal loop in atom/movable/proc/CanReach(): (list/next) #define COMSIG_ATOM_CANREACH "atom_can_reach" #define COMPONENT_ALLOW_REACH (1<<0) diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 6055b180971..dbc805084fe 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -185,7 +185,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 if(HAS_TRAIT_FROM_ONLY(x, TRAIT_KEEP_TOGETHER, KEEP_TOGETHER_ORIGINAL))\ REMOVE_TRAIT(x, TRAIT_KEEP_TOGETHER, KEEP_TOGETHER_ORIGINAL);\ else if(!HAS_TRAIT(x, TRAIT_KEEP_TOGETHER))\ - x.appearance_flags &= ~KEEP_TOGETHER + x.appearance_flags &= ~KEEP_TOGETHER //religious_tool flags #define RELIGION_TOOL_INVOKE (1<<0) diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index b3e92531ba3..8615214d252 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -57,12 +57,12 @@ require only minor tweaks. // enum - how space transitions should affect this level #define ZTRAIT_LINKAGE "Linkage" - // UNAFFECTED if absent - no space transitions - #define UNAFFECTED null - // SELFLOOPING - space transitions always self-loop - #define SELFLOOPING "Self" - // CROSSLINKED - mixed in with the cross-linked space pool - #define CROSSLINKED "Cross" + // UNAFFECTED if absent - no space transitions + #define UNAFFECTED null + // SELFLOOPING - space transitions always self-loop + #define SELFLOOPING "Self" + // CROSSLINKED - mixed in with the cross-linked space pool + #define CROSSLINKED "Cross" // string - type path of the z-level's baseturf (defaults to space) #define ZTRAIT_BASETURF "Baseturf" @@ -72,11 +72,11 @@ require only minor tweaks. #define ZTRAITS_STATION list(ZTRAIT_LINKAGE = CROSSLINKED, ZTRAIT_STATION = TRUE) #define ZTRAITS_SPACE list(ZTRAIT_LINKAGE = CROSSLINKED, ZTRAIT_SPACE_RUINS = TRUE) #define ZTRAITS_LAVALAND list(\ - ZTRAIT_MINING = TRUE, \ - ZTRAIT_ASHSTORM = TRUE, \ - ZTRAIT_LAVA_RUINS = TRUE, \ - ZTRAIT_BOMBCAP_MULTIPLIER = 2, \ - ZTRAIT_BASETURF = /turf/open/lava/smooth/lava_land_surface) + ZTRAIT_MINING = TRUE, \ + ZTRAIT_ASHSTORM = TRUE, \ + ZTRAIT_LAVA_RUINS = TRUE, \ + ZTRAIT_BOMBCAP_MULTIPLIER = 2, \ + ZTRAIT_BASETURF = /turf/open/lava/smooth/lava_land_surface) #define DL_NAME "name" #define DL_TRAITS "traits" @@ -84,10 +84,10 @@ require only minor tweaks. // must correspond to _basemap.dm for things to work correctly #define DEFAULT_MAP_TRAITS list(\ - DECLARE_LEVEL("CentCom", ZTRAITS_CENTCOM),\ - /* SKYRAT EDIT ADDITION BEGIN - MODULAR_MAPS */\ - DECLARE_LEVEL("Offstation_skyrat", ZTRAITS_CENTCOM),\ - /* SKYRAT EDIT ADDITION END - MODULAR_MAPS */\ + DECLARE_LEVEL("CentCom", ZTRAITS_CENTCOM),\ + /* SKYRAT EDIT ADDITION BEGIN - MODULAR_MAPS */\ + DECLARE_LEVEL("Offstation_skyrat", ZTRAITS_CENTCOM),\ + /* SKYRAT EDIT ADDITION END - MODULAR_MAPS */\ ) // Camera lock flags diff --git a/code/__DEFINES/qdel.dm b/code/__DEFINES/qdel.dm index ec25eac0adc..11b4bf2acd4 100644 --- a/code/__DEFINES/qdel.dm +++ b/code/__DEFINES/qdel.dm @@ -17,8 +17,8 @@ #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. diff --git a/code/__DEFINES/spaceman_dmm.dm b/code/__DEFINES/spaceman_dmm.dm index 3d4207c5c97..568415edd9f 100644 --- a/code/__DEFINES/spaceman_dmm.dm +++ b/code/__DEFINES/spaceman_dmm.dm @@ -29,6 +29,6 @@ #endif /world/proc/enable_debugger() - var/dll = world.GetConfig("env", "EXTOOLS_DLL") - if (dll) - call(dll, "debug_initialize")() + var/dll = world.GetConfig("env", "EXTOOLS_DLL") + if (dll) + call(dll, "debug_initialize")() diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 5530858f1e1..66d998171e8 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -5,43 +5,43 @@ //! ## DB defines /** - * DB major schema version - * - * Update this whenever the db schema changes - * - * make sure you add an update to the schema_version stable in the db changelog - */ + * DB major schema version + * + * Update this whenever the db schema changes + * + * make sure you add an update to the schema_version stable in the db changelog + */ #define DB_MAJOR_VERSION 5 /** - * DB minor schema version - * - * Update this whenever the db schema changes - * - * make sure you add an update to the schema_version stable in the db changelog - */ + * DB minor schema version + * + * Update this whenever the db schema changes + * + * make sure you add an update to the schema_version stable in the db changelog + */ #define DB_MINOR_VERSION 11 //! ## Timing subsystem /** - * Don't run if there is an identical unique timer active - * - * if the arguments to addtimer are the same as an existing timer, it doesn't create a new timer, - * and returns the id of the existing timer - */ + * Don't run if there is an identical unique timer active + * + * if the arguments to addtimer are the same as an existing timer, it doesn't create a new timer, + * and returns the id of the existing timer + */ #define TIMER_UNIQUE (1<<0) ///For unique timers: Replace the old timer rather then not start this one #define TIMER_OVERRIDE (1<<1) /** - * Timing should be based on how timing progresses on clients, not the server. - * - * Tracking this is more expensive, - * should only be used in conjuction with things that have to progress client side, such as - * animate() or sound() - */ + * Timing should be based on how timing progresses on clients, not the server. + * + * Tracking this is more expensive, + * should only be used in conjuction with things that have to progress client side, such as + * animate() or sound() + */ #define TIMER_CLIENT_TIME (1<<2) ///Timer can be stopped using deltimer() @@ -74,12 +74,12 @@ ///Nothing happens #define INITIALIZE_HINT_NORMAL 0 /** - * call LateInitialize at the end of all atom Initalization - * - * The item will be added to the late_loaders list, this is iterated over after - * initalization of subsystems is complete and calls LateInitalize on the atom - * see [this file for the LateIntialize proc](atom.html#proc/LateInitialize) - */ + * call LateInitialize at the end of all atom Initalization + * + * The item will be added to the late_loaders list, this is iterated over after + * initalization of subsystems is complete and calls LateInitalize on the atom + * see [this file for the LateIntialize proc](atom.html#proc/LateInitialize) + */ #define INITIALIZE_HINT_LATELOAD 1 ///Call qdel on the atom after intialization @@ -87,11 +87,11 @@ ///type and all subtypes should always immediately call Initialize in New() #define INITIALIZE_IMMEDIATE(X) ##X/New(loc, ...){\ - ..();\ - if(!(flags_1 & INITIALIZED_1)) {\ - args[1] = TRUE;\ - SSatoms.InitAtom(src, args);\ - }\ + ..();\ + if(!(flags_1 & INITIALIZED_1)) {\ + args[1] = TRUE;\ + SSatoms.InitAtom(src, args);\ + }\ } // Subsystem init_order, from highest priority to lowest priority diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index e70955845c4..70b7cacac1a 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -117,22 +117,22 @@ //REQUIRED HOOKS /** - * Call this somewhere in [/world/proc/New] that is always run. This function may sleep! - * - * * event_handler - Optional user defined [/datum/tgs_event_handler]. - * * minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated. Can be one of [TGS_SECURITY_ULTRASAFE], [TGS_SECURITY_SAFE], or [TGS_SECURITY_TRUSTED]. - */ + * Call this somewhere in [/world/proc/New] that is always run. This function may sleep! + * + * * event_handler - Optional user defined [/datum/tgs_event_handler]. + * * minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated. Can be one of [TGS_SECURITY_ULTRASAFE], [TGS_SECURITY_SAFE], or [TGS_SECURITY_TRUSTED]. + */ /world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) return /** - * Call this when your initializations are complete and your game is ready to play before any player interactions happen. - * - * This may use [/world/var/sleep_offline] to make this happen so ensure no changes are made to it while this call is running. - * Afterwards, consider explicitly setting it to what you want to avoid this BYOND bug: http://www.byond.com/forum/post/2575184 - * Before this point, note that any static files or directories may be in use by another server. Your code should account for this. - * This function should not be called before ..() in [/world/proc/New]. - */ + * Call this when your initializations are complete and your game is ready to play before any player interactions happen. + * + * This may use [/world/var/sleep_offline] to make this happen so ensure no changes are made to it while this call is running. + * Afterwards, consider explicitly setting it to what you want to avoid this BYOND bug: http://www.byond.com/forum/post/2575184 + * Before this point, note that any static files or directories may be in use by another server. Your code should account for this. + * This function should not be called before ..() in [/world/proc/New]. + */ /world/proc/TgsInitializationComplete() return @@ -140,8 +140,8 @@ #define TGS_TOPIC var/tgs_topic_return = TgsTopic(args[1]); if(tgs_topic_return) return tgs_topic_return /** - * Call this at the beginning of [world/proc/Reboot]. - */ + * Call this at the beginning of [world/proc/Reboot]. + */ /world/proc/TgsReboot() return @@ -175,16 +175,16 @@ var/deprefixed_parameter /** - * Returns [TRUE]/[FALSE] based on if the [/datum/tgs_version] contains wildcards. - */ + * Returns [TRUE]/[FALSE] based on if the [/datum/tgs_version] contains wildcards. + */ /datum/tgs_version/proc/Wildcard() return /** - * Returns [TRUE]/[FALSE] based on if the [/datum/tgs_version] equals some other version. - * - * other_version - The [/datum/tgs_version] to compare against. - */ + * Returns [TRUE]/[FALSE] based on if the [/datum/tgs_version] equals some other version. + * + * other_version - The [/datum/tgs_version] to compare against. + */ /datum/tgs_version/proc/Equals(datum/tgs_version/other_version) return @@ -234,10 +234,10 @@ var/datum/tgs_chat_channel/channel /** - * User definable callback for handling TGS events. - * - * event_code - One of the TGS_EVENT_ defines. Extra parameters will be documented in each - */ + * User definable callback for handling TGS events. + * + * event_code - One of the TGS_EVENT_ defines. Extra parameters will be documented in each + */ /datum/tgs_event_handler/proc/HandleEvent(event_code, ...) set waitfor = FALSE return @@ -252,11 +252,11 @@ var/admin_only = FALSE /** - * Process command activation. Should return a string to respond to the issuer with. - * - * sender - The [/datum/tgs_chat_user] who issued the command. - * params - The trimmed string following the command `/datum/tgs_chat_command/var/name]. - */ + * Process command activation. Should return a string to respond to the issuer with. + * + * sender - The [/datum/tgs_chat_user] who issued the command. + * params - The trimmed string following the command `/datum/tgs_chat_command/var/name]. + */ /datum/tgs_chat_command/proc/Run(datum/tgs_chat_user/sender, params) CRASH("[type] has no implementation for Run()") @@ -271,48 +271,48 @@ return /** - * Returns [TRUE] if DreamDaemon was launched under TGS, the API matches, and was properly initialized. [FALSE] will be returned otherwise. - */ + * Returns [TRUE] if DreamDaemon was launched under TGS, the API matches, and was properly initialized. [FALSE] will be returned otherwise. + */ /world/proc/TgsAvailable() return // No function below this succeeds if it TgsAvailable() returns FALSE or if TgsNew() has yet to be called. /** - * Forces a hard reboot of DreamDaemon by ending the process. - * - * Unlike del(world) clients will try to reconnect. - * If TGS has not requested a [TGS_REBOOT_MODE_SHUTDOWN] DreamDaemon will be launched again - */ + * Forces a hard reboot of DreamDaemon by ending the process. + * + * Unlike del(world) clients will try to reconnect. + * If TGS has not requested a [TGS_REBOOT_MODE_SHUTDOWN] DreamDaemon will be launched again + */ /world/proc/TgsEndProcess() return /** - * Send a message to connected chats. - * - * message - The string to send. - * admin_only: If [TRUE], message will be sent to admin connected chats. Vice-versa applies. - */ + * Send a message to connected chats. + * + * message - The string to send. + * admin_only: If [TRUE], message will be sent to admin connected chats. Vice-versa applies. + */ /world/proc/TgsTargetedChatBroadcast(message, admin_only = FALSE) return /** - * Send a private message to a specific user. - * - * message - The string to send. - * user: The [/datum/tgs_chat_user] to PM. - */ + * Send a private message to a specific user. + * + * message - The string to send. + * user: The [/datum/tgs_chat_user] to PM. + */ /world/proc/TgsChatPrivateMessage(message, datum/tgs_chat_user/user) return // The following functions will sleep if a call to TgsNew() is sleeping /** - * Send a message to connected chats that are flagged as game-related in TGS. - * - * message - The string to send. - * channels - Optional list of [/datum/tgs_chat_channel]s to restrict the message to. - */ + * Send a message to connected chats that are flagged as game-related in TGS. + * + * message - The string to send. + * channels - Optional list of [/datum/tgs_chat_channel]s to restrict the message to. + */ /world/proc/TgsChatBroadcast(message, list/channels = null) return diff --git a/code/__HELPERS/bitflag_lists.dm b/code/__HELPERS/bitflag_lists.dm index a665d92cd41..8e37949d691 100644 --- a/code/__HELPERS/bitflag_lists.dm +++ b/code/__HELPERS/bitflag_lists.dm @@ -1,16 +1,16 @@ GLOBAL_LIST_EMPTY(bitflag_lists) /** - * System for storing bitflags past the 24 limit, making use of an associative list. - * - * Macro converts a list of integers into an associative list of bitflag entries for quicker comparison. - * Example: list(0, 4, 26, 32)) => list( "0" = ( (1<<0) | (1<<4) ), "1" = ( (1<<2) | (1<<8) ) ) - * Lists are cached into a global list of lists to avoid identical duplicates. - * This system makes value comparisons faster than pairing every element of one list with every element of the other for evaluation. - * - * Arguments: - * * target - List of integers. - */ + * System for storing bitflags past the 24 limit, making use of an associative list. + * + * Macro converts a list of integers into an associative list of bitflag entries for quicker comparison. + * Example: list(0, 4, 26, 32)) => list( "0" = ( (1<<0) | (1<<4) ), "1" = ( (1<<2) | (1<<8) ) ) + * Lists are cached into a global list of lists to avoid identical duplicates. + * This system makes value comparisons faster than pairing every element of one list with every element of the other for evaluation. + * + * Arguments: + * * target - List of integers. + */ #define SET_BITFLAG_LIST(target) \ do { \ var/txt_signature = target.Join("-"); \ diff --git a/code/__HELPERS/chat.dm b/code/__HELPERS/chat.dm index 4abbab3b8aa..27e400f262a 100644 --- a/code/__HELPERS/chat.dm +++ b/code/__HELPERS/chat.dm @@ -36,11 +36,11 @@ In TGS3 it will always be sent to all connected designated game chats. */ /** - * Sends a message to TGS chat channels. - * - * message - The message to send. - * channel_tag - Required. If "", the message with be sent to all connected (Game-type for TGS3) channels. Otherwise, it will be sent to TGS4 channels with that tag (Delimited by ','s). - */ + * Sends a message to TGS chat channels. + * + * message - The message to send. + * channel_tag - Required. If "", the message with be sent to all connected (Game-type for TGS3) channels. Otherwise, it will be sent to TGS4 channels with that tag (Delimited by ','s). + */ /proc/send2chat(message, channel_tag) if(channel_tag == null || !world.TgsAvailable()) return @@ -61,11 +61,11 @@ In TGS3 it will always be sent to all connected designated game chats. world.TgsChatBroadcast(message, channels_to_use) /** - * Sends a message to TGS admin chat channels. - * - * category - The category of the mssage. - * message - The message to send. - */ + * Sends a message to TGS admin chat channels. + * + * category - The category of the mssage. + * message - The message to send. + */ /proc/send2adminchat(category, message, embed_links = FALSE) category = replacetext(replacetext(category, "\proper", ""), "\improper", "") message = replacetext(replacetext(message, "\proper", ""), "\improper", "") diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index 75dd1def2d6..b79dd1fb47c 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -132,12 +132,12 @@ GLOBAL_VAR_INIT(cmp_field, "name") return sorttext(A.real_name,B.real_name) /** - * Sorts crafting recipe requirements before the crafting recipe is inserted into GLOB.crafting_recipes - * - * Prioritises [/datum/reagent] to ensure reagent requirements are always processed first when crafting. - * This prevents any reagent_containers from being consumed before the reagents they contain, which can - * lead to runtimes and item duplication when it happens. - */ + * Sorts crafting recipe requirements before the crafting recipe is inserted into GLOB.crafting_recipes + * + * Prioritises [/datum/reagent] to ensure reagent requirements are always processed first when crafting. + * This prevents any reagent_containers from being consumed before the reagents they contain, which can + * lead to runtimes and item duplication when it happens. + */ /proc/cmp_crafting_req_priority(A, B) var/lhs var/rhs diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 274d68395bc..593ceebc0ba 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -1,9 +1,9 @@ //supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a #define RANGE_TURFS(RADIUS, CENTER) \ - block( \ - locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ - locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ - ) + block( \ + locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ + locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ + ) #define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL)) #define CULT_POLL_WAIT 2400 @@ -181,12 +181,12 @@ processing_list += A.contents /** recursive_organ_check - * inputs: O (object to start with) - * outputs: - * description: A pseudo-recursive loop based off of the recursive mob check, this check looks for any organs held - * within 'O', toggling their frozen flag. This check excludes items held within other safe organ - * storage units, so that only the lowest level of container dictates whether we do or don't decompose - */ + * inputs: O (object to start with) + * outputs: + * description: A pseudo-recursive loop based off of the recursive mob check, this check looks for any organs held + * within 'O', toggling their frozen flag. This check excludes items held within other safe organ + * storage units, so that only the lowest level of container dictates whether we do or don't decompose + */ /proc/recursive_organ_check(atom/O) var/list/processing_list = list(O) @@ -323,11 +323,11 @@ return FALSE /** - * Exiled check - * - * Checks if the current body of the mind has an exile implant and is currently in - * an away mission. Returns FALSE if any of those conditions aren't met. - */ + * Exiled check + * + * Checks if the current body of the mind has an exile implant and is currently in + * an away mission. Returns FALSE if any of those conditions aren't met. + */ /proc/considered_exiled(datum/mind/M) if(!ishuman(M?.current)) return FALSE diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 3e1550f2ed1..17e9adf93f1 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -309,10 +309,10 @@ DEFINE_BITFIELD(smoothing_junction, list( /** - * Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that. - * - * Returns the previous smoothing_junction state so the previous state can be compared with the new one after the proc ends, and see the changes, if any. - * + * Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that. + * + * Returns the previous smoothing_junction state so the previous state can be compared with the new one after the proc ends, and see the changes, if any. + * */ /atom/proc/bitmask_smooth() var/new_junction = NONE diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 0c7b5ea1de6..842ff641782 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -18,57 +18,57 @@ remember you first need to setup an /icon var like so: GLOBAL_DATUM_INIT(my_icon, /icon, new('iconfile.dmi')) icon/ChangeOpacity(amount = 1) - A very common operation in DM is to try to make an icon more or less transparent. Making an icon more - transparent is usually much easier than making it less so, however. This proc basically is a frontend - for MapColors() which can change opacity any way you like, in much the same way that SetIntensity() - can make an icon lighter or darker. If amount is 0.5, the opacity of the icon will be cut in half. - If amount is 2, opacity is doubled and anything more than half-opaque will become fully opaque. + A very common operation in DM is to try to make an icon more or less transparent. Making an icon more + transparent is usually much easier than making it less so, however. This proc basically is a frontend + for MapColors() which can change opacity any way you like, in much the same way that SetIntensity() + can make an icon lighter or darker. If amount is 0.5, the opacity of the icon will be cut in half. + If amount is 2, opacity is doubled and anything more than half-opaque will become fully opaque. icon/GrayScale() - Converts the icon to grayscale instead of a fully colored icon. Alpha values are left intact. + Converts the icon to grayscale instead of a fully colored icon. Alpha values are left intact. icon/ColorTone(tone) - Similar to GrayScale(), this proc converts the icon to a range of black -> tone -> white, where tone is an - RGB color (its alpha is ignored). This can be used to create a sepia tone or similar effect. - See also the global ColorTone() proc. + Similar to GrayScale(), this proc converts the icon to a range of black -> tone -> white, where tone is an + RGB color (its alpha is ignored). This can be used to create a sepia tone or similar effect. + See also the global ColorTone() proc. icon/MinColors(icon) - The icon is blended with a second icon where the minimum of each RGB pixel is the result. - Transparency may increase, as if the icons were blended with ICON_ADD. You may supply a color in place of an icon. + The icon is blended with a second icon where the minimum of each RGB pixel is the result. + Transparency may increase, as if the icons were blended with ICON_ADD. You may supply a color in place of an icon. icon/MaxColors(icon) - The icon is blended with a second icon where the maximum of each RGB pixel is the result. - Opacity may increase, as if the icons were blended with ICON_OR. You may supply a color in place of an icon. + The icon is blended with a second icon where the maximum of each RGB pixel is the result. + Opacity may increase, as if the icons were blended with ICON_OR. You may supply a color in place of an icon. icon/Opaque(background = "#000000") - All alpha values are set to 255 throughout the icon. Transparent pixels become black, or whatever background color you specify. + All alpha values are set to 255 throughout the icon. Transparent pixels become black, or whatever background color you specify. icon/BecomeAlphaMask() - You can convert a simple grayscale icon into an alpha mask to use with other icons very easily with this proc. - The black parts become transparent, the white parts stay white, and anything in between becomes a translucent shade of white. + You can convert a simple grayscale icon into an alpha mask to use with other icons very easily with this proc. + The black parts become transparent, the white parts stay white, and anything in between becomes a translucent shade of white. icon/AddAlphaMask(mask) - The alpha values of the mask icon will be blended with the current icon. Anywhere the mask is opaque, - the current icon is untouched. Anywhere the mask is transparent, the current icon becomes transparent. - Where the mask is translucent, the current icon becomes more transparent. + The alpha values of the mask icon will be blended with the current icon. Anywhere the mask is opaque, + the current icon is untouched. Anywhere the mask is transparent, the current icon becomes transparent. + Where the mask is translucent, the current icon becomes more transparent. icon/UseAlphaMask(mask, mode) - Sometimes you may want to take the alpha values from one icon and use them on a different icon. - This proc will do that. Just supply the icon whose alpha mask you want to use, and src will change - so it has the same colors as before but uses the mask for opacity. + Sometimes you may want to take the alpha values from one icon and use them on a different icon. + This proc will do that. Just supply the icon whose alpha mask you want to use, and src will change + so it has the same colors as before but uses the mask for opacity. COLOR MANAGEMENT AND HSV RGB isn't the only way to represent color. Sometimes it's more useful to work with a model called HSV, which stands for hue, saturation, and value. - * The hue of a color describes where it is along the color wheel. It goes from red to yellow to green to - cyan to blue to magenta and back to red. - * The saturation of a color is how much color is in it. A color with low saturation will be more gray, - and with no saturation at all it is a shade of gray. - * The value of a color determines how bright it is. A high-value color is vivid, moderate value is dark, - and no value at all is black. + * The hue of a color describes where it is along the color wheel. It goes from red to yellow to green to + cyan to blue to magenta and back to red. + * The saturation of a color is how much color is in it. A color with low saturation will be more gray, + and with no saturation at all it is a shade of gray. + * The value of a color determines how bright it is. A high-value color is vivid, moderate value is dark, + and no value at all is black. Just as BYOND uses "#rrggbb" to represent RGB values, a similar format is used for HSV: "#hhhssvv". The hue is three hex digits because it ranges from 0 to 0x5FF. - * 0 to 0xFF - red to yellow - * 0x100 to 0x1FF - yellow to green - * 0x200 to 0x2FF - green to cyan - * 0x300 to 0x3FF - cyan to blue - * 0x400 to 0x4FF - blue to magenta - * 0x500 to 0x5FF - magenta to red + * 0 to 0xFF - red to yellow + * 0x100 to 0x1FF - yellow to green + * 0x200 to 0x2FF - green to cyan + * 0x300 to 0x3FF - cyan to blue + * 0x400 to 0x4FF - blue to magenta + * 0x500 to 0x5FF - magenta to red Knowing this, you can figure out that red is "#000ffff" in HSV format, which is hue 0 (red), saturation 255 (as colorful as possible), value 255 (as bright as possible). Green is "#200ffff" and blue is "#400ffff". @@ -78,42 +78,42 @@ More than one HSV color can match the same RGB color. Here are some procs you can use for color management: ReadRGB(rgb) - Takes an RGB string like "#ffaa55" and converts it to a list such as list(255,170,85). If an RGBA format is used - that includes alpha, the list will have a fourth item for the alpha value. + Takes an RGB string like "#ffaa55" and converts it to a list such as list(255,170,85). If an RGBA format is used + that includes alpha, the list will have a fourth item for the alpha value. hsv(hue, sat, val, apha) - Counterpart to rgb(), this takes the values you input and converts them to a string in "#hhhssvv" or "#hhhssvvaa" - format. Alpha is not included in the result if null. + Counterpart to rgb(), this takes the values you input and converts them to a string in "#hhhssvv" or "#hhhssvvaa" + format. Alpha is not included in the result if null. ReadHSV(rgb) - Takes an HSV string like "#100FF80" and converts it to a list such as list(256,255,128). If an HSVA format is used that - includes alpha, the list will have a fourth item for the alpha value. + Takes an HSV string like "#100FF80" and converts it to a list such as list(256,255,128). If an HSVA format is used that + includes alpha, the list will have a fourth item for the alpha value. RGBtoHSV(rgb) - Takes an RGB or RGBA string like "#ffaa55" and converts it into an HSV or HSVA color such as "#080aaff". + Takes an RGB or RGBA string like "#ffaa55" and converts it into an HSV or HSVA color such as "#080aaff". HSVtoRGB(hsv) - Takes an HSV or HSVA string like "#080aaff" and converts it into an RGB or RGBA color such as "#ff55aa". + Takes an HSV or HSVA string like "#080aaff" and converts it into an RGB or RGBA color such as "#ff55aa". BlendRGB(rgb1, rgb2, amount) - Blends between two RGB or RGBA colors using regular RGB blending. If amount is 0, the first color is the result; - if 1, the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. - The returned value is an RGB or RGBA color. + Blends between two RGB or RGBA colors using regular RGB blending. If amount is 0, the first color is the result; + if 1, the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. + The returned value is an RGB or RGBA color. BlendHSV(hsv1, hsv2, amount) - Blends between two HSV or HSVA colors using HSV blending, which tends to produce nicer results than regular RGB - blending because the brightness of the color is left intact. If amount is 0, the first color is the result; if 1, - the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. - The returned value is an HSV or HSVA color. + Blends between two HSV or HSVA colors using HSV blending, which tends to produce nicer results than regular RGB + blending because the brightness of the color is left intact. If amount is 0, the first color is the result; if 1, + the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well. + The returned value is an HSV or HSVA color. BlendRGBasHSV(rgb1, rgb2, amount) - Like BlendHSV(), but the colors used and the return value are RGB or RGBA colors. The blending is done in HSV form. + Like BlendHSV(), but the colors used and the return value are RGB or RGBA colors. The blending is done in HSV form. HueToAngle(hue) - Converts a hue to an angle range of 0 to 360. Angle 0 is red, 120 is green, and 240 is blue. + Converts a hue to an angle range of 0 to 360. Angle 0 is red, 120 is green, and 240 is blue. AngleToHue(hue) - Converts an angle to a hue in the valid range. + Converts an angle to a hue in the valid range. RotateHue(hsv, angle) - Takes an HSV or HSVA value and rotates the hue forward through red, green, and blue by an angle from 0 to 360. - (Rotating red by 60° produces yellow.) The result is another HSV or HSVA color with the same saturation and value - as the original, but a different hue. + Takes an HSV or HSVA value and rotates the hue forward through red, green, and blue by an angle from 0 to 360. + (Rotating red by 60° produces yellow.) The result is another HSV or HSVA color with the same saturation and value + as the original, but a different hue. GrayScale(rgb) - Takes an RGB or RGBA color and converts it to grayscale. Returns an RGB or RGBA string. + Takes an RGB or RGBA color and converts it to grayscale. Returns an RGB or RGBA string. ColorTone(rgb, tone) - Similar to GrayScale(), this proc converts an RGB or RGBA color to a range of black -> tone -> white instead of - using strict shades of gray. The tone value is an RGB color; any alpha value is ignored. + Similar to GrayScale(), this proc converts an RGB or RGBA color to a range of black -> tone -> white instead of + using strict shades of gray. The tone value is an RGB color; any alpha value is ignored. */ /* @@ -1112,10 +1112,10 @@ GLOBAL_DATUM_INIT(dummySave, /savefile, new("tmp/dummySave.sav")) //Cache of ico /** - * Converts an icon to base64. Operates by putting the icon in the iconCache savefile, - * exporting it as text, and then parsing the base64 from that. - * (This relies on byond automatically storing icons in savefiles as base64) - */ + * Converts an icon to base64. Operates by putting the icon in the iconCache savefile, + * exporting it as text, and then parsing the base64 from that. + * (This relies on byond automatically storing icons in savefiles as base64) + */ /proc/icon2base64(icon/icon) if (!isicon(icon)) return FALSE @@ -1154,7 +1154,7 @@ GLOBAL_DATUM_INIT(dummySave, /savefile, new("tmp/dummySave.sav")) //Cache of ico return SSassets.transport.get_asset_url(name) return "" var/atom/A = thing - + I = A.icon if (isnull(icon_state)) icon_state = A.icon_state @@ -1162,10 +1162,10 @@ GLOBAL_DATUM_INIT(dummySave, /savefile, new("tmp/dummySave.sav")) //Cache of ico icon_state = initial(A.icon_state) if (isnull(dir)) dir = initial(A.dir) - + if (isnull(dir)) - dir = A.dir - + dir = A.dir + if (ishuman(thing)) // Shitty workaround for a BYOND issue. var/icon/temp = I I = icon() diff --git a/code/__HELPERS/jatum.dm b/code/__HELPERS/jatum.dm index c8a34035a0d..aaea50e8f4b 100644 --- a/code/__HELPERS/jatum.dm +++ b/code/__HELPERS/jatum.dm @@ -1,8 +1,8 @@ // JATUM. System for making the serializing and deserializing of PoD types easier /** - * Gets the flat list that can be passed in a `new /type(argslist(retval))` expression to recreate the datum. Must only return a list containing values that can be JATUM serialized - */ + * Gets the flat list that can be passed in a `new /type(argslist(retval))` expression to recreate the datum. Must only return a list containing values that can be JATUM serialized + */ /datum/proc/jatum_new_arglist() return null @@ -10,10 +10,10 @@ #define JATUM_VERSION 1 /** - * Attempt to serialize a given value to the JATUM format. - * - * * value - The var to serialize. - */ + * Attempt to serialize a given value to the JATUM format. + * + * * value - The var to serialize. + */ /world/proc/jatum_serialize(value) var/list/json_structure try @@ -135,10 +135,10 @@ return json_structure /** - * Attempt to create a value from a JATUN JSON. - * - * * json - The JSON to deserialize. - */ + * Attempt to create a value from a JATUN JSON. + * + * * json - The JSON to deserialize. + */ /world/proc/jatum_deserialize(json) if(!istext(json)) CRASH("Non-text passed!") diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm index 51517a87096..4adc41832a2 100644 --- a/code/__HELPERS/matrices.dm +++ b/code/__HELPERS/matrices.dm @@ -72,9 +72,9 @@ //Dumps the matrix data in a matrix-grid format /* - a d 0 - b e 0 - c f 1 +a d 0 +b e 0 +c f 1 */ /matrix/proc/togrid() . = list() diff --git a/code/__HELPERS/string_assoc_lists.dm b/code/__HELPERS/string_assoc_lists.dm index 4e9087b4366..cded3a34969 100644 --- a/code/__HELPERS/string_assoc_lists.dm +++ b/code/__HELPERS/string_assoc_lists.dm @@ -1,8 +1,8 @@ GLOBAL_LIST_EMPTY(string_assoc_lists) /** - * Caches associative lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number). - */ + * Caches associative lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number). + */ /datum/proc/string_assoc_list(list/values) var/list/string_id = list() for(var/val in values) diff --git a/code/__HELPERS/string_lists.dm b/code/__HELPERS/string_lists.dm index 746d8c123ec..5aca19b6f83 100644 --- a/code/__HELPERS/string_lists.dm +++ b/code/__HELPERS/string_lists.dm @@ -1,8 +1,8 @@ GLOBAL_LIST_EMPTY(string_lists) /** - * Caches lists with non-numeric stringify-able values (text or typepath). - */ + * Caches lists with non-numeric stringify-able values (text or typepath). + */ /proc/string_list(list/values) var/string_id = values.Join("-") diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index d285a870501..0a426e08652 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -69,15 +69,15 @@ return copytext((html_encode(strip_html_simple(t))),1,limit) /** - * 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. - * 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]`. - * - * Arguments: - * * t - The text to "render" - */ + * 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. + * 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]`. + * + * Arguments: + * * t - The text to "render" + */ /proc/htmlrendertext(t) // Trim "whitespace" by lazily capturing word characters in the middle var/static/regex/matchMiddle = new(@"^\s*([\W\w]*?)\s*$") @@ -142,11 +142,11 @@ #define LETTERS_DETECTED 4 /** - * Filters out undesirable characters from names. - * - * * strict - return null immidiately instead of filtering out - * * allow_numbers - allows numbers and common special characters - used for silicon/other weird things names - */ + * Filters out undesirable characters from names. + * + * * strict - return null immidiately instead of filtering out + * * allow_numbers - allows numbers and common special characters - used for silicon/other weird things names + */ ///proc/reject_bad_name(t_in, allow_numbers = FALSE, max_length = MAX_NAME_LEN, ascii_only = TRUE, strict = FALSE) //ORIGINAL /proc/reject_bad_name(t_in, allow_numbers = TRUE, max_length = MAX_NAME_LEN, ascii_only = TRUE, strict = FALSE) //SKYRAT EDIT CHANGE if(!t_in) @@ -298,16 +298,16 @@ return "" /** - * Truncate a string to the given length - * - * Will only truncate if the string is larger than the length and *ignores unicode concerns* - * - * This exists soley because trim does other stuff too. - * - * Arguments: - * * text - String - * * max_length - integer length to truncate at - */ + * Truncate a string to the given length + * + * Will only truncate if the string is larger than the length and *ignores unicode concerns* + * + * This exists soley because trim does other stuff too. + * + * Arguments: + * * text - String + * * max_length - integer length to truncate at + */ /proc/truncate(text, max_length) if(length(text) > max_length) return copytext(text, 1, max_length) @@ -884,20 +884,20 @@ GLOBAL_LIST_INIT(binary, list("0","1")) return "\[[loadstring]\]" /** - * Formats a number to human readable form with the appropriate SI unit. - * - * Supports SI exponents between 1e-15 to 1e15, but properly handles numbers outside that range as well. - * Examples: - * * `siunit(1234, "Pa", 1)` -> `"1.2 kPa"` - * * `siunit(0.5345, "A", 0)` -> `"535 mA"` - * * `siunit(1000, "Pa", 4)` -> `"1 kPa"` - * Arguments: - * * value - The number to convert to text. Can be positive or negative. - * * unit - The base unit of the number, such as "Pa" or "W". - * * maxdecimals - Maximum amount of decimals to display for the final number. Defaults to 1. - * * - * * For pressure conversion, use proc/siunit_pressure() below - */ + * Formats a number to human readable form with the appropriate SI unit. + * + * Supports SI exponents between 1e-15 to 1e15, but properly handles numbers outside that range as well. + * Examples: + * * `siunit(1234, "Pa", 1)` -> `"1.2 kPa"` + * * `siunit(0.5345, "A", 0)` -> `"535 mA"` + * * `siunit(1000, "Pa", 4)` -> `"1 kPa"` + * Arguments: + * * value - The number to convert to text. Can be positive or negative. + * * unit - The base unit of the number, such as "Pa" or "W". + * * maxdecimals - Maximum amount of decimals to display for the final number. Defaults to 1. + * * + * * For pressure conversion, use proc/siunit_pressure() below + */ /proc/siunit(value, unit, maxdecimals=1) var/static/list/prefixes = list("f","p","n","μ","m","","k","M","G","T","P") @@ -923,10 +923,10 @@ GLOBAL_LIST_INIT(binary, list("0","1")) /** The game code never uses Pa, but kPa, since 1 Pa is too small to reasonably handle - * Thus, to ensure correct conversion from any kPa in game code, this value needs to be multiplied by 10e3 to get Pa, which the siunit() proc expects - * Args: - * * value_in_kpa - Value that should be converted to readable text in kPa - * * maxdecimals - maximum number of decimals that are displayed, defaults to 1 in proc/siunit() + * Thus, to ensure correct conversion from any kPa in game code, this value needs to be multiplied by 10e3 to get Pa, which the siunit() proc expects + * Args: + * * value_in_kpa - Value that should be converted to readable text in kPa + * * maxdecimals - maximum number of decimals that are displayed, defaults to 1 in proc/siunit() */ /proc/siunit_pressure(value_in_kpa, maxdecimals) var/pressure_adj = value_in_kpa * 1000 //to adjust for using kPa instead of Pa diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 8c410dd2c38..0c8d9a25fd3 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -382,16 +382,16 @@ Turf and target are separate in case you want to teleport some distance from a t return locate(x,y,A.z) /** - * Get ranged target turf, but with direct targets as opposed to directions - * - * Starts at atom A and gets the exact angle between A and target - * Moves from A with that angle, Range amount of times, until it stops, bound to map size - * Arguments: - * * A - Initial Firer / Position - * * target - Target to aim towards - * * range - Distance of returned target turf from A - * * offset - Angle offset, 180 input would make the returned target turf be in the opposite direction - */ + * Get ranged target turf, but with direct targets as opposed to directions + * + * Starts at atom A and gets the exact angle between A and target + * Moves from A with that angle, Range amount of times, until it stops, bound to map size + * Arguments: + * * A - Initial Firer / Position + * * target - Target to aim towards + * * range - Distance of returned target turf from A + * * offset - Angle offset, 180 input would make the returned target turf be in the opposite direction + */ /proc/get_ranged_target_turf_direct(atom/A, atom/target, range, offset) var/angle = ATAN2(target.x - A.x, target.y - A.y) if(offset) @@ -574,16 +574,16 @@ Turf and target are separate in case you want to teleport some distance from a t /* - Gets the turf this atom's *ICON* appears to inhabit - It takes into account: - * Pixel_x/y - * Matrix x/y +Lets the turf this atom's *ICON* appears to inhabit +it takes into account: +* Pixel_x/y +* Matrix x/y - NOTE: if your atom has non-standard bounds then this proc - will handle it, but: - * if the bounds are even, then there are an even amount of "middle" turfs, the one to the EAST, NORTH, or BOTH is picked - (this may seem bad, but you're atleast as close to the center of the atom as possible, better than byond's default loc being all the way off) - * if the bounds are odd, the true middle turf of the atom is returned +NOTE: if your atom has non-standard bounds then this proc +will handle it, but: +* if the bounds are even, then there are an even amount of "middle" turfs, the one to the EAST, NORTH, or BOTH is picked +this may seem bad, but you're atleast as close to the center of the atom as possible, better than byond's default loc being all the way off) +* if the bounds are odd, the true middle turf of the atom is returned */ @@ -788,21 +788,21 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list( /* rough example of the "cone" made by the 3 dirs checked - B - \ - \ - > - < - \ - \ -B --><-- A - / - / - < - > - / - / - B + +* \ +* \ +* > +* < +* \ +* \ +*B --><-- A +* / +* / +* < +* > +* / +* / + */ diff --git a/code/__HELPERS/verbs.dm b/code/__HELPERS/verbs.dm index 3606c7d918a..5a3df642c7d 100644 --- a/code/__HELPERS/verbs.dm +++ b/code/__HELPERS/verbs.dm @@ -1,11 +1,11 @@ /** - * handles adding verbs and updating the stat panel browser - * - * pass the verb type path to this instead of adding it directly to verbs so the statpanel can update - * Arguments: - * * target - Who the verb is being added to, client or mob typepath - * * verb - typepath to a verb, or a list of verbs, supports lists of lists - */ + * handles adding verbs and updating the stat panel browser + * + * pass the verb type path to this instead of adding it directly to verbs so the statpanel can update + * Arguments: + * * target - Who the verb is being added to, client or mob typepath + * * verb - typepath to a verb, or a list of verbs, supports lists of lists + */ /proc/add_verb(client/target, verb_or_list_to_add) if(!target) CRASH("add_verb called without a target") @@ -48,13 +48,13 @@ target << output("[output_list];", "statbrowser:add_verb_list") /** - * handles removing verb and sending it to browser to update, use this for removing verbs - * - * pass the verb type path to this instead of removing it from verbs so the statpanel can update - * Arguments: - * * target - Who the verb is being removed from, client or mob typepath - * * verb - typepath to a verb, or a list of verbs, supports lists of lists - */ + * handles removing verb and sending it to browser to update, use this for removing verbs + * + * pass the verb type path to this instead of removing it from verbs so the statpanel can update + * Arguments: + * * target - Who the verb is being removed from, client or mob typepath + * * verb - typepath to a verb, or a list of verbs, supports lists of lists + */ /proc/remove_verb(client/target, verb_or_list_to_remove) if(IsAdminAdvancedProcCall()) return diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 021965dbccd..b502cfdaa6b 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -1,7 +1,7 @@ /* - FUN ZONE OF ADMIN LISTINGS - Try to keep this in sync with __DEFINES/traits.dm - quirks have it's own panel so we don't need them here. + FUN ZONE OF ADMIN LISTINGS + Try to keep this in sync with __DEFINES/traits.dm + quirks have it's own panel so we don't need them here. */ GLOBAL_LIST_INIT(traits_by_type, list( /mob = list( diff --git a/code/_js/menus.dm b/code/_js/menus.dm index 05e6edc6a6d..fc7c3a42662 100644 --- a/code/_js/menus.dm +++ b/code/_js/menus.dm @@ -1,37 +1,37 @@ #define js_dropdowns {" function dropdowns() { - var divs = document.getElementsByTagName('div'); - var headers = new Array(); - var links = new Array(); - for(var i=0;i=0) { - elem.className = elem.className.replace('visible','hidden'); - this.className = this.className.replace('open','closed'); - this.innerHTML = this.innerHTML.replace('-','+'); - } - else { - elem.className = elem.className.replace('hidden','visible'); - this.className = this.className.replace('closed','open'); - this.innerHTML = this.innerHTML.replace('+','-'); - } - return false; - } - })(links\[i\]); - } - } + var divs = document.getElementsByTagName('div'); + var headers = new Array(); + var links = new Array(); + for(var i=0;i=0) { + elem.className = elem.className.replace('visible','hidden'); + this.className = this.className.replace('open','closed'); + this.innerHTML = this.innerHTML.replace('-','+'); + } + else { + elem.className = elem.className.replace('hidden','visible'); + this.className = this.className.replace('closed','open'); + this.innerHTML = this.innerHTML.replace('+','-'); + } + return false; + } + })(links\[i\]); + } + } } "} diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 6773ebc3032..72192409e0d 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -30,14 +30,14 @@ next_move = world.time + ((num + adj)*mod) /** - * Before anything else, defer these calls to a per-mobtype handler. This allows us to - * remove istype() spaghetti code, but requires the addition of other handler procs to simplify it. - * - * Alternately, you could hardcode every mob's variation in a flat [/mob/proc/ClickOn] proc; however, - * that's a lot of code duplication and is hard to maintain. - * - * Note that this proc can be overridden, and is in the case of screen objects. - */ + * Before anything else, defer these calls to a per-mobtype handler. This allows us to + * remove istype() spaghetti code, but requires the addition of other handler procs to simplify it. + * + * Alternately, you could hardcode every mob's variation in a flat [/mob/proc/ClickOn] proc; however, + * that's a lot of code duplication and is hard to maintain. + * + * Note that this proc can be overridden, and is in the case of screen objects. + */ /atom/Click(location,control,params) if(flags_1 & INITIALIZED_1) SEND_SIGNAL(src, COMSIG_CLICK, location, control, params, usr) @@ -52,18 +52,18 @@ usr.MouseWheelOn(src, delta_x, delta_y, params) /** - * Standard mob ClickOn() - * Handles exceptions: Buildmode, middle click, modified clicks, mech actions - * - * After that, mostly just check your state, check whether you're holding an item, - * check whether you're adjacent to the target, then pass off the click to whoever - * is receiving it. - * The most common are: - * * [mob/proc/UnarmedAttack] (atom,adjacent) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves - * * [atom/proc/attackby] (item,user) - used only when adjacent - * * [obj/item/proc/afterattack] (atom,user,adjacent,params) - used both ranged and adjacent - * * [mob/proc/RangedAttack] (atom,params) - used only ranged, only used for tk and laser eyes but could be changed - */ + * Standard mob ClickOn() + * Handles exceptions: Buildmode, middle click, modified clicks, mech actions + * + * After that, mostly just check your state, check whether you're holding an item, + * check whether you're adjacent to the target, then pass off the click to whoever + * is receiving it. + * The most common are: + * * [mob/proc/UnarmedAttack] (atom,adjacent) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves + * * [atom/proc/attackby] (item,user) - used only when adjacent + * * [obj/item/proc/afterattack] (atom,user,adjacent,params) - used both ranged and adjacent + * * [mob/proc/RangedAttack] (atom,params) - used only ranged, only used for tk and laser eyes but could be changed + */ /mob/proc/ClickOn( atom/A, params ) if(world.time <= next_click) return @@ -180,9 +180,9 @@ return FALSE /** - * A backwards depth-limited breadth-first-search to see if the target is - * logically "in" anything adjacent to us. - */ + * A backwards depth-limited breadth-first-search to see if the target is + * logically "in" anything adjacent to us. + */ /atom/movable/proc/CanReach(atom/ultimate_target, obj/item/tool, view_only = FALSE) var/list/direct_access = DirectAccess() var/depth = 1 + (view_only ? STORAGE_VIEW_DEPTH : INVENTORY_DEPTH) @@ -254,37 +254,37 @@ /** - * Translates into [atom/proc/attack_hand], etc. - * - * Note: proximity_flag here is used to distinguish between normal usage (flag=1), - * and usage when clicking on things telekinetically (flag=0). This proc will - * not be called at ranged except with telekinesis. - * - * proximity_flag is not currently passed to attack_hand, and is instead used - * in human click code to allow glove touches only at melee range. - */ + * Translates into [atom/proc/attack_hand], etc. + * + * Note: proximity_flag here is used to distinguish between normal usage (flag=1), + * and usage when clicking on things telekinetically (flag=0). This proc will + * not be called at ranged except with telekinesis. + * + * proximity_flag is not currently passed to attack_hand, and is instead used + * in human click code to allow glove touches only at melee range. + */ /mob/proc/UnarmedAttack(atom/A, proximity_flag) if(ismob(A)) changeNext_move(CLICK_CD_MELEE) return /** - * Ranged unarmed attack: - * - * This currently is just a default for all mobs, involving - * laser eyes and telekinesis. You could easily add exceptions - * for things like ranged glove touches, spitting alien acid/neurotoxin, - * animals lunging, etc. - */ + * Ranged unarmed attack: + * + * This currently is just a default for all mobs, involving + * laser eyes and telekinesis. You could easily add exceptions + * for things like ranged glove touches, spitting alien acid/neurotoxin, + * animals lunging, etc. + */ /mob/proc/RangedAttack(atom/A, params) if(SEND_SIGNAL(src, COMSIG_MOB_ATTACK_RANGED, A, params) & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE /** - * Middle click - * Mainly used for swapping hands - */ + * Middle click + * Mainly used for swapping hands + */ /mob/proc/MiddleClickOn(atom/A) . = SEND_SIGNAL(src, COMSIG_MOB_MIDDLECLICKON, A) if(. & COMSIG_MOB_CANCEL_CLICKON) @@ -292,10 +292,10 @@ swap_hand() /** - * Shift click - * For most mobs, examine. - * This is overridden in ai.dm - */ + * Shift click + * For most mobs, examine. + * This is overridden in ai.dm + */ /mob/proc/ShiftClickOn(atom/A) A.ShiftClick(src) return @@ -307,9 +307,9 @@ return /** - * Ctrl click - * For most objects, pull - */ + * Ctrl click + * For most objects, pull + */ /mob/proc/CtrlClickOn(atom/A) A.CtrlClick(src) return @@ -330,9 +330,9 @@ else ..() /** - * Alt click - * Unused except for AI - */ + * Alt click + * Unused except for AI + */ /mob/proc/AltClickOn(atom/A) . = SEND_SIGNAL(src, COMSIG_MOB_ALTCLICKON, A) if(. & COMSIG_MOB_CANCEL_CLICKON) @@ -357,9 +357,9 @@ return T.Adjacent(src) /** - * Control+Shift click - * Unused except for AI - */ + * Control+Shift click + * Unused except for AI + */ /mob/proc/CtrlShiftClickOn(atom/A) A.CtrlShiftClick(src) return diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index ee2b1405421..ef12cf34e4d 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -2,18 +2,17 @@ //PUBLIC - call these wherever you want - -/mob/proc/throw_alert(category, type, severity, obj/new_master, override = FALSE) - -/* Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already - category is a text string. Each mob may only have one alert per category; the previous one will be replaced - path is a type path of the actual alert type to throw - severity is an optional number that will be placed at the end of the icon_state for this alert - For example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2" - new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. - Clicks are forwarded to master - Override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations. +/** + *Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already + *category is a text string. Each mob may only have one alert per category; the previous one will be replaced + *path is a type path of the actual alert type to throw + *severity is an optional number that will be placed at the end of the icon_state for this alert + *for example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2" + *new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. + *flicks are forwarded to master + *override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations. */ +/mob/proc/throw_alert(category, type, severity, obj/new_master, override = FALSE) if(!category || QDELETED(src)) return @@ -284,15 +283,15 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." var/obj/item/receiving /** - * Handles assigning most of the variables for the alert that pops up when an item is offered - * - * Handles setting the name, description and icon of the alert and tracking the person giving - * and the item being offered, also registers a signal that removes the alert from anyone who moves away from the giver - * Arguments: - * * taker - The person receiving the alert - * * giver - The person giving the alert and item - * * receiving - The item being given by the giver - */ + * Handles assigning most of the variables for the alert that pops up when an item is offered + * + * Handles setting the name, description and icon of the alert and tracking the person giving + * and the item being offered, also registers a signal that removes the alert from anyone who moves away from the giver + * Arguments: + * * taker - The person receiving the alert + * * giver - The person giving the alert and item + * * receiving - The item being given by the giver + */ /atom/movable/screen/alert/give/proc/setup(mob/living/carbon/taker, mob/living/carbon/giver, obj/item/receiving) name = "[giver] is offering [receiving]" desc = "[giver] is offering [receiving]. Click this alert to take it." diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index c80abe9267c..35e8df2d89e 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -84,11 +84,11 @@ filters += filter(type="alpha", render_source = O_LIGHTING_VISUAL_RENDER_TARGET, flags = MASK_INVERSE) /** - * Things placed on this mask the lighting plane. Doesn't render directly. - * - * Gets masked by blocking plane. Use for things that you want blocked by - * mobs, items, etc. - */ + * Things placed on this mask the lighting plane. Doesn't render directly. + * + * Gets masked by blocking plane. Use for things that you want blocked by + * mobs, items, etc. + */ /atom/movable/screen/plane_master/emissive name = "emissive plane master" plane = EMISSIVE_PLANE @@ -100,11 +100,11 @@ filters += filter(type="alpha", render_source=EMISSIVE_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE) /** - * Things placed on this always mask the lighting plane. Doesn't render directly. - * - * Always masks the light plane, isn't blocked by anything. Use for on mob glows, - * magic stuff, etc. - */ + * Things placed on this always mask the lighting plane. Doesn't render directly. + * + * Always masks the light plane, isn't blocked by anything. Use for on mob glows, + * magic stuff, etc. + */ /atom/movable/screen/plane_master/emissive_unblockable name = "unblockable emissive plane master" plane = EMISSIVE_UNBLOCKABLE_PLANE @@ -112,10 +112,10 @@ render_target = EMISSIVE_UNBLOCKABLE_RENDER_TARGET /** - * Things placed on this layer mask the emissive layer. Doesn't render directly - * - * You really shouldn't be directly using this, use atom helpers instead - */ + * Things placed on this layer mask the emissive layer. Doesn't render directly + * + * You really shouldn't be directly using this, use atom helpers instead + */ /atom/movable/screen/plane_master/emissive_blocker name = "emissive blocker plane master" plane = EMISSIVE_BLOCKER_PLANE diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index d5564b11f12..841da4399e0 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -122,7 +122,7 @@ var/slot_id /// Icon when empty. For now used only by humans. var/icon_empty - /// Icon when contains an item. For now used only by humans. + /// Icon when contains an item. For now used only by humans. var/icon_full /// The overlay when hovering over with an item in your hand var/image/object_overlay diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index caeab1e7af6..232c226e2f0 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -1,12 +1,12 @@ /** - * This is the proc that handles the order of an item_attack. - * - * The order of procs called is: - * * [/atom/proc/tool_act] on the target. If it returns TRUE, the chain will be stopped. - * * [/obj/item/proc/pre_attack] on src. If this returns TRUE, the chain will be stopped. - * * [/atom/proc/attackby] on the target. If it returns TRUE, the chain will be stopped. - * * [/obj/item/proc/afterattack]. The return value does not matter. - */ + * This is the proc that handles the order of an item_attack. + * + * The order of procs called is: + * * [/atom/proc/tool_act] on the target. If it returns TRUE, the chain will be stopped. + * * [/obj/item/proc/pre_attack] on src. If this returns TRUE, the chain will be stopped. + * * [/atom/proc/attackby] on the target. If it returns TRUE, the chain will be stopped. + * * [/obj/item/proc/afterattack]. The return value does not matter. + */ /obj/item/proc/melee_attack_chain(mob/user, atom/target, params) if(tool_behaviour && target.tool_act(user, src, tool_behaviour)) return TRUE @@ -26,30 +26,30 @@ interact(user) /** - * Called on the item before it hits something - * - * Arguments: - * * atom/A - The atom about to be hit - * * mob/living/user - The mob doing the htting - * * params - click params such as alt/shift etc - * - * See: [/obj/item/proc/melee_attack_chain] - */ + * Called on the item before it hits something + * + * Arguments: + * * atom/A - The atom about to be hit + * * mob/living/user - The mob doing the htting + * * params - click params such as alt/shift etc + * + * See: [/obj/item/proc/melee_attack_chain] + */ /obj/item/proc/pre_attack(atom/A, mob/living/user, params) //do stuff before attackby! if(SEND_SIGNAL(src, COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE return FALSE //return TRUE to avoid calling attackby after this proc does stuff /** - * Called on an object being hit by an item - * - * Arguments: - * * obj/item/W - The item hitting this atom - * * mob/user - The wielder of this item - * * params - click params such as alt/shift etc - * - * See: [/obj/item/proc/melee_attack_chain] - */ + * Called on an object being hit by an item + * + * Arguments: + * * obj/item/W - The item hitting this atom + * * mob/user - The wielder of this item + * * params - click params such as alt/shift etc + * + * See: [/obj/item/proc/melee_attack_chain] + */ /atom/proc/attackby(obj/item/W, mob/user, params) if(SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, W, user, params) & COMPONENT_NO_AFTERATTACK) return TRUE @@ -65,12 +65,12 @@ return I.attack(src, user) /** - * Called from [/mob/living/proc/attackby] - * - * Arguments: - * * mob/living/M - The mob being hit by this item - * * mob/living/user - The mob hitting with this item - */ + * Called from [/mob/living/proc/attackby] + * + * Arguments: + * * mob/living/M - The mob being hit by this item + * * mob/living/user - The mob hitting with this item + */ /obj/item/proc/attack(mob/living/M, mob/living/user) var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) if(signal_return & COMPONENT_CANCEL_ATTACK_CHAIN) @@ -152,14 +152,14 @@ return ..() /** - * Last proc in the [/obj/item/proc/melee_attack_chain] - * - * Arguments: - * * atom/target - The thing that was hit - * * mob/user - The mob doing the hitting - * * proximity_flag - is 1 if this afterattack was called on something adjacent, in your square, or on your person. - * * click_parameters - is the params string from byond [/atom/proc/Click] code, see that documentation. - */ + * Last proc in the [/obj/item/proc/melee_attack_chain] + * + * Arguments: + * * atom/target - The thing that was hit + * * mob/user - The mob doing the hitting + * * proximity_flag - is 1 if this afterattack was called on something adjacent, in your square, or on your person. + * * click_parameters - is the params string from byond [/atom/proc/Click] code, see that documentation. + */ /obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters) SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters) SEND_SIGNAL(user, COMSIG_MOB_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters) diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 2cb861ff34a..b36a93768e1 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -8,12 +8,12 @@ /** - * Telekinesis attack act, happens when the TK user clicks on a non-adjacent target in range. - * - * * By default, emulates the user's unarmed attack. - * * Called indirectly by the `COMSIG_MOB_ATTACK_RANGED` signal. - * * Returns `COMPONENT_CANCEL_ATTACK_CHAIN` when it performs any action, to further acts on the attack chain. - */ + * Telekinesis attack act, happens when the TK user clicks on a non-adjacent target in range. + * + * * By default, emulates the user's unarmed attack. + * * Called indirectly by the `COMSIG_MOB_ATTACK_RANGED` signal. + * * Returns `COMPONENT_CANCEL_ATTACK_CHAIN` when it performs any action, to further acts on the attack chain. + */ /atom/proc/attack_tk(mob/user) if(user.stat || !tkMaxRangeCheck(user, src)) return @@ -38,11 +38,11 @@ /** - * Telekinesis object grab act. - * - * * Called by `/obj/attack_tk()`. - * * Returns `COMPONENT_CANCEL_ATTACK_CHAIN` when it performs any action, to further acts on the attack chain. - */ + * Telekinesis object grab act. + * + * * Called by `/obj/attack_tk()`. + * * Returns `COMPONENT_CANCEL_ATTACK_CHAIN` when it performs any action, to further acts on the attack chain. + */ /obj/proc/attack_tk_grab(mob/user) var/obj/item/tk_grab/O = new(src) O.tk_user = user @@ -58,13 +58,13 @@ /** - * Telekinesis item attack_self act. - * - * * This is similar to item attack_self, but applies to anything that you can grab with a telekinetic grab. - * * It is used for manipulating things at range, for example, opening and closing closets.. - * * Defined at the `/atom` level but only used at the `/obj/item` one. - * * Returns `COMPONENT_CANCEL_ATTACK_CHAIN` when it performs any action, to further acts on the attack chain. - */ + * Telekinesis item attack_self act. + * + * * This is similar to item attack_self, but applies to anything that you can grab with a telekinetic grab. + * * It is used for manipulating things at range, for example, opening and closing closets.. + * * Defined at the `/atom` level but only used at the `/obj/item` one. + * * Returns `COMPONENT_CANCEL_ATTACK_CHAIN` when it performs any action, to further acts on the attack chain. + */ /atom/proc/attack_self_tk(mob/user) return diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 827ffd6eac4..e59548399a1 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -263,9 +263,9 @@ special keywords defined in _DEFINES/admin.dm Example config: { - "Assistant" : "Don't kill everyone", - "/datum/antagonist/highlander" : "Kill everyone", - "Ash Walker" : "Kill all spacemans" + "Assistant" : "Don't kill everyone", + "/datum/antagonist/highlander" : "Kill everyone", + "Ash Walker" : "Kill all spacemans" } */ diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm index f90cebd5ba1..a15056e4427 100644 --- a/code/controllers/failsafe.dm +++ b/code/controllers/failsafe.dm @@ -1,7 +1,7 @@ - /** - * Failsafe - * - * Pretty much pokes the MC to make sure it's still alive. +/** + * Failsafe + * + * Pretty much pokes the MC to make sure it's still alive. **/ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 3ec5045a881..59ac68960cb 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -1,10 +1,10 @@ - /** - * StonedMC - * - * Designed to properly split up a given tick among subsystems - * Note: if you read parts of this code and think "why is it doing it that way" - * Odds are, there is a reason - * +/** + * StonedMC + * + * Designed to properly split up a given tick among subsystems + * Note: if you read parts of this code and think "why is it doing it that way" + * Odds are, there is a reason + * **/ //This is the ABSOLUTE ONLY THING that should init globally like this diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 4412ecd79c8..a688ea08c8d 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -466,27 +466,27 @@ GLOBAL_LIST_EMPTY(colored_images) return mix.gas_string /** - * Adds a given machine to the processing system for SSAIR_ATMOSMACHINERY processing. - * - * This should be fast, so no error checking is done. - * If you start adding in things you shouldn't, you'll cause runtimes every 2 seconds for every - * object you added. Do not use irresponsibly. - * Arguments: - * * machine - The machine to start processing. Can be any /obj/machinery. - */ + * Adds a given machine to the processing system for SSAIR_ATMOSMACHINERY processing. + * + * This should be fast, so no error checking is done. + * If you start adding in things you shouldn't, you'll cause runtimes every 2 seconds for every + * object you added. Do not use irresponsibly. + * Arguments: + * * machine - The machine to start processing. Can be any /obj/machinery. + */ /datum/controller/subsystem/air/proc/start_processing_machine(obj/machinery/machine) atmos_machinery += machine /** - * Removes a given machine to the processing system for SSAIR_ATMOSMACHINERY processing. - * - * This should be fast, so no error checking is done. - * If you call this proc when your machine isn't processing, you're likely attempting to - * remove something that isn't in a list with over 1000 objects, twice. Do not use - * irresponsibly. - * Arguments: - * * machine - The machine to stop processing. - */ + * Removes a given machine to the processing system for SSAIR_ATMOSMACHINERY processing. + * + * This should be fast, so no error checking is done. + * If you call this proc when your machine isn't processing, you're likely attempting to + * remove something that isn't in a list with over 1000 objects, twice. Do not use + * irresponsibly. + * Arguments: + * * machine - The machine to stop processing. + */ /datum/controller/subsystem/air/proc/stop_processing_machine(obj/machinery/machine) atmos_machinery -= machine diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 218bf2ade7f..b214d71ba83 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -183,7 +183,7 @@ feedback data can be recorded in 5 formats: "tally" used to track the number of occurances of multiple related values i.e. how many times each type of gun is fired further calls to the same key will: - add or subtract from the saved value of the data key if it already exists + add or subtract from the saved value of the data key if it already exists append the key and it's value if it doesn't exist calls: SSblackbox.record_feedback("tally", "example", 1, "sample data") SSblackbox.record_feedback("tally", "example", 4, "sample data") @@ -195,7 +195,7 @@ feedback data can be recorded in 5 formats: the final element in the data list is used as the tracking key, all prior elements are used for nesting all data list elements must be strings further calls to the same key will: - add or subtract from the saved value of the data key if it already exists in the same multi-dimensional position + add or subtract from the saved value of the data key if it already exists in the same multi-dimensional position append the key and it's value if it doesn't exist calls: SSblackbox.record_feedback("nested tally", "example", 1, list("fruit", "orange", "apricot")) SSblackbox.record_feedback("nested tally", "example", 2, list("fruit", "orange", "orange")) diff --git a/code/controllers/subsystem/chat.dm b/code/controllers/subsystem/chat.dm index f2e9da704f4..0e4f8ecad2c 100644 --- a/code/controllers/subsystem/chat.dm +++ b/code/controllers/subsystem/chat.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index d1c318aca5b..b6b750fbf4b 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -209,7 +209,7 @@ You are expected to do your own escaping of the data, and expected to provide yo The duplicate_key arg can be true to automatically generate this part of the query or set to a string that is appended to the end of the query Ignore_errors instructes mysql to continue inserting rows if some of them have errors. - the erroneous row(s) aren't inserted and there isn't really any way to know why or why errored + the erroneous row(s) aren't inserted and there isn't really any way to know why or why errored Delayed insert mode was removed in mysql 7 and only works with MyISAM type tables, It was included because it is still supported in mariadb. It does not work with duplicate_key and the mysql server ignores it in those cases diff --git a/code/controllers/subsystem/discord.dm b/code/controllers/subsystem/discord.dm index 0ed4c450b43..0edf4248e93 100644 --- a/code/controllers/subsystem/discord.dm +++ b/code/controllers/subsystem/discord.dm @@ -92,26 +92,26 @@ SUBSYSTEM_DEF(discord) notify_members_cache = notify_members // Updates the cache list /** - * Given a ckey, look up the discord user id attached to the user, if any - * - * This gets the most recent entry from the discord link table that is associated with the given ckey - * - * Arguments: - * * lookup_ckey A string representing the ckey to search on - */ + * Given a ckey, look up the discord user id attached to the user, if any + * + * This gets the most recent entry from the discord link table that is associated with the given ckey + * + * Arguments: + * * lookup_ckey A string representing the ckey to search on + */ /datum/controller/subsystem/discord/proc/lookup_id(lookup_ckey) var/datum/discord_link_record/link = find_discord_link_by_ckey(lookup_ckey) if(link) return link.discord_id /** - * Given a discord id as a string, look up the ckey attached to that account, if any - * - * This gets the most recent entry from the discord_link table that is associated with this discord id snowflake - * - * Arguments: - * * lookup_id The discord id as a string - */ + * Given a discord id as a string, look up the ckey attached to that account, if any + * + * This gets the most recent entry from the discord_link table that is associated with this discord id snowflake + * + * Arguments: + * * lookup_id The discord id as a string + */ /datum/controller/subsystem/discord/proc/lookup_ckey(lookup_id) var/datum/discord_link_record/link = find_discord_link_by_discord_id(lookup_id) if(link) @@ -127,28 +127,28 @@ SUBSYSTEM_DEF(discord) return generate_one_time_token(ckey) /** - * Generate a timebound token for discord verification - * - * This uses the common word list to generate a six word random token, this token can then be fed to a discord bot that has access - * to the same database, and it can use it to link a ckey to a discord id, with minimal user effort - * - * It returns the token to the calling proc, after inserting an entry into the discord_link table of the following form - * - * ``` - * (unique_id, ckey, null, the current time, the one time token generated) - * the null value will be filled out with the discord id by the integrated discord bot when a user verifies - * ``` - * - * Notes: - * * The token is guaranteed to unique during it's validity period - * * The validity period is currently set at 4 hours - * * a token may not be unique outside it's validity window (to reduce conflicts) - * - * Arguments: - * * ckey_for a string representing the ckey this token is for - * - * Returns a string representing the one time token - */ + * Generate a timebound token for discord verification + * + * This uses the common word list to generate a six word random token, this token can then be fed to a discord bot that has access + * to the same database, and it can use it to link a ckey to a discord id, with minimal user effort + * + * It returns the token to the calling proc, after inserting an entry into the discord_link table of the following form + * + * ``` + * (unique_id, ckey, null, the current time, the one time token generated) + * the null value will be filled out with the discord id by the integrated discord bot when a user verifies + * ``` + * + * Notes: + * * The token is guaranteed to unique during it's validity period + * * The validity period is currently set at 4 hours + * * a token may not be unique outside it's validity window (to reduce conflicts) + * + * Arguments: + * * ckey_for a string representing the ckey this token is for + * + * Returns a string representing the one time token + */ /datum/controller/subsystem/discord/proc/generate_one_time_token(ckey_for) var/not_unique = TRUE @@ -175,18 +175,18 @@ SUBSYSTEM_DEF(discord) return one_time_token /** - * Find discord link entry by the passed in user token - * - * This will look into the discord link table and return the *first* entry that matches the given one time token - * - * Remember, multiple entries can exist, as they are only guaranteed to be unique for their validity period - * - * Arguments: - * * one_time_token the string of words representing the one time token - * * timebound A boolean flag, that specifies if it should only look for entries within the last 4 hours, off by default - * - * Returns a [/datum/discord_link_record] - */ + * Find discord link entry by the passed in user token + * + * This will look into the discord link table and return the *first* entry that matches the given one time token + * + * Remember, multiple entries can exist, as they are only guaranteed to be unique for their validity period + * + * Arguments: + * * one_time_token the string of words representing the one time token + * * timebound A boolean flag, that specifies if it should only look for entries within the last 4 hours, off by default + * + * Returns a [/datum/discord_link_record] + */ /datum/controller/subsystem/discord/proc/find_discord_link_by_token(one_time_token, timebound = FALSE) var/timeboundsql = "" if(timebound) @@ -207,18 +207,18 @@ SUBSYSTEM_DEF(discord) qdel(query_get_discord_link_record) /** - * Find discord link entry by the passed in user ckey - * - * This will look into the discord link table and return the *first* entry that matches the given ckey - * - * Remember, multiple entries can exist - * - * Arguments: - * * ckey the users ckey as a string - * * timebound should we search only in the last 4 hours - * - * Returns a [/datum/discord_link_record] - */ + * Find discord link entry by the passed in user ckey + * + * This will look into the discord link table and return the *first* entry that matches the given ckey + * + * Remember, multiple entries can exist + * + * Arguments: + * * ckey the users ckey as a string + * * timebound should we search only in the last 4 hours + * + * Returns a [/datum/discord_link_record] + */ /datum/controller/subsystem/discord/proc/find_discord_link_by_ckey(ckey, timebound = FALSE) var/timeboundsql = "" if(timebound) @@ -242,18 +242,18 @@ SUBSYSTEM_DEF(discord) /** - * Find discord link entry by the passed in user ckey - * - * This will look into the discord link table and return the *first* entry that matches the given ckey - * - * Remember, multiple entries can exist - * - * Arguments: - * * discord_id The users discord id (string) - * * timebound should we search only in the last 4 hours - * - * Returns a [/datum/discord_link_record] - */ + * Find discord link entry by the passed in user ckey + * + * This will look into the discord link table and return the *first* entry that matches the given ckey + * + * Remember, multiple entries can exist + * + * Arguments: + * * discord_id The users discord id (string) + * * timebound should we search only in the last 4 hours + * + * Returns a [/datum/discord_link_record] + */ /datum/controller/subsystem/discord/proc/find_discord_link_by_discord_id(discord_id, timebound = FALSE) var/timeboundsql = "" if(timebound) diff --git a/code/controllers/subsystem/economy.dm b/code/controllers/subsystem/economy.dm index 1ce10c08293..2396934805c 100644 --- a/code/controllers/subsystem/economy.dm +++ b/code/controllers/subsystem/economy.dm @@ -59,17 +59,17 @@ SUBSYSTEM_DEF(economy) price_update() /** - * Handy proc for obtaining a department's bank account, given the department ID, AKA the define assigned for what department they're under. - */ + * Handy proc for obtaining a department's bank account, given the department ID, AKA the define assigned for what department they're under. + */ /datum/controller/subsystem/economy/proc/get_dep_account(dep_id) for(var/datum/bank_account/department/D in generated_accounts) if(D.department_id == dep_id) return D /** - * Departmental income payments are kept static and linear for every department, and paid out once every 5 minutes, as determined by MAX_GRANT_DPT. - * Iterates over every department account for the same payment. - */ + * Departmental income payments are kept static and linear for every department, and paid out once every 5 minutes, as determined by MAX_GRANT_DPT. + * Iterates over every department account for the same payment. + */ /datum/controller/subsystem/economy/proc/departmental_payouts() for(var/iteration in department_accounts) var/datum/bank_account/dept_account = get_dep_account(iteration) @@ -78,10 +78,10 @@ SUBSYSTEM_DEF(economy) dept_account.adjust_money(MAX_GRANT_DPT) /** - * Updates the prices of all station vendors with the inflation_value, increasing/decreasing costs across the station, and alerts the crew. - * - * Iterates over the machines list for vending machines, resets their regular and premium product prices (Not contraband), and sends a message to the newscaster network. - **/ + * Updates the prices of all station vendors with the inflation_value, increasing/decreasing costs across the station, and alerts the crew. + * + * Iterates over the machines list for vending machines, resets their regular and premium product prices (Not contraband), and sends a message to the newscaster network. + **/ /datum/controller/subsystem/economy/proc/price_update() for(var/obj/machinery/vending/V in GLOB.machines) if(istype(V, /obj/machinery/vending/custom)) @@ -93,12 +93,12 @@ SUBSYSTEM_DEF(economy) GLOB.news_network.SubmitArticle(earning_report, "Station Earnings Report", "Station Announcements", null, update_alert = FALSE) /** - * Proc that returns a value meant to shift inflation values in vendors, based on how much money exists on the station. - * - * If crew are somehow aquiring far too much money, this value will dynamically cause vendables across the station to skyrocket in price until some money is spent. - * Additionally, civilain bounties will cost less, and cargo goodies will increase in price as well. - * The goal here is that if you want to spend money, you'll have to get it, and the most efficient method is typically from other players. - **/ + * Proc that returns a value meant to shift inflation values in vendors, based on how much money exists on the station. + * + * If crew are somehow aquiring far too much money, this value will dynamically cause vendables across the station to skyrocket in price until some money is spent. + * Additionally, civilain bounties will cost less, and cargo goodies will increase in price as well. + * The goal here is that if you want to spend money, you'll have to get it, and the most efficient method is typically from other players. + **/ /datum/controller/subsystem/economy/proc/inflation_value() if(!bank_accounts_by_id.len) return 1 diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 6f287e047e4..911625fe713 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -155,7 +155,7 @@ SUBSYSTEM_DEF(mapping) qdel(T, TRUE) /* Nuke threats, for making the blue tiles on the station go RED - Used by the AI doomsday and the self-destruct nuke. +Used by the AI doomsday and the self-destruct nuke. */ /datum/controller/subsystem/mapping/proc/add_nuke_threat(datum/nuke) diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index 457cb4fbc77..058645da495 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -33,18 +33,18 @@ SUBSYSTEM_DEF(processing) /** - * This proc is called on a datum on every "cycle" if it is being processed by a subsystem. The time between each cycle is determined by the subsystem's "wait" setting. - * You can start and stop processing a datum using the START_PROCESSING and STOP_PROCESSING defines. - * - * Since the wait setting of a subsystem can be changed at any time, it is important that any rate-of-change that you implement in this proc is multiplied by the delta_time that is sent as a parameter, - * Additionally, any "prob" you use in this proc should instead use the DT_PROB define to make sure that the final probability per second stays the same even if the subsystem's wait is altered. - * Examples where this must be considered: - * - Implementing a cooldown timer, use `mytimer -= delta_time`, not `mytimer -= 1`. This way, `mytimer` will always have the unit of seconds - * - Damaging a mob, do `L.adjustFireLoss(20 * delta_time)`, not `L.adjustFireLoss(20)`. This way, the damage per second stays constant even if the wait of the subsystem is changed - * - Probability of something happening, do `if(DT_PROB(25, delta_time))`, not `if(prob(25))`. This way, if the subsystem wait is e.g. lowered, there won't be a higher chance of this event happening per second - * - * If you override this do not call parent, as it will return PROCESS_KILL. This is done to prevent objects that dont override process() from staying in the processing list - */ + * This proc is called on a datum on every "cycle" if it is being processed by a subsystem. The time between each cycle is determined by the subsystem's "wait" setting. + * You can start and stop processing a datum using the START_PROCESSING and STOP_PROCESSING defines. + * + * Since the wait setting of a subsystem can be changed at any time, it is important that any rate-of-change that you implement in this proc is multiplied by the delta_time that is sent as a parameter, + * Additionally, any "prob" you use in this proc should instead use the DT_PROB define to make sure that the final probability per second stays the same even if the subsystem's wait is altered. + * Examples where this must be considered: + * - Implementing a cooldown timer, use `mytimer -= delta_time`, not `mytimer -= 1`. This way, `mytimer` will always have the unit of seconds + * - Damaging a mob, do `L.adjustFireLoss(20 * delta_time)`, not `L.adjustFireLoss(20)`. This way, the damage per second stays constant even if the wait of the subsystem is changed + * - Probability of something happening, do `if(DT_PROB(25, delta_time))`, not `if(prob(25))`. This way, if the subsystem wait is e.g. lowered, there won't be a higher chance of this event happening per second + * + * If you override this do not call parent, as it will return PROCESS_KILL. This is done to prevent objects that dont override process() from staying in the processing list + */ /datum/proc/process(delta_time) set waitfor = FALSE return PROCESS_KILL diff --git a/code/controllers/subsystem/runechat.dm b/code/controllers/subsystem/runechat.dm index 6b950a8cb50..9bd665e5ee7 100644 --- a/code/controllers/subsystem/runechat.dm +++ b/code/controllers/subsystem/runechat.dm @@ -6,15 +6,15 @@ #define BUCKET_LIMIT (world.time + TICKS2DS(min(BUCKET_LEN - (SSrunechat.practical_offset - DS2TICKS(world.time - SSrunechat.head_offset)) - 1, BUCKET_LEN - 1))) /** - * # Runechat Subsystem - * - * Maintains a timer-like system to handle destruction of runechat messages. Much of this code is modeled - * after or adapted from the timer subsystem. - * - * Note that this has the same structure for storing and queueing messages as the timer subsystem does - * for handling timers: the bucket_list is a list of chatmessage datums, each of which are the head - * of a circularly linked list. Any given index in bucket_list could be null, representing an empty bucket. - */ + * # Runechat Subsystem + * + * Maintains a timer-like system to handle destruction of runechat messages. Much of this code is modeled + * after or adapted from the timer subsystem. + * + * Note that this has the same structure for storing and queueing messages as the timer subsystem does + * for handling timers: the bucket_list is a list of chatmessage datums, each of which are the head + * of a circularly linked list. Any given index in bucket_list could be null, representing an empty bucket. + */ SUBSYSTEM_DEF(runechat) name = "Runechat" flags = SS_TICKER | SS_NO_INIT @@ -131,14 +131,14 @@ SUBSYSTEM_DEF(runechat) bucket_resolution = world.tick_lag /** - * Enters the runechat subsystem with this chatmessage, inserting it into the end-of-life queue - * - * This will also account for a chatmessage already being registered, and in which case - * the position will be updated to remove it from the previous location if necessary - * - * Arguments: - * * new_sched_destruction Optional, when provided is used to update an existing message with the new specified time - */ + * Enters the runechat subsystem with this chatmessage, inserting it into the end-of-life queue + * + * This will also account for a chatmessage already being registered, and in which case + * the position will be updated to remove it from the previous location if necessary + * + * Arguments: + * * new_sched_destruction Optional, when provided is used to update an existing message with the new specified time + */ /datum/chatmessage/proc/enter_subsystem(new_sched_destruction = 0) // Get local references from subsystem as they are faster to access than the datum references var/list/bucket_list = SSrunechat.bucket_list @@ -194,8 +194,8 @@ SUBSYSTEM_DEF(runechat) /** - * Removes this chatmessage datum from the runechat subsystem - */ + * Removes this chatmessage datum from the runechat subsystem + */ /datum/chatmessage/proc/leave_subsystem() // Attempt to find the bucket that contains this chat message var/bucket_pos = BUCKET_POS(scheduled_destruction) diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 9f82595eb33..c9604c0d42d 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -496,10 +496,10 @@ SUBSYSTEM_DEF(shuttle) // Then create a transit docking port in the middle var/coords = M.return_coords(0, 0, dock_dir) /* 0------2 - | | - | | - | x | - 3------1 + * | | + * | | + * | x | + * 3------1 */ var/x0 = coords[1] diff --git a/code/controllers/subsystem/sounds.dm b/code/controllers/subsystem/sounds.dm index d07ac10df7b..fa9ba3c4728 100644 --- a/code/controllers/subsystem/sounds.dm +++ b/code/controllers/subsystem/sounds.dm @@ -85,8 +85,8 @@ SUBSYSTEM_DEF(sounds) using_channels_by_datum[D] += . /** - * Reserves a channel and updates the datastructure. Private proc. - */ + * Reserves a channel and updates the datastructure. Private proc. + */ /datum/controller/subsystem/sounds/proc/reserve_channel() PRIVATE_PROC(TRUE) if(channel_reserve_high <= random_channels_min) // out of channels @@ -96,8 +96,8 @@ SUBSYSTEM_DEF(sounds) return channel /** - * Frees a channel and updates the datastructure. Private proc. - */ + * Frees a channel and updates the datastructure. Private proc. + */ /datum/controller/subsystem/sounds/proc/free_channel(number) PRIVATE_PROC(TRUE) var/text_channel = num2text(number) diff --git a/code/controllers/subsystem/tgui.dm b/code/controllers/subsystem/tgui.dm index c4e823dca50..c64e743fc03 100644 --- a/code/controllers/subsystem/tgui.dm +++ b/code/controllers/subsystem/tgui.dm @@ -1,10 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui subsystem * * Contains all tgui state and subsystem code. * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ SUBSYSTEM_DEF(tgui) diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index ede03433453..de5c4023980 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -8,14 +8,14 @@ #define TIMER_ID_MAX (2**24) /** - * # Timer Subsystem - * - * Handles creation, callbacks, and destruction of timed events. - * - * It is important to understand the buckets used in the timer subsystem are just a series of circular doubly-linked - * lists. The object at a given index in bucket_list is a /datum/timedevent, the head of a circular list, which has prev - * and next references for the respective elements in that bucket's circular list. - */ + * # Timer Subsystem + * + * Handles creation, callbacks, and destruction of timed events. + * + * It is important to understand the buckets used in the timer subsystem are just a series of circular doubly-linked + * lists. The object at a given index in bucket_list is a /datum/timedevent, the head of a circular list, which has prev + * and next references for the respective elements in that bucket's circular list. + */ SUBSYSTEM_DEF(timer) name = "Timer" wait = 1 // SS_TICKER subsystem, so wait is in ticks @@ -209,8 +209,8 @@ SUBSYSTEM_DEF(timer) break /** - * Generates a string with details about the timed event for debugging purposes - */ + * Generates a string with details about the timed event for debugging purposes + */ /datum/controller/subsystem/timer/proc/get_timer_debug_string(datum/timedevent/TE) . = "Timer: [TE]" . += "Prev: [TE.prev ? TE.prev : "NULL"], Next: [TE.next ? TE.next : "NULL"]" @@ -222,8 +222,8 @@ SUBSYSTEM_DEF(timer) . += ", NO CALLBACK" /** - * Destroys the existing buckets and creates new buckets from the existing timed events - */ + * Destroys the existing buckets and creates new buckets from the existing timed events + */ /datum/controller/subsystem/timer/proc/reset_buckets() var/list/bucket_list = src.bucket_list // Store local reference to datum var, this is faster var/list/alltimers = list() @@ -320,14 +320,14 @@ SUBSYSTEM_DEF(timer) bucket_list |= SStimer.bucket_list /** - * # Timed Event - * - * This is the actual timer, it contains the callback and necessary data to maintain - * the timer. - * - * See the documentation for the timer subsystem for an explanation of the buckets referenced - * below in next and prev - */ + * # Timed Event + * + * This is the actual timer, it contains the callback and necessary data to maintain + * the timer. + * + * See the documentation for the timer subsystem for an explanation of the buckets referenced + * below in next and prev + */ /datum/timedevent /// ID used for timers when the TIMER_STOPPABLE flag is present var/id @@ -418,8 +418,8 @@ SUBSYSTEM_DEF(timer) return QDEL_HINT_IWILLGC /** - * Removes this timed event from any relevant buckets, or the secondary queue - */ + * Removes this timed event from any relevant buckets, or the secondary queue + */ /datum/timedevent/proc/bucketEject() // Attempt to find bucket that contains this timed event var/bucketpos = BUCKET_POS(src) @@ -459,13 +459,13 @@ SUBSYSTEM_DEF(timer) prev = next = null /** - * Attempts to add this timed event to a bucket, will enter the secondary queue - * if there are no appropriate buckets at this time. - * - * Secondary queueing of timed events will occur when the timespan covered by the existing - * buckets is exceeded by the time at which this timed event is scheduled to be invoked. - * If the timed event is tracking client time, it will be added to a special bucket. - */ + * Attempts to add this timed event to a bucket, will enter the secondary queue + * if there are no appropriate buckets at this time. + * + * Secondary queueing of timed events will occur when the timespan covered by the existing + * buckets is exceeded by the time at which this timed event is scheduled to be invoked. + * If the timed event is tracking client time, it will be added to a special bucket. + */ /datum/timedevent/proc/bucketJoin() // Generate debug-friendly name for timer var/static/list/bitfield_flags = list("TIMER_UNIQUE", "TIMER_OVERRIDE", "TIMER_CLIENT_TIME", "TIMER_STOPPABLE", "TIMER_NO_HASH_WAIT", "TIMER_LOOP") @@ -507,8 +507,8 @@ SUBSYSTEM_DEF(timer) prev.next = src /** - * Returns a string of the type of the callback for this timer - */ + * Returns a string of the type of the callback for this timer + */ /datum/timedevent/proc/getcallingtype() . = "ERROR" if (callBack.object == GLOBAL_PROC) @@ -517,14 +517,14 @@ SUBSYSTEM_DEF(timer) . = "[callBack.object.type]" /** - * Create a new timer and insert it in the queue. - * You should not call this directly, and should instead use the addtimer macro, which includes source information. - * - * Arguments: - * * callback the callback to call on timer finish - * * wait deciseconds to run the timer for - * * flags flags for this timer, see: code\__DEFINES\subsystems.dm - */ + * Create a new timer and insert it in the queue. + * You should not call this directly, and should instead use the addtimer macro, which includes source information. + * + * Arguments: + * * callback the callback to call on timer finish + * * wait deciseconds to run the timer for + * * flags flags for this timer, see: code\__DEFINES\subsystems.dm + */ /proc/_addtimer(datum/callback/callback, wait = 0, flags = 0, file, line) if (!callback) CRASH("addtimer called without a callback") @@ -569,11 +569,11 @@ SUBSYSTEM_DEF(timer) return timer.id /** - * Delete a timer - * - * Arguments: - * * id a timerid or a /datum/timedevent - */ + * Delete a timer + * + * Arguments: + * * id a timerid or a /datum/timedevent + */ /proc/deltimer(id) if (!id) return FALSE @@ -590,11 +590,11 @@ SUBSYSTEM_DEF(timer) return FALSE /** - * Get the remaining deciseconds on a timer - * - * Arguments: - * * id a timerid or a /datum/timedevent - */ + * Get the remaining deciseconds on a timer + * + * Arguments: + * * id a timerid or a /datum/timedevent + */ /proc/timeleft(id) if (!id) return null diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index 5791b3a680a..33d4831fe73 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -17,153 +17,183 @@ SUBSYSTEM_DEF(traumas) "aliens", "strangers", "birds", "falling", "anime", "insects")) phobia_regexes = list("spiders" = construct_phobia_regex("spiders"), - "space" = construct_phobia_regex("space"), - "security" = construct_phobia_regex("security"), - "clowns" = construct_phobia_regex("clowns"), - "greytide" = construct_phobia_regex("greytide"), - "lizards" = construct_phobia_regex("lizards"), - "skeletons" = construct_phobia_regex("skeletons"), - "snakes" = construct_phobia_regex("snakes"), - "robots" = construct_phobia_regex("robots"), - "doctors" = construct_phobia_regex("doctors"), - "authority" = construct_phobia_regex("authority"), - "the supernatural" = construct_phobia_regex("the supernatural"), - "aliens" = construct_phobia_regex("aliens"), - "strangers" = construct_phobia_regex("strangers"), - "conspiracies" = construct_phobia_regex("conspiracies"), - "birds" = construct_phobia_regex("birds"), - "falling" = construct_phobia_regex("falling"), - "anime" = construct_phobia_regex("anime"), - "insects" = construct_phobia_regex("insects") - ) + "space" = construct_phobia_regex("space"), + "security" = construct_phobia_regex("security"), + "clowns" = construct_phobia_regex("clowns"), + "greytide" = construct_phobia_regex("greytide"), + "lizards" = construct_phobia_regex("lizards"), + "skeletons" = construct_phobia_regex("skeletons"), + "snakes" = construct_phobia_regex("snakes"), + "robots" = construct_phobia_regex("robots"), + "doctors" = construct_phobia_regex("doctors"), + "authority" = construct_phobia_regex("authority"), + "the supernatural" = construct_phobia_regex("the supernatural"), + "aliens" = construct_phobia_regex("aliens"), + "strangers" = construct_phobia_regex("strangers"), + "conspiracies" = construct_phobia_regex("conspiracies"), + "birds" = construct_phobia_regex("birds"), + "falling" = construct_phobia_regex("falling"), + "anime" = construct_phobia_regex("anime"), + "insects" = construct_phobia_regex("insects"), + ) phobia_mobs = list("spiders" = typecacheof(list(/mob/living/simple_animal/hostile/poison/giant_spider)), - "security" = typecacheof(list(/mob/living/simple_animal/bot/secbot)), - "lizards" = typecacheof(list(/mob/living/simple_animal/hostile/lizard)), - "skeletons" = typecacheof(list(/mob/living/simple_animal/hostile/skeleton)), - "snakes" = typecacheof(list(/mob/living/simple_animal/hostile/retaliate/poison/snake)), - "robots" = typecacheof(list(/mob/living/silicon/robot, /mob/living/silicon/ai, - /mob/living/simple_animal/drone, /mob/living/simple_animal/bot, /mob/living/simple_animal/hostile/swarmer)), - "doctors" = typecacheof(list(/mob/living/simple_animal/bot/medbot)), - "the supernatural" = typecacheof(list(/mob/living/simple_animal/hostile/construct, - /mob/living/simple_animal/revenant, /mob/living/simple_animal/shade)), - "aliens" = typecacheof(list(/mob/living/carbon/alien, /mob/living/simple_animal/slime)), - "conspiracies" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/drone, - /mob/living/simple_animal/pet/penguin)), - "birds" = typecacheof(list(/mob/living/simple_animal/parrot, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken, - /mob/living/simple_animal/pet/penguin)), - "anime" = typecacheof(list(/mob/living/simple_animal/hostile/guardian)), - "insects" = typecacheof(list(/mob/living/simple_animal/hostile/cockroach, /mob/living/simple_animal/hostile/poison/bees)) - ) + "security" = typecacheof(list(/mob/living/simple_animal/bot/secbot)), + "lizards" = typecacheof(list(/mob/living/simple_animal/hostile/lizard)), + "skeletons" = typecacheof(list(/mob/living/simple_animal/hostile/skeleton)), + "snakes" = typecacheof(list(/mob/living/simple_animal/hostile/retaliate/poison/snake)), + "robots" = typecacheof(list(/mob/living/silicon/robot, /mob/living/silicon/ai, + /mob/living/simple_animal/drone, /mob/living/simple_animal/bot, /mob/living/simple_animal/hostile/swarmer, + )), + "doctors" = typecacheof(list(/mob/living/simple_animal/bot/medbot)), + "the supernatural" = typecacheof(list(/mob/living/simple_animal/hostile/construct, + /mob/living/simple_animal/revenant, /mob/living/simple_animal/shade + )), + "aliens" = typecacheof(list(/mob/living/carbon/alien, /mob/living/simple_animal/slime)), + "conspiracies" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/drone, + /mob/living/simple_animal/pet/penguin + )), + "birds" = typecacheof(list( + /mob/living/simple_animal/parrot, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken, + /mob/living/simple_animal/pet/penguin, + )), + "anime" = typecacheof(list(/mob/living/simple_animal/hostile/guardian)), + "insects" = typecacheof(list(/mob/living/simple_animal/hostile/cockroach, /mob/living/simple_animal/hostile/poison/bees)) + ) phobia_objs = list("snakes" = typecacheof(list(/obj/item/rod_of_asclepius, /obj/item/toy/plush/snakeplushie)), + "spiders" = typecacheof(list(/obj/structure/spider)), + "security" = typecacheof(list( + /obj/item/clothing/under/rank/security/officer, /obj/item/clothing/under/rank/security/warden, + /obj/item/clothing/under/rank/security/head_of_security, /obj/item/clothing/under/rank/security/detective, + /obj/item/melee/baton, /obj/item/gun/energy/taser, /obj/item/restraints/handcuffs, + /obj/machinery/door/airlock/security, /obj/effect/hallucination/simple/securitron, + )), - "spiders" = typecacheof(list(/obj/structure/spider)), + "clowns" = typecacheof(list( + /obj/item/clothing/under/rank/civilian/clown, /obj/item/clothing/shoes/clown_shoes, + /obj/item/clothing/mask/gas/clown_hat, /obj/item/instrument/bikehorn, + /obj/item/pda/clown, /obj/item/grown/bananapeel, /obj/item/food/cheesiehonkers, + /obj/item/trash/cheesie, + )), - "security" = typecacheof(list(/obj/item/clothing/under/rank/security/officer, /obj/item/clothing/under/rank/security/warden, - /obj/item/clothing/under/rank/security/head_of_security, /obj/item/clothing/under/rank/security/detective, - /obj/item/melee/baton, /obj/item/gun/energy/taser, /obj/item/restraints/handcuffs, - /obj/machinery/door/airlock/security, /obj/effect/hallucination/simple/securitron)), + "greytide" = typecacheof(list(/obj/item/clothing/under/color/grey, /obj/item/melee/baton/cattleprod, + /obj/item/spear, /obj/item/clothing/mask/gas, + )), - "clowns" = typecacheof(list(/obj/item/clothing/under/rank/civilian/clown, /obj/item/clothing/shoes/clown_shoes, - /obj/item/clothing/mask/gas/clown_hat, /obj/item/instrument/bikehorn, - /obj/item/pda/clown, /obj/item/grown/bananapeel, /obj/item/food/cheesiehonkers, - /obj/item/trash/cheesie)), + "lizards" = typecacheof(list(/obj/item/toy/plush/lizardplushie, /obj/item/food/kebab/tail, /obj/item/organ/tail/lizard, + /obj/item/reagent_containers/food/drinks/bottle/lizardwine, /obj/item/clothing/head/lizard, /obj/item/clothing/shoes/cowboy/lizard, + )), - "greytide" = typecacheof(list(/obj/item/clothing/under/color/grey, /obj/item/melee/baton/cattleprod, - /obj/item/spear, /obj/item/clothing/mask/gas)), + "skeletons" = typecacheof(list(/obj/item/organ/tongue/bone, /obj/item/clothing/suit/armor/bone, /obj/item/stack/sheet/bone, + /obj/item/food/meat/slab/human/mutant/skeleton, + /obj/effect/decal/remains/human, + )), - "lizards" = typecacheof(list(/obj/item/toy/plush/lizardplushie, /obj/item/food/kebab/tail, /obj/item/organ/tail/lizard, - /obj/item/reagent_containers/food/drinks/bottle/lizardwine, /obj/item/clothing/head/lizard, /obj/item/clothing/shoes/cowboy/lizard)), + "conspiracies" = typecacheof(list(/obj/item/clothing/under/rank/captain, /obj/item/clothing/under/rank/security/head_of_security, + /obj/item/clothing/under/rank/engineering/chief_engineer, /obj/item/clothing/under/rank/medical/chief_medical_officer, + /obj/item/clothing/under/rank/civilian/head_of_personnel, /obj/item/clothing/under/rank/rnd/research_director, + /obj/item/clothing/under/rank/security/head_of_security/grey, /obj/item/clothing/under/rank/security/head_of_security/alt, + /obj/item/clothing/under/rank/rnd/research_director/alt, /obj/item/clothing/under/rank/rnd/research_director/turtleneck, + /obj/item/clothing/under/rank/captain/parade, /obj/item/clothing/under/rank/security/head_of_security/parade, /obj/item/clothing/under/rank/security/head_of_security/parade/female, + /obj/item/clothing/head/helmet/abductor, /obj/item/clothing/suit/armor/abductor/vest, /obj/item/melee/baton/abductor, + /obj/item/storage/belt/military/abductor, /obj/item/gun/energy/alien, /obj/item/abductor/silencer, + /obj/item/abductor/gizmo, /obj/item/clothing/under/rank/centcom/officer, + /obj/item/clothing/suit/space/hardsuit/ert, /obj/item/clothing/suit/space/hardsuit/ert/sec, + /obj/item/clothing/suit/space/hardsuit/ert/engi, /obj/item/clothing/suit/space/hardsuit/ert/med, + /obj/item/clothing/suit/space/hardsuit/deathsquad, /obj/item/clothing/head/helmet/space/hardsuit/deathsquad, + /obj/machinery/door/airlock/centcom, + )), - "skeletons" = typecacheof(list(/obj/item/organ/tongue/bone, /obj/item/clothing/suit/armor/bone, /obj/item/stack/sheet/bone, - /obj/item/food/meat/slab/human/mutant/skeleton, - /obj/effect/decal/remains/human)), + "robots" = typecacheof(list(/obj/machinery/computer/upload, /obj/item/ai_module, /obj/machinery/recharge_station, + /obj/item/aicard, /obj/structure/swarmer_beacon + )), - "conspiracies" = typecacheof(list(/obj/item/clothing/under/rank/captain, /obj/item/clothing/under/rank/security/head_of_security, - /obj/item/clothing/under/rank/engineering/chief_engineer, /obj/item/clothing/under/rank/medical/chief_medical_officer, - /obj/item/clothing/under/rank/civilian/head_of_personnel, /obj/item/clothing/under/rank/rnd/research_director, - /obj/item/clothing/under/rank/security/head_of_security/grey, /obj/item/clothing/under/rank/security/head_of_security/alt, - /obj/item/clothing/under/rank/rnd/research_director/alt, /obj/item/clothing/under/rank/rnd/research_director/turtleneck, - /obj/item/clothing/under/rank/captain/parade, /obj/item/clothing/under/rank/security/head_of_security/parade, /obj/item/clothing/under/rank/security/head_of_security/parade/female, - /obj/item/clothing/head/helmet/abductor, /obj/item/clothing/suit/armor/abductor/vest, /obj/item/melee/baton/abductor, - /obj/item/storage/belt/military/abductor, /obj/item/gun/energy/alien, /obj/item/abductor/silencer, - /obj/item/abductor/gizmo, /obj/item/clothing/under/rank/centcom/officer, - /obj/item/clothing/suit/space/hardsuit/ert, /obj/item/clothing/suit/space/hardsuit/ert/sec, - /obj/item/clothing/suit/space/hardsuit/ert/engi, /obj/item/clothing/suit/space/hardsuit/ert/med, - /obj/item/clothing/suit/space/hardsuit/deathsquad, /obj/item/clothing/head/helmet/space/hardsuit/deathsquad, - /obj/machinery/door/airlock/centcom)), + "doctors" = typecacheof(list(/obj/item/clothing/under/rank/medical, + /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/pill/, /obj/item/reagent_containers/hypospray, + /obj/item/storage/firstaid, /obj/item/storage/pill_bottle, /obj/item/healthanalyzer, + /obj/structure/sign/departments/medbay, /obj/machinery/door/airlock/medical, /obj/machinery/sleeper, /obj/machinery/stasis, + /obj/machinery/dna_scannernew, /obj/machinery/atmospherics/components/unary/cryo_cell, /obj/item/surgical_drapes, + /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/head/plaguedoctorhat, /obj/item/clothing/mask/gas/plaguedoctor, + )), - "robots" = typecacheof(list(/obj/machinery/computer/upload, /obj/item/ai_module, /obj/machinery/recharge_station, - /obj/item/aicard, /obj/structure/swarmer_beacon)), + "authority" = typecacheof(list(/obj/item/clothing/under/rank/captain, /obj/item/clothing/under/rank/civilian/head_of_personnel, + /obj/item/clothing/under/rank/security/head_of_security, /obj/item/clothing/under/rank/rnd/research_director, + /obj/item/clothing/under/rank/medical/chief_medical_officer, /obj/item/clothing/under/rank/engineering/chief_engineer, + /obj/item/clothing/under/rank/centcom/officer, /obj/item/clothing/under/rank/centcom/commander, + /obj/item/melee/classic_baton/telescopic, /obj/item/card/id/silver, /obj/item/card/id/gold, + /obj/item/card/id/captains_spare, /obj/item/card/id/centcom, /obj/machinery/door/airlock/command, + )), - "doctors" = typecacheof(list(/obj/item/clothing/under/rank/medical, - /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/pill/, /obj/item/reagent_containers/hypospray, - /obj/item/storage/firstaid, /obj/item/storage/pill_bottle, /obj/item/healthanalyzer, - /obj/structure/sign/departments/medbay, /obj/machinery/door/airlock/medical, /obj/machinery/sleeper, /obj/machinery/stasis, - /obj/machinery/dna_scannernew, /obj/machinery/atmospherics/components/unary/cryo_cell, /obj/item/surgical_drapes, - /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw, - /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/head/plaguedoctorhat, /obj/item/clothing/mask/gas/plaguedoctor)), + "the supernatural" = typecacheof(list(/obj/structure/destructible/cult, /obj/item/tome, + /obj/item/melee/cultblade, /obj/item/cult_bastard, + /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/space/hardsuit/cult, + /obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/head/hooded/cult_hoodie, /obj/effect/rune, + /obj/item/stack/sheet/runed_metal, /obj/machinery/door/airlock/cult, /obj/singularity/narsie, + /obj/item/soulstone, + /obj/item/clothing/suit/wizrobe, /obj/item/clothing/head/wizard, /obj/item/spellbook, /obj/item/staff, + /obj/item/clothing/suit/space/hardsuit/shielded/wizard, /obj/item/clothing/suit/space/hardsuit/wizard, + /obj/item/gun/magic/staff, /obj/item/gun/magic/wand, + /obj/item/nullrod, /obj/item/clothing/under/rank/civilian/chaplain, + )), - "authority" = typecacheof(list(/obj/item/clothing/under/rank/captain, /obj/item/clothing/under/rank/civilian/head_of_personnel, - /obj/item/clothing/under/rank/security/head_of_security, /obj/item/clothing/under/rank/rnd/research_director, - /obj/item/clothing/under/rank/medical/chief_medical_officer, /obj/item/clothing/under/rank/engineering/chief_engineer, - /obj/item/clothing/under/rank/centcom/officer, /obj/item/clothing/under/rank/centcom/commander, - /obj/item/melee/classic_baton/telescopic, /obj/item/card/id/silver, /obj/item/card/id/gold, - /obj/item/card/id/captains_spare, /obj/item/card/id/centcom, /obj/machinery/door/airlock/command)), + "aliens" = typecacheof(list(/obj/item/clothing/mask/facehugger, /obj/item/organ/body_egg/alien_embryo, + /obj/structure/alien, /obj/item/toy/toy_xeno, + /obj/item/clothing/suit/armor/abductor, /obj/item/abductor, /obj/item/gun/energy/alien, + /obj/item/melee/baton/abductor, /obj/item/radio/headset/abductor, /obj/item/scalpel/alien, /obj/item/hemostat/alien, + /obj/item/retractor/alien, /obj/item/circular_saw/alien, /obj/item/surgicaldrill/alien, /obj/item/cautery/alien, + /obj/item/clothing/head/helmet/abductor, /obj/structure/bed/abductor, /obj/structure/table_frame/abductor, + /obj/structure/table/abductor, /obj/structure/table/optable/abductor, /obj/structure/closet/abductor, /obj/item/organ/heart/gland, + /obj/machinery/abductor, /obj/item/crowbar/abductor, /obj/item/screwdriver/abductor, /obj/item/weldingtool/abductor, + /obj/item/wirecutters/abductor, /obj/item/wrench/abductor, /obj/item/stack/sheet/mineral/abductor, + )), - "the supernatural" = typecacheof(list(/obj/structure/destructible/cult, /obj/item/tome, - /obj/item/melee/cultblade, /obj/item/cult_bastard, - /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/space/hardsuit/cult, - /obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/head/hooded/cult_hoodie, /obj/effect/rune, - /obj/item/stack/sheet/runed_metal, /obj/machinery/door/airlock/cult, /obj/singularity/narsie, - /obj/item/soulstone, - /obj/item/clothing/suit/wizrobe, /obj/item/clothing/head/wizard, /obj/item/spellbook, /obj/item/staff, - /obj/item/clothing/suit/space/hardsuit/shielded/wizard, /obj/item/clothing/suit/space/hardsuit/wizard, - /obj/item/gun/magic/staff, /obj/item/gun/magic/wand, - /obj/item/nullrod, /obj/item/clothing/under/rank/civilian/chaplain)), + "birds" = typecacheof(list(/obj/item/clothing/mask/gas/plaguedoctor, /obj/item/food/cracker, + /obj/item/clothing/suit/chickensuit, /obj/item/clothing/head/chicken, + /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/costume/owl, /obj/item/clothing/mask/gas/owl_mask, + /obj/item/clothing/under/costume/griffin, /obj/item/clothing/shoes/griffin, /obj/item/clothing/head/griffin, + /obj/item/clothing/head/helmet/space/freedom, /obj/item/clothing/suit/space/freedom, + )), - "aliens" = typecacheof(list(/obj/item/clothing/mask/facehugger, /obj/item/organ/body_egg/alien_embryo, - /obj/structure/alien, /obj/item/toy/toy_xeno, - /obj/item/clothing/suit/armor/abductor, /obj/item/abductor, /obj/item/gun/energy/alien, - /obj/item/melee/baton/abductor, /obj/item/radio/headset/abductor, /obj/item/scalpel/alien, /obj/item/hemostat/alien, - /obj/item/retractor/alien, /obj/item/circular_saw/alien, /obj/item/surgicaldrill/alien, /obj/item/cautery/alien, - /obj/item/clothing/head/helmet/abductor, /obj/structure/bed/abductor, /obj/structure/table_frame/abductor, - /obj/structure/table/abductor, /obj/structure/table/optable/abductor, /obj/structure/closet/abductor, /obj/item/organ/heart/gland, - /obj/machinery/abductor, /obj/item/crowbar/abductor, /obj/item/screwdriver/abductor, /obj/item/weldingtool/abductor, - /obj/item/wirecutters/abductor, /obj/item/wrench/abductor, /obj/item/stack/sheet/mineral/abductor)), + "anime" = typecacheof(list(/obj/item/clothing/under/costume/schoolgirl, /obj/item/katana, /obj/item/food/sashimi, /obj/item/food/chawanmushi, + /obj/item/reagent_containers/food/drinks/bottle/sake, /obj/item/throwing_star, /obj/item/clothing/head/kitty/genuine, /obj/item/clothing/suit/space/space_ninja, + /obj/item/clothing/mask/gas/space_ninja, /obj/item/clothing/shoes/space_ninja, /obj/item/clothing/gloves/space_ninja, /obj/item/vibro_weapon, + /obj/item/nullrod/scythe/vibro, /obj/item/energy_katana, /obj/item/toy/katana, /obj/item/nullrod/claymore/katana, /obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe)), - "birds" = typecacheof(list(/obj/item/clothing/mask/gas/plaguedoctor, /obj/item/food/cracker, - /obj/item/clothing/suit/chickensuit, /obj/item/clothing/head/chicken, - /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/costume/owl, /obj/item/clothing/mask/gas/owl_mask, - /obj/item/clothing/under/costume/griffin, /obj/item/clothing/shoes/griffin, /obj/item/clothing/head/griffin, - /obj/item/clothing/head/helmet/space/freedom, /obj/item/clothing/suit/space/freedom)), + "birds" = typecacheof(list(/obj/item/clothing/mask/gas/plaguedoctor, /obj/item/food/cracker, + /obj/item/clothing/suit/chickensuit, /obj/item/clothing/head/chicken, + /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/costume/owl, /obj/item/clothing/mask/gas/owl_mask, + /obj/item/clothing/under/costume/griffin, /obj/item/clothing/shoes/griffin, /obj/item/clothing/head/griffin, + /obj/item/clothing/head/helmet/space/freedom, /obj/item/clothing/suit/space/freedom + )), - "anime" = typecacheof(list(/obj/item/clothing/under/costume/schoolgirl, /obj/item/katana, /obj/item/food/sashimi, /obj/item/food/chawanmushi, - /obj/item/reagent_containers/food/drinks/bottle/sake, /obj/item/throwing_star, /obj/item/clothing/head/kitty/genuine, /obj/item/clothing/suit/space/space_ninja, - /obj/item/clothing/mask/gas/space_ninja, /obj/item/clothing/shoes/space_ninja, /obj/item/clothing/gloves/space_ninja, /obj/item/vibro_weapon, - /obj/item/nullrod/scythe/vibro, /obj/item/energy_katana, /obj/item/toy/katana, /obj/item/nullrod/claymore/katana, /obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe)), + "insects" = typecacheof(list(/obj/item/toy/plush/moth, /obj/item/toy/plush/beeplushie, /obj/item/clothing/mask/animal/rat/bee, /obj/item/clothing/suit/hooded/bee_costume, /obj/structure/beebox)), - "insects" = typecacheof(list(/obj/item/toy/plush/moth, /obj/item/toy/plush/beeplushie, /obj/item/clothing/mask/animal/rat/bee, /obj/item/clothing/suit/hooded/bee_costume, /obj/structure/beebox)) - ) + "anime" = typecacheof(list(/obj/item/clothing/under/costume/schoolgirl, /obj/item/katana, /obj/item/food/sashimi, /obj/item/food/chawanmushi, + /obj/item/reagent_containers/food/drinks/bottle/sake, /obj/item/throwing_star, /obj/item/clothing/head/kitty/genuine, /obj/item/clothing/suit/space/space_ninja, + /obj/item/clothing/mask/gas/space_ninja, /obj/item/clothing/shoes/space_ninja, /obj/item/clothing/gloves/space_ninja, /obj/item/vibro_weapon, + /obj/item/nullrod/scythe/vibro, /obj/item/energy_katana, /obj/item/toy/katana, /obj/item/nullrod/claymore/katana, /obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe + )), + ) phobia_turfs = list("space" = typecacheof(list(/turf/open/space, /turf/open/floor/holofloor/space, /turf/open/floor/fakespace)), - "the supernatural" = typecacheof(list(/turf/open/floor/plasteel/cult, /turf/closed/wall/mineral/cult)), - "aliens" = typecacheof(list(/turf/open/floor/plating/abductor, /turf/open/floor/plating/abductor2, - /turf/open/floor/mineral/abductor, /turf/closed/wall/mineral/abductor)), - "falling" = typecacheof(list(/turf/open/chasm, /turf/open/floor/fakepit)) - ) + "the supernatural" = typecacheof(list(/turf/open/floor/plasteel/cult, /turf/closed/wall/mineral/cult)), + "aliens" = typecacheof(list(/turf/open/floor/plating/abductor, /turf/open/floor/plating/abductor2, + /turf/open/floor/mineral/abductor, /turf/closed/wall/mineral/abductor + )), + "falling" = typecacheof(list(/turf/open/chasm, /turf/open/floor/fakepit)) + ) phobia_species = list("lizards" = typecacheof(list(/datum/species/lizard)), - "skeletons" = typecacheof(list(/datum/species/skeleton, /datum/species/plasmaman)), - "conspiracies" = typecacheof(list(/datum/species/abductor, /datum/species/lizard, /datum/species/synth)), - "robots" = typecacheof(list(/datum/species/android)), - "the supernatural" = typecacheof(list(/datum/species/golem/runic)), - "aliens" = typecacheof(list(/datum/species/abductor, /datum/species/jelly, /datum/species/pod, - /datum/species/shadow)), - "anime" = typecacheof(list(/datum/species/human/felinid)), - "insects" = typecacheof(list(/datum/species/fly, /datum/species/moth)) - ) + "skeletons" = typecacheof(list(/datum/species/skeleton, /datum/species/plasmaman)), + "conspiracies" = typecacheof(list(/datum/species/abductor, /datum/species/lizard, /datum/species/synth)), + "robots" = typecacheof(list(/datum/species/android)), + "the supernatural" = typecacheof(list(/datum/species/golem/runic)), + "aliens" = typecacheof(list(/datum/species/abductor, /datum/species/jelly, /datum/species/pod,/datum/species/shadow)), + "anime" = typecacheof(list(/datum/species/human/felinid)), + "insects" = typecacheof(list(/datum/species/fly, /datum/species/moth)) + ) return ..() diff --git a/code/controllers/subsystem/weather.dm b/code/controllers/subsystem/weather.dm index 8a11799891f..f162e291bc0 100644 --- a/code/controllers/subsystem/weather.dm +++ b/code/controllers/subsystem/weather.dm @@ -71,10 +71,10 @@ SUBSYSTEM_DEF(weather) next_hit_by_zlevel["[z]"] = null /datum/controller/subsystem/weather/proc/get_weather(z, area/active_area) - var/datum/weather/A - for(var/V in processing) - var/datum/weather/W = V - if((z in W.impacted_z_levels) && W.area_type == active_area.type) - A = W - break - return A + var/datum/weather/A + for(var/V in processing) + var/datum/weather/W = V + if((z in W.impacted_z_levels) && W.area_type == active_area.type) + A = W + break + return A diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index d5c6add251e..c4e5af8931f 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -424,13 +424,13 @@ owner = M /** - * Generates a list of all laws on this datum, including rendered HTML tags if required - * - * Arguments: - * * include_zeroth - Operator that controls if law 0 or law 666 is returned in the set - * * show_numbers - Operator that controls if law numbers are prepended to the returned laws - * * render_html - Operator controlling if HTML tags are rendered on the returned laws - */ + * Generates a list of all laws on this datum, including rendered HTML tags if required + * + * Arguments: + * * include_zeroth - Operator that controls if law 0 or law 666 is returned in the set + * * show_numbers - Operator that controls if law numbers are prepended to the returned laws + * * render_html - Operator controlling if HTML tags are rendered on the returned laws + */ /datum/ai_laws/proc/get_law_list(include_zeroth = FALSE, show_numbers = TRUE, render_html = TRUE) var/list/data = list() diff --git a/code/datums/armor.dm b/code/datums/armor.dm index 595153486f7..0653a4e792f 100644 --- a/code/datums/armor.dm +++ b/code/datums/armor.dm @@ -1,73 +1,73 @@ #define ARMORID "armor-[melee]-[bullet]-[laser]-[energy]-[bomb]-[bio]-[rad]-[fire]-[acid]-[magic]-[wound]" /proc/getArmor(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0, wound = 0) - . = locate(ARMORID) - if (!.) - . = new /datum/armor(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic, wound) + . = locate(ARMORID) + if (!.) + . = new /datum/armor(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic, wound) /datum/armor - datum_flags = DF_USE_TAG - var/melee - var/bullet - var/laser - var/energy - var/bomb - var/bio - var/rad - var/fire - var/acid - var/magic - var/wound + datum_flags = DF_USE_TAG + var/melee + var/bullet + var/laser + var/energy + var/bomb + var/bio + var/rad + var/fire + var/acid + var/magic + var/wound /datum/armor/New(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0, wound = 0) - src.melee = melee - src.bullet = bullet - src.laser = laser - src.energy = energy - src.bomb = bomb - src.bio = bio - src.rad = rad - src.fire = fire - src.acid = acid - src.magic = magic - src.wound = wound - tag = ARMORID + src.melee = melee + src.bullet = bullet + src.laser = laser + src.energy = energy + src.bomb = bomb + src.bio = bio + src.rad = rad + src.fire = fire + src.acid = acid + src.magic = magic + src.wound = wound + tag = ARMORID /datum/armor/proc/modifyRating(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0, wound = 0) - return getArmor(src.melee+melee, src.bullet+bullet, src.laser+laser, src.energy+energy, src.bomb+bomb, src.bio+bio, src.rad+rad, src.fire+fire, src.acid+acid, src.magic+magic, src.wound+wound) + return getArmor(src.melee+melee, src.bullet+bullet, src.laser+laser, src.energy+energy, src.bomb+bomb, src.bio+bio, src.rad+rad, src.fire+fire, src.acid+acid, src.magic+magic, src.wound+wound) /datum/armor/proc/modifyAllRatings(modifier = 0) - return getArmor(melee+modifier, bullet+modifier, laser+modifier, energy+modifier, bomb+modifier, bio+modifier, rad+modifier, fire+modifier, acid+modifier, magic+modifier, wound+modifier) + return getArmor(melee+modifier, bullet+modifier, laser+modifier, energy+modifier, bomb+modifier, bio+modifier, rad+modifier, fire+modifier, acid+modifier, magic+modifier, wound+modifier) /datum/armor/proc/setRating(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic, wound) - return getArmor((isnull(melee) ? src.melee : melee),\ - (isnull(bullet) ? src.bullet : bullet),\ - (isnull(laser) ? src.laser : laser),\ - (isnull(energy) ? src.energy : energy),\ - (isnull(bomb) ? src.bomb : bomb),\ - (isnull(bio) ? src.bio : bio),\ - (isnull(rad) ? src.rad : rad),\ - (isnull(fire) ? src.fire : fire),\ - (isnull(acid) ? src.acid : acid),\ - (isnull(magic) ? src.magic : magic),\ - (isnull(wound) ? src.wound : wound)) + return getArmor((isnull(melee) ? src.melee : melee),\ + (isnull(bullet) ? src.bullet : bullet),\ + (isnull(laser) ? src.laser : laser),\ + (isnull(energy) ? src.energy : energy),\ + (isnull(bomb) ? src.bomb : bomb),\ + (isnull(bio) ? src.bio : bio),\ + (isnull(rad) ? src.rad : rad),\ + (isnull(fire) ? src.fire : fire),\ + (isnull(acid) ? src.acid : acid),\ + (isnull(magic) ? src.magic : magic),\ + (isnull(wound) ? src.wound : wound)) /datum/armor/proc/getRating(rating) - return vars[rating] + return vars[rating] /datum/armor/proc/getList() - return list(MELEE = melee, BULLET = bullet, LASER = laser, ENERGY = energy, BOMB = bomb, BIO = bio, RAD = rad, FIRE = fire, ACID = acid, MAGIC = magic, WOUND = wound) + return list(MELEE = melee, BULLET = bullet, LASER = laser, ENERGY = energy, BOMB = bomb, BIO = bio, RAD = rad, FIRE = fire, ACID = acid, MAGIC = magic, WOUND = wound) /datum/armor/proc/attachArmor(datum/armor/AA) - return getArmor(melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy+AA.energy, bomb+AA.bomb, bio+AA.bio, rad+AA.rad, fire+AA.fire, acid+AA.acid, magic+AA.magic, wound+AA.wound) + return getArmor(melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy+AA.energy, bomb+AA.bomb, bio+AA.bio, rad+AA.rad, fire+AA.fire, acid+AA.acid, magic+AA.magic, wound+AA.wound) /datum/armor/proc/detachArmor(datum/armor/AA) - return getArmor(melee-AA.melee, bullet-AA.bullet, laser-AA.laser, energy-AA.energy, bomb-AA.bomb, bio-AA.bio, rad-AA.rad, fire-AA.fire, acid-AA.acid, magic-AA.magic, wound-AA.wound) + return getArmor(melee-AA.melee, bullet-AA.bullet, laser-AA.laser, energy-AA.energy, bomb-AA.bomb, bio-AA.bio, rad-AA.rad, fire-AA.fire, acid-AA.acid, magic-AA.magic, wound-AA.wound) /datum/armor/vv_edit_var(var_name, var_value) - if (var_name == NAMEOF(src, tag)) - return FALSE - . = ..() - tag = ARMORID // update tag in case armor values were edited + if (var_name == NAMEOF(src, tag)) + return FALSE + . = ..() + tag = ARMORID // update tag in case armor values were edited #undef ARMORID diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index f40d46ba254..0ffc5f6a51b 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -60,7 +60,7 @@ lose_text = "" var/paralysis_type var/list/paralysis_traits = list() - //for descriptions + //for descriptions /datum/brain_trauma/severe/paralysis/New(specific_type) if(specific_type) diff --git a/code/datums/callback.dm b/code/datums/callback.dm index 95343844aa2..b5baea28f1f 100644 --- a/code/datums/callback.dm +++ b/code/datums/callback.dm @@ -1,53 +1,53 @@ /** - *# Callback Datums - *A datum that holds a proc to be called on another object, used to track proccalls to other objects - * - * ## USAGE - * - * ``` - * var/datum/callback/C = new(object|null, /proc/type/path|"procstring", arg1, arg2, ... argn) - * var/timerid = addtimer(C, time, timertype) - * you can also use the compiler define shorthand - * var/timerid = addtimer(CALLBACK(object|null, /proc/type/path|procstring, arg1, arg2, ... argn), time, timertype) - * ``` - * - * Note: proc strings can only be given for datum proc calls, global procs must be proc paths - * - * Also proc strings are strongly advised against because they don't compile error if the proc stops existing - * - * In some cases you can provide a shortform of the procname, see the proc typepath shortcuts documentation below - * - * ## INVOKING THE CALLBACK - *`var/result = C.Invoke(args, to, add)` additional args are added after the ones given when the callback was created - * - * `var/result = C.InvokeAsync(args, to, add)` Asyncronous - returns . on the first sleep then continues on in the background - * after the sleep/block ends, otherwise operates normally. - * - * ## PROC TYPEPATH SHORTCUTS - * (these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...) - * - * ### global proc while in another global proc: - * .procname - * - * `CALLBACK(GLOBAL_PROC, .some_proc_here)` - * - * ### proc defined on current(src) object (when in a /proc/ and not an override) OR overridden at src or any of it's parents: - * .procname - * - * `CALLBACK(src, .some_proc_here)` - * - * ### when the above doesn't apply: - *.proc/procname - * - * `CALLBACK(src, .proc/some_proc_here)` - * - * - * proc defined on a parent of a some type - * - * `/some/type/.proc/some_proc_here` - * - * Otherwise you must always provide the full typepath of the proc (/type/of/thing/proc/procname) - */ + *# Callback Datums + *A datum that holds a proc to be called on another object, used to track proccalls to other objects + * + * ## USAGE + * + * ``` + * var/datum/callback/C = new(object|null, /proc/type/path|"procstring", arg1, arg2, ... argn) + * var/timerid = addtimer(C, time, timertype) + * you can also use the compiler define shorthand + * var/timerid = addtimer(CALLBACK(object|null, /proc/type/path|procstring, arg1, arg2, ... argn), time, timertype) + * ``` + * + * Note: proc strings can only be given for datum proc calls, global procs must be proc paths + * + * Also proc strings are strongly advised against because they don't compile error if the proc stops existing + * + * In some cases you can provide a shortform of the procname, see the proc typepath shortcuts documentation below + * + * ## INVOKING THE CALLBACK + *`var/result = C.Invoke(args, to, add)` additional args are added after the ones given when the callback was created + * + * `var/result = C.InvokeAsync(args, to, add)` Asyncronous - returns . on the first sleep then continues on in the background + * after the sleep/block ends, otherwise operates normally. + * + * ## PROC TYPEPATH SHORTCUTS + * (these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...) + * + * ### global proc while in another global proc: + * .procname + * + * `CALLBACK(GLOBAL_PROC, .some_proc_here)` + * + * ### proc defined on current(src) object (when in a /proc/ and not an override) OR overridden at src or any of it's parents: + * .procname + * + * `CALLBACK(src, .some_proc_here)` + * + * ### when the above doesn't apply: + *.proc/procname + * + * `CALLBACK(src, .proc/some_proc_here)` + * + * + * proc defined on a parent of a some type + * + * `/some/type/.proc/some_proc_here` + * + * Otherwise you must always provide the full typepath of the proc (/type/of/thing/proc/procname) + */ /datum/callback ///The object we will be calling the proc on @@ -60,13 +60,13 @@ var/datum/weakref/user /** - * Create a new callback datum - * - * Arguments - * * thingtocall the object to call the proc on - * * proctocall the proc to call on the target object - * * ... an optional list of extra arguments to pass to the proc - */ + * Create a new callback datum + * + * Arguments + * * thingtocall the object to call the proc on + * * proctocall the proc to call on the target object + * * ... an optional list of extra arguments to pass to the proc + */ /datum/callback/New(thingtocall, proctocall, ...) if (thingtocall) object = thingtocall @@ -76,13 +76,13 @@ if(usr) user = WEAKREF(usr) /** - * Immediately Invoke proctocall on thingtocall, with waitfor set to false - * - * Arguments: - * * thingtocall Object to call on - * * proctocall Proc to call on that object - * * ... optional list of arguments to pass as arguments to the proc being called - */ + * Immediately Invoke proctocall on thingtocall, with waitfor set to false + * + * Arguments: + * * thingtocall Object to call on + * * proctocall Proc to call on that object + * * ... optional list of arguments to pass as arguments to the proc being called + */ /world/proc/ImmediateInvokeAsync(thingtocall, proctocall, ...) set waitfor = FALSE @@ -97,13 +97,13 @@ call(thingtocall, proctocall)(arglist(calling_arguments)) /** - * Invoke this callback - * - * Calls the registered proc on the registered object, if the user ref - * can be resolved it also inclues that as an arg - * - * If the datum being called on is varedited, the call is wrapped via [WrapAdminProcCall][/proc/WrapAdminProcCall] - */ + * Invoke this callback + * + * Calls the registered proc on the registered object, if the user ref + * can be resolved it also inclues that as an arg + * + * If the datum being called on is varedited, the call is wrapped via [WrapAdminProcCall][/proc/WrapAdminProcCall] + */ /datum/callback/proc/Invoke(...) if(!usr) var/datum/weakref/W = user @@ -130,13 +130,13 @@ return call(object, delegate)(arglist(calling_arguments)) /** - * Invoke this callback async (waitfor=false) - * - * Calls the registered proc on the registered object, if the user ref - * can be resolved it also inclues that as an arg - * - * If the datum being called on is varedited, the call is wrapped via WrapAdminProcCall - */ + * Invoke this callback async (waitfor=false) + * + * Calls the registered proc on the registered object, if the user ref + * can be resolved it also inclues that as an arg + * + * If the datum being called on is varedited, the call is wrapped via WrapAdminProcCall + */ /datum/callback/proc/InvokeAsync(...) set waitfor = FALSE @@ -166,7 +166,7 @@ /** Helper datum for the select callbacks proc - */ + */ /datum/callback_select var/list/finished var/pendingcount @@ -192,16 +192,16 @@ finished[index] = rtn /** - * Runs a list of callbacks asyncronously, returning only when all have finished - * - * Callbacks can be repeated, to call it multiple times - * - * Arguments: - * * list/callbacks the list of callbacks to be called - * * list/callback_args the list of lists of arguments to pass into each callback - * * savereturns Optionally save and return the list of returned values from each of the callbacks - * * resolution The number of byond ticks between each time you check if all callbacks are complete - */ + * Runs a list of callbacks asyncronously, returning only when all have finished + * + * Callbacks can be repeated, to call it multiple times + * + * Arguments: + * * list/callbacks the list of callbacks to be called + * * list/callback_args the list of lists of arguments to pass into each callback + * * savereturns Optionally save and return the list of returned values from each of the callbacks + * * resolution The number of byond ticks between each time you check if all callbacks are complete + */ /proc/callback_select(list/callbacks, list/callback_args, savereturns = TRUE, resolution = 1) if (!callbacks) return diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index df2482a1b22..b823b099118 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -24,10 +24,10 @@ #define WXH_TO_HEIGHT(x) text2num(copytext(x, findtextEx(x, "x") + 1)) /** - * # Chat Message Overlay - * - * Datum for generating a message overlay on the map - */ + * # Chat Message Overlay + * + * Datum for generating a message overlay on the map + */ /datum/chatmessage /// The visual element of the chat messsage var/image/message @@ -49,16 +49,16 @@ var/static/current_z_idx = 0 /** - * Constructs a chat message overlay - * - * Arguments: - * * text - The text content of the overlay - * * target - The target atom to display the overlay at - * * owner - The mob that owns this overlay, only this mob will be able to view it - * * language - The language this message was spoken in - * * extra_classes - Extra classes to apply to the span that holds the text - * * lifespan - The lifespan of the message in deciseconds - */ + * Constructs a chat message overlay + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * language - The language this message was spoken in + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ /datum/chatmessage/New(text, atom/target, mob/owner, datum/language/language, list/extra_classes = list(), lifespan = CHAT_MESSAGE_LIFESPAN) . = ..() if (!istype(target)) @@ -81,24 +81,24 @@ return ..() /** - * Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal - */ + * Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal + */ /datum/chatmessage/proc/on_parent_qdel() SIGNAL_HANDLER qdel(src) /** - * Generates a chat message image representation - * - * Arguments: - * * text - The text content of the overlay - * * target - The target atom to display the overlay at - * * owner - The mob that owns this overlay, only this mob will be able to view it - * * language - The language this message was spoken in - * * extra_classes - Extra classes to apply to the span that holds the text - * * lifespan - The lifespan of the message in deciseconds - */ + * Generates a chat message image representation + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * language - The language this message was spoken in + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ /datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, datum/language/language, list/extra_classes, lifespan) /// Cached icons to show what language the user is speaking var/static/list/language_icons @@ -211,26 +211,26 @@ enter_subsystem() /** - * Applies final animations to overlay CHAT_MESSAGE_EOL_FADE deciseconds prior to message deletion, - * sets time for scheduling deletion and re-enters the runechat SS for qdeling - * - * Arguments: - * * fadetime - The amount of time to animate the message's fadeout for - */ + * Applies final animations to overlay CHAT_MESSAGE_EOL_FADE deciseconds prior to message deletion, + * sets time for scheduling deletion and re-enters the runechat SS for qdeling + * + * Arguments: + * * fadetime - The amount of time to animate the message's fadeout for + */ /datum/chatmessage/proc/end_of_life(fadetime = CHAT_MESSAGE_EOL_FADE) eol_complete = scheduled_destruction + fadetime animate(message, alpha = 0, time = fadetime, flags = ANIMATION_PARALLEL) enter_subsystem(eol_complete) // re-enter the runechat SS with the EOL completion time to QDEL self /** - * Creates a message overlay at a defined location for a given speaker - * - * Arguments: - * * speaker - The atom who is saying this message - * * message_language - The language that the message is said in - * * raw_message - The text content of the message - * * spans - Additional classes to be added to the message - */ + * Creates a message overlay at a defined location for a given speaker + * + * Arguments: + * * speaker - The atom who is saying this message + * * message_language - The language that the message is said in + * * raw_message - The text content of the message + * * spans - Additional classes to be added to the message + */ /mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, list/spans, runechat_flags = NONE) // Ensure the list we are using, if present, is a copy so we don't modify the list provided to us spans = spans ? spans.Copy() : list() @@ -260,15 +260,15 @@ #define CM_COLOR_LUM_MAX 0.75 /** - * Gets a color for a name, will return the same color for a given string consistently within a round.atom - * - * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. - * - * Arguments: - * * name - The name to generate a color for - * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation - * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence - */ + * Gets a color for a name, will return the same color for a given string consistently within a round.atom + * + * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. + * + * Arguments: + * * name - The name to generate a color for + * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation + * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence + */ /datum/chatmessage/proc/colorize_string(name, sat_shift = 1, lum_shift = 1) // seed to help randomness var/static/rseed = rand(1,26) diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index f1ee6de87f7..e2a1ccc4b44 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -1,14 +1,14 @@ /** - * # Component - * - * The component datum - * - * A component should be a single standalone unit - * of functionality, that works by receiving signals from it's parent - * object to provide some single functionality (i.e a slippery component) - * that makes the object it's attached to cause people to slip over. - * Useful when you want shared behaviour independent of type inheritance - */ + * # Component + * + * The component datum + * + * A component should be a single standalone unit + * of functionality, that works by receiving signals from it's parent + * object to provide some single functionality (i.e a slippery component) + * that makes the object it's attached to cause people to slip over. + * Useful when you want shared behaviour independent of type inheritance + */ /datum/component /** * Defines how duplicate existing components are handled when added to a datum @@ -39,13 +39,13 @@ var/can_transfer = FALSE /** - * Create a new component. - * - * Additional arguments are passed to [Initialize()][/datum/component/proc/Initialize] - * - * Arguments: - * * datum/P the parent datum this component reacts to signals from - */ + * Create a new component. + * + * Additional arguments are passed to [Initialize()][/datum/component/proc/Initialize] + * + * Arguments: + * * datum/P the parent datum this component reacts to signals from + */ /datum/component/New(list/raw_args) parent = raw_args[1] var/list/arguments = raw_args.Copy(2) @@ -57,20 +57,20 @@ _JoinParent(parent) /** - * Called during component creation with the same arguments as in new excluding parent. - * - * Do not call `qdel(src)` from this function, `return COMPONENT_INCOMPATIBLE` instead - */ + * Called during component creation with the same arguments as in new excluding parent. + * + * Do not call `qdel(src)` from this function, `return COMPONENT_INCOMPATIBLE` instead + */ /datum/component/proc/Initialize(...) return /** - * Properly removes the component from `parent` and cleans up references - * - * Arguments: - * * force - makes it not check for and remove the component from the parent - * * silent - deletes the component without sending a [COMSIG_COMPONENT_REMOVING] signal - */ + * Properly removes the component from `parent` and cleans up references + * + * Arguments: + * * force - makes it not check for and remove the component from the parent + * * silent - deletes the component without sending a [COMSIG_COMPONENT_REMOVING] signal + */ /datum/component/Destroy(force=FALSE, silent=FALSE) if(!force && parent) _RemoveFromParent() @@ -80,8 +80,8 @@ return ..() /** - * Internal proc to handle behaviour of components when joining a parent - */ + * Internal proc to handle behaviour of components when joining a parent + */ /datum/component/proc/_JoinParent() var/datum/P = parent //lazy init the parent's dc list @@ -118,8 +118,8 @@ RegisterWithParent() /** - * Internal proc to handle behaviour when being removed from a parent - */ + * Internal proc to handle behaviour when being removed from a parent + */ /datum/component/proc/_RemoveFromParent() var/datum/P = parent var/list/dc = P.datum_components @@ -139,39 +139,39 @@ UnregisterFromParent() /** - * Register the component with the parent object - * - * Use this proc to register with your parent object - * - * Overridable proc that's called when added to a new parent - */ + * Register the component with the parent object + * + * Use this proc to register with your parent object + * + * Overridable proc that's called when added to a new parent + */ /datum/component/proc/RegisterWithParent() return /** - * Unregister from our parent object - * - * Use this proc to unregister from your parent object - * - * Overridable proc that's called when removed from a parent - * * - */ + * Unregister from our parent object + * + * Use this proc to unregister from your parent object + * + * Overridable proc that's called when removed from a parent + * * + */ /datum/component/proc/UnregisterFromParent() return /** - * Register to listen for a signal from the passed in target - * - * This sets up a listening relationship such that when the target object emits a signal - * the source datum this proc is called upon, will receive a callback to the given proctype - * Return values from procs registered must be a bitfield - * - * Arguments: - * * datum/target The target to listen for signals from - * * sig_type_or_types Either a string signal name, or a list of signal names (strings) - * * proctype The proc to call back when the signal is emitted - * * override If a previous registration exists you must explicitly set this - */ + * Register to listen for a signal from the passed in target + * + * This sets up a listening relationship such that when the target object emits a signal + * the source datum this proc is called upon, will receive a callback to the given proctype + * Return values from procs registered must be a bitfield + * + * Arguments: + * * datum/target The target to listen for signals from + * * sig_type_or_types Either a string signal name, or a list of signal names (strings) + * * proctype The proc to call back when the signal is emitted + * * override If a previous registration exists you must explicitly set this + */ /datum/proc/RegisterSignal(datum/target, sig_type_or_types, proctype, override = FALSE) if(QDELETED(src) || QDELETED(target)) return @@ -205,16 +205,16 @@ signal_enabled = TRUE /** - * Stop listening to a given signal from target - * - * Breaks the relationship between target and source datum, removing the callback when the signal fires - * - * Doesn't care if a registration exists or not - * - * Arguments: - * * datum/target Datum to stop listening to signals from - * * sig_typeor_types Signal string key or list of signal keys to stop listening to specifically - */ + * Stop listening to a given signal from target + * + * Breaks the relationship between target and source datum, removing the callback when the signal fires + * + * Doesn't care if a registration exists or not + * + * Arguments: + * * datum/target Datum to stop listening to signals from + * * sig_typeor_types Signal string key or list of signal keys to stop listening to specifically + */ /datum/proc/UnregisterSignal(datum/target, sig_type_or_types) var/list/lookup = target.comp_lookup if(!signal_procs || !signal_procs[target] || !lookup) @@ -247,50 +247,50 @@ signal_procs -= target /** - * Called on a component when a component of the same type was added to the same parent - * - * See [/datum/component/var/dupe_mode] - * - * `C`'s type will always be the same of the called component - */ + * Called on a component when a component of the same type was added to the same parent + * + * See [/datum/component/var/dupe_mode] + * + * `C`'s type will always be the same of the called component + */ /datum/component/proc/InheritComponent(datum/component/C, i_am_original) return /** - * Called on a component when a component of the same type was added to the same parent with [COMPONENT_DUPE_SELECTIVE] - * - * See [/datum/component/var/dupe_mode] - * - * `C`'s type will always be the same of the called component - * - * return TRUE if you are absorbing the component, otherwise FALSE if you are fine having it exist as a duplicate component - */ + * Called on a component when a component of the same type was added to the same parent with [COMPONENT_DUPE_SELECTIVE] + * + * See [/datum/component/var/dupe_mode] + * + * `C`'s type will always be the same of the called component + * + * return TRUE if you are absorbing the component, otherwise FALSE if you are fine having it exist as a duplicate component + */ /datum/component/proc/CheckDupeComponent(datum/component/C, ...) return /** - * Callback Just before this component is transferred - * - * Use this to do any special cleanup you might need to do before being deregged from an object - */ + * Callback Just before this component is transferred + * + * Use this to do any special cleanup you might need to do before being deregged from an object + */ /datum/component/proc/PreTransfer() return /** - * Callback Just after a component is transferred - * - * Use this to do any special setup you need to do after being moved to a new object - * - * Do not call `qdel(src)` from this function, `return COMPONENT_INCOMPATIBLE` instead - */ + * Callback Just after a component is transferred + * + * Use this to do any special setup you need to do after being moved to a new object + * + * Do not call `qdel(src)` from this function, `return COMPONENT_INCOMPATIBLE` instead + */ /datum/component/proc/PostTransfer() return COMPONENT_INCOMPATIBLE //Do not support transfer by default as you must properly support it /** - * Internal proc to create a list of our type and all parent types - */ + * Internal proc to create a list of our type and all parent types + */ /datum/component/proc/_GetInverseTypeList(our_type = type) //we can do this one simple trick var/current_type = parent_type @@ -301,12 +301,12 @@ . += current_type /** - * Internal proc to handle most all of the signaling procedure - * - * Will runtime if used on datums with an empty component list - * - * Use the [SEND_SIGNAL] define instead - */ + * Internal proc to handle most all of the signaling procedure + * + * Will runtime if used on datums with an empty component list + * + * Use the [SEND_SIGNAL] define instead + */ /datum/proc/_SendSignal(sigtype, list/arguments) var/target = comp_lookup[sigtype] if(!length(target)) @@ -325,13 +325,13 @@ // The type arg is casted so initial works, you shouldn't be passing a real instance into this /** - * Return any component assigned to this datum of the given type - * - * This will throw an error if it's possible to have more than one component of that type on the parent - * - * Arguments: - * * datum/component/c_type The typepath of the component you want to get a reference to - */ + * Return any component assigned to this datum of the given type + * + * This will throw an error if it's possible to have more than one component of that type on the parent + * + * Arguments: + * * datum/component/c_type The typepath of the component you want to get a reference to + */ /datum/proc/GetComponent(datum/component/c_type) RETURN_TYPE(c_type) if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE) @@ -345,13 +345,13 @@ // The type arg is casted so initial works, you shouldn't be passing a real instance into this /** - * Return any component assigned to this datum of the exact given type - * - * This will throw an error if it's possible to have more than one component of that type on the parent - * - * Arguments: - * * datum/component/c_type The typepath of the component you want to get a reference to - */ + * Return any component assigned to this datum of the exact given type + * + * This will throw an error if it's possible to have more than one component of that type on the parent + * + * Arguments: + * * datum/component/c_type The typepath of the component you want to get a reference to + */ /datum/proc/GetExactComponent(datum/component/c_type) RETURN_TYPE(c_type) if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE) @@ -368,11 +368,11 @@ return null /** - * Get all components of a given type that are attached to this datum - * - * Arguments: - * * c_type The component type path - */ + * Get all components of a given type that are attached to this datum + * + * Arguments: + * * c_type The component type path + */ /datum/proc/GetComponents(c_type) var/list/dc = datum_components if(!dc) @@ -382,16 +382,16 @@ return list(.) /** - * Creates an instance of `new_type` in the datum and attaches to it as parent - * - * Sends the [COMSIG_COMPONENT_ADDED] signal to the datum - * - * Returns the component that was created. Or the old component in a dupe situation where [COMPONENT_DUPE_UNIQUE] was set - * - * If this tries to add a component to an incompatible type, the component will be deleted and the result will be `null`. This is very unperformant, try not to do it - * - * Properly handles duplicate situations based on the `dupe_mode` var - */ + * Creates an instance of `new_type` in the datum and attaches to it as parent + * + * Sends the [COMSIG_COMPONENT_ADDED] signal to the datum + * + * Returns the component that was created. Or the old component in a dupe situation where [COMPONENT_DUPE_UNIQUE] was set + * + * If this tries to add a component to an incompatible type, the component will be deleted and the result will be `null`. This is very unperformant, try not to do it + * + * Properly handles duplicate situations based on the `dupe_mode` var + */ /datum/proc/_AddComponent(list/raw_args) var/new_type = raw_args[1] var/datum/component/nt = new_type @@ -459,22 +459,22 @@ return old_comp /** - * Get existing component of type, or create it and return a reference to it - * - * Use this if the item needs to exist at the time of this call, but may not have been created before now - * - * Arguments: - * * component_type The typepath of the component to create or return - * * ... additional arguments to be passed when creating the component if it does not exist - */ + * Get existing component of type, or create it and return a reference to it + * + * Use this if the item needs to exist at the time of this call, but may not have been created before now + * + * Arguments: + * * component_type The typepath of the component to create or return + * * ... additional arguments to be passed when creating the component if it does not exist + */ /datum/proc/LoadComponent(component_type, ...) . = GetComponent(component_type) if(!.) return _AddComponent(args) /** - * Removes the component from parent, ends up with a null parent - */ + * Removes the component from parent, ends up with a null parent + */ /datum/component/proc/RemoveComponent() if(!parent) return @@ -485,13 +485,13 @@ SEND_SIGNAL(old_parent, COMSIG_COMPONENT_REMOVING, src) /** - * Transfer this component to another parent - * - * Component is taken from source datum - * - * Arguments: - * * datum/component/target Target datum to transfer to - */ + * Transfer this component to another parent + * + * Component is taken from source datum + * + * Arguments: + * * datum/component/target Target datum to transfer to + */ /datum/proc/TakeComponent(datum/component/target) if(!target || target.parent == src) return @@ -509,13 +509,13 @@ target._JoinParent() /** - * Transfer all components to target - * - * All components from source datum are taken - * - * Arguments: - * * /datum/target the target to move the components to - */ + * Transfer all components to target + * + * All components from source datum are taken + * + * Arguments: + * * /datum/target the target to move the components to + */ /datum/proc/TransferComponents(datum/target) var/list/dc = datum_components if(!dc) @@ -531,7 +531,7 @@ target.TakeComponent(comps) /** - * Return the object that is the host of any UI's that this component has - */ + * Return the object that is the host of any UI's that this component has + */ /datum/component/ui_host() return parent diff --git a/code/datums/components/acid.dm b/code/datums/components/acid.dm index 36b5dc9236b..1c5c5a4adc6 100644 --- a/code/datums/components/acid.dm +++ b/code/datums/components/acid.dm @@ -1,9 +1,9 @@ /** Component representing acid applied to an object. - * - * Must be attached to an atom. - * Processes, repeatedly damaging whatever it is attached to. - * If the parent atom is a turf it applies acid to the contents of the turf. - */ + * + * Must be attached to an atom. + * Processes, repeatedly damaging whatever it is attached to. + * If the parent atom is a turf it applies acid to the contents of the turf. + */ /datum/component/acid dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS /// The strength of the acid on the parent [/atom]. diff --git a/code/datums/components/beauty.dm b/code/datums/components/beauty.dm index c4c2d3a7891..89564119fa1 100644 --- a/code/datums/components/beauty.dm +++ b/code/datums/components/beauty.dm @@ -1,11 +1,11 @@ /** - * Beauty component, makes the indoor area the parent is in prettier or uglier depending on the beauty var. - * Clean and well decorated areas lead to positive moodlets for passerbies, while shabbier, dirtier ones - * lead to negative moodlets exclusive to characters with the snob quirk. - * - * Keep in mind AddComponent is used for BOTH adding and removing beauty value here, - * so please don't use qdel/RemoveComponent unless necessary. - */ + * Beauty component, makes the indoor area the parent is in prettier or uglier depending on the beauty var. + * Clean and well decorated areas lead to positive moodlets for passerbies, while shabbier, dirtier ones + * lead to negative moodlets exclusive to characters with the snob quirk. + * + * Keep in mind AddComponent is used for BOTH adding and removing beauty value here, + * so please don't use qdel/RemoveComponent unless necessary. + */ /datum/component/beauty var/beauty = 0 dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS diff --git a/code/datums/components/bloodysoles.dm b/code/datums/components/bloodysoles.dm index 227e41e50f7..e16aaa60252 100644 --- a/code/datums/components/bloodysoles.dm +++ b/code/datums/components/bloodysoles.dm @@ -1,7 +1,7 @@ /** - * Component for clothing items that can pick up blood from decals and spread it around everywhere when walking, such as shoes or suits with integrated shoes. - */ + * Component for clothing items that can pick up blood from decals and spread it around everywhere when walking, such as shoes or suits with integrated shoes. + */ /datum/component/bloodysoles /// The type of the last grub pool we stepped in, used to decide the type of footprints to make var/last_blood_state = BLOOD_STATE_NOT_BLOODY @@ -31,8 +31,8 @@ RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/on_clean) /** - * Unregisters from the wielder if necessary - */ + * Unregisters from the wielder if necessary + */ /datum/component/bloodysoles/proc/unregister() if(!QDELETED(wielder)) UnregisterSignal(wielder, COMSIG_MOVABLE_MOVED) @@ -41,21 +41,21 @@ equipped_slot = null /** - * Returns true if the parent item is obscured by something else that the wielder is wearing - */ + * Returns true if the parent item is obscured by something else that the wielder is wearing + */ /datum/component/bloodysoles/proc/is_obscured() return wielder.check_obscured_slots(TRUE) & equipped_slot /** - * Run to update the icon of the parent - */ + * Run to update the icon of the parent + */ /datum/component/bloodysoles/proc/update_icon() var/obj/item/parent_item = parent parent_item.update_slot_icon() /** - * Run to equally share the blood between us and a decal - */ + * Run to equally share the blood between us and a decal + */ /datum/component/bloodysoles/proc/share_blood(obj/effect/decal/cleanable/pool) last_blood_state = pool.blood_state @@ -72,24 +72,24 @@ update_icon() /** - * Find a blood decal on a turf that matches our last_blood_state - */ + * Find a blood decal on a turf that matches our last_blood_state + */ /datum/component/bloodysoles/proc/find_pool_by_blood_state(turf/turfLoc, typeFilter = null) for(var/obj/effect/decal/cleanable/blood/pool in turfLoc) if(pool.blood_state == last_blood_state && (!typeFilter || istype(pool, typeFilter))) return pool /** - * Adds the parent type to the footprint's shoe_types var - */ + * Adds the parent type to the footprint's shoe_types var + */ /datum/component/bloodysoles/proc/add_parent_to_footprint(obj/effect/decal/cleanable/blood/footprints/FP) FP.shoe_types |= parent.type /** - * Called when the parent item is equipped by someone - * - * Used to register our wielder - */ + * Called when the parent item is equipped by someone + * + * Used to register our wielder + */ /datum/component/bloodysoles/proc/on_equip(datum/source, mob/equipper, slot) SIGNAL_HANDLER @@ -106,20 +106,20 @@ RegisterSignal(wielder, COMSIG_STEP_ON_BLOOD, .proc/on_step_blood) /** - * Called when the parent item has been dropped - * - * Used to deregister our wielder - */ + * Called when the parent item has been dropped + * + * Used to deregister our wielder + */ /datum/component/bloodysoles/proc/on_drop(datum/source, mob/dropper) SIGNAL_HANDLER unregister() /** - * Called when the wielder has moved - * - * Used to make bloody footprints on the ground - */ + * Called when the wielder has moved + * + * Used to make bloody footprints on the ground + */ /datum/component/bloodysoles/proc/on_moved(datum/source, OldLoc, Dir, Forced) SIGNAL_HANDLER @@ -176,10 +176,10 @@ /** - * Called when the wielder steps in a pool of blood - * - * Used to make the parent item bloody - */ + * Called when the wielder steps in a pool of blood + * + * Used to make the parent item bloody + */ /datum/component/bloodysoles/proc/on_step_blood(datum/source, obj/effect/decal/cleanable/pool) SIGNAL_HANDLER @@ -200,8 +200,8 @@ last_pickup = world.time /** - * Called when the parent item is being washed - */ + * Called when the parent item is being washed + */ /datum/component/bloodysoles/proc/on_clean(datum/source, clean_types) SIGNAL_HANDLER @@ -215,8 +215,8 @@ /** - * Like its parent but can be applied to carbon mobs instead of clothing items - */ + * Like its parent but can be applied to carbon mobs instead of clothing items + */ /datum/component/bloodysoles/feet var/static/mutable_appearance/bloody_feet diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index 999971ea7cf..d1fb0b72b11 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -60,12 +60,12 @@ */ /** - * Check that the contents of the recipe meet the requirements. - * - * user: The /mob that initated the crafting. - * R: The /datum/crafting_recipe being attempted. - * contents: List of items to search for R's reqs. - */ + * Check that the contents of the recipe meet the requirements. + * + * user: The /mob that initated the crafting. + * R: The /datum/crafting_recipe being attempted. + * contents: List of items to search for R's reqs. + */ /datum/component/personal_crafting/proc/check_contents(atom/a, datum/crafting_recipe/R, list/contents) var/list/item_instances = contents["instances"] contents = contents["other"] diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index 9595716d4a6..d6b6f354842 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -19,11 +19,11 @@ blacklist += result /** - * Run custom pre-craft checks for this recipe - * - * user: The /mob that initiated the crafting - * collected_requirements: A list of lists of /obj/item instances that satisfy reqs. Top level list is keyed by requirement path. - */ + * Run custom pre-craft checks for this recipe + * + * user: The /mob that initiated the crafting + * collected_requirements: A list of lists of /obj/item instances that satisfy reqs. Top level list is keyed by requirement path. + */ /datum/crafting_recipe/proc/check_requirements(mob/user, list/collected_requirements) return TRUE @@ -820,8 +820,9 @@ name = "Collosal Rib" always_available = FALSE reqs = list( - /obj/item/stack/sheet/bone = 10, - /datum/reagent/fuel/oil = 5) + /obj/item/stack/sheet/bone = 10, + /datum/reagent/fuel/oil = 5, + ) result = /obj/structure/statue/bone/rib subcategory = CAT_PRIMAL @@ -829,8 +830,9 @@ name = "Skull Carving" always_available = FALSE reqs = list( - /obj/item/stack/sheet/bone = 6, - /datum/reagent/fuel/oil = 5) + /obj/item/stack/sheet/bone = 6, + /datum/reagent/fuel/oil = 5, + ) result = /obj/structure/statue/bone/skull category = CAT_PRIMAL @@ -838,8 +840,9 @@ name = "Cracked Skull Carving" always_available = FALSE reqs = list( - /obj/item/stack/sheet/bone = 3, - /datum/reagent/fuel/oil = 5) + /obj/item/stack/sheet/bone = 3, + /datum/reagent/fuel/oil = 5, + ) result = /obj/structure/statue/bone/skull/half category = CAT_PRIMAL @@ -847,42 +850,47 @@ name = "Serrated Bone Shovel" always_available = FALSE reqs = list( - /obj/item/stack/sheet/bone = 4, - /datum/reagent/fuel/oil = 5, - /obj/item/shovel/spade = 1) + /obj/item/stack/sheet/bone = 4, + /datum/reagent/fuel/oil = 5, + /obj/item/shovel/spade = 1, + ) result = /obj/item/shovel/serrated category = CAT_PRIMAL /datum/crafting_recipe/lasso name = "Bone Lasso" reqs = list( - /obj/item/stack/sheet/bone = 1, - /obj/item/stack/sheet/sinew = 5) + /obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 5, + ) result = /obj/item/key/lasso category = CAT_PRIMAL /datum/crafting_recipe/gripperoffbrand name = "Improvised Gripper Gloves" reqs = list( - /obj/item/clothing/gloves/fingerless = 1, - /obj/item/stack/sticky_tape = 1) + /obj/item/clothing/gloves/fingerless = 1, + /obj/item/stack/sticky_tape = 1, + ) result = /obj/item/clothing/gloves/tackler/offbrand category = CAT_CLOTHING /datum/crafting_recipe/boh name = "Bag of Holding" reqs = list( - /obj/item/bag_of_holding_inert = 1, - /obj/item/assembly/signaler/anomaly/bluespace = 1) + /obj/item/bag_of_holding_inert = 1, + /obj/item/assembly/signaler/anomaly/bluespace = 1, + ) result = /obj/item/storage/backpack/holding category = CAT_CLOTHING /datum/crafting_recipe/ipickaxe name = "Improvised Pickaxe" reqs = list( - /obj/item/crowbar = 1, - /obj/item/kitchen/knife = 1, - /obj/item/stack/sticky_tape = 1) + /obj/item/crowbar = 1, + /obj/item/kitchen/knife = 1, + /obj/item/stack/sticky_tape = 1, + ) result = /obj/item/pickaxe/improvised category = CAT_MISC diff --git a/code/datums/components/creamed.dm b/code/datums/components/creamed.dm index 003fd7db720..147c1055f20 100644 --- a/code/datums/components/creamed.dm +++ b/code/datums/components/creamed.dm @@ -5,10 +5,10 @@ GLOBAL_LIST_INIT(creamable, typecacheof(list( /mob/living/silicon/ai))) /** - * Creamed component - * - * For when you have pie on your face - */ + * Creamed component + * + * For when you have pie on your face + */ /datum/component/creamed dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS diff --git a/code/datums/components/dejavu.dm b/code/datums/components/dejavu.dm index 3f9fc828842..19e41148d3b 100644 --- a/code/datums/components/dejavu.dm +++ b/code/datums/components/dejavu.dm @@ -1,6 +1,6 @@ /** - * A component to reset the parent to its previous state after some time passes - */ + * A component to reset the parent to its previous state after some time passes + */ /datum/component/dejavu /// The turf the parent was on when this components was applied, they get moved back here after the duration var/turf/starting_turf @@ -35,7 +35,7 @@ starting_turf = get_turf(parent) rewinds_remaining = rewinds rewind_interval = interval - + if(isliving(parent)) var/mob/living/L = parent clone_loss = L.getCloneLoss() @@ -43,22 +43,22 @@ oxy_loss = L.getOxyLoss() brain_loss = L.getOrganLoss(ORGAN_SLOT_BRAIN) rewind_type = .proc/rewind_living - + if(iscarbon(parent)) var/mob/living/carbon/C = parent saved_bodyparts = C.save_bodyparts() rewind_type = .proc/rewind_carbon - + else if(isanimal(parent)) var/mob/living/simple_animal/M = parent brute_loss = M.bruteloss rewind_type = .proc/rewind_animal - + else if(isobj(parent)) var/obj/O = parent integrity = O.obj_integrity rewind_type = .proc/rewind_obj - + addtimer(CALLBACK(src, rewind_type), rewind_interval) /datum/component/dejavu/Destroy() diff --git a/code/datums/components/forensics.dm b/code/datums/components/forensics.dm index 8b137a43b92..f4e13761472 100644 --- a/code/datums/components/forensics.dm +++ b/code/datums/components/forensics.dm @@ -28,7 +28,7 @@ RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_act) /datum/component/forensics/UnregisterFromParent() - UnregisterSignal(parent, list(COMSIG_COMPONENT_CLEAN_ACT)) + UnregisterSignal(parent, list(COMSIG_COMPONENT_CLEAN_ACT)) /datum/component/forensics/PostTransfer() if(!isatom(parent)) diff --git a/code/datums/components/knockback.dm b/code/datums/components/knockback.dm index b042973c573..30362ace7ec 100644 --- a/code/datums/components/knockback.dm +++ b/code/datums/components/knockback.dm @@ -47,13 +47,13 @@ /** - * Throw a target in a direction - * - * Arguments: - * * target - Target atom to throw - * * thrower - Thing that caused this atom to be thrown - * * throw_dir - Direction to throw the atom - */ + * Throw a target in a direction + * + * Arguments: + * * target - Target atom to throw + * * thrower - Thing that caused this atom to be thrown + * * throw_dir - Direction to throw the atom + */ /datum/component/knockback/proc/do_knockback(atom/target, mob/thrower, throw_dir) if(!ismovable(target) || throw_dir == null) return diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index 426ca8c878d..25b35ad5a58 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -196,14 +196,14 @@ qdel(src) /** - * Handles how nanites leave the host's body if they find out that they're currently exceeding the maximum supported amount - * - * IC explanation: - * Normally nanites simply discard excess volume by slowing replication or 'sweating' it out in imperceptible amounts, - * but if there is a large excess volume, likely due to a programming change that leaves them unable to support their current volume, - * the nanites attempt to leave the host as fast as necessary to prevent nanite poisoning. This can range from minor oozing to nanites - * rapidly bursting out from every possible pathway, causing temporary inconvenience to the host. - */ + * Handles how nanites leave the host's body if they find out that they're currently exceeding the maximum supported amount + * + * IC explanation: + * Normally nanites simply discard excess volume by slowing replication or 'sweating' it out in imperceptible amounts, + * but if there is a large excess volume, likely due to a programming change that leaves them unable to support their current volume, + * the nanites attempt to leave the host as fast as necessary to prevent nanite poisoning. This can range from minor oozing to nanites + * rapidly bursting out from every possible pathway, causing temporary inconvenience to the host. + */ /datum/component/nanites/proc/reject_excess_nanites() var/excess = nanite_volume - max_nanites nanite_volume = max_nanites diff --git a/code/datums/components/omen.dm b/code/datums/components/omen.dm index 779f45b8c93..9b50b5d62df 100644 --- a/code/datums/components/omen.dm +++ b/code/datums/components/omen.dm @@ -1,11 +1,11 @@ /** - * omen.dm: For when you want someone to have a really bad day - * - * When you attach an omen component to someone, they start running the risk of all sorts of bad environmental injuries, like nearby vending machines randomly falling on you, - * or hitting your head really hard when you slip and fall, or... well, for now those two are all I have. More will come. - * - * Omens are removed once the victim is either maimed by one of the possible injuries, or if they receive a blessing (read: bashing with a bible) from the chaplain. - */ + * omen.dm: For when you want someone to have a really bad day + * + * When you attach an omen component to someone, they start running the risk of all sorts of bad environmental injuries, like nearby vending machines randomly falling on you, + * or hitting your head really hard when you slip and fall, or... well, for now those two are all I have. More will come. + * + * Omens are removed once the victim is either maimed by one of the possible injuries, or if they receive a blessing (read: bashing with a bible) from the chaplain. + */ /datum/component/omen dupe_mode = COMPONENT_DUPE_UNIQUE @@ -45,11 +45,11 @@ UnregisterSignal(parent, list(COMSIG_LIVING_STATUS_KNOCKDOWN, COMSIG_MOVABLE_MOVED, COMSIG_ADD_MOOD_EVENT)) /** - * check_accident() is called each step we take - * - * While we're walking around, roll to see if there's any environmental hazards (currently only vending machines) on one of the adjacent tiles we can trigger. - * We do the prob() at the beginning to A. add some tension for /when/ it will strike, and B. (more importantly) ameliorate the fact that we're checking up to 5 turfs's contents each time - */ + * check_accident() is called each step we take + * + * While we're walking around, roll to see if there's any environmental hazards (currently only vending machines) on one of the adjacent tiles we can trigger. + * We do the prob() at the beginning to A. add some tension for /when/ it will strike, and B. (more importantly) ameliorate the fact that we're checking up to 5 turfs's contents each time + */ /datum/component/omen/proc/check_accident(atom/movable/our_guy) SIGNAL_HANDLER_DOES_SLEEP diff --git a/code/datums/components/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm index ff47d54e1b4..3fd7a0e0d20 100644 --- a/code/datums/components/overlay_lighting.dm +++ b/code/datums/components/overlay_lighting.dm @@ -10,20 +10,20 @@ #define SHORT_CAST 2 /** - * Movable atom overlay-based lighting component. - * - * * Component works by applying a visual object to the parent target. - * - * * The component tracks the parent's loc to determine the current_holder. - * * The current_holder is either the parent or its loc, whichever is on a turf. If none, then the current_holder is null and the light is not visible. - * - * * Lighting works at its base by applying a dark overlay and "cutting" said darkness with light, adding (possibly colored) transparency. - * * This component uses the visible_mask visual object to apply said light mask on the darkness. - * - * * The main limitation of this system is that it uses a limited number of pre-baked geometrical shapes, but for most uses it does the job. - * - * * Another limitation is for big lights: you only see the light if you see the object emiting it. - * * For small objects this is good (you can't see them behind a wall), but for big ones this quickly becomes prety clumsy. + * Movable atom overlay-based lighting component. + * + * * Component works by applying a visual object to the parent target. + * + * * The component tracks the parent's loc to determine the current_holder. + * * The current_holder is either the parent or its loc, whichever is on a turf. If none, then the current_holder is null and the light is not visible. + * + * * Lighting works at its base by applying a dark overlay and "cutting" said darkness with light, adding (possibly colored) transparency. + * * This component uses the visible_mask visual object to apply said light mask on the darkness. + * + * * The main limitation of this system is that it uses a limited number of pre-baked geometrical shapes, but for most uses it does the job. + * + * * Another limitation is for big lights: you only see the light if you see the object emiting it. + * * For small objects this is good (you can't see them behind a wall), but for big ones this quickly becomes prety clumsy. */ /datum/component/overlay_lighting ///How far the light reaches, float. diff --git a/code/datums/components/payment.dm b/code/datums/components/payment.dm index e8c21303e36..eb3abaa62df 100644 --- a/code/datums/components/payment.dm +++ b/code/datums/components/payment.dm @@ -1,14 +1,14 @@ /** - * Handles simple payment operations where the cost of the object in question doesn't change. - * - * What this is useful for: - * Basic forms of vending. - * Objects that can drain the owner's money linearly. - * What this is not useful for: - * Things where the seller may want to fluxuate the price of the object. - * Improving standardizing every form of payment handing, as some custom handling is specific to that object. - **/ + * Handles simple payment operations where the cost of the object in question doesn't change. + * + * What this is useful for: + * Basic forms of vending. + * Objects that can drain the owner's money linearly. + * What this is not useful for: + * Things where the seller may want to fluxuate the price of the object. + * Improving standardizing every form of payment handing, as some custom handling is specific to that object. + **/ /datum/component/payment ///Standardized of operation. var/cost = 10 diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm index 551c1bc8b41..18f821b5f10 100644 --- a/code/datums/components/pellet_cloud.dm +++ b/code/datums/components/pellet_cloud.dm @@ -92,11 +92,11 @@ UnregisterSignal(parent, list(COMSIG_PARENT_PREQDELETED, COMSIG_PELLET_CLOUD_INIT, COMSIG_GRENADE_DETONATE, COMSIG_GRENADE_ARMED, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UNCROSSED, COMSIG_MINE_TRIGGERED, COMSIG_ITEM_DROPPED)) /** - * create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance) - * - * Honestly this is mostly just a rehash of [/obj/item/ammo_casing/proc/fire_casing] for pellet counts > 1, except this lets us tamper with the pellets and hook onto them for tracking purposes. - * The arguments really don't matter, this proc is triggered by COMSIG_PELLET_CLOUD_INIT which is only for this really, it's just a big mess of the state vars we need for doing the stuff over here. - */ + * create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance) + * + * Honestly this is mostly just a rehash of [/obj/item/ammo_casing/proc/fire_casing] for pellet counts > 1, except this lets us tamper with the pellets and hook onto them for tracking purposes. + * The arguments really don't matter, this proc is triggered by COMSIG_PELLET_CLOUD_INIT which is only for this really, it's just a big mess of the state vars we need for doing the stuff over here. + */ /datum/component/pellet_cloud/proc/create_casing_pellets(obj/item/ammo_casing/shell, atom/target, mob/living/user, fired_from, randomspread, spread, zone_override, params, distro) SIGNAL_HANDLER_DOES_SLEEP @@ -130,15 +130,15 @@ shell.newshot() /** - * create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines. - * - * Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, see [/datum/component/pellet_cloud/proc/handle_martyrs] - * Landmines just have a small check for [/obj/effect/mine/shrapnel/var/shred_triggerer], and spawn extra shrapnel for them if so - * - * Arguments: - * * O- Our parent, the thing making the shrapnel obviously (grenade or landmine) - * * punishable_triggerer- For grenade lances or people who step on the landmines (if we shred the triggerer), we spawn extra shrapnel for them in addition to the normal spread - */ + * create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines. + * + * Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, see [/datum/component/pellet_cloud/proc/handle_martyrs] + * Landmines just have a small check for [/obj/effect/mine/shrapnel/var/shred_triggerer], and spawn extra shrapnel for them if so + * + * Arguments: + * * O- Our parent, the thing making the shrapnel obviously (grenade or landmine) + * * punishable_triggerer- For grenade lances or people who step on the landmines (if we shred the triggerer), we spawn extra shrapnel for them in addition to the normal spread + */ /datum/component/pellet_cloud/proc/create_blast_pellets(obj/O, mob/living/punishable_triggerer) SIGNAL_HANDLER_DOES_SLEEP @@ -164,14 +164,14 @@ pew(shootat_turf) /** - * handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel - * - * Between the time the grenade is armed and the actual detonation, we set var/list/bodies to the list of mobs currently on the new tile, as if the grenade landed on top of them, tracking if any of them move off the tile and removing them from the "under" list - * Once the grenade detonates, handle_martyrs() is called and gets all the new mobs on the tile, and add the ones not in var/list/bodies to var/list/martyrs - * We then iterate through the martyrs and reduce the shrapnel magnitude for each mob on top of it, shredding each of them with some of the shrapnel they helped absorb. This can snuff out all of the shrapnel if there's enough bodies - * - * Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later - */ + * handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel + * + * Between the time the grenade is armed and the actual detonation, we set var/list/bodies to the list of mobs currently on the new tile, as if the grenade landed on top of them, tracking if any of them move off the tile and removing them from the "under" list + * Once the grenade detonates, handle_martyrs() is called and gets all the new mobs on the tile, and add the ones not in var/list/bodies to var/list/martyrs + * We then iterate through the martyrs and reduce the shrapnel magnitude for each mob on top of it, shredding each of them with some of the shrapnel they helped absorb. This can snuff out all of the shrapnel if there's enough bodies + * + * Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later + */ /datum/component/pellet_cloud/proc/handle_martyrs(mob/living/punishable_triggerer) var/magnitude_absorbed var/list/martyrs = list() diff --git a/code/datums/components/religious_tool.dm b/code/datums/components/religious_tool.dm index f42d11f19a0..5c39a934962 100644 --- a/code/datums/components/religious_tool.dm +++ b/code/datums/components/religious_tool.dm @@ -1,8 +1,8 @@ /** - * - * Allows the parent to act similarly to the Altar of Gods with modularity. Invoke and Sect Selection is done via attacking with a bible. This means you cannot sacrifice Bibles (you shouldn't want to do this anyways although now that I mentioned it you probably will want to). - * - */ + * + * Allows the parent to act similarly to the Altar of Gods with modularity. Invoke and Sect Selection is done via attacking with a bible. This means you cannot sacrifice Bibles (you shouldn't want to do this anyways although now that I mentioned it you probably will want to). + * + */ /datum/component/religious_tool dupe_mode = COMPONENT_DUPE_UNIQUE /// Enables access to the global sect directly @@ -34,8 +34,8 @@ UnregisterSignal(parent, list(COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE)) /** - * Sets the easy access variable to the global if it exists. - */ + * Sets the easy access variable to the global if it exists. + */ /datum/component/religious_tool/proc/SetGlobalToLocal() if(easy_access_sect) return TRUE @@ -48,8 +48,8 @@ /** - * Since all of these involve attackby, we require mega proc. Handles Invocation, Sacrificing, And Selection of Sects. - */ + * Since all of these involve attackby, we require mega proc. Handles Invocation, Sacrificing, And Selection of Sects. + */ /datum/component/religious_tool/proc/AttemptActions(datum/source, obj/item/the_item, mob/living/user) SIGNAL_HANDLER @@ -57,7 +57,7 @@ if(!SetGlobalToLocal()) if(!(operation_flags & RELIGION_TOOL_SECTSELECT)) return - //At this point you're intentionally trying to select a sect. + //At this point you're intentionally trying to select a sect. INVOKE_ASYNC(src, .proc/select_sect, user) return COMPONENT_NO_AFTERATTACK @@ -122,8 +122,8 @@ QDEL_NULL(performing_rite) /** - * Generates a list of available sects to the user. Intended to support custom-availability sects. Because these are not instanced, we cannot put the availability on said sect beyond variables. - */ + * Generates a list of available sects to the user. Intended to support custom-availability sects. Because these are not instanced, we cannot put the availability on said sect beyond variables. + */ /datum/component/religious_tool/proc/generate_available_sects(mob/user) . = list() for(var/i in subtypesof(/datum/religion_sect)) @@ -132,8 +132,8 @@ . += list(initial(not_a_real_instance_rs.name) = i) /** - * Appends to examine so the user knows it can be used for religious purposes. - */ + * Appends to examine so the user knows it can be used for religious purposes. + */ /datum/component/religious_tool/proc/on_examine(datum/source, mob/user, list/examine_list) SIGNAL_HANDLER diff --git a/code/datums/components/stationstuck.dm b/code/datums/components/stationstuck.dm index d6e8c57a065..f96aedab845 100644 --- a/code/datums/components/stationstuck.dm +++ b/code/datums/components/stationstuck.dm @@ -35,14 +35,14 @@ It has a punishment variable that is what happens to the parent when they leave message = _message /** - * Called when parent leaves the zlevel this is set to (aka whichever zlevel it was on when it was added) - * Sends a message, then does an effect depending on what the punishment was. - * - * Punishments: - * * PUNISHMENT_MURDER: kills parent - * * PUNISHMENT_GIB: gibs parent - * * PUNISHMENT_TELEPORT: finds a safe turf if possible, or a completely random one if not. - */ + * Called when parent leaves the zlevel this is set to (aka whichever zlevel it was on when it was added) + * Sends a message, then does an effect depending on what the punishment was. + * + * Punishments: + * * PUNISHMENT_MURDER: kills parent + * * PUNISHMENT_GIB: gibs parent + * * PUNISHMENT_TELEPORT: finds a safe turf if possible, or a completely random one if not. + */ /datum/component/stationstuck/proc/punish() SIGNAL_HANDLER diff --git a/code/datums/components/storage/concrete/trading_cards.dm b/code/datums/components/storage/concrete/trading_cards.dm index a829e2c2cbe..853b0666ab0 100644 --- a/code/datums/components/storage/concrete/trading_cards.dm +++ b/code/datums/components/storage/concrete/trading_cards.dm @@ -1,6 +1,6 @@ /** - *A storage component to be used on card piles, for use as hands/decks/discard piles. Don't use on something that's not a card pile! - */ + *A storage component to be used on card piles, for use as hands/decks/discard piles. Don't use on something that's not a card pile! + */ /datum/component/storage/concrete/tcg display_numerical_stacking = FALSE max_w_class = WEIGHT_CLASS_TINY diff --git a/code/datums/components/storage/food_storage.dm b/code/datums/components/storage/food_storage.dm index 4e8e695d064..7a1d68cfdb3 100644 --- a/code/datums/components/storage/food_storage.dm +++ b/code/datums/components/storage/food_storage.dm @@ -37,13 +37,13 @@ . = ..() /** Begins the process of inserted an item. - * - * Clicking on the food storage with an item will begin a do_after, which if successful inserts the item. - * - * Arguments - * inserted_item - the item being placed into the food - * user - the person inserting the item - */ + * + * Clicking on the food storage with an item will begin a do_after, which if successful inserts the item. + * + * Arguments + * inserted_item - the item being placed into the food + * user - the person inserting the item + */ /datum/component/food_storage/proc/try_inserting_item(datum/source, obj/item/inserted_item, mob/user, params) SIGNAL_HANDLER @@ -74,12 +74,12 @@ return COMPONENT_CANCEL_ATTACK_CHAIN /** Begins the process of attempting to remove the stored item. - * - * Clicking on food storage on grab intent will begin a do_after, which if successful removes the stored_item. - * - * Arguments - * user - the person removing the item. - */ + * + * Clicking on food storage on grab intent will begin a do_after, which if successful removes the stored_item. + * + * Arguments + * user - the person removing the item. + */ /datum/component/food_storage/proc/try_removing_item(datum/source, mob/user) SIGNAL_HANDLER @@ -96,11 +96,11 @@ return COMPONENT_CANCEL_ATTACK_CHAIN /** Inserts the item into the food, after a do_after. - * - * Arguments - * inserted_item - The item being inserted. - * user - the person inserting the item. - */ + * + * Arguments + * inserted_item - The item being inserted. + * user - the person inserting the item. + */ /datum/component/food_storage/proc/insert_item(obj/item/inserted_item, mob/user) if(do_after(user, 1.5 SECONDS, target = parent)) var/atom/food = parent @@ -113,17 +113,17 @@ stored_item = inserted_item /** Removes the item from the food, after a do_after. - * - * Arguments - * user - person removing the item. - */ + * + * Arguments + * user - person removing the item. + */ /datum/component/food_storage/proc/begin_remove_item(mob/user) if(do_after(user, 10 SECONDS, target = parent)) remove_item(user) /** - * Removes the stored item, putting it in user's hands or on the ground, then updates the reference. - */ + * Removes the stored item, putting it in user's hands or on the ground, then updates the reference. + */ /datum/component/food_storage/proc/remove_item(mob/user) if(user.put_in_hands(stored_item)) user.visible_message("[user.name] slowly pulls [stored_item.name] out of \the [parent].", \ @@ -135,18 +135,18 @@ update_stored_item() /** Checks for stored items when the food is eaten. - * - * If the food is eaten while an item is stored in it, calculates the odds that the item will be found. - * Then, if the item is found before being bitten, the item is removed. - * If the item is found by biting into it, calls on_accidental_consumption on the stored item. - * Afterwards, removes the item from the food if it was discovered. - * - * Arguments - * target - person doing the eating (can be the same as user) - * user - person causing the eating to happen - * bitecount - how many times the current food has been bitten - * bitesize - how large bties are for this food - */ + * + * If the food is eaten while an item is stored in it, calculates the odds that the item will be found. + * Then, if the item is found before being bitten, the item is removed. + * If the item is found by biting into it, calls on_accidental_consumption on the stored item. + * Afterwards, removes the item from the food if it was discovered. + * + * Arguments + * target - person doing the eating (can be the same as user) + * user - person causing the eating to happen + * bitecount - how many times the current food has been bitten + * bitesize - how large bties are for this food + */ /datum/component/food_storage/proc/consume_food_storage(datum/source, mob/living/target, mob/living/user, bitecount, bitesize) SIGNAL_HANDLER @@ -172,13 +172,13 @@ INVOKE_ASYNC(src, .proc/remove_item, user) /** Updates the reference of the stored item. - * - * Checks the food's contents for if an alternate item was placed into the food. - * If there is an alternate item, updates the reference to the new item. - * If there isn't, updates the reference to null. - * - * Returns FALSE if the ref is nulled, or TRUE is another item replaced it. - */ + * + * Checks the food's contents for if an alternate item was placed into the food. + * If there is an alternate item, updates the reference to the new item. + * If there isn't, updates the reference to null. + * + * Returns FALSE if the ref is nulled, or TRUE is another item replaced it. + */ /datum/component/food_storage/proc/update_stored_item() var/atom/food = parent if(!food?.contents.len) //if there's no items in the food or food is deleted somehow diff --git a/code/datums/components/surgery_initiator.dm b/code/datums/components/surgery_initiator.dm index faad2baa706..17d2b4914b7 100644 --- a/code/datums/components/surgery_initiator.dm +++ b/code/datums/components/surgery_initiator.dm @@ -1,8 +1,8 @@ /** - * - * Allows parent (obj) to initiate surgeries. - * - */ + * + * Allows parent (obj) to initiate surgeries. + * + */ /datum/component/surgery_initiator dupe_mode = COMPONENT_DUPE_UNIQUE ///allows for post-selection manipulation of parent diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 5de4f0ad2f4..9ceac3c7f6d 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -2,14 +2,14 @@ #define MAX_TABLE_MESSES 12 /** - * For when you want to throw a person at something and have fun stuff happen - * - * This component is made for carbon mobs (really, humans), and allows its parent to throw themselves and perform tackles. This is done by enabling throw mode, then clicking on your - * intended target with an empty hand. You will then launch toward your target. If you hit a carbon, you'll roll to see how hard you hit them. If you hit a solid non-mob, you'll - * roll to see how badly you just messed yourself up. If, along your journey, you hit a table, you'll slam onto it and send up to MAX_TABLE_MESSES (8) /obj/items on the table flying, - * and take a bit of extra damage and stun for each thing launched. - * - * There are 2 separate """skill rolls""" involved here, which are handled and explained in [rollTackle()][/datum/component/tackler/proc/rollTackle] (for roll 1, carbons), and [splat()][/datum/component/tackler/proc/splat] (for roll 2, walls and solid objects) + * For when you want to throw a person at something and have fun stuff happen + * + * This component is made for carbon mobs (really, humans), and allows its parent to throw themselves and perform tackles. This is done by enabling throw mode, then clicking on your + * intended target with an empty hand. You will then launch toward your target. If you hit a carbon, you'll roll to see how hard you hit them. If you hit a solid non-mob, you'll + * roll to see how badly you just messed yourself up. If, along your journey, you hit a table, you'll slam onto it and send up to MAX_TABLE_MESSES (8) /obj/items on the table flying, + * and take a bit of extra damage and stun for each thing launched. + * + * There are 2 separate """skill rolls""" involved here, which are handled and explained in [rollTackle()][/datum/component/tackler/proc/rollTackle] (for roll 1, carbons), and [splat()][/datum/component/tackler/proc/splat] (for roll 2, walls and solid objects) */ /datum/component/tackler dupe_mode = COMPONENT_DUPE_UNIQUE @@ -231,14 +231,14 @@ return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH /** - * This handles all of the modifiers for the actual carbon-on-carbon tackling, and gets its own proc because of how many there are (with plenty more in mind!) - * - * The base roll is between (-3, 3), with negative numbers favoring the target, and positive numbers favoring the tackler. The target and the tackler are both assessed for - * how easy they are to knock over, with clumsiness and dwarfiness being strong maluses for each, and gigantism giving a bonus for each. These numbers and ideas - * are absolutely subject to change. + * This handles all of the modifiers for the actual carbon-on-carbon tackling, and gets its own proc because of how many there are (with plenty more in mind!) + * + * The base roll is between (-3, 3), with negative numbers favoring the target, and positive numbers favoring the tackler. The target and the tackler are both assessed for + * how easy they are to knock over, with clumsiness and dwarfiness being strong maluses for each, and gigantism giving a bonus for each. These numbers and ideas + * are absolutely subject to change. - * In addition, after subtracting the defender's mod and adding the attacker's mod to the roll, the component's base (skill) mod is added as well. Some sources of tackles - * are better at taking people down, like the bruiser and rocket gloves, while the dolphin gloves have a malus in exchange for better mobility. + * In addition, after subtracting the defender's mod and adding the attacker's mod to the roll, the component's base (skill) mod is added as well. Some sources of tackles + * are better at taking people down, like the bruiser and rocket gloves, while the dolphin gloves have a malus in exchange for better mobility. */ /datum/component/tackler/proc/rollTackle(mob/living/carbon/target) var/defense_mod = 0 @@ -315,28 +315,28 @@ /** - * This is where we handle diving into dense atoms, generally with effects ranging from bad to REALLY bad. This works as a percentile roll that is modified in two steps as detailed below. The higher - * the roll, the more severe the result. - * - * Mod 1: Speed- - * * Base tackle speed is 1, which is what normal gripper gloves use. For other sources with higher speed tackles, like dolphin and ESPECIALLY rocket gloves, we obey Newton's laws and hit things harder. - * * For every unit of speed above 1, move the lower bound of the roll up by 15. Unlike Mod 2, this only serves to raise the lower bound, so it can't be directly counteracted by anything you can control. - * - * Mod 2: Misc- - * -Flat modifiers, these take whatever you rolled and add/subtract to it, with the end result capped between the minimum from Mod 1 and 100. Note that since we can't roll higher than 100 to start with, - * wearing a helmet should be enough to remove any chance of permanently paralyzing yourself and dramatically lessen knocking yourself unconscious, even with rocket gloves. Will expand on maybe - * * Wearing a helmet: -6 - * * Wearing riot armor: -6 - * * Clumsy: +6 - * - * Effects: Below are the outcomes based off your roll, in order of increasing severity - * - * * 1-67: Knocked down for a few seconds and a bit of brute and stamina damage - * * 68-85: Knocked silly, gain some confusion as well as the above - * * 86-92: Cranial trauma, get a concussion and more confusion, plus more damage - * * 93-96: Knocked unconscious, get a random mild brain trauma, as well as a fair amount of damage - * * 97-98: Massive head damage, probably crack your skull open, random mild brain trauma - * * 99-Infinity: Break your spinal cord, get paralyzed, take a bunch of damage too. Very unlucky! + * This is where we handle diving into dense atoms, generally with effects ranging from bad to REALLY bad. This works as a percentile roll that is modified in two steps as detailed below. The higher + * the roll, the more severe the result. + * + * Mod 1: Speed- + * * Base tackle speed is 1, which is what normal gripper gloves use. For other sources with higher speed tackles, like dolphin and ESPECIALLY rocket gloves, we obey Newton's laws and hit things harder. + * * For every unit of speed above 1, move the lower bound of the roll up by 15. Unlike Mod 2, this only serves to raise the lower bound, so it can't be directly counteracted by anything you can control. + * + * Mod 2: Misc- + * -Flat modifiers, these take whatever you rolled and add/subtract to it, with the end result capped between the minimum from Mod 1 and 100. Note that since we can't roll higher than 100 to start with, + * wearing a helmet should be enough to remove any chance of permanently paralyzing yourself and dramatically lessen knocking yourself unconscious, even with rocket gloves. Will expand on maybe + * * Wearing a helmet: -6 + * * Wearing riot armor: -6 + * * Clumsy: +6 + * + * Effects: Below are the outcomes based off your roll, in order of increasing severity + * + * * 1-67: Knocked down for a few seconds and a bit of brute and stamina damage + * * 68-85: Knocked silly, gain some confusion as well as the above + * * 86-92: Cranial trauma, get a concussion and more confusion, plus more damage + * * 93-96: Knocked unconscious, get a random mild brain trauma, as well as a fair amount of damage + * * 97-98: Massive head damage, probably crack your skull open, random mild brain trauma + * * 99-Infinity: Break your spinal cord, get paralyzed, take a bunch of damage too. Very unlucky! */ /datum/component/tackler/proc/splat(mob/living/carbon/user, atom/hit) if(istype(hit, /obj/machinery/vending)) // before we do anything else- diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index e10681dcbf4..6b40a28a831 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -76,13 +76,13 @@ return /** - * Adds crime to security record. - * - * Is used to add single crime to someone's security record. - * Arguments: - * * id - record id. - * * datum/data/crime/crime - premade array containing every variable, usually created by createCrimeEntry. - */ + * Adds crime to security record. + * + * Is used to add single crime to someone's security record. + * Arguments: + * * id - record id. + * * datum/data/crime/crime - premade array containing every variable, usually created by createCrimeEntry. + */ /datum/datacore/proc/addCrime(id = "", datum/data/crime/crime) for(var/datum/data/record/R in security) if(R.fields["id"] == id) @@ -91,13 +91,13 @@ return /** - * Deletes crime from security record. - * - * Is used to delete single crime to someone's security record. - * Arguments: - * * id - record id. - * * cDataId - id of already existing crime. - */ + * Deletes crime from security record. + * + * Is used to delete single crime to someone's security record. + * Arguments: + * * id - record id. + * * cDataId - id of already existing crime. + */ /datum/datacore/proc/removeCrime(id, cDataId) for(var/datum/data/record/R in security) if(R.fields["id"] == id) @@ -108,14 +108,14 @@ return /** - * Adds details to a crime. - * - * Is used to add or replace details to already existing crime. - * Arguments: - * * id - record id. - * * cDataId - id of already existing crime. - * * details - data you want to add. - */ + * Adds details to a crime. + * + * Is used to add or replace details to already existing crime. + * Arguments: + * * id - record id. + * * cDataId - id of already existing crime. + * * details - data you want to add. + */ /datum/datacore/proc/addCrimeDetails(id, cDataId, details) for(var/datum/data/record/R in security) if(R.fields["id"] == id) diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 2c94fcaa766..6447f5cb96d 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -1,13 +1,13 @@ /** - * The absolute base class for everything - * - * A datum instantiated has no physical world prescence, use an atom if you want something - * that actually lives in the world - * - * Be very mindful about adding variables to this class, they are inherited by every single - * thing in the entire game, and so you can easily cause memory usage to rise a lot with careless - * use of variables at this level - */ + * The absolute base class for everything + * + * A datum instantiated has no physical world prescence, use an atom if you want something + * that actually lives in the world + * + * Be very mindful about adding variables to this class, they are inherited by every single + * thing in the entire game, and so you can easily cause memory usage to rise a lot with careless + * use of variables at this level + */ /datum /** * Tick count time when this object was destroyed. @@ -67,30 +67,30 @@ #endif /** - * Called when a href for this datum is clicked - * - * Sends a [COMSIG_TOPIC] signal - */ + * Called when a href for this datum is clicked + * + * Sends a [COMSIG_TOPIC] signal + */ /datum/Topic(href, href_list[]) ..() SEND_SIGNAL(src, COMSIG_TOPIC, usr, href_list) /** - * Default implementation of clean-up code. - * - * This should be overridden to remove all references pointing to the object being destroyed, if - * you do override it, make sure to call the parent and return it's return value by default - * - * Return an appropriate [QDEL_HINT][QDEL_HINT_QUEUE] to modify handling of your deletion; - * in most cases this is [QDEL_HINT_QUEUE]. - * - * The base case is responsible for doing the following - * * Erasing timers pointing to this datum - * * Erasing compenents on this datum - * * Notifying datums listening to signals from this datum that we are going away - * - * Returns [QDEL_HINT_QUEUE] - */ + * Default implementation of clean-up code. + * + * This should be overridden to remove all references pointing to the object being destroyed, if + * you do override it, make sure to call the parent and return it's return value by default + * + * Return an appropriate [QDEL_HINT][QDEL_HINT_QUEUE] to modify handling of your deletion; + * in most cases this is [QDEL_HINT_QUEUE]. + * + * The base case is responsible for doing the following + * * Erasing timers pointing to this datum + * * Erasing compenents on this datum + * * Notifying datums listening to signals from this datum that we are going away + * + * Returns [QDEL_HINT_QUEUE] + */ /datum/proc/Destroy(force=FALSE, ...) SHOULD_CALL_PARENT(TRUE) tag = null @@ -231,14 +231,14 @@ return returned /** - * Callback called by a timer to end an associative-list-indexed cooldown. - * - * Arguments: - * * source - datum storing the cooldown - * * index - string index storing the cooldown on the cooldowns associative list - * - * This sends a signal reporting the cooldown end. - */ + * Callback called by a timer to end an associative-list-indexed cooldown. + * + * Arguments: + * * source - datum storing the cooldown + * * index - string index storing the cooldown on the cooldowns associative list + * + * This sends a signal reporting the cooldown end. + */ /proc/end_cooldown(datum/source, index) if(QDELETED(source)) return @@ -247,14 +247,14 @@ /** - * Proc used by stoppable timers to end a cooldown before the time has ran out. - * - * Arguments: - * * source - datum storing the cooldown - * * index - string index storing the cooldown on the cooldowns associative list - * - * This sends a signal reporting the cooldown end, passing the time left as an argument. - */ + * Proc used by stoppable timers to end a cooldown before the time has ran out. + * + * Arguments: + * * source - datum storing the cooldown + * * index - string index storing the cooldown on the cooldowns associative list + * + * This sends a signal reporting the cooldown end, passing the time left as an argument. + */ /proc/reset_cooldown(datum/source, index) if(QDELETED(source)) return diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index a88564ada52..feb4a680019 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -421,7 +421,7 @@ var/datum/disease/advance/D2 = pick(diseases) D2.Mix(D1) - // Should be only 1 entry left, but if not let's only return a single entry + // Should be only 1 entry left, but if not let's only return a single entry var/datum/disease/advance/to_return = pick(diseases) to_return.Refresh(TRUE) return to_return diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 89a1e77ddd5..282221be95a 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -143,7 +143,7 @@ var/triple_metabolism = FALSE var/reduced_hunger = FALSE desc = "The virus causes the host's metabolism to accelerate rapidly, making them process chemicals twice as fast,\ - but also causing increased hunger." + but also causing increased hunger." threshold_descs = list( "Stealth 3" = "Reduces hunger rate.", "Stage Speed 10" = "Chemical metabolization is tripled instead of doubled.", diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm index 004c11071d8..38ae5b3a998 100644 --- a/code/datums/elements/_element.dm +++ b/code/datums/elements/_element.dm @@ -1,9 +1,9 @@ /** - * A holder for simple behaviour that can be attached to many different types - * - * Only one element of each type is instanced during game init. - * Otherwise acts basically like a lightweight component. - */ + * A holder for simple behaviour that can be attached to many different types + * + * Only one element of each type is instanced during game init. + * Otherwise acts basically like a lightweight component. + */ /datum/element /// Option flags for element behaviour var/element_flags = NONE @@ -49,9 +49,9 @@ CRASH("Incompatible [arguments[1]] assigned to a [type]! args: [json_encode(args)]") /** - * Finds the singleton for the element type given and detaches it from src - * You only need additional arguments beyond the type if you're using [ELEMENT_BESPOKE] - */ + * Finds the singleton for the element type given and detaches it from src + * You only need additional arguments beyond the type if you're using [ELEMENT_BESPOKE] + */ /datum/proc/_RemoveElement(list/arguments) var/datum/element/ele = SSdcs.GetElement(arguments) ele.Detach(src) diff --git a/code/datums/elements/art.dm b/code/datums/elements/art.dm index 4a1e6a37f45..54048c0126d 100644 --- a/code/datums/elements/art.dm +++ b/code/datums/elements/art.dm @@ -33,7 +33,7 @@ msg = "Wow, [source.p_they()] sucks." user.visible_message("[user] stops and looks intently at [source].", \ - "You appraise [source]... [msg]") + "You appraise [source]... [msg]") /datum/element/art/proc/on_examine(atom/source, mob/user, list/examine_texts) SIGNAL_HANDLER @@ -63,4 +63,4 @@ msg = "Wow, [source.p_they()] sucks." user.visible_message("[user] stops to inspect [source].", \ - "You appraise [source], inspecting the fine craftsmanship of the proletariat... [msg]") + "You appraise [source], inspecting the fine craftsmanship of the proletariat... [msg]") diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index 1336704c911..3f0b245f980 100644 --- a/code/datums/elements/embed.dm +++ b/code/datums/elements/embed.dm @@ -131,11 +131,11 @@ examine_list += "[I] has a fine point, and could probably embed in someone if thrown properly!" /** - * checkEmbedProjectile() is what we get when a projectile with a defined shrapnel_type impacts a target. - * - * If we hit a valid target, we create the shrapnel_type object and immediately call tryEmbed() on it, targeting what we impacted. That will lead - * it to call tryForceEmbed() on its own embed element (it's out of our hands here, our projectile is done), where it will run through all the checks it needs to. - */ + * checkEmbedProjectile() is what we get when a projectile with a defined shrapnel_type impacts a target. + * + * If we hit a valid target, we create the shrapnel_type object and immediately call tryEmbed() on it, targeting what we impacted. That will lead + * it to call tryForceEmbed() on its own embed element (it's out of our hands here, our projectile is done), where it will run through all the checks it needs to. + */ /datum/element/embed/proc/checkEmbedProjectile(obj/projectile/P, atom/movable/firer, atom/hit, angle, hit_zone) SIGNAL_HANDLER @@ -157,17 +157,17 @@ Detach(P) /** - * tryForceEmbed() is called here when we fire COMSIG_EMBED_TRY_FORCE from [/obj/item/proc/tryEmbed]. Mostly, this means we're a piece of shrapnel from a projectile that just impacted something, and we're trying to embed in it. - * - * The reason for this extra mucking about is avoiding having to do an extra hitby(), and annoying the target by impacting them once with the projectile, then again with the shrapnel, and possibly - * AGAIN if we actually embed. This way, we save on at least one message. - * - * Arguments: - * * I- the item we're trying to insert into the target - * * target- what we're trying to shish-kabob, either a bodypart or a carbon - * * hit_zone- if our target is a carbon, try to hit them in this zone, if we don't have one, pick a random one. If our target is a bodypart, we already know where we're hitting. - * * forced- if we want this to succeed 100% - */ + * tryForceEmbed() is called here when we fire COMSIG_EMBED_TRY_FORCE from [/obj/item/proc/tryEmbed]. Mostly, this means we're a piece of shrapnel from a projectile that just impacted something, and we're trying to embed in it. + * + * The reason for this extra mucking about is avoiding having to do an extra hitby(), and annoying the target by impacting them once with the projectile, then again with the shrapnel, and possibly + * AGAIN if we actually embed. This way, we save on at least one message. + * + * Arguments: + * * I- the item we're trying to insert into the target + * * target- what we're trying to shish-kabob, either a bodypart or a carbon + * * hit_zone- if our target is a carbon, try to hit them in this zone, if we don't have one, pick a random one. If our target is a bodypart, we already know where we're hitting. + * * forced- if we want this to succeed 100% + */ /datum/element/embed/proc/tryForceEmbed(obj/item/I, atom/target, hit_zone, forced=FALSE) SIGNAL_HANDLER diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm index 3b131990361..de829098637 100644 --- a/code/datums/elements/firestacker.dm +++ b/code/datums/elements/firestacker.dm @@ -1,6 +1,6 @@ /** - * Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit - */ + * Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit + */ /datum/element/firestacker element_flags = ELEMENT_BESPOKE id_arg_index = 2 @@ -9,12 +9,12 @@ /datum/element/firestacker/Attach(datum/target, amount) . = ..() - + if(!ismovable(target)) return ELEMENT_INCOMPATIBLE - + src.amount = amount - + RegisterSignal(target, COMSIG_MOVABLE_IMPACT, .proc/impact, override = TRUE) if(isitem(target)) RegisterSignal(target, COMSIG_ITEM_ATTACK, .proc/item_attack, override = TRUE) diff --git a/code/datums/elements/light_blocking.dm b/code/datums/elements/light_blocking.dm index 8ab4000ca6e..69b6beffe6a 100644 --- a/code/datums/elements/light_blocking.dm +++ b/code/datums/elements/light_blocking.dm @@ -1,6 +1,6 @@ /** - * Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly. - */ + * Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly. + */ /datum/element/light_blocking element_flags = ELEMENT_DETACH diff --git a/code/datums/elements/obj_regen.dm b/code/datums/elements/obj_regen.dm index d34d00e4712..7f13d4b2002 100644 --- a/code/datums/elements/obj_regen.dm +++ b/code/datums/elements/obj_regen.dm @@ -1,5 +1,5 @@ /** Object integrity regeneration element added by alien alloy. - */ + */ /datum/element/obj_regen element_flags = ELEMENT_BESPOKE | ELEMENT_DETACH id_arg_index = 2 diff --git a/code/datums/elements/squish.dm b/code/datums/elements/squish.dm index af85294aa3f..b4b58367f6b 100644 --- a/code/datums/elements/squish.dm +++ b/code/datums/elements/squish.dm @@ -2,11 +2,11 @@ #define TALL 7/5 /** - # squish.dm - * - * It's an element that squishes things. After the duration passes, it reverses the transformation it squished with, taking into account if they are a different orientation than they started (read: rotationally-fluid) - * - * Normal squishes apply vertically, as if the target is being squished from above, but you can set reverse to TRUE if you want to squish them from the sides, like if they pancake into a wall from the East or West + * squish.dm + * + * It's an element that squishes things. After the duration passes, it reverses the transformation it squished with, taking into account if they are a different orientation than they started (read: rotationally-fluid) + * + * Normal squishes apply vertically, as if the target is being squished from above, but you can set reverse to TRUE if you want to squish them from the sides, like if they pancake into a wall from the East or West */ /datum/element/squish element_flags = ELEMENT_DETACH diff --git a/code/datums/elements/tool_flash.dm b/code/datums/elements/tool_flash.dm index 47fac4b5a26..cf03bdb502e 100644 --- a/code/datums/elements/tool_flash.dm +++ b/code/datums/elements/tool_flash.dm @@ -1,8 +1,8 @@ /** - * Tool flash bespoke element - * - * Flashes the user when using this tool - */ + * Tool flash bespoke element + * + * Flashes the user when using this tool + */ /datum/element/tool_flash element_flags = ELEMENT_BESPOKE id_arg_index = 2 diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 49f96805e0f..652844078b0 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -425,42 +425,42 @@ "} /obj/item/disk/holodisk/ruin/snowengieruin - name = "Blackbox Print-out #EB412" - desc = "A holodisk containing the last moments of EB412. There's a bloody fingerprint on it." - preset_image_type = /datum/preset_holoimage/engineer - preset_record_text = {" - NAME Dave Tundrale - SAY Maria, how's Build? - DELAY 10 - NAME Maria Dell - PRESET /datum/preset_holoimage/engineer/atmos - SAY It's fine, don't worry. I've got Plastic on it. And frankly, i'm kinda busy with, the, uhhm, incinerator. - DELAY 30 - NAME Dave Tundrale - PRESET /datum/preset_holoimage/engineer - SAY Aight, wonderful. The science mans been kinda shit though. No RCDs- - DELAY 20 - NAME Maria Dell - PRESET /datum/preset_holoimage/engineer/atmos - SAY Enough about your RCDs. They're not even that important, just bui- - DELAY 15 - SOUND explosion - DELAY 10 - SAY Oh, shit! - DELAY 10 - PRESET /datum/preset_holoimage/engineer/atmos/rig - LANGUAGE /datum/language/narsie - NAME Unknown - SAY RISE, MY LORD!! - DELAY 10 - LANGUAGE /datum/language/common - NAME Plastic - PRESET /datum/preset_holoimage/engineer/rig - SAY Fuck, fuck, fuck! - DELAY 20 - SAY It's loose! CALL THE FUCKING SHUTT- - DELAY 10 - PRESET /datum/preset_holoimage/corgi - NAME Blackbox Automated Message - SAY Connection lost. Dumping audio logs to disk. - DELAY 50"} + name = "Blackbox Print-out #EB412" + desc = "A holodisk containing the last moments of EB412. There's a bloody fingerprint on it." + preset_image_type = /datum/preset_holoimage/engineer + preset_record_text = {" + NAME Dave Tundrale + SAY Maria, how's Build? + DELAY 10 + NAME Maria Dell + PRESET /datum/preset_holoimage/engineer/atmos + SAY It's fine, don't worry. I've got Plastic on it. And frankly, i'm kinda busy with, the, uhhm, incinerator. + DELAY 30 + NAME Dave Tundrale + PRESET /datum/preset_holoimage/engineer + SAY Aight, wonderful. The science mans been kinda shit though. No RCDs- + DELAY 20 + NAME Maria Dell + PRESET /datum/preset_holoimage/engineer/atmos + SAY Enough about your RCDs. They're not even that important, just bui- + DELAY 15 + SOUND explosion + DELAY 10 + SAY Oh, shit! + DELAY 10 + PRESET /datum/preset_holoimage/engineer/atmos/rig + LANGUAGE /datum/language/narsie + NAME Unknown + SAY RISE, MY LORD!! + DELAY 10 + LANGUAGE /datum/language/common + NAME Plastic + PRESET /datum/preset_holoimage/engineer/rig + SAY Fuck, fuck, fuck! + DELAY 20 + SAY It's loose! CALL THE FUCKING SHUTT- + DELAY 10 + PRESET /datum/preset_holoimage/corgi + NAME Blackbox Automated Message + SAY Connection lost. Dumping audio logs to disk. + DELAY 50"} diff --git a/code/datums/keybinding/movement.dm b/code/datums/keybinding/movement.dm index 02d601e14fa..e290ca898e0 100644 --- a/code/datums/keybinding/movement.dm +++ b/code/datums/keybinding/movement.dm @@ -1,6 +1,6 @@ /datum/keybinding/movement - category = CATEGORY_MOVEMENT - weight = WEIGHT_HIGHEST + category = CATEGORY_MOVEMENT + weight = WEIGHT_HIGHEST /datum/keybinding/movement/north hotkey_keys = list("W", "North") diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm index a0075ca2a54..fdd44d8a04b 100644 --- a/code/datums/materials/_material.dm +++ b/code/datums/materials/_material.dm @@ -154,21 +154,21 @@ Simple datum which is instanced once per type and is used for every object of sa RemoveElement(/datum/element/turf_z_transparency, FALSE) /** - * This proc is called when the mat is found in an item that's consumed by accident. see /obj/item/proc/on_accidental_consumption. - * Arguments - * * M - person consuming the mat - * * S - (optional) item the mat is contained in (NOT the item with the mat itself) - */ + * This proc is called when the mat is found in an item that's consumed by accident. see /obj/item/proc/on_accidental_consumption. + * Arguments + * * M - person consuming the mat + * * S - (optional) item the mat is contained in (NOT the item with the mat itself) + */ /datum/material/proc/on_accidental_mat_consumption(mob/living/carbon/M, obj/item/S) return FALSE /** Returns the composition of this material. - * - * Mostly used for alloys when breaking down materials. - * - * Arguments: - * - amount: The amount of the material to break down. - * - breakdown_flags: Some flags dictating how exactly this material is being broken down. - */ + * + * Mostly used for alloys when breaking down materials. + * + * Arguments: + * - amount: The amount of the material to break down. + * - breakdown_flags: Some flags dictating how exactly this material is being broken down. + */ /datum/material/proc/return_composition(amount=1, breakdown_flags=NONE) return list((src) = amount) // Yes we need the parenthesis, without them BYOND stringifies src into "src" and things break. diff --git a/code/datums/materials/alloys.dm b/code/datums/materials/alloys.dm index cfe9f1ac9a2..68150493504 100644 --- a/code/datums/materials/alloys.dm +++ b/code/datums/materials/alloys.dm @@ -1,5 +1,5 @@ /** Materials made from other materials. - */ + */ /datum/material/alloy name = "alloy" desc = "A material composed of two or more other materials." @@ -23,10 +23,10 @@ /** Plasteel - * - * An alloy of iron and plasma. - * Applies a significant slowdown effect to any and all items that contain it. - */ + * + * An alloy of iron and plasma. + * Applies a significant slowdown effect to any and all items that contain it. + */ /datum/material/alloy/plasteel name = "plasteel" desc = "The heavy duty result of infusing iron with plasma." @@ -56,9 +56,9 @@ target_item.slowdown -= MATERIAL_SLOWDOWN_PLASTEEL * amount / MINERAL_MATERIAL_AMOUNT /** Plastitanium - * - * An alloy of titanium and plasma. - */ + * + * An alloy of titanium and plasma. + */ /datum/material/alloy/plastitanium name = "plastitanium" desc = "The extremely heat resistant result of infusing titanium with plasma." @@ -73,9 +73,9 @@ composition = list(/datum/material/titanium=1, /datum/material/plasma=1) /** Plasmaglass - * - * An alloy of silicate and plasma. - */ + * + * An alloy of silicate and plasma. + */ /datum/material/alloy/plasmaglass name = "plasmaglass" desc = "Plasma-infused silicate. It is much more durable and heat resistant than either of its component materials." @@ -91,9 +91,9 @@ composition = list(/datum/material/glass=1, /datum/material/plasma=0.5) /** Titaniumglass - * - * An alloy of glass and titanium. - */ + * + * An alloy of glass and titanium. + */ /datum/material/alloy/titaniumglass name = "titanium glass" desc = "A specialized silicate-titanium alloy that is commonly used in shuttle windows." @@ -108,9 +108,9 @@ composition = list(/datum/material/glass=1, /datum/material/titanium=0.5) /** Plastitanium Glass - * - * An alloy of plastitanium and glass. - */ + * + * An alloy of plastitanium and glass. + */ /datum/material/alloy/plastitaniumglass name = "plastitanium glass" desc = "A specialized silicate-plastitanium alloy." @@ -126,11 +126,11 @@ composition = list(/datum/material/glass=1, /datum/material/alloy/plastitanium=0.5) /** Alien Alloy - * - * Densified plasteel. - * Applies a significant slowdown effect to anything that contains it. - * Anything constructed from it can slowly regenerate. - */ + * + * Densified plasteel. + * Applies a significant slowdown effect to anything that contains it. + * Anything constructed from it can slowly regenerate. + */ /datum/material/alloy/alien name = "alien alloy" desc = "An extremely dense alloy similar to plasteel in composition. It requires exotic metallurgical processes to create." diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 5cea54c7e25..cf8d5645ddf 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -3,8 +3,8 @@ mood_change = -1 /datum/mood_event/broken_vow //Used for when mimes break their vow of silence - description = "I have brought shame upon my name, and betrayed my fellow mimes by breaking our sacred vow...\n" - mood_change = -8 + description = "I have brought shame upon my name, and betrayed my fellow mimes by breaking our sacred vow...\n" + mood_change = -8 /datum/mood_event/on_fire description = "I'M ON FIRE!!!\n" @@ -68,14 +68,14 @@ timeout = 2 MINUTES /datum/mood_event/shameful_suicide //suicide_acts that return SHAME, like sord - description = "I can't even end it all!\n" - mood_change = -15 - timeout = 60 SECONDS + description = "I can't even end it all!\n" + mood_change = -15 + timeout = 60 SECONDS /datum/mood_event/dismembered - description = "AHH! I WAS USING THAT LIMB!\n" - mood_change = -10 - timeout = 8 MINUTES + description = "AHH! I WAS USING THAT LIMB!\n" + mood_change = -10 + timeout = 8 MINUTES /datum/mood_event/tased description = "There's no \"z\" in \"taser\". It's in the zap.\n" @@ -109,20 +109,20 @@ description = "My fucking [banged_limb.name], man that hurts...\n" /datum/mood_event/brain_damage - mood_change = -3 + mood_change = -3 /datum/mood_event/brain_damage/add_effects() - var/damage_message = pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage") - description = "Hurr durr... [damage_message]\n" + var/damage_message = pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage") + description = "Hurr durr... [damage_message]\n" /datum/mood_event/hulk //Entire duration of having the hulk mutation - description = "HULK SMASH!\n" - mood_change = -4 + description = "HULK SMASH!\n" + mood_change = -4 /datum/mood_event/epilepsy //Only when the mutation causes a seizure - description = "I should have paid attention to the epilepsy warning.\n" - mood_change = -3 - timeout = 5 MINUTES + description = "I should have paid attention to the epilepsy warning.\n" + mood_change = -3 + timeout = 5 MINUTES /datum/mood_event/nyctophobia description = "It sure is dark around here...\n" diff --git a/code/datums/movement_detector.dm b/code/datums/movement_detector.dm index 3fc64c1b11a..109290a8a95 100644 --- a/code/datums/movement_detector.dm +++ b/code/datums/movement_detector.dm @@ -33,9 +33,9 @@ target = target.loc /** - * Reacts to any movement that would cause a change in coordinates of the tracked movable atom - * This works by detecting movement of either the tracked object, or anything it is inside, recursively - */ + * Reacts to any movement that would cause a change in coordinates of the tracked movable atom + * This works by detecting movement of either the tracked object, or anything it is inside, recursively + */ /datum/movement_detector/proc/move_react(atom/movable/mover, atom/oldloc, direction) SIGNAL_HANDLER diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index b48b7908cc0..f6f7d4ed203 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -47,14 +47,14 @@ source.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced="hulk") /** - *Checks damage of a hulk's arm and applies bone wounds as necessary. - * - *Called by specific atoms being attacked, such as walls. If an atom - *does not call this proc, than punching that atom will not cause - *arm breaking (even if the atom deals recoil damage to hulks). - *Arguments: - *arg1 is the arm to evaluate damage of and possibly break. - */ + *Checks damage of a hulk's arm and applies bone wounds as necessary. + * + *Called by specific atoms being attacked, such as walls. If an atom + *does not call this proc, than punching that atom will not cause + *arm breaking (even if the atom deals recoil damage to hulks). + *Arguments: + *arg1 is the arm to evaluate damage of and possibly break. + */ /datum/mutation/human/hulk/proc/break_an_arm(obj/item/bodypart/arm) switch(arm.brute_dam) if(45 to 50) diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 518350c3be7..b5533b0420b 100755 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -1,18 +1,18 @@ /** - * # Outfit datums - * - * This is a clean system of applying outfits to mobs, if you need to equip someone in a uniform - * this is the way to do it cleanly and properly. - * - * You can also specify an outfit datum on a job to have it auto equipped to the mob on join - * - * /mob/living/carbon/human/proc/equipOutfit(outfit) is the mob level proc to equip an outfit - * and you pass it the relevant datum outfit - * - * outfits can also be saved as json blobs downloadable by a client and then can be uploaded - * by that user to recreate the outfit, this is used by admins to allow for custom event outfits - * that can be restored at a later date - */ + * # Outfit datums + * + * This is a clean system of applying outfits to mobs, if you need to equip someone in a uniform + * this is the way to do it cleanly and properly. + * + * You can also specify an outfit datum on a job to have it auto equipped to the mob on join + * + * /mob/living/carbon/human/proc/equipOutfit(outfit) is the mob level proc to equip an outfit + * and you pass it the relevant datum outfit + * + * outfits can also be saved as json blobs downloadable by a client and then can be uploaded + * by that user to recreate the outfit, this is used by admins to allow for custom event outfits + * that can be restored at a later date + */ /datum/outfit ///Name of the outfit (shows up in the equip admin verb) var/name = "Naked" @@ -88,14 +88,14 @@ /// Internals box. Will be inserted at the start of backpack_contents var/box - /** + /** * Any implants the mob should start implanted with * * Format of this list is (typepath, typepath, typepath) */ var/list/implants = null - /// Any undershirt. While on humans it is a string, here we use paths to stay consistent with the rest of the equips. + /// Any undershirt. While on humans it is a string, here we use paths to stay consistent with the rest of the equips. var/datum/sprite_accessory/undershirt = null /// Any clothing accessory item @@ -114,43 +114,43 @@ var/list/chameleon_extras /** - * Called at the start of the equip proc - * - * Override to change the value of the slots depending on client prefs, species and - * other such sources of change - * - * Extra Arguments - * * visualsOnly true if this is only for display (in the character setup screen) - * - * If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite - */ + * Called at the start of the equip proc + * + * Override to change the value of the slots depending on client prefs, species and + * other such sources of change + * + * Extra Arguments + * * visualsOnly true if this is only for display (in the character setup screen) + * + * If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite + */ /datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) //to be overridden for customization depending on client prefs,species etc return /** - * Called after the equip proc has finished - * - * All items are on the mob at this point, use this proc to toggle internals - * fiddle with id bindings and accesses etc - * - * Extra Arguments - * * visualsOnly true if this is only for display (in the character setup screen) - * - * If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite - */ + * Called after the equip proc has finished + * + * All items are on the mob at this point, use this proc to toggle internals + * fiddle with id bindings and accesses etc + * + * Extra Arguments + * * visualsOnly true if this is only for display (in the character setup screen) + * + * If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite + */ /datum/outfit/proc/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) //to be overridden for toggling internals, id binding, access etc return /** - * Equips all defined types and paths to the mob passed in - * - * Extra Arguments - * * visualsOnly true if this is only for display (in the character setup screen) - * - * If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite - */ + * Equips all defined types and paths to the mob passed in + * + * Extra Arguments + * * visualsOnly true if this is only for display (in the character setup screen) + * + * If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite + */ /datum/outfit/proc/equip(mob/living/carbon/human/H, visualsOnly = FALSE) pre_equip(H, visualsOnly) @@ -237,12 +237,12 @@ return TRUE /** - * Apply a fingerprint from the passed in human to all items in the outfit - * - * Used for forensics setup when the mob is first equipped at roundstart - * essentially calls add_fingerprint to every defined item on the human - * - */ + * Apply a fingerprint from the passed in human to all items in the outfit + * + * Used for forensics setup when the mob is first equipped at roundstart + * essentially calls add_fingerprint to every defined item on the human + * + */ /datum/outfit/proc/apply_fingerprints(mob/living/carbon/human/H) if(!istype(H)) return diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm index 738eb529566..3f6e20d3551 100644 --- a/code/datums/recipe.dm +++ b/code/datums/recipe.dm @@ -9,7 +9,7 @@ * * items are objects. Fruits, tools, circuit boards. * * result is type to create as new object * * time is optional parameter, you shall use in in your machine, - default /datum/recipe/ procs does not rely on this parameter. + * default /datum/recipe/ procs does not rely on this parameter. * * Functions you need: * /datum/recipe/proc/make(obj/container as obj) diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index 5906831bb7f..5dfa79e3b3c 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -16,10 +16,10 @@ GLOBAL_LIST_INIT(skill_types, subtypesof(/datum/skill)) /datum/skill/proc/get_skill_modifier(modifier, level) return modifiers[modifier][level] //Levels range from 1 (None) to 7 (Legendary) /** - * new: sets up some lists. - * - *Can't happen in the datum's definition because these lists are not constant expressions - */ + * new: sets up some lists. + * + *Can't happen in the datum's definition because these lists are not constant expressions + */ /datum/skill/New() . = ..() levelUpMessages = list("What the hell is [name]? Tell an admin if you see this message.", //This first index shouldn't ever really be used @@ -28,7 +28,7 @@ GLOBAL_LIST_INIT(skill_types, subtypesof(/datum/skill)) "I'm getting much better at [name]!", "I feel like I've become quite proficient at [name]!", "After lots of practice, I've begun to truly understand the intricacies \ - and surprising depth behind [name]. I now consider myself a master [title].", + and surprising depth behind [name]. I now consider myself a master [title].", "Through incredible determination and effort, I've reached the peak of my [name] abiltities. I'm finally able to consider myself a legendary [title]!" ) levelDownMessages = list("I have somehow completely lost all understanding of [name]. Please tell an admin if you see this.", "I'm starting to forget what [name] really even is. I need more practice...", @@ -39,30 +39,30 @@ GLOBAL_LIST_INIT(skill_types, subtypesof(/datum/skill)) "I feel as though my legendary [name] skills have deteriorated. I'll need more intense training to recover my lost skills." ) /** - * level_gained: Gives skill levelup messages to the user - * - * Only fires if the xp gain isn't silent, so only really useful for messages. - * Arguments: - * * mind - The mind that you'll want to send messages - * * new_level - The newly gained level. Can check the actual level to give different messages at different levels, see defines in skills.dm - * * old_level - Similar to the above, but the level you had before levelling up. - */ + * level_gained: Gives skill levelup messages to the user + * + * Only fires if the xp gain isn't silent, so only really useful for messages. + * Arguments: + * * mind - The mind that you'll want to send messages + * * new_level - The newly gained level. Can check the actual level to give different messages at different levels, see defines in skills.dm + * * old_level - Similar to the above, but the level you had before levelling up. + */ /datum/skill/proc/level_gained(datum/mind/mind, new_level, old_level)//just for announcements (doesn't go off if the xp gain is silent) to_chat(mind.current, levelUpMessages[new_level]) //new_level will be a value from 1 to 6, so we get appropriate message from the 6-element levelUpMessages list /** - * level_lost: See level_gained, same idea but fires on skill level-down - */ + * level_lost: See level_gained, same idea but fires on skill level-down + */ /datum/skill/proc/level_lost(datum/mind/mind, new_level, old_level) to_chat(mind.current, levelDownMessages[old_level]) //old_level will be a value from 1 to 6, so we get appropriate message from the 6-element levelUpMessages list /** - * try_skill_reward: Checks to see if a user is eligable for a tangible reward for reaching a certain skill level - * - * Currently gives the user a special cloak when they reach a legendary level at any given skill - * Arguments: - * * mind - The mind that you'll want to send messages and rewards to - * * new_level - The current level of the user. Used to check if it meets the requirements for a reward - */ + * try_skill_reward: Checks to see if a user is eligable for a tangible reward for reaching a certain skill level + * + * Currently gives the user a special cloak when they reach a legendary level at any given skill + * Arguments: + * * mind - The mind that you'll want to send messages and rewards to + * * new_level - The current level of the user. Used to check if it meets the requirements for a reward + */ /datum/skill/proc/try_skill_reward(datum/mind/mind, new_level) if (new_level != SKILL_LEVEL_LEGENDARY) return diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 67a4734b86f..e19309dbb80 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -400,10 +400,10 @@ return ..() /** - * What happens when this mark gets poppedd - * - * Adds actual functionality to each mark - */ + * What happens when this mark gets poppedd + * + * Adds actual functionality to each mark + */ /datum/status_effect/eldritch/proc/on_effect() playsound(owner, 'sound/magic/repulse.ogg', 75, TRUE) qdel(src) //what happens when this is procced. diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index 1907d7dad0b..598fca459a4 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -36,12 +36,12 @@ /** - * On client connection set quirk preferences. - * - * Run post_add to set the client preferences for the quirk. - * Clear the attached signal for login. - * Used when the quirk has been gained and no client is attached to the mob. - */ + * On client connection set quirk preferences. + * + * Run post_add to set the client preferences for the quirk. + * Clear the attached signal for login. + * Used when the quirk has been gained and no client is attached to the mob. + */ /datum/quirk/proc/on_quirk_holder_first_login(mob/living/source) SIGNAL_HANDLER @@ -85,12 +85,12 @@ on_process(delta_time) /** - * get_quirk_string() is used to get a printable string of all the quirk traits someone has for certain criteria - * - * Arguments: - * * Medical- If we want the long, fancy descriptions that show up in medical records, or if not, just the name - * * Category- Which types of quirks we want to print out. Defaults to everything - */ + * get_quirk_string() is used to get a printable string of all the quirk traits someone has for certain criteria + * + * Arguments: + * * Medical- If we want the long, fancy descriptions that show up in medical records, or if not, just the name + * * Category- Which types of quirks we want to print out. Defaults to everything + */ /mob/living/proc/get_quirk_string(medical, category = CAT_QUIRK_ALL) //helper string. gets a string of all the quirks the mob has var/list/dat = list() switch(category) diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index add4d935b87..c875dbfbd61 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -1,18 +1,18 @@ /** - * Causes weather to occur on a z level in certain area types - * - * The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures. - * Weather always occurs on different z levels at different times, regardless of weather type. - * Can have custom durations, targets, and can automatically protect indoor areas. - * - */ + * Causes weather to occur on a z level in certain area types + * + * The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures. + * Weather always occurs on different z levels at different times, regardless of weather type. + * Can have custom durations, targets, and can automatically protect indoor areas. + * + */ /datum/weather /// name of weather var/name = "space wind" /// description of weather var/desc = "Heavy gusts of wind blanket the area, periodically knocking down anyone caught in the open." - /// The message displayed in chat to foreshadow the weather's beginning + /// The message displayed in chat to foreshadow the weather's beginning var/telegraph_message = "The wind begins to pick up." /// In deciseconds, how long from the beginning of the telegraph until the weather begins var/telegraph_duration = 300 @@ -56,7 +56,7 @@ /// The list of z-levels that this weather is actively affecting var/impacted_z_levels - /// Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that. + /// Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that. var/overlay_layer = AREA_LAYER /// Plane for the overlay var/overlay_plane = BLACKNESS_PLANE @@ -65,7 +65,7 @@ /// Used by mobs to prevent them from being affected by the weather var/immunity_type = "storm" - /// The stage of the weather, from 1-4 + /// The stage of the weather, from 1-4 var/stage = END_STAGE /// Weight amongst other eligible weather. If zero, will never happen randomly. @@ -85,12 +85,12 @@ impacted_z_levels = z_levels /** - * Telegraphs the beginning of the weather on the impacted z levels - * - * Sends sounds and details to mobs in the area - * Calculates duration and hit areas, and makes a callback for the actual weather to start - * - */ + * Telegraphs the beginning of the weather on the impacted z levels + * + * Sends sounds and details to mobs in the area + * Calculates duration and hit areas, and makes a callback for the actual weather to start + * + */ /datum/weather/proc/telegraph() if(stage == STARTUP_STAGE) return @@ -119,12 +119,12 @@ addtimer(CALLBACK(src, .proc/start), telegraph_duration) /** - * Starts the actual weather and effects from it - * - * Updates area overlays and sends sounds and messages to mobs to notify them - * Begins dealing effects from weather to mobs in the area - * - */ + * Starts the actual weather and effects from it + * + * Updates area overlays and sends sounds and messages to mobs to notify them + * Begins dealing effects from weather to mobs in the area + * + */ /datum/weather/proc/start() if(stage >= MAIN_STAGE) return @@ -141,12 +141,12 @@ addtimer(CALLBACK(src, .proc/wind_down), weather_duration) /** - * Weather enters the winding down phase, stops effects - * - * Updates areas to be in the winding down phase - * Sends sounds and messages to mobs to notify them - * - */ + * Weather enters the winding down phase, stops effects + * + * Updates areas to be in the winding down phase + * Sends sounds and messages to mobs to notify them + * + */ /datum/weather/proc/wind_down() if(stage >= WIND_DOWN_STAGE) return @@ -162,12 +162,12 @@ addtimer(CALLBACK(src, .proc/end), end_duration) /** - * Fully ends the weather - * - * Effects no longer occur and area overlays are removed - * Removes weather from processing completely - * - */ + * Fully ends the weather + * + * Effects no longer occur and area overlays are removed + * Removes weather from processing completely + * + */ /datum/weather/proc/end() if(stage == END_STAGE) return 1 @@ -176,9 +176,9 @@ update_areas() /** - * Returns TRUE if the living mob can be affected by the weather - * - */ + * Returns TRUE if the living mob can be affected by the weather + * + */ /datum/weather/proc/can_weather_act(mob/living/L) var/turf/mob_turf = get_turf(L) if(mob_turf && !(mob_turf.z in impacted_z_levels)) @@ -190,16 +190,16 @@ return TRUE /** - * Affects the mob with whatever the weather does - * - */ + * Affects the mob with whatever the weather does + * + */ /datum/weather/proc/weather_act(mob/living/L) return /** - * Updates the overlays on impacted areas - * - */ + * Updates the overlays on impacted areas + * + */ /datum/weather/proc/update_areas() for(var/V in impacted_areas) var/area/N = V diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index 76b908d35cf..be50c12425f 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -229,13 +229,13 @@ return /** - * Checks whether wire assignments should be revealed. - * - * Returns TRUE if the wires should be revealed, FALSE otherwise. - * Currently checks for admin ghost AI, abductor multitool and blueprints. - * Arguments: - * * user - The mob to check when deciding whether to reveal wires. - */ + * Checks whether wire assignments should be revealed. + * + * Returns TRUE if the wires should be revealed, FALSE otherwise. + * Currently checks for admin ghost AI, abductor multitool and blueprints. + * Arguments: + * * user - The mob to check when deciding whether to reveal wires. + */ /datum/wires/proc/can_reveal_wires(mob/user) // Admin ghost can see a purpose of each wire. if(isAdminGhostAI(user)) @@ -252,13 +252,13 @@ return FALSE /** - * Whether the given wire should always be revealed. - * - * Intended to be overridden. Allows for forcing a wire's assignmenmt to always be revealed - * in the hacking interface. - * Arguments: - * * color - Color string of the wire to check. - */ + * Whether the given wire should always be revealed. + * + * Intended to be overridden. Allows for forcing a wire's assignmenmt to always be revealed + * in the hacking interface. + * Arguments: + * * color - Color string of the wire to check. + */ /datum/wires/proc/always_reveal_wire(color) return FALSE diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm index a1ebe18a98b..340650c09aa 100644 --- a/code/datums/wounds/_wounds.dm +++ b/code/datums/wounds/_wounds.dm @@ -100,15 +100,15 @@ return ..() /** - * apply_wound() is used once a wound type is instantiated to assign it to a bodypart, and actually come into play. - * - * - * Arguments: - * * L: The bodypart we're wounding, we don't care about the person, we can get them through the limb - * * silent: Not actually necessary I don't think, was originally used for demoting wounds so they wouldn't make new messages, but I believe old_wound took over that, I may remove this shortly - * * old_wound: If our new wound is a replacement for one of the same time (promotion or demotion), we can reference the old one just before it's removed to copy over necessary vars - * * smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented) - */ + * apply_wound() is used once a wound type is instantiated to assign it to a bodypart, and actually come into play. + * + * + * Arguments: + * * L: The bodypart we're wounding, we don't care about the person, we can get them through the limb + * * silent: Not actually necessary I don't think, was originally used for demoting wounds so they wouldn't make new messages, but I believe old_wound took over that, I may remove this shortly + * * old_wound: If our new wound is a replacement for one of the same time (promotion or demotion), we can reference the old one just before it's removed to copy over necessary vars + * * smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented) + */ /datum/wound/proc/apply_wound(obj/item/bodypart/L, silent = FALSE, datum/wound/old_wound = null, smited = FALSE) if(!istype(L) || !L.owner || !(L.body_zone in viable_zones) || isalien(L.owner) || !L.is_organic_limb()) qdel(src) @@ -180,14 +180,14 @@ limb.update_wounds(replaced) /** - * replace_wound() is used when you want to replace the current wound with a new wound, presumably of the same category, just of a different severity (either up or down counts) - * - * This proc actually instantiates the new wound based off the specific type path passed, then returns the new instantiated wound datum. - * - * Arguments: - * * new_type- The TYPE PATH of the wound you want to replace this, like /datum/wound/slash/severe - * * smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented) - */ + * replace_wound() is used when you want to replace the current wound with a new wound, presumably of the same category, just of a different severity (either up or down counts) + * + * This proc actually instantiates the new wound based off the specific type path passed, then returns the new instantiated wound datum. + * + * Arguments: + * * new_type- The TYPE PATH of the wound you want to replace this, like /datum/wound/slash/severe + * * smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented) + */ /datum/wound/proc/replace_wound(new_type, smited = FALSE) var/datum/wound/new_wound = new new_type already_scarred = TRUE @@ -247,15 +247,15 @@ victim.reagents.add_reagent(/datum/reagent/determination, WOUND_DETERMINATION_LOSS) /** - * try_treating() is an intercept run from [/mob/living/carbon/proc/attackby] right after surgeries but before anything else. Return TRUE here if the item is something that is relevant to treatment to take over the interaction. - * - * This proc leads into [/datum/wound/proc/treat] and probably shouldn't be added onto in children types. You can specify what items or tools you want to be intercepted - * with var/list/treatable_by and var/treatable_tool, then if an item fulfills one of those requirements and our wound claims it first, it goes over to treat() and treat_self(). - * - * Arguments: - * * I: The item we're trying to use - * * user: The mob trying to use it on us - */ + * try_treating() is an intercept run from [/mob/living/carbon/proc/attackby] right after surgeries but before anything else. Return TRUE here if the item is something that is relevant to treatment to take over the interaction. + * + * This proc leads into [/datum/wound/proc/treat] and probably shouldn't be added onto in children types. You can specify what items or tools you want to be intercepted + * with var/list/treatable_by and var/treatable_tool, then if an item fulfills one of those requirements and our wound claims it first, it goes over to treat() and treat_self(). + * + * Arguments: + * * I: The item we're trying to use + * * user: The mob trying to use it on us + */ /datum/wound/proc/try_treating(obj/item/I, mob/user) // first we weed out if we're not dealing with our wound's bodypart, or if it might be an attack if(QDELETED(I) || limb.body_zone != user.zone_selected || (I.force && user.a_intent != INTENT_HELP)) @@ -341,13 +341,13 @@ return /** - * get_examine_description() is used in carbon/examine and human/examine to show the status of this wound. Useful if you need to show some status like the wound being splinted or bandaged. - * - * Return the full string line you want to show, note that we're already dealing with the 'warning' span at this point, and that \n is already appended for you in the place this is called from - * - * Arguments: - * * mob/user: The user examining the wound's owner, if that matters - */ + * get_examine_description() is used in carbon/examine and human/examine to show the status of this wound. Useful if you need to show some status like the wound being splinted or bandaged. + * + * Return the full string line you want to show, note that we're already dealing with the 'warning' span at this point, and that \n is already appended for you in the place this is called from + * + * Arguments: + * * mob/user: The user examining the wound's owner, if that matters + */ /datum/wound/proc/get_examine_description(mob/user) . = "[victim.p_their(TRUE)] [limb.name] [examine_desc]" . = severity <= WOUND_SEVERITY_MODERATE ? "[.]." : "[.]!" diff --git a/code/datums/wounds/scars/_scars.dm b/code/datums/wounds/scars/_scars.dm index 692a7aa7f40..60e2899280a 100644 --- a/code/datums/wounds/scars/_scars.dm +++ b/code/datums/wounds/scars/_scars.dm @@ -1,11 +1,11 @@ /** - * scars are cosmetic datums that are assigned to bodyparts once they recover from wounds. Each wound type and severity have their own descriptions for what the scars - * look like, and then each body part has a list of "specific locations" like your elbow or wrist or wherever the scar can appear, to make it more interesting than "right arm" - * - * - * Arguments: - * * - */ + * scars are cosmetic datums that are assigned to bodyparts once they recover from wounds. Each wound type and severity have their own descriptions for what the scars + * look like, and then each body part has a list of "specific locations" like your elbow or wrist or wherever the scar can appear, to make it more interesting than "right arm" + * + * + * Arguments: + * * + */ /datum/scar var/obj/item/bodypart/limb var/mob/living/carbon/victim @@ -35,15 +35,15 @@ . = ..() /** - * generate() is used to actually fill out the info for a scar, according to the limb and wound it is provided. - * - * After creating a scar, call this on it while targeting the scarred bodypart with a given wound to apply the scar. - * - * Arguments: - * * BP- The bodypart being targeted - * * W- The wound being used to generate the severity and description info - * * add_to_scars- Should always be TRUE unless you're just storing a scar for later usage, like how cuts want to store a scar for the highest severity of cut, rather than the severity when the wound is fully healed (probably demoted to moderate) - */ + * generate() is used to actually fill out the info for a scar, according to the limb and wound it is provided. + * + * After creating a scar, call this on it while targeting the scarred bodypart with a given wound to apply the scar. + * + * Arguments: + * * BP- The bodypart being targeted + * * W- The wound being used to generate the severity and description info + * * add_to_scars- Should always be TRUE unless you're just storing a scar for later usage, like how cuts want to store a scar for the highest severity of cut, rather than the severity when the wound is fully healed (probably demoted to moderate) + */ /datum/scar/proc/generate(obj/item/bodypart/BP, datum/wound/W, add_to_scars=TRUE) limb = BP severity = W.severity diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 635f80b0a04..af2869038eb 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -1,8 +1,8 @@ /** - * # area - * - * A grouping of tiles into a logical space, mostly used by map editors - */ + * # area + * + * A grouping of tiles into a logical space, mostly used by map editors + */ /area name = "Space" icon = 'icons/turf/areas.dmi' @@ -67,28 +67,28 @@ /// Wire assignment for airlocks in this area var/airlock_wires = /datum/wires/airlock - + ///This datum, if set, allows terrain generation behavior to be ran on Initialize() var/datum/map_generator/map_generator /** - * A list of teleport locations - * - * Adding a wizard area teleport list because motherfucking lag -- Urist - * I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game - */ + * A list of teleport locations + * + * Adding a wizard area teleport list because motherfucking lag -- Urist + * I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game + */ GLOBAL_LIST_EMPTY(teleportlocs) /** - * Generate a list of turfs you can teleport to from the areas list - * - * Includes areas if they're not a shuttle or not not teleport or have no contents - * - * The chosen turf is the first item in the areas contents that is a station level - * - * The returned list of turfs is sorted by name - */ + * Generate a list of turfs you can teleport to from the areas list + * + * Includes areas if they're not a shuttle or not not teleport or have no contents + * + * The chosen turf is the first item in the areas contents that is a station level + * + * The returned list of turfs is sorted by name + */ /proc/process_teleport_locs() for(var/V in GLOB.sortedAreas) var/area/AR = V @@ -105,10 +105,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) sortTim(GLOB.teleportlocs, /proc/cmp_text_asc) /** - * Called when an area loads - * - * Adds the item to the GLOB.areas_by_type list based on area type - */ + * Called when an area loads + * + * Adds the item to the GLOB.areas_by_type list based on area type + */ /area/New() // This interacts with the map loader, so it needs to be set immediately // rather than waiting for atoms to initialize. @@ -118,13 +118,13 @@ GLOBAL_LIST_EMPTY(teleportlocs) return ..() /** - * Initalize this area - * - * intializes the dynamic area lighting and also registers the area with the z level via - * reg_in_areas_in_z - * - * returns INITIALIZE_HINT_LATELOAD - */ + * Initalize this area + * + * intializes the dynamic area lighting and also registers the area with the z level via + * reg_in_areas_in_z + * + * returns INITIALIZE_HINT_LATELOAD + */ /area/Initialize() icon_state = "" @@ -155,8 +155,8 @@ GLOBAL_LIST_EMPTY(teleportlocs) return INITIALIZE_HINT_LATELOAD /** - * Sets machine power levels in the area - */ + * Sets machine power levels in the area + */ /area/LateInitialize() power_change() // all machines set to current power level, also updates icon update_beauty() @@ -165,10 +165,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) map_generator.generate_terrain(get_area_turfs(src)) /** - * Register this area as belonging to a z level - * - * Ensures the item is added to the SSmapping.areas_in_z list for this z - */ + * Register this area as belonging to a z level + * + * Ensures the item is added to the SSmapping.areas_in_z list for this z + */ /area/proc/reg_in_areas_in_z() if(!length(contents)) return @@ -182,13 +182,13 @@ GLOBAL_LIST_EMPTY(teleportlocs) areas_in_z["[z]"] += src /** - * Destroy an area and clean it up - * - * Removes the area from GLOB.areas_by_type and also stops it processing on SSobj - * - * This is despite the fact that no code appears to put it on SSobj, but - * who am I to argue with old coders - */ + * Destroy an area and clean it up + * + * Removes the area from GLOB.areas_by_type and also stops it processing on SSobj + * + * This is despite the fact that no code appears to put it on SSobj, but + * who am I to argue with old coders + */ /area/Destroy() if(GLOB.areas_by_type[type] == src) GLOB.areas_by_type[type] = null @@ -196,10 +196,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) return ..() /** - * Generate a power alert for this area - * - * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world - */ + * Generate a power alert for this area + * + * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world + */ /area/proc/poweralert(state, obj/source) if (area_flags & NO_ALERTS) return @@ -234,10 +234,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) p.triggerAlarm("Power", src, cameras, source) /** - * Generate an atmospheric alert for this area - * - * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world - */ + * Generate an atmospheric alert for this area + * + * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world + */ /area/proc/atmosalert(isdangerous, obj/source) if (area_flags & NO_ALERTS) return @@ -276,8 +276,8 @@ GLOBAL_LIST_EMPTY(teleportlocs) return FALSE /** - * Try to close all the firedoors in the area - */ + * Try to close all the firedoors in the area + */ /area/proc/ModifyFiredoors(opening) if(firedoors) firedoors_last_closed_on = world.time @@ -297,12 +297,12 @@ GLOBAL_LIST_EMPTY(teleportlocs) INVOKE_ASYNC(D, (opening ? /obj/machinery/door/firedoor.proc/open : /obj/machinery/door/firedoor.proc/close)) /** - * Generate a firealarm alert for this area - * - * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world - * - * Also starts the area processing on SSobj - */ + * Generate a firealarm alert for this area + * + * Sends to all ai players, alert consoles, drones and alarm monitor programs in the world + * + * Also starts the area processing on SSobj + */ /area/proc/firealert(obj/source) if (!fire) set_fire_alarm_effect() @@ -326,13 +326,13 @@ GLOBAL_LIST_EMPTY(teleportlocs) START_PROCESSING(SSobj, src) /** - * Reset the firealarm alert for this area - * - * resets the alert sent to all ai players, alert consoles, drones and alarm monitor programs - * in the world - * - * Also cycles the icons of all firealarms and deregisters the area from processing on SSOBJ - */ + * Reset the firealarm alert for this area + * + * resets the alert sent to all ai players, alert consoles, drones and alarm monitor programs + * in the world + * + * Also cycles the icons of all firealarms and deregisters the area from processing on SSOBJ + */ /area/proc/firereset(obj/source) if (fire) unset_fire_alarm_effects() @@ -356,17 +356,17 @@ GLOBAL_LIST_EMPTY(teleportlocs) STOP_PROCESSING(SSobj, src) /** - * If 100 ticks has elapsed, toggle all the firedoors closed again - */ + * If 100 ticks has elapsed, toggle all the firedoors closed again + */ /area/process() if(firedoors_last_closed_on + 100 < world.time) //every 10 seconds ModifyFiredoors(FALSE) /** - * Close and lock a door passed into this proc - * - * Does this need to exist on area? probably not - */ + * Close and lock a door passed into this proc + * + * Does this need to exist on area? probably not + */ /area/proc/close_and_lock_door(obj/machinery/door/DOOR) set waitfor = FALSE DOOR.close() @@ -374,12 +374,12 @@ GLOBAL_LIST_EMPTY(teleportlocs) DOOR.lock() /** - * Raise a burglar alert for this area - * - * Close and locks all doors in the area and alerts silicon mobs of a break in - * - * Alarm auto resets after 600 ticks - */ + * Raise a burglar alert for this area + * + * Close and locks all doors in the area and alerts silicon mobs of a break in + * + * Alarm auto resets after 600 ticks + */ /area/proc/burglaralert(obj/trigger) if (area_flags & NO_ALERTS) return @@ -396,10 +396,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) addtimer(CALLBACK(SILICON, /mob/living/silicon.proc/cancelAlarm,"Burglar",src,trigger), 600) /** - * Trigger the fire alarm visual affects in an area - * - * Updates the fire light on fire alarms in the area and sets all lights to emergency mode - */ + * Trigger the fire alarm visual affects in an area + * + * Updates the fire light on fire alarms in the area and sets all lights to emergency mode + */ /area/proc/set_fire_alarm_effect() fire = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT @@ -410,10 +410,10 @@ GLOBAL_LIST_EMPTY(teleportlocs) L.update() /** - * unset the fire alarm visual affects in an area - * - * Updates the fire light on fire alarms in the area and sets all lights to emergency mode - */ + * unset the fire alarm visual affects in an area + * + * Updates the fire light on fire alarms in the area and sets all lights to emergency mode + */ /area/proc/unset_fire_alarm_effects() fire = FALSE mouse_opacity = MOUSE_OPACITY_TRANSPARENT @@ -424,11 +424,11 @@ GLOBAL_LIST_EMPTY(teleportlocs) L.update() /** - * Update the icon state of the area - * - * Im not sure what the heck this does, somethign to do with weather being able to set icon - * states on areas?? where the heck would that even display? - */ + * Update the icon state of the area + * + * Im not sure what the heck this does, somethign to do with weather being able to set icon + * states on areas?? where the heck would that even display? + */ /area/update_icon_state() var/weather_icon for(var/V in SSweather.processing) @@ -440,18 +440,18 @@ GLOBAL_LIST_EMPTY(teleportlocs) icon_state = null /** - * Update the icon of the area (overridden to always be null for space - */ + * Update the icon of the area (overridden to always be null for space + */ /area/space/update_icon_state() icon_state = null /** - * Returns int 1 or 0 if the area has power for the given channel - * - * evalutes a mixture of variables mappers can set, requires_power, always_unpowered and then - * per channel power_equip, power_light, power_environ - */ + * Returns int 1 or 0 if the area has power for the given channel + * + * evalutes a mixture of variables mappers can set, requires_power, always_unpowered and then + * per channel power_equip, power_light, power_environ + */ /area/proc/powered(chan) // return true if the area has power to given channel if(!requires_power) @@ -469,16 +469,16 @@ GLOBAL_LIST_EMPTY(teleportlocs) return FALSE /** - * Space is not powered ever, so this returns false - */ + * Space is not powered ever, so this returns false + */ /area/space/powered(chan) //Nope.avi return FALSE /** - * Called when the area power status changes - * - * Updates the area icon, calls power change on all machinees in the area, and sends the `COMSIG_AREA_POWER_CHANGE` signal. - */ + * Called when the area power status changes + * + * Updates the area icon, calls power change on all machinees in the area, and sends the `COMSIG_AREA_POWER_CHANGE` signal. + */ /area/proc/power_change() for(var/obj/machinery/M in src) // for each machine in the area M.power_change() // reverify power status (to update icons etc.) @@ -487,30 +487,30 @@ GLOBAL_LIST_EMPTY(teleportlocs) /** - * Add a static amount of power load to an area - * - * Possible channels - * *AREA_USAGE_STATIC_EQUIP - * *AREA_USAGE_STATIC_LIGHT - * *AREA_USAGE_STATIC_ENVIRON - */ + * Add a static amount of power load to an area + * + * Possible channels + * *AREA_USAGE_STATIC_EQUIP + * *AREA_USAGE_STATIC_LIGHT + * *AREA_USAGE_STATIC_ENVIRON + */ /area/proc/addStaticPower(value, powerchannel) switch(powerchannel) if(AREA_USAGE_STATIC_START to AREA_USAGE_STATIC_END) power_usage[powerchannel] += value /** - * Clear all power usage in area - * - * Clears all power used for equipment, light and environment channels - */ + * Clear all power usage in area + * + * Clears all power used for equipment, light and environment channels + */ /area/proc/clear_usage() for(var/i in AREA_USAGE_DYNAMIC_START to AREA_USAGE_DYNAMIC_END) power_usage[i] = 0 /** - * Add a power value amount to the stored used_x variables - */ + * Add a power value amount to the stored used_x variables + */ /area/proc/use_power(amount, chan) switch(chan) if(AREA_USAGE_DYNAMIC_START to AREA_USAGE_DYNAMIC_END) @@ -518,12 +518,12 @@ GLOBAL_LIST_EMPTY(teleportlocs) /** - * Call back when an atom enters an area - * - * Sends signals COMSIG_AREA_ENTERED and COMSIG_ENTER_AREA (to the atom) - * - * If the area has ambience, then it plays some ambience music to the ambience channel - */ + * Call back when an atom enters an area + * + * Sends signals COMSIG_AREA_ENTERED and COMSIG_ENTER_AREA (to the atom) + * + * If the area has ambience, then it plays some ambience music to the ambience channel + */ /area/Entered(atom/movable/M) set waitfor = FALSE SEND_SIGNAL(src, COMSIG_AREA_ENTERED, M) @@ -563,25 +563,25 @@ GLOBAL_LIST_EMPTY(teleportlocs) /** - * Called when an atom exits an area - * - * Sends signals COMSIG_AREA_EXITED and COMSIG_EXIT_AREA (to the atom) - */ + * Called when an atom exits an area + * + * Sends signals COMSIG_AREA_EXITED and COMSIG_EXIT_AREA (to the atom) + */ /area/Exited(atom/movable/M) SEND_SIGNAL(src, COMSIG_AREA_EXITED, M) SEND_SIGNAL(M, COMSIG_EXIT_AREA, src) //The atom that exits the area /** - * Reset the played var to false on the client - */ + * Reset the played var to false on the client + */ /client/proc/ResetAmbiencePlayed() played = FALSE /** - * Setup an area (with the given name) - * - * Sets the area name, sets all status var's to false and adds the area to the sorted area list - */ + * Setup an area (with the given name) + * + * Sets the area name, sets all status var's to false and adds the area to the sorted area list + */ /area/proc/setup(a_name) name = a_name power_equip = FALSE @@ -592,11 +592,11 @@ GLOBAL_LIST_EMPTY(teleportlocs) area_flags &= ~BLOBS_ALLOWED addSorted() /** - * Set the area size of the area - * - * This is the number of open turfs in the area contents, or FALSE if the outdoors var is set - * - */ + * Set the area size of the area + * + * This is the number of open turfs in the area contents, or FALSE if the outdoors var is set + * + */ /area/proc/update_areasize() if(outdoors) return FALSE @@ -605,14 +605,14 @@ GLOBAL_LIST_EMPTY(teleportlocs) areasize++ /** - * Causes a runtime error - */ + * Causes a runtime error + */ /area/AllowDrop() CRASH("Bad op: area/AllowDrop() called") /** - * Causes a runtime error - */ + * Causes a runtime error + */ /area/drop_location() CRASH("Bad op: area/drop_location() called") diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 7c33b385df6..002ad0e001d 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1,9 +1,9 @@ /** - * The base type for nearly all physical objects in SS13 + * The base type for nearly all physical objects in SS13 - * Lots and lots of functionality lives here, although in general we are striving to move - * as much as possible to the components/elements system - */ + * Lots and lots of functionality lives here, although in general we are striving to move + * as much as possible to the components/elements system + */ /atom layer = TURF_LAYER plane = GAME_PLANE @@ -147,15 +147,15 @@ var/atom/orbit_target /** - * Called when an atom is created in byond (built in engine proc) - * - * Not a lot happens here in SS13 code, as we offload most of the work to the - * [Intialization][/atom/proc/Initialize] proc, mostly we run the preloader - * if the preloader is being used and then call [InitAtom][/datum/controller/subsystem/atoms/proc/InitAtom] of which the ultimate - * result is that the Intialize proc is called. - * - * We also generate a tag here if the DF_USE_TAG flag is set on the atom - */ + * Called when an atom is created in byond (built in engine proc) + * + * Not a lot happens here in SS13 code, as we offload most of the work to the + * [Intialization][/atom/proc/Initialize] proc, mostly we run the preloader + * if the preloader is being used and then call [InitAtom][/datum/controller/subsystem/atoms/proc/InitAtom] of which the ultimate + * result is that the Intialize proc is called. + * + * We also generate a tag here if the DF_USE_TAG flag is set on the atom + */ /atom/New(loc, ...) //atom creation method that preloads variables at creation if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New() @@ -172,39 +172,39 @@ return /** - * The primary method that objects are setup in SS13 with - * - * we don't use New as we have better control over when this is called and we can choose - * to delay calls or hook other logic in and so forth - * - * During roundstart map parsing, atoms are queued for intialization in the base atom/New(), - * After the map has loaded, then Initalize is called on all atoms one by one. NB: this - * is also true for loading map templates as well, so they don't Initalize until all objects - * in the map file are parsed and present in the world - * - * If you're creating an object at any point after SSInit has run then this proc will be - * immediately be called from New. - * - * mapload: This parameter is true if the atom being loaded is either being intialized during - * the Atom subsystem intialization, or if the atom is being loaded from the map template. - * If the item is being created at runtime any time after the Atom subsystem is intialized then - * it's false. - * - * You must always call the parent of this proc, otherwise failures will occur as the item - * will not be seen as initalized (this can lead to all sorts of strange behaviour, like - * the item being completely unclickable) - * - * You must not sleep in this proc, or any subprocs - * - * Any parameters from new are passed through (excluding loc), naturally if you're loading from a map - * there are no other arguments - * - * 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/proc/Initialize] - * * [/turf/open/space/proc/Initialize] - */ + * The primary method that objects are setup in SS13 with + * + * we don't use New as we have better control over when this is called and we can choose + * to delay calls or hook other logic in and so forth + * + * During roundstart map parsing, atoms are queued for intialization in the base atom/New(), + * After the map has loaded, then Initalize is called on all atoms one by one. NB: this + * is also true for loading map templates as well, so they don't Initalize until all objects + * in the map file are parsed and present in the world + * + * If you're creating an object at any point after SSInit has run then this proc will be + * immediately be called from New. + * + * mapload: This parameter is true if the atom being loaded is either being intialized during + * the Atom subsystem intialization, or if the atom is being loaded from the map template. + * If the item is being created at runtime any time after the Atom subsystem is intialized then + * it's false. + * + * You must always call the parent of this proc, otherwise failures will occur as the item + * will not be seen as initalized (this can lead to all sorts of strange behaviour, like + * the item being completely unclickable) + * + * You must not sleep in this proc, or any subprocs + * + * Any parameters from new are passed through (excluding loc), naturally if you're loading from a map + * there are no other arguments + * + * 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/proc/Initialize] + * * [/turf/open/space/proc/Initialize] + */ /atom/proc/Initialize(mapload, ...) SHOULD_NOT_SLEEP(TRUE) SHOULD_CALL_PARENT(TRUE) @@ -239,16 +239,16 @@ return INITIALIZE_HINT_NORMAL /** - * Late Intialization, for code that should run after all atoms have run Intialization - * - * To have your LateIntialize proc be called, your atoms [Initalization][/atom/proc/Initialize] - * proc must return the hint - * [INITIALIZE_HINT_LATELOAD] otherwise you will never be called. - * - * useful for doing things like finding other machines on GLOB.machines because you can guarantee - * that all atoms will actually exist in the "WORLD" at this time and that all their Intialization - * code has been run - */ + * Late Intialization, for code that should run after all atoms have run Intialization + * + * To have your LateIntialize proc be called, your atoms [Initalization][/atom/proc/Initialize] + * proc must return the hint + * [INITIALIZE_HINT_LATELOAD] otherwise you will never be called. + * + * useful for doing things like finding other machines on GLOB.machines because you can guarantee + * that all atoms will actually exist in the "WORLD" at this time and that all their Intialization + * code has been run + */ /atom/proc/LateInitialize() set waitfor = FALSE @@ -257,15 +257,15 @@ return /** - * Top level of the destroy chain for most atoms - * - * Cleans up the following: - * * Removes alternate apperances from huds that see them - * * qdels the reagent holder from atoms if it exists - * * clears the orbiters list - * * clears overlays and priority overlays - * * clears the light object - */ + * Top level of the destroy chain for most atoms + * + * Cleans up the following: + * * Removes alternate apperances from huds that see them + * * qdels the reagent holder from atoms if it exists + * * clears the orbiters list + * * clears overlays and priority overlays + * * clears the light object + */ /atom/Destroy() if(alternate_appearances) for(var/K in alternate_appearances) @@ -324,15 +324,15 @@ return !density /** - * Is this atom currently located on centcom - * - * Specifically, is it on the z level and within the centcom areas - * - * You can also be in a shuttleshuttle during endgame transit - * - * Used in gamemode to identify mobs who have escaped and for some other areas of the code - * who don't want atoms where they shouldn't be - */ + * Is this atom currently located on centcom + * + * Specifically, is it on the z level and within the centcom areas + * + * You can also be in a shuttleshuttle during endgame transit + * + * Used in gamemode to identify mobs who have escaped and for some other areas of the code + * who don't want atoms where they shouldn't be + */ /atom/proc/onCentCom() var/turf/T = get_turf(src) if(!T) @@ -364,12 +364,12 @@ return TRUE /** - * Is the atom in any of the centcom syndicate areas - * - * Either in the syndie base on centcom, or any of their shuttles - * - * Also used in gamemode code for win conditions - */ + * Is the atom in any of the centcom syndicate areas + * + * Either in the syndie base on centcom, or any of their shuttles + * + * Also used in gamemode code for win conditions + */ /atom/proc/onSyndieBase() var/turf/T = get_turf(src) if(!T) @@ -384,12 +384,12 @@ return FALSE /** - * Is the atom in an away mission - * - * Must be in the away mission z-level to return TRUE - * - * Also used in gamemode code for win conditions - */ + * Is the atom in an away mission + * + * Must be in the away mission z-level to return TRUE + * + * Also used in gamemode code for win conditions + */ /atom/proc/onAwayMission() var/turf/T = get_turf(src) if(!T) @@ -407,17 +407,17 @@ SEND_SIGNAL(src, COMSIG_ATOM_HULK_ATTACK, user) /** - * Ensure a list of atoms/reagents exists inside this atom - * - * Goes throught he list of passed in parts, if they're reagents, adds them to our reagent holder - * creating the reagent holder if it exists. - * - * If the part is a moveable atom and the previous location of the item was a mob/living, - * it calls the inventory handler transferItemToLoc for that mob/living and transfers the part - * to this atom - * - * Otherwise it simply forceMoves the atom into this atom - */ + * Ensure a list of atoms/reagents exists inside this atom + * + * Goes throught he list of passed in parts, if they're reagents, adds them to our reagent holder + * creating the reagent holder if it exists. + * + * If the part is a moveable atom and the previous location of the item was a mob/living, + * it calls the inventory handler transferItemToLoc for that mob/living and transfers the part + * to this atom + * + * Otherwise it simply forceMoves the atom into this atom + */ /atom/proc/CheckParts(list/parts_list, datum/crafting_recipe/R) SEND_SIGNAL(src, COMSIG_ATOM_CHECKPARTS, parts_list, R) if(parts_list) @@ -486,17 +486,17 @@ return reagents && (reagents.flags & DRAINABLE) /** Handles exposing this atom to a list of reagents. - * - * Sends COMSIG_ATOM_EXPOSE_REAGENTS - * Calls expose_atom() for every reagent in the reagent list. - * - * Arguments: - * - [reagents][/list]: The list of reagents the atom is being exposed to. - * - [source][/datum/reagents]: The reagent holder the reagents are being sourced from. - * - methods: How the atom is being exposed to the reagents. Bitflags. - * - volume_modifier: Volume multiplier. - * - show_message: Whether to display anything to mobs when they are exposed. - */ + * + * Sends COMSIG_ATOM_EXPOSE_REAGENTS + * Calls expose_atom() for every reagent in the reagent list. + * + * Arguments: + * - [reagents][/list]: The list of reagents the atom is being exposed to. + * - [source][/datum/reagents]: The reagent holder the reagents are being sourced from. + * - methods: How the atom is being exposed to the reagents. Bitflags. + * - volume_modifier: Volume multiplier. + * - show_message: Whether to display anything to mobs when they are exposed. + */ /atom/proc/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE) . = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, methods, volume_modifier, show_message) if(. & COMPONENT_NO_EXPOSE_REAGENTS) @@ -518,15 +518,15 @@ return /** - * React to an EMP of the given severity - * - * Default behaviour is to send the [COMSIG_ATOM_EMP_ACT] signal - * - * If the signal does not return protection, and there are attached wires then we call - * [emp_pulse][/datum/wires/proc/emp_pulse] on the wires - * - * We then return the protection value - */ + * React to an EMP of the given severity + * + * Default behaviour is to send the [COMSIG_ATOM_EMP_ACT] signal + * + * If the signal does not return protection, and there are attached wires then we call + * [emp_pulse][/datum/wires/proc/emp_pulse] on the wires + * + * We then return the protection value + */ /atom/proc/emp_act(severity) var/protection = SEND_SIGNAL(src, COMSIG_ATOM_EMP_ACT, severity) if(!(protection & EMP_PROTECT_WIRES) && istype(wires)) @@ -534,10 +534,10 @@ return protection // Pass the protection value collected here upwards /** - * React to a hit by a projectile object - * - * Default behaviour is to send the [COMSIG_ATOM_BULLET_ACT] and then call [on_hit][/obj/projectile/proc/on_hit] on the projectile - */ + * React to a hit by a projectile object + * + * Default behaviour is to send the [COMSIG_ATOM_BULLET_ACT] and then call [on_hit][/obj/projectile/proc/on_hit] on the projectile + */ /atom/proc/bullet_act(obj/projectile/P, def_zone) SEND_SIGNAL(src, COMSIG_ATOM_BULLET_ACT, P, def_zone) . = P.on_hit(src, 0, def_zone) @@ -552,11 +552,11 @@ return FALSE /** - * Get the name of this object for examine - * - * You can override what is returned from this proc by registering to listen for the - * [COMSIG_ATOM_GET_EXAMINE_NAME] signal - */ + * Get the name of this object for examine + * + * You can override what is returned from this proc by registering to listen for the + * [COMSIG_ATOM_GET_EXAMINE_NAME] signal + */ /atom/proc/get_examine_name(mob/user) . = "\a [src]" var/list/override = list(gender == PLURAL ? "some" : "a", " ", "[name]") @@ -571,13 +571,13 @@ return "[icon2html(src, user)] [thats? "That's ":""][get_examine_name(user)]" /** - * Called when a mob examines (shift click or verb) this atom - * - * Default behaviour is to get the name and icon of the object and it's reagents where - * the [TRANSPARENT] flag is set on the reagents holder - * - * Produces a signal [COMSIG_PARENT_EXAMINE] - */ + * Called when a mob examines (shift click or verb) this atom + * + * Default behaviour is to get the name and icon of the object and it's reagents where + * the [TRANSPARENT] flag is set on the reagents holder + * + * Produces a signal [COMSIG_PARENT_EXAMINE] + */ /atom/proc/examine(mob/user) . = list("[get_examine_string(user, TRUE)].") @@ -612,13 +612,13 @@ SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .) /** - * Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_TIME (default 1.5 seconds) - * - * This is where you can put extra information on something that may be superfluous or not important in critical gameplay - * moments, while allowing people to manually double-examine to take a closer look - * - * Produces a signal [COMSIG_PARENT_EXAMINE_MORE] - */ + * Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_TIME (default 1.5 seconds) + * + * This is where you can put extra information on something that may be superfluous or not important in critical gameplay + * moments, while allowing people to manually double-examine to take a closer look + * + * Produces a signal [COMSIG_PARENT_EXAMINE_MORE] + */ /atom/proc/examine_more(mob/user) . = list() SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE_MORE, user, .) @@ -658,11 +658,11 @@ SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_OVERLAYS, .) /** - * An atom we are buckled or is contained within us has tried to move - * - * Default behaviour is to send a warning that the user can't move while buckled as long - * as the [buckle_message_cooldown][/atom/var/buckle_message_cooldown] has expired (50 ticks) - */ + * An atom we are buckled or is contained within us has tried to move + * + * Default behaviour is to send a warning that the user can't move while buckled as long + * as the [buckle_message_cooldown][/atom/var/buckle_message_cooldown] has expired (50 ticks) + */ /atom/proc/relaymove(mob/living/user, direction) if(buckle_message_cooldown <= world.time) buckle_message_cooldown = world.time + 50 @@ -674,20 +674,20 @@ return //For handling the effects of explosions on contents that would not normally be effected /** - * React to being hit by an explosion - * - * Default behaviour is to call [contents_explosion][/atom/proc/contents_explosion] and send the [COMSIG_ATOM_EX_ACT] signal - */ + * React to being hit by an explosion + * + * Default behaviour is to call [contents_explosion][/atom/proc/contents_explosion] and send the [COMSIG_ATOM_EX_ACT] signal + */ /atom/proc/ex_act(severity, target) set waitfor = FALSE contents_explosion(severity, target) SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target) /** - * React to a hit by a blob objecd - * - * default behaviour is to send the [COMSIG_ATOM_BLOB_ACT] signal - */ + * React to a hit by a blob objecd + * + * default behaviour is to send the [COMSIG_ATOM_BLOB_ACT] signal + */ /atom/proc/blob_act(obj/structure/blob/B) SEND_SIGNAL(src, COMSIG_ATOM_BLOB_ACT, B) return @@ -697,24 +697,24 @@ return /** - * React to being hit by a thrown object - * - * Default behaviour is to call [hitby_react][/atom/proc/hitby_react] on ourselves after 2 seconds if we are dense - * and under normal gravity. - * - * Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is - * deleted shortly after hitting something (during explosions or other massive events that - * throw lots of items around - singularity being a notable example) - */ + * React to being hit by a thrown object + * + * Default behaviour is to call [hitby_react][/atom/proc/hitby_react] on ourselves after 2 seconds if we are dense + * and under normal gravity. + * + * Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is + * deleted shortly after hitting something (during explosions or other massive events that + * throw lots of items around - singularity being a notable example) + */ /atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) if(density && !has_gravity(AM)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...). addtimer(CALLBACK(src, .proc/hitby_react, AM), 2) /** - * We have have actually hit the passed in atom - * - * Default behaviour is to move back from the item that hit us - */ + * We have have actually hit the passed in atom + * + * Default behaviour is to move back from the item that hit us + */ /atom/proc/hitby_react(atom/movable/AM) if(AM && isturf(AM.loc)) step(AM, turn(AM.dir, 180)) @@ -781,44 +781,44 @@ return /** - * Respond to the singularity pulling on us - * - * Default behaviour is to send [COMSIG_ATOM_SING_PULL] and return - */ + * Respond to the singularity pulling on us + * + * Default behaviour is to send [COMSIG_ATOM_SING_PULL] and return + */ /atom/proc/singularity_pull(obj/singularity/S, current_size) SEND_SIGNAL(src, COMSIG_ATOM_SING_PULL, S, current_size) /** - * Respond to acid being used on our atom - * - * Default behaviour is to send [COMSIG_ATOM_ACID_ACT] and return - */ + * Respond to acid being used on our atom + * + * Default behaviour is to send [COMSIG_ATOM_ACID_ACT] and return + */ /atom/proc/acid_act(acidpwr, acid_volume) SEND_SIGNAL(src, COMSIG_ATOM_ACID_ACT, acidpwr, acid_volume) return FALSE /** - * Respond to an emag being used on our atom - * - * Default behaviour is to send [COMSIG_ATOM_EMAG_ACT] and return - */ + * Respond to an emag being used on our atom + * + * Default behaviour is to send [COMSIG_ATOM_EMAG_ACT] and return + */ /atom/proc/emag_act(mob/user, obj/item/card/emag/E) SEND_SIGNAL(src, COMSIG_ATOM_EMAG_ACT, user, E) /** - * Respond to a radioactive wave hitting this atom - * - * Default behaviour is to send [COMSIG_ATOM_RAD_ACT] and return - */ + * Respond to a radioactive wave hitting this atom + * + * Default behaviour is to send [COMSIG_ATOM_RAD_ACT] and return + */ /atom/proc/rad_act(strength) SEND_SIGNAL(src, COMSIG_ATOM_RAD_ACT, strength) /** - * Respond to narsie eating our atom - * - * Default behaviour is to send [COMSIG_ATOM_NARSIE_ACT] and return - */ + * Respond to narsie eating our atom + * + * Default behaviour is to send [COMSIG_ATOM_NARSIE_ACT] and return + */ /atom/proc/narsie_act() SEND_SIGNAL(src, COMSIG_ATOM_NARSIE_ACT) @@ -829,45 +829,45 @@ /** - * Respond to an RCD acting on our item - * - * Default behaviour is to send [COMSIG_ATOM_RCD_ACT] and return FALSE - */ + * Respond to an RCD acting on our item + * + * Default behaviour is to send [COMSIG_ATOM_RCD_ACT] and return FALSE + */ /atom/proc/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) SEND_SIGNAL(src, COMSIG_ATOM_RCD_ACT, user, the_rcd, passed_mode) return FALSE /** - * Respond to an electric bolt action on our item - * - * Default behaviour is to return, we define here to allow for cleaner code later on - */ + * Respond to an electric bolt action on our item + * + * Default behaviour is to return, we define here to allow for cleaner code later on + */ /atom/proc/zap_act(power, zap_flags) return /** - * Implement the behaviour for when a user click drags a storage object to your atom - * - * This behaviour is usually to mass transfer, but this is no longer a used proc as it just - * calls the underyling /datum/component/storage dump act if a component exists - * - * TODO these should be purely component items that intercept the atom clicks higher in the - * call chain - */ + * Implement the behaviour for when a user click drags a storage object to your atom + * + * This behaviour is usually to mass transfer, but this is no longer a used proc as it just + * calls the underyling /datum/component/storage dump act if a component exists + * + * TODO these should be purely component items that intercept the atom clicks higher in the + * call chain + */ /atom/proc/storage_contents_dump_act(obj/item/storage/src_object, mob/user) if(GetComponent(/datum/component/storage)) return component_storage_contents_dump_act(src_object, user) return FALSE /** - * Implement the behaviour for when a user click drags another storage item to you - * - * In this case we get as many of the tiems from the target items compoent storage and then - * put everything into ourselves (or our storage component) - * - * TODO these should be purely component items that intercept the atom clicks higher in the - * call chain - */ + * Implement the behaviour for when a user click drags another storage item to you + * + * In this case we get as many of the tiems from the target items compoent storage and then + * put everything into ourselves (or our storage component) + * + * TODO these should be purely component items that intercept the atom clicks higher in the + * call chain + */ /atom/proc/component_storage_contents_dump_act(datum/component/storage/src_object, mob/user) var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) @@ -888,55 +888,55 @@ return null /** - * 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] - */ + * 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] + */ /atom/proc/handle_atom_del(atom/A) SEND_SIGNAL(src, COMSIG_ATOM_CONTENTS_DEL, A) /** - * called when the turf the atom resides on is ChangeTurfed - * - * Default behaviour is to loop through atom contents and call their HandleTurfChange() proc - */ + * called when the turf the atom resides on is ChangeTurfed + * + * Default behaviour is to loop through atom contents and call their HandleTurfChange() proc + */ /atom/proc/HandleTurfChange(turf/T) for(var/a in src) var/atom/A = a A.HandleTurfChange(T) /** - * the vision impairment to give to the mob whose perspective is set to that atom - * - * (e.g. an unfocused camera giving you an impaired vision when looking through it) - */ + * the vision impairment to give to the mob whose perspective is set to that atom + * + * (e.g. an unfocused camera giving you an impaired vision when looking through it) + */ /atom/proc/get_remote_view_fullscreens(mob/user) return /** - * the sight changes to give to the mob whose perspective is set to that atom - * - * (e.g. A mob with nightvision loses its nightvision while looking through a normal camera) - */ + * the sight changes to give to the mob whose perspective is set to that atom + * + * (e.g. A mob with nightvision loses its nightvision while looking through a normal camera) + */ /atom/proc/update_remote_sight(mob/living/user) return /** - * Hook for running code when a dir change occurs - * - * Not recommended to use, listen for the [COMSIG_ATOM_DIR_CHANGE] signal instead (sent by this proc) - */ + * Hook for running code when a dir change occurs + * + * Not recommended to use, listen for the [COMSIG_ATOM_DIR_CHANGE] signal instead (sent by this proc) + */ /atom/proc/setDir(newdir) SHOULD_CALL_PARENT(TRUE) SEND_SIGNAL(src, COMSIG_ATOM_DIR_CHANGE, dir, newdir) dir = newdir /** - * Called when the atom log's in or out - * - * Default behaviour is to call on_log on the location this atom is in - */ + * Called when the atom log's in or out + * + * Default behaviour is to call on_log on the location this atom is in + */ /atom/proc/on_log(login) if(loc) loc.on_log(login) @@ -992,13 +992,13 @@ /** - * Wash this atom - * - * This will clean it off any temporary stuff like blood. Override this in your item to add custom cleaning behavior. - * Returns true if any washing was necessary and thus performed - * Arguments: - * * clean_types: any of the CLEAN_ constants - */ + * Wash this atom + * + * This will clean it off any temporary stuff like blood. Override this in your item to add custom cleaning behavior. + * Returns true if any washing was necessary and thus performed + * Arguments: + * * clean_types: any of the CLEAN_ constants + */ /atom/proc/wash(clean_types) . = FALSE if(SEND_SIGNAL(src, COMSIG_COMPONENT_CLEAN_ACT, clean_types) & COMPONENT_CLEANED) @@ -1010,16 +1010,16 @@ return TRUE /** - * call back when a var is edited on this atom - * - * Can be used to implement special handling of vars - * - * At the atom level, if you edit a var named "color" it will add the atom colour with - * admin level priority to the atom colours list - * - * Also, if GLOB.Debug2 is FALSE, it sets the [ADMIN_SPAWNED_1] flag on [flags_1][/atom/var/flags_1], which signifies - * the object has been admin edited - */ + * call back when a var is edited on this atom + * + * Can be used to implement special handling of vars + * + * At the atom level, if you edit a var named "color" it will add the atom colour with + * admin level priority to the atom colours list + * + * Also, if GLOB.Debug2 is FALSE, it sets the [ADMIN_SPAWNED_1] flag on [flags_1][/atom/var/flags_1], which signifies + * the object has been admin edited + */ /atom/vv_edit_var(var_name, var_value) switch(var_name) if(NAMEOF(src, light_range)) @@ -1074,10 +1074,10 @@ /** - * Return the markup to for the dropdown list for the VV panel for this atom - * - * Override in subtypes to add custom VV handling in the VV panel - */ + * Return the markup to for the dropdown list for the VV panel for this atom + * + * Override in subtypes to add custom VV handling in the VV panel + */ /atom/vv_get_dropdown() . = ..() VV_DROPDOWN_OPTION("", "---------") @@ -1174,31 +1174,31 @@ name = newname /** - * An atom has entered this atom's contents - * - * Default behaviour is to send the [COMSIG_ATOM_ENTERED] - */ + * An atom has entered this atom's contents + * + * Default behaviour is to send the [COMSIG_ATOM_ENTERED] + */ /atom/Entered(atom/movable/AM, atom/oldLoc) SEND_SIGNAL(src, COMSIG_ATOM_ENTERED, AM, oldLoc) /** - * An atom is attempting to exit this atom's contents - * - * Default behaviour is to send the [COMSIG_ATOM_EXIT] - * - * Return value should be set to FALSE if the moving atom is unable to leave, - * otherwise leave value the result of the parent call - */ + * An atom is attempting to exit this atom's contents + * + * Default behaviour is to send the [COMSIG_ATOM_EXIT] + * + * Return value should be set to FALSE if the moving atom is unable to leave, + * otherwise leave value the result of the parent call + */ /atom/Exit(atom/movable/AM, atom/newLoc) . = ..() if(SEND_SIGNAL(src, COMSIG_ATOM_EXIT, AM, newLoc) & COMPONENT_ATOM_BLOCK_EXIT) return FALSE /** - * An atom has exited this atom's contents - * - * Default behaviour is to send the [COMSIG_ATOM_EXITED] - */ + * An atom has exited this atom's contents + * + * Default behaviour is to send the [COMSIG_ATOM_EXITED] + */ /atom/Exited(atom/movable/AM, atom/newLoc) SEND_SIGNAL(src, COMSIG_ATOM_EXITED, AM, newLoc) @@ -1207,12 +1207,12 @@ return /** - *Tool behavior procedure. Redirects to tool-specific procs by default. - * - * You can override it to catch all tool interactions, for use in complex deconstruction procs. - * - * Must return parent proc ..() in the end if overridden - */ + *Tool behavior procedure. Redirects to tool-specific procs by default. + * + * You can override it to catch all tool interactions, for use in complex deconstruction procs. + * + * Must return parent proc ..() in the end if overridden + */ /atom/proc/tool_act(mob/living/user, obj/item/I, tool_type) var/list/processing_recipes = list() //List of recipes that can be mutated by sending the signal var/signal_result = SEND_SIGNAL(src, COMSIG_ATOM_TOOL_ACT(tool_type), user, I, processing_recipes) @@ -1398,15 +1398,15 @@ target.log_talk(message, message_type, tag="[tag] from [key_name(source)]", log_globally=FALSE) /** - * Log a combat message in the attack log - * - * Arguments: - * * atom/user - argument is the actor performing the action - * * atom/target - argument is the target of the action - * * what_done - is a verb describing the action (e.g. punched, throwed, kicked, etc.) - * * atom/object - is a tool with which the action was made (usually an item) - * * addition - is any additional text, which will be appended to the rest of the log line - */ + * Log a combat message in the attack log + * + * Arguments: + * * atom/user - argument is the actor performing the action + * * atom/target - argument is the target of the action + * * what_done - is a verb describing the action (e.g. punched, throwed, kicked, etc.) + * * atom/object - is a tool with which the action was made (usually an item) + * * addition - is any additional text, which will be appended to the rest of the log line + */ /proc/log_combat(atom/user, atom/target, what_done, atom/object=null, addition=null) var/ssource = key_name(user) var/starget = key_name(target) @@ -1431,19 +1431,19 @@ target.log_message(reverse_message, LOG_ATTACK, color="orange", log_globally=FALSE) /** - * log_wound() is for when someone is *attacked* and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over - * - * Note that this has no info on the attack that dealt the wound: information about where damage came from isn't passed to the bodypart's damaged proc. When in doubt, check the attack log for attacks at that same time - * TODO later: Add logging for healed wounds, though that will require some rewriting of healing code to prevent admin heals from spamming the logs. Not high priority - * - * Arguments: - * * victim- The guy who got wounded - * * suffered_wound- The wound, already applied, that we're logging. It has to already be attached so we can get the limb from it - * * dealt_damage- How much damage is associated with the attack that dealt with this wound. - * * dealt_wound_bonus- The wound_bonus, if one was specified, of the wounding attack - * * dealt_bare_wound_bonus- The bare_wound_bonus, if one was specified *and applied*, of the wounding attack. Not shown if armor was present - * * base_roll- Base wounding ability of an attack is a random number from 1 to (dealt_damage ** WOUND_DAMAGE_EXPONENT). This is the number that was rolled in there, before mods - */ + * log_wound() is for when someone is *attacked* and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over + * + * Note that this has no info on the attack that dealt the wound: information about where damage came from isn't passed to the bodypart's damaged proc. When in doubt, check the attack log for attacks at that same time + * TODO later: Add logging for healed wounds, though that will require some rewriting of healing code to prevent admin heals from spamming the logs. Not high priority + * + * Arguments: + * * victim- The guy who got wounded + * * suffered_wound- The wound, already applied, that we're logging. It has to already be attached so we can get the limb from it + * * dealt_damage- How much damage is associated with the attack that dealt with this wound. + * * dealt_wound_bonus- The wound_bonus, if one was specified, of the wounding attack + * * dealt_bare_wound_bonus- The bare_wound_bonus, if one was specified *and applied*, of the wounding attack. Not shown if armor was present + * * base_roll- Base wounding ability of an attack is a random number from 1 to (dealt_damage ** WOUND_DAMAGE_EXPONENT). This is the number that was rolled in there, before mods + */ /proc/log_wound(atom/victim, datum/wound/suffered_wound, dealt_damage, dealt_wound_bonus, dealt_bare_wound_bonus, base_roll) if(QDELETED(victim) || !suffered_wound) return @@ -1537,15 +1537,15 @@ /**Returns the material composition of the atom. - * - * Used when recycling items, specifically to turn alloys back into their component mats. - * - * Exists because I'd need to add a way to un-alloy alloys or otherwise deal - * with people converting the entire stations material supply into alloys. - * - * Arguments: - * - flags: A set of flags determining how exactly the materials are broken down. - */ + * + * Used when recycling items, specifically to turn alloys back into their component mats. + * + * Exists because I'd need to add a way to un-alloy alloys or otherwise deal + * with people converting the entire stations material supply into alloys. + * + * Arguments: + * - flags: A set of flags determining how exactly the materials are broken down. + */ /atom/proc/get_material_composition(breakdown_flags=NONE) . = list() var/list/cached_materials = custom_materials @@ -1556,19 +1556,19 @@ .[comp_mat] += material_comp[comp_mat] /** - * Returns true if this atom has gravity for the passed in turf - * - * Sends signals [COMSIG_ATOM_HAS_GRAVITY] and [COMSIG_TURF_HAS_GRAVITY], both can force gravity with - * the forced gravity var - * - * Gravity situations: - * * No gravity if you're not in a turf - * * No gravity if this atom is in is a space turf - * * Gravity if the area it's in always has gravity - * * Gravity if there's a gravity generator on the z level - * * Gravity if the Z level has an SSMappingTrait for ZTRAIT_GRAVITY - * * otherwise no gravity - */ + * Returns true if this atom has gravity for the passed in turf + * + * Sends signals [COMSIG_ATOM_HAS_GRAVITY] and [COMSIG_TURF_HAS_GRAVITY], both can force gravity with + * the forced gravity var + * + * Gravity situations: + * * No gravity if you're not in a turf + * * No gravity if this atom is in is a space turf + * * Gravity if the area it's in always has gravity + * * Gravity if there's a gravity generator on the z level + * * Gravity if the Z level has an SSMappingTrait for ZTRAIT_GRAVITY + * * otherwise no gravity + */ /atom/proc/has_gravity(turf/T) if(!T || !isturf(T)) T = get_turf(src) @@ -1605,26 +1605,26 @@ return SSmapping.level_trait(T.z, ZTRAIT_GRAVITY) /** - * Causes effects when the atom gets hit by a rust effect from heretics - * - * Override this if you want custom behaviour in whatever gets hit by the rust - */ + * Causes effects when the atom gets hit by a rust effect from heretics + * + * Override this if you want custom behaviour in whatever gets hit by the rust + */ /atom/proc/rust_heretic_act() return /** - * Used to set something as 'open' if it's being used as a supplypod - * - * Override this if you want an atom to be usable as a supplypod. - */ + * Used to set something as 'open' if it's being used as a supplypod + * + * Override this if you want an atom to be usable as a supplypod. + */ /atom/proc/setOpened() return /** - * Used to set something as 'closed' if it's being used as a supplypod - * - * Override this if you want an atom to be usable as a supplypod. - */ + * Used to set something as 'closed' if it's being used as a supplypod + * + * Override this if you want an atom to be usable as a supplypod. + */ /atom/proc/setClosed() return @@ -1633,10 +1633,10 @@ /atom/proc/container_resist_act(mob/living/user) /** - * Used to attempt to charge an object with a payment component. - * - * Use this if an atom needs to attempt to charge another atom. - */ + * Used to attempt to charge an object with a payment component. + * + * Use this if an atom needs to attempt to charge another atom. + */ /atom/proc/attempt_charge(atom/sender, atom/target, extra_fees = 0) return SEND_SIGNAL(sender, COMSIG_OBJ_ATTEMPT_CHARGE, target, extra_fees) @@ -1660,10 +1660,10 @@ return TRUE /** - * Recursive getter method to return a list of all ghosts orbitting this atom - * - * This will work fine without manually passing arguments. - */ + * Recursive getter method to return a list of all ghosts orbitting this atom + * + * This will work fine without manually passing arguments. + */ /atom/proc/get_all_orbiters(list/processed, source = TRUE) var/list/output = list() if (!processed) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index f69c0fadedc..6c83bc2000e 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -603,16 +603,16 @@ /** - * Called whenever an object moves and by mobs when they attempt to move themselves through space - * And when an object or action applies a force on src, see [newtonian_move][/atom/movable/proc/newtonian_move] - * - * 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/proc/Move] - * - * Arguments: - * * movement_dir - 0 when stopping or any dir when trying to move - */ + * Called whenever an object moves and by mobs when they attempt to move themselves through space + * And when an object or action applies a force on src, see [newtonian_move][/atom/movable/proc/newtonian_move] + * + * 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/proc/Move] + * + * Arguments: + * * movement_dir - 0 when stopping or any dir when trying to move + */ /atom/movable/proc/Process_Spacemove(movement_dir = 0) if(has_gravity(src)) return TRUE @@ -1015,10 +1015,10 @@ return TRUE /** - * Updates the grab state of the movable - * - * This exists to act as a hook for behaviour - */ + * Updates the grab state of the movable + * + * This exists to act as a hook for behaviour + */ /atom/movable/proc/setGrabState(newstate) if(newstate == grab_state) return diff --git a/code/game/communications.dm b/code/game/communications.dm index 8cbf31c09a0..c4c58f763be 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -1,65 +1,65 @@ /* - HOW IT WORKS - - The SSradio is a global object maintaining all radio transmissions, think about it as about "ether". - Note that walkie-talkie, intercoms and headsets handle transmission using nonstandard way. - procs: - - add_object(obj/device as obj, new_frequency as num, filter as text|null = null) - Adds listening object. - parameters: - device - device receiving signals, must have proc receive_signal (see description below). - one device may listen several frequencies, but not same frequency twice. - new_frequency - see possibly frequencies below; - filter - thing for optimization. Optional, but recommended. - All filters should be consolidated in this file, see defines later. - Device without listening filter will receive all signals (on specified frequency). - Device with filter will receive any signals sent without filter. - Device with filter will not receive any signals sent with different filter. - returns: - Reference to frequency object. - - remove_object (obj/device, old_frequency) - Obliviously, after calling this proc, device will not receive any signals on old_frequency. - Other frequencies will left unaffected. - - return_frequency(var/frequency as num) - returns: - Reference to frequency object. Use it if you need to send and do not need to listen. - - radio_frequency is a global object maintaining list of devices that listening specific frequency. - procs: - - post_signal(obj/source as obj|null, datum/signal/signal, filter as text|null = null, range as num|null = null) - Sends signal to all devices that wants such signal. - parameters: - source - object, emitted signal. Usually, devices will not receive their own signals. - signal - see description below. - filter - described above. - range - radius of regular byond's square circle on that z-level. null means everywhere, on all z-levels. - - obj/proc/receive_signal(datum/signal/signal, receive_method as num, receive_param) - Handler from received signals. By default does nothing. Define your own for your object. - Avoid of sending signals directly from this proc, use spawn(0). Do not use sleep() here please. - parameters: - signal - see description below. Extract all needed data from the signal before doing sleep(), spawn() or return! - receive_method - may be TRANSMISSION_WIRE or TRANSMISSION_RADIO. - TRANSMISSION_WIRE is currently unused. - receive_param - for TRANSMISSION_RADIO here comes frequency. - - datum/signal - vars: - source - an object that emitted signal. Used for debug and bearing. - data - list with transmitting data. Usual use pattern: - data["msg"] = "hello world" - encryption - Some number symbolizing "encryption key". - Note that game actually do not use any cryptography here. - If receiving object don't know right key, it must ignore encrypted signal in its receive_signal. - -*/ + * HOW IT WORKS + * + *The SSradio is a global object maintaining all radio transmissions, think about it as about "ether". + *Note that walkie-talkie, intercoms and headsets handle transmission using nonstandard way. + *procs: + * + * add_object(obj/device as obj, new_frequency as num, filter as text|null = null) + * Adds listening object. + * parameters: + * device - device receiving signals, must have proc receive_signal (see description below). + * one device may listen several frequencies, but not same frequency twice. + * new_frequency - see possibly frequencies below; + * filter - thing for optimization. Optional, but recommended. + * All filters should be consolidated in this file, see defines later. + * Device without listening filter will receive all signals (on specified frequency). + * Device with filter will receive any signals sent without filter. + * Device with filter will not receive any signals sent with different filter. + * returns: + * Reference to frequency object. + * + * remove_object (obj/device, old_frequency) + * Obliviously, after calling this proc, device will not receive any signals on old_frequency. + * Other frequencies will left unaffected. + * + *return_frequency(var/frequency as num) + * returns: + * Reference to frequency object. Use it if you need to send and do not need to listen. + * + *radio_frequency is a global object maintaining list of devices that listening specific frequency. + *procs: + * + * post_signal(obj/source as obj|null, datum/signal/signal, filter as text|null = null, range as num|null = null) + * Sends signal to all devices that wants such signal. + * parameters: + * source - object, emitted signal. Usually, devices will not receive their own signals. + * signal - see description below. + * filter - described above. + * range - radius of regular byond's square circle on that z-level. null means everywhere, on all z-levels. + * + * obj/proc/receive_signal(datum/signal/signal, receive_method as num, receive_param) + * Handler from received signals. By default does nothing. Define your own for your object. + * Avoid of sending signals directly from this proc, use spawn(0). Do not use sleep() here please. + * parameters: + * signal - see description below. Extract all needed data from the signal before doing sleep(), spawn() or return! + * receive_method - may be TRANSMISSION_WIRE or TRANSMISSION_RADIO. + * TRANSMISSION_WIRE is currently unused. + * receive_param - for TRANSMISSION_RADIO here comes frequency. + * + * datum/signal + * vars: + * source + * an object that emitted signal. Used for debug and bearing. + * data + * list with transmitting data. Usual use pattern: + * data["msg"] = "hello world" + * encryption + * Some number symbolizing "encryption key". + * Note that game actually do not use any cryptography here. + * If receiving object don't know right key, it must ignore encrypted signal in its receive_signal. + * + */ /* the radio controller is a confusing piece of shit and didnt work so i made radios not use the radio controller. */ diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index ca8b243960c..63c72bf6a1e 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -86,7 +86,7 @@ */ /*********************************************** - Medical HUD! Basic mode needs suit sensors on. +Medical HUD! Basic mode needs suit sensors on. ************************************************/ //HELPERS @@ -214,7 +214,7 @@ /*********************************************** - FAN HUDs! For identifying other fans on-sight. +FAN HUDs! For identifying other fans on-sight. ************************************************/ //HOOKS @@ -232,7 +232,7 @@ holder.icon_state = "fan_clown_pin" /*********************************************** - Security HUDs! Basic mode shows only the job. +Security HUDs! Basic mode shows only the job. ************************************************/ //HOOKS @@ -292,7 +292,7 @@ holder.icon_state = null /*********************************************** - Diagnostic HUDs! +Diagnostic HUDs! ************************************************/ /mob/living/proc/hud_set_nanite_indicator() diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 2b9f67be872..87d2e9eb9d6 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -196,7 +196,7 @@ message_admins("Roundtype conversion cancelled, the game appears to have finished!") round_converted = 0 return - //somewhere between 1 and 3 minutes from now + //somewhere between 1 and 3 minutes from now if(!CONFIG_GET(keyed_list/midround_antag)[SSticker.mode.config_tag]) round_converted = 0 return TRUE diff --git a/code/game/gamemodes/gang/gang_handler.dm b/code/game/gamemodes/gang/gang_handler.dm index c47f127f298..294ae0330e8 100644 --- a/code/game/gamemodes/gang/gang_handler.dm +++ b/code/game/gamemodes/gang/gang_handler.dm @@ -17,21 +17,21 @@ GLOBAL_VAR_INIT(deaths_during_shift, 0) /** - * # Families gamemode / dynamic ruleset handler - * - * A special datum used by the families gamemode and dynamic rulesets to centralize code. "Family" and "gang" used interchangeably in code. - * - * This datum centralizes code used for the families gamemode / dynamic rulesets. Families incorporates a significant - * amount of unique processing; without this datum, that could would be duplicated. To ensure the maintainability - * of the families gamemode / rulesets, the code was moved to this datum. The gamemode / rulesets instance this - * datum, pass it lists (lists are passed by reference; removing candidates here removes candidates in the gamemode), - * and call its procs. Additionally, the families antagonist datum and families induction package also - * contain vars that reference this datum, allowing for new families / family members to add themselves - * to this datum's lists thereof (primarily used for point calculation). Despite this, the basic team mechanics - * themselves should function regardless of this datum's instantiation, should a player have the gang or cop - * antagonist datum added to them through methods external to the families gamemode / rulesets. - * - */ + * # Families gamemode / dynamic ruleset handler + * + * A special datum used by the families gamemode and dynamic rulesets to centralize code. "Family" and "gang" used interchangeably in code. + * + * This datum centralizes code used for the families gamemode / dynamic rulesets. Families incorporates a significant + * amount of unique processing; without this datum, that could would be duplicated. To ensure the maintainability + * of the families gamemode / rulesets, the code was moved to this datum. The gamemode / rulesets instance this + * datum, pass it lists (lists are passed by reference; removing candidates here removes candidates in the gamemode), + * and call its procs. Additionally, the families antagonist datum and families induction package also + * contain vars that reference this datum, allowing for new families / family members to add themselves + * to this datum's lists thereof (primarily used for point calculation). Despite this, the basic team mechanics + * themselves should function regardless of this datum's instantiation, should a player have the gang or cop + * antagonist datum added to them through methods external to the families gamemode / rulesets. + * + */ /datum/gang_handler /// A counter used to minimize the overhead of computationally intensive, periodic family point gain checks. Used and set internally. var/check_counter = 0 @@ -70,40 +70,40 @@ GLOBAL_VAR_INIT(deaths_during_shift, 0) var/list/restricted_jobs /** - * Sets antag_candidates and restricted_jobs. - * - * Sets the antag_candidates and restricted_jobs lists to the equivalent - * lists of its instantiating game_mode / dynamic_ruleset datum. As lists - * are passed by reference, the variable set in this datum and the passed list - * list used to set it are literally the same; changes to one affect the other. - * Like all New() procs, called when the datum is first instantiated. - * There's an annoying caveat here, though -- dynamic rulesets don't have - * lists of minds for candidates, they have lists of mobs. Ghost mobs, before - * the round has started. But we still want to preserve the structure of the candidates - * list by not duplicating it and making sure to remove the candidates as we use them. - * So there's a little bit of boilerplate throughout to preserve the sanctity of this reference. - * Arguments: - * * given_candidates - The antag_candidates list or equivalent of the datum instantiating this one. - * * revised_restricted - The restricted_jobs list or equivalent of the datum instantiating this one. - */ + * Sets antag_candidates and restricted_jobs. + * + * Sets the antag_candidates and restricted_jobs lists to the equivalent + * lists of its instantiating game_mode / dynamic_ruleset datum. As lists + * are passed by reference, the variable set in this datum and the passed list + * list used to set it are literally the same; changes to one affect the other. + * Like all New() procs, called when the datum is first instantiated. + * There's an annoying caveat here, though -- dynamic rulesets don't have + * lists of minds for candidates, they have lists of mobs. Ghost mobs, before + * the round has started. But we still want to preserve the structure of the candidates + * list by not duplicating it and making sure to remove the candidates as we use them. + * So there's a little bit of boilerplate throughout to preserve the sanctity of this reference. + * Arguments: + * * given_candidates - The antag_candidates list or equivalent of the datum instantiating this one. + * * revised_restricted - The restricted_jobs list or equivalent of the datum instantiating this one. + */ /datum/gang_handler/New(list/given_candidates, list/revised_restricted) antag_candidates = given_candidates restricted_jobs = revised_restricted /** - * pre_setup() or pre_execute() equivalent. - * - * This proc is always called externally, by the instantiating game_mode / dynamic_ruleset. - * This is done during the pre_setup() or pre_execute() phase, after first instantiation - * and the modification of gangs_to_generate, gang_balance_cap, and midround_ruleset. - * It is intended to take the place of the code that would normally occupy the pre_setup() - * or pre_execute() proc, were the code localized to the game_mode or dynamic_ruleset datum respectively - * as opposed to this handler. As such, it picks players to be chosen for starting familiy members - * or undercover cops prior to assignment to jobs. Sets start_time, default end_time, - * and the current value of deaths_during_shift, to ensure the wanted level only cares about - * the deaths since this proc has been called. - * Takes no arguments. - */ + * pre_setup() or pre_execute() equivalent. + * + * This proc is always called externally, by the instantiating game_mode / dynamic_ruleset. + * This is done during the pre_setup() or pre_execute() phase, after first instantiation + * and the modification of gangs_to_generate, gang_balance_cap, and midround_ruleset. + * It is intended to take the place of the code that would normally occupy the pre_setup() + * or pre_execute() proc, were the code localized to the game_mode or dynamic_ruleset datum respectively + * as opposed to this handler. As such, it picks players to be chosen for starting familiy members + * or undercover cops prior to assignment to jobs. Sets start_time, default end_time, + * and the current value of deaths_during_shift, to ensure the wanted level only cares about + * the deaths since this proc has been called. + * Takes no arguments. + */ /datum/gang_handler/proc/pre_setup_analogue() for(var/j = 0, j < gangs_to_generate, j++) if (!antag_candidates.len) @@ -141,21 +141,21 @@ GLOBAL_VAR_INIT(deaths_during_shift, 0) return TRUE /** - * post_setup() or execute() equivalent. - * - * This proc is always called externally, by the instantiating game_mode / dynamic_ruleset. - * This is done during the post_setup() or execute() phase, after the pre_setup() / pre_execute() phase. - * It is intended to take the place of the code that would normally occupy the pre_setup() - * or pre_execute() proc. As such, it ensures that all prospective starting family members / - * undercover cops are eligible, and picks replacements if there were ineligible cops / family members. - * It then assigns gear to the finalized family members and undercover cops, adding them to its lists, - * and sets the families announcement proc (that does the announcing) to trigger in five minutes. - * Additionally, if given the argument TRUE, it will return FALSE if there are no eligible starting family members. - * This is only to be done if the instantiating datum is a dynamic_ruleset, as these require returns - * while a game_mode is not expected to return early during this phase. - * Arguments: - * * return_if_no_gangs - Boolean that determines if the proc should return FALSE should it find no eligible family members. Should be used for dynamic only. - */ + * post_setup() or execute() equivalent. + * + * This proc is always called externally, by the instantiating game_mode / dynamic_ruleset. + * This is done during the post_setup() or execute() phase, after the pre_setup() / pre_execute() phase. + * It is intended to take the place of the code that would normally occupy the pre_setup() + * or pre_execute() proc. As such, it ensures that all prospective starting family members / + * undercover cops are eligible, and picks replacements if there were ineligible cops / family members. + * It then assigns gear to the finalized family members and undercover cops, adding them to its lists, + * and sets the families announcement proc (that does the announcing) to trigger in five minutes. + * Additionally, if given the argument TRUE, it will return FALSE if there are no eligible starting family members. + * This is only to be done if the instantiating datum is a dynamic_ruleset, as these require returns + * while a game_mode is not expected to return early during this phase. + * Arguments: + * * return_if_no_gangs - Boolean that determines if the proc should return FALSE should it find no eligible family members. Should be used for dynamic only. + */ /datum/gang_handler/proc/post_setup_analogue(return_if_no_gangs = FALSE) var/replacement_gangsters = 0 var/replacement_cops = 0 @@ -224,16 +224,16 @@ GLOBAL_VAR_INIT(deaths_during_shift, 0) return TRUE /** - * process() or rule_process() equivalent. - * - * This proc is always called externally, by the instantiating game_mode / dynamic_ruleset. - * This is done during the process() or rule_process() phase, after post_setup() or - * execute() and at regular intervals thereafter. process() and rule_process() are optional - * for a game_mode / dynamic_ruleset, but are important for this gamemode. It is of central - * importance to the gamemode's flow, calculating wanted level updates, family point gain, - * and announcing + executing the arrival of the space cops, achieved through calling internal procs. - * Takes no arguments. - */ + * process() or rule_process() equivalent. + * + * This proc is always called externally, by the instantiating game_mode / dynamic_ruleset. + * This is done during the process() or rule_process() phase, after post_setup() or + * execute() and at regular intervals thereafter. process() and rule_process() are optional + * for a game_mode / dynamic_ruleset, but are important for this gamemode. It is of central + * importance to the gamemode's flow, calculating wanted level updates, family point gain, + * and announcing + executing the arrival of the space cops, achieved through calling internal procs. + * Takes no arguments. + */ /datum/gang_handler/proc/process_analogue() check_wanted_level() check_counter++ @@ -249,14 +249,14 @@ GLOBAL_VAR_INIT(deaths_during_shift, 0) check_rollin_with_crews() /** - * set_round_result() or round_result() equivalent. - * - * This proc is always called externally, by the instantiating game_mode / dynamic_ruleset. - * This is done by the set_round_result() or round_result() procs, at roundend. - * Sets the ticker subsystem to the correct result based off of the relative populations - * of space cops and family members. - * Takes no arguments. - */ + * set_round_result() or round_result() equivalent. + * + * This proc is always called externally, by the instantiating game_mode / dynamic_ruleset. + * This is done by the set_round_result() or round_result() procs, at roundend. + * Sets the ticker subsystem to the correct result based off of the relative populations + * of space cops and family members. + * Takes no arguments. + */ /datum/gang_handler/proc/set_round_result_analogue() var/alive_gangsters = 0 var/alive_cops = 0 diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 3837ef669ee..22ffbdf6d18 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -1,85 +1,83 @@ -/* -Overview: - Used to create objects that need a per step proc call. Default definition of 'Initialize()' - stores a reference to src machine in global 'machines list'. Default definition - of 'Destroy' removes reference to src machine in global 'machines list'. - -Class Variables: - use_power (num) - current state of auto power use. - Possible Values: - NO_POWER_USE -- no auto power use - IDLE_POWER_USE -- machine is using power at its idle power level - ACTIVE_POWER_USE -- machine is using power at its active power level - - active_power_usage (num) - Value for the amount of power to use when in active power mode - - idle_power_usage (num) - Value for the amount of power to use when in idle power mode - - power_channel (num) - What channel to draw from when drawing power for power mode - Possible Values: - AREA_USAGE_EQUIP:0 -- Equipment Channel - AREA_USAGE_LIGHT:2 -- Lighting Channel - AREA_USAGE_ENVIRON:3 -- Environment Channel - - component_parts (list) - A list of component parts of machine used by frame based machines. - - stat (bitflag) - Machine status bit flags. - Possible bit flags: - BROKEN -- Machine is broken - NOPOWER -- No power is being supplied to machine. - MAINT -- machine is currently under going maintenance. - EMPED -- temporary broken by EMP pulse - -Class Procs: - Initialize() 'game/machinery/machine.dm' - - Destroy() 'game/machinery/machine.dm' - - auto_use_power() 'game/machinery/machine.dm' - This proc determines how power mode power is deducted by the machine. - 'auto_use_power()' is called by the 'master_controller' game_controller every - tick. - - Return Value: - return:1 -- if object is powered - return:0 -- if object is not powered. - - Default definition uses 'use_power', 'power_channel', 'active_power_usage', - 'idle_power_usage', 'powered()', and 'use_power()' implement behavior. - - powered(chan = -1) 'modules/power/power.dm' - Checks to see if area that contains the object has power available for power - channel given in 'chan'. -1 defaults to power_channel - - use_power(amount, chan=-1) 'modules/power/power.dm' - Deducts 'amount' from the power channel 'chan' of the area that contains the object. - - power_change() 'modules/power/power.dm' - Called by the area that contains the object when ever that area under goes a - power state change (area runs out of power, or area channel is turned off). - - RefreshParts() 'game/machinery/machine.dm' - Called to refresh the variables in the machine that are contributed to by parts - contained in the component_parts list. (example: glass and material amounts for - the autolathe) - - Default definition does nothing. - - process() 'game/machinery/machine.dm' - Called by the 'machinery subsystem' once per machinery tick for each machine that is listed in its 'machines' list. - - process_atmos() - Called by the 'air subsystem' once per atmos tick for each machine that is listed in its 'atmos_machines' list. - - Compiled by Aygar -*/ - +/** + *Overview: + * Used to create objects that need a per step proc call. Default definition of 'Initialize()' + * stores a reference to src machine in global 'machines list'. Default definition + * of 'Destroy' removes reference to src machine in global 'machines list'. + * + *Class Variables: + * use_power (num) + * current state of auto power use. + * Possible Values: + * NO_POWER_USE -- no auto power use + * IDLE_POWER_USE -- machine is using power at its idle power level + * ACTIVE_POWER_USE -- machine is using power at its active power level + * + * active_power_usage (num) + * Value for the amount of power to use when in active power mode + * + * idle_power_usage (num) + * Value for the amount of power to use when in idle power mode + * + * power_channel (num) + * What channel to draw from when drawing power for power mode + * Possible Values: + * AREA_USAGE_EQUIP:0 -- Equipment Channel + * AREA_USAGE_LIGHT:2 -- Lighting Channel + * AREA_USAGE_ENVIRON:3 -- Environment Channel + * + * component_parts (list) + * A list of component parts of machine used by frame based machines. + * + * stat (bitflag) + * Machine status bit flags. + * Possible bit flags: + * BROKEN -- Machine is broken + * NOPOWER -- No power is being supplied to machine. + * MAINT -- machine is currently under going maintenance. + * EMPED -- temporary broken by EMP pulse + * + *Class Procs: + * Initialize() 'game/machinery/machine.dm' + * + * Destroy() 'game/machinery/machine.dm' + * + * auto_use_power() 'game/machinery/machine.dm' + * This proc determines how power mode power is deducted by the machine. + * 'auto_use_power()' is called by the 'master_controller' game_controller every + * tick. + * + * Return Value: + * return:1 -- if object is powered + * return:0 -- if object is not powered. + * + * Default definition uses 'use_power', 'power_channel', 'active_power_usage', + * 'idle_power_usage', 'powered()', and 'use_power()' implement behavior. + * + * powered(chan = -1) 'modules/power/power.dm' + * Checks to see if area that contains the object has power available for power + * channel given in 'chan'. -1 defaults to power_channel + * + * use_power(amount, chan=-1) 'modules/power/power.dm' + * Deducts 'amount' from the power channel 'chan' of the area that contains the object. + * + * power_change() 'modules/power/power.dm' + * Called by the area that contains the object when ever that area under goes a + * power state change (area runs out of power, or area channel is turned off). + * + * RefreshParts() 'game/machinery/machine.dm' + * Called to refresh the variables in the machine that are contributed to by parts + * contained in the component_parts list. (example: glass and material amounts for + * the autolathe) + * + * Default definition does nothing. + * + * process() 'game/machinery/machine.dm' + * Called by the 'machinery subsystem' once per machinery tick for each machine that is listed in its 'machines' list. + * + * process_atmos() + * Called by the 'air subsystem' once per atmos tick for each machine that is listed in its 'atmos_machines' list. + * Compiled by Aygar + */ /obj/machinery name = "machinery" icon = 'icons/obj/stationobjs.dmi' @@ -210,12 +208,12 @@ Class Procs: new /obj/effect/temp_visual/emp(loc) /** - * Opens the machine. - * - * Will update the machine icon and any user interfaces currently open. - * Arguments: - * * drop - Boolean. Whether to drop any stored items in the machine. Does not include components. - */ + * Opens the machine. + * + * Will update the machine icon and any user interfaces currently open. + * Arguments: + * * drop - Boolean. Whether to drop any stored items in the machine. Does not include components. + */ /obj/machinery/proc/open_machine(drop = TRUE) state_open = TRUE density = FALSE @@ -225,8 +223,8 @@ Class Procs: updateUsrDialog() /** - * Drop every movable atom in the machine's contents list, including any components and circuit. - */ + * Drop every movable atom in the machine's contents list, including any components and circuit. + */ /obj/machinery/dump_contents() // Start by calling the dump_inventory_contents proc. Will allow machines with special contents // to handle their dropping. @@ -243,13 +241,13 @@ Class Procs: LAZYCLEARLIST(component_parts) /** - * Drop every movable atom in the machine's contents list that is not a component_part. - * - * Proc does not drop components and will skip over anything in the component_parts list. - * Call dump_contents() to drop all contents including components. - * Arguments: - * * subset - If this is not null, only atoms that are also contained within the subset list will be dropped. - */ + * Drop every movable atom in the machine's contents list that is not a component_part. + * + * Proc does not drop components and will skip over anything in the component_parts list. + * Call dump_contents() to drop all contents including components. + * Arguments: + * * subset - If this is not null, only atoms that are also contained within the subset list will be dropped. + */ /obj/machinery/proc/dump_inventory_contents(list/subset = null) var/turf/this_turf = get_turf(src) for(var/atom/movable/movable_atom in contents) diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm index 10f5552a007..5d5a1787cde 100644 --- a/code/game/machinery/aug_manipulator.dm +++ b/code/game/machinery/aug_manipulator.dm @@ -16,8 +16,8 @@ . += "Alt-click to eject the limb." /obj/machinery/aug_manipulator/Initialize() - initial_icon_state = initial(icon_state) - return ..() + initial_icon_state = initial(icon_state) + return ..() /obj/machinery/aug_manipulator/update_icon_state() if(machine_stat & BROKEN) @@ -114,12 +114,12 @@ to_chat(user, "\The [src] is empty!") /** - * Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with the menu - * * part The body part that is being customized - */ + * Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with the menu + * * part The body part that is being customized + */ /obj/machinery/aug_manipulator/proc/check_menu(mob/living/user, obj/item/bodypart/part) if(!istype(user)) return FALSE diff --git a/code/game/machinery/bounty_board.dm b/code/game/machinery/bounty_board.dm index 1749969b5cd..6a3acb4c6fd 100644 --- a/code/game/machinery/bounty_board.dm +++ b/code/game/machinery/bounty_board.dm @@ -1,9 +1,9 @@ GLOBAL_LIST_EMPTY(allbountyboards) GLOBAL_LIST_EMPTY(request_list) /** - * A machine that acts basically like a quest board. - * Enables crew to create requests, crew can sign up to perform the request, and the requester can chose who to pay-out. - */ + * A machine that acts basically like a quest board. + * Enables crew to create requests, crew can sign up to perform the request, and the requester can chose who to pay-out. + */ /obj/machinery/bounty_board name = "bounty board" desc = "Allows you to place requests for goods and services across the station, as well as pay those who actually did it." @@ -166,9 +166,9 @@ GLOBAL_LIST_EMPTY(request_list) result_path = /obj/machinery/bounty_board /** - * A combined all in one datum that stores everything about the request, the requester's account, as well as the requestee's account - * All of this is passed to the Request Console UI in order to present in organized way. - */ + * A combined all in one datum that stores everything about the request, the requester's account, as well as the requestee's account + * All of this is passed to the Request Console UI in order to present in organized way. + */ /datum/station_request ///Name of the Request Owner. var/owner diff --git a/code/game/machinery/civilian_bounties.dm b/code/game/machinery/civilian_bounties.dm index 789c0521761..c21ba72d1f0 100644 --- a/code/game/machinery/civilian_bounties.dm +++ b/code/game/machinery/civilian_bounties.dm @@ -67,8 +67,8 @@ playsound(loc, 'sound/machines/synth_no.ogg', 30 , TRUE) /** - * This fully rewrites base behavior in order to only check for bounty objects, and nothing else. - */ + * This fully rewrites base behavior in order to only check for bounty objects, and nothing else. + */ /obj/machinery/computer/piratepad_control/civilian/send() playsound(loc, 'sound/machines/wewewew.ogg', 70, TRUE) if(!sending) diff --git a/code/game/machinery/computer/arena.dm b/code/game/machinery/computer/arena.dm index dd5c08e24a8..9d6d0ff72d3 100644 --- a/code/game/machinery/computer/arena.dm +++ b/code/game/machinery/computer/arena.dm @@ -78,9 +78,9 @@ team_hud_index[team] = length(GLOB.huds) /** - * Loads the arenas from config directory. - * THESE ARE FULLY CACHED FOR QUICK SWITCHING SO KEEP TRACK OF THE AMOUNT - */ + * Loads the arenas from config directory. + * THESE ARE FULLY CACHED FOR QUICK SWITCHING SO KEEP TRACK OF THE AMOUNT + */ /obj/machinery/computer/arena/proc/LoadDefaultArenas() if(default_arenas_loaded) return diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index dd49576769f..9addd86561b 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -1544,15 +1544,15 @@ return FALSE /** - * Applies the enzyme buffer to the current scanner occupant - * - * Applies the type of a specific genetic makeup buffer to the current scanner + * Applies the enzyme buffer to the current scanner occupant + * + * Applies the type of a specific genetic makeup buffer to the current scanner * occupant * - * Arguments: - * * type - "ui"/"ue"/"mixed" - Which part of the enzyme buffer to apply - * * buffer_slot - Index of the enzyme buffer to apply - */ + * Arguments: + * * type - "ui"/"ue"/"mixed" - Which part of the enzyme buffer to apply + * * buffer_slot - Index of the enzyme buffer to apply + */ /obj/machinery/computer/scan_consolenew/proc/apply_genetic_makeup(type, buffer_slot) // Note - This proc is only called from code that has already performed the // necessary occupant guard checks. If you call this code yourself, please @@ -1608,18 +1608,18 @@ return FALSE /** - * Checks if there is a connected DNA Scanner that is operational - */ + * Checks if there is a connected DNA Scanner that is operational + */ /obj/machinery/computer/scan_consolenew/proc/scanner_operational() return connected_scanner?.is_operational /** - * Checks if there is a valid DNA Scanner occupant for genetic modification - * + * Checks if there is a valid DNA Scanner occupant for genetic modification + * * Checks if there is a valid subject in the DNA Scanner that can be genetically * modified. Will set the scanner occupant var as part of this check. * Requires that the scanner can be operated and will return early if it can't - */ + */ /obj/machinery/computer/scan_consolenew/proc/can_modify_occupant() // GUARD CHECK - We always want to perform the scanner operational check as // part of checking if we can modify the occupant. @@ -1644,12 +1644,12 @@ return FALSE /** - * Checks for adjacent DNA scanners and connects when it finds a viable one - * + * Checks for adjacent DNA scanners and connects when it finds a viable one + * * Seearches cardinal directions in order. Stops when it finds a viable DNA Scanner. * Will connect to a broken scanner if no functional scanner is available. * Links itself to the DNA Scanner to receive door open and close events. - */ + */ /obj/machinery/computer/scan_consolenew/proc/connect_to_scanner() var/obj/machinery/dna_scannernew/test_scanner = null var/obj/machinery/dna_scannernew/broken_scanner = null @@ -1675,11 +1675,11 @@ connected_scanner.linked_console = src /** - * Called by connected DNA Scanners when their doors close. - * + * Called by connected DNA Scanners when their doors close. + * * Sets the new scanner occupant and completes delayed enzyme transfer if one * is queued. - */ + */ /obj/machinery/computer/scan_consolenew/proc/on_scanner_close() // Set the appropriate occupant now the scanner is closed if(connected_scanner.occupant) @@ -1700,11 +1700,11 @@ delayed_action = null /** - * Called by connected DNA Scanners when their doors open. - * + * Called by connected DNA Scanners when their doors open. + * * Clears enzyme pulse operations, stops processing and nulls the current * scanner occupant var. - */ + */ /obj/machinery/computer/scan_consolenew/proc/on_scanner_open() // If we had a radiation pulse action ongoing, we want to stop this. // Imagine it being like a microwave stopping when you open the door. @@ -1714,8 +1714,8 @@ scanner_occupant = null /** - * Builds the genetic makeup list which will be sent to tgui interface. - */ + * Builds the genetic makeup list which will be sent to tgui interface. + */ /obj/machinery/computer/scan_consolenew/proc/build_genetic_makeup_list() // No code will ever null this list, we can safely Cut it. tgui_genetic_makeup.Cut() @@ -1727,12 +1727,12 @@ tgui_genetic_makeup["[i]"] = null /** - * Builds the genetic makeup list which will be sent to tgui interface. + * Builds the genetic makeup list which will be sent to tgui interface. * * Will iterate over the connected scanner occupant, DNA Console, inserted * diskette and chromosomes and any advanced injectors, building the main data * structures which get passed to the tgui interface. - */ + */ /obj/machinery/computer/scan_consolenew/proc/build_mutation_list(can_modify_occ) // No code will ever null these lists. We can safely Cut them. tgui_occupant_mutations.Cut() @@ -1741,7 +1741,7 @@ tgui_console_chromosomes.Cut() tgui_advinjector_mutations.Cut() - // ------------------------------------------------------------------------ // + // ------------------------------------------------------------------------ // // GUARD CHECK - Can we genetically modify the occupant? This check will have // previously included checks to make sure the DNA Scanner is still // operational @@ -1948,15 +1948,15 @@ )) /** - * Takes any given chromosome and calculates chromosome compatibility + * Takes any given chromosome and calculates chromosome compatibility * * Will iterate over the stored chromosomes in the DNA Console and will check * whether it can be applied to the supplied mutation. Then returns a list of * names of chromosomes that were compatible. * * Arguments: - * * mutation - The mutation to check chromosome compatibility with - */ + * * mutation - The mutation to check chromosome compatibility with + */ /obj/machinery/computer/scan_consolenew/proc/build_chrom_list(mutation) var/list/chromosomes = list() @@ -1967,14 +1967,14 @@ return chromosomes /** - * Checks whether a mutation alias has been discovered + * Checks whether a mutation alias has been discovered * * Checks whether a given mutation's genetic sequence has been completed and * discovers it if appropriate * * Arguments: - * * alias - Alias of the mutation to check (ie "Mutation 51" or "Mutation 12") - */ + * * alias - Alias of the mutation to check (ie "Mutation 51" or "Mutation 12") + */ /obj/machinery/computer/scan_consolenew/proc/check_discovery(alias) // Note - All code paths that call this have already done checks on the // current occupant to prevent cheese and other abuses. If you call this @@ -2005,15 +2005,15 @@ return FALSE /** - * Find a mutation from various storage locations via ATOM ref + * Find a mutation from various storage locations via ATOM ref * * Takes an ATOM Ref and searches the appropriate mutation buffers and storage * vars to try and find the associated mutation. * * Arguments: - * * ref - ATOM ref of the mutation to locate + * * ref - ATOM ref of the mutation to locate * * target_flags - Flags for storage mediums to search, see #defines - */ + */ /obj/machinery/computer/scan_consolenew/proc/get_mut_by_ref(ref, target_flags) var/mutation @@ -2043,28 +2043,28 @@ return null /** - * Creates a randomised accuracy value for the enzyme pulse functionality. + * Creates a randomised accuracy value for the enzyme pulse functionality. * * Donor code from previous DNA Console iteration. * * Arguments: - * * position - Index of the intended enzyme element to pulse + * * position - Index of the intended enzyme element to pulse * * radduration - Duration of intended radiation pulse * * number_of_blocks - Number of individual data blocks in the pulsed enzyme - */ + */ /obj/machinery/computer/scan_consolenew/proc/randomize_radiation_accuracy(position, radduration, number_of_blocks) var/val = round(gaussian(0, RADIATION_ACCURACY_MULTIPLIER/radduration) + position, 1) return WRAP(val, 1, number_of_blocks+1) /** - * Scrambles an enzyme element value for the enzyme pulse functionality. + * Scrambles an enzyme element value for the enzyme pulse functionality. * * Donor code from previous DNA Console iteration. * * Arguments: - * * input - Enzyme identity element to scramble, expected hex value + * * input - Enzyme identity element to scramble, expected hex value * * rs - Strength of radiation pulse, increases the range of possible outcomes - */ + */ /obj/machinery/computer/scan_consolenew/proc/scramble(input,rs) var/length = length(input) var/ran = gaussian(0, rs*RADIATION_STRENGTH_MULTIPLIER) @@ -2104,8 +2104,8 @@ return /** - * Sets the default state for the tgui interface. - */ + * Sets the default state for the tgui interface. + */ /obj/machinery/computer/scan_consolenew/proc/set_default_state() tgui_view_state["consoleMode"] = "storage" tgui_view_state["storageMode"] = "console" @@ -2113,14 +2113,14 @@ tgui_view_state["storageDiskSubMode"] = "mutations" /** - * Ejects the DNA Disk from the console. + * Ejects the DNA Disk from the console. * * Will insert into the user's hand if possible, otherwise will drop it at the * console's location. * * Arguments: - * * user - The mob that is attempting to eject the diskette. - */ + * * user - The mob that is attempting to eject the diskette. + */ /obj/machinery/computer/scan_consolenew/proc/eject_disk(mob/user) // Check for diskette. if(!diskette) diff --git a/code/game/machinery/computer/mechlaunchpad.dm b/code/game/machinery/computer/mechlaunchpad.dm index 72ef521e860..a5c4168ebf1 100644 --- a/code/game/machinery/computer/mechlaunchpad.dm +++ b/code/game/machinery/computer/mechlaunchpad.dm @@ -78,11 +78,11 @@ to_chat(user, "You upload the data from the [multitool.name]'s buffer.") /** - * Tries to call the launch proc on the connected mechpad, returns if there is no connected mechpad or there is no mecha on the pad - * Arguments: - * * user - The user of the proc - * * where - The mechpad that the connected mechpad will try to send a supply pod to - */ + * Tries to call the launch proc on the connected mechpad, returns if there is no connected mechpad or there is no mecha on the pad + * Arguments: + * * user - The user of the proc + * * where - The mechpad that the connected mechpad will try to send a supply pod to + */ /obj/machinery/computer/mechpad/proc/try_launch(mob/user, obj/machinery/mechpad/where) if(!connected_mechpad) to_chat(user, "[src] has no connected pad!") diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index c7aedc266f1..cd14c6330fa 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -30,8 +30,8 @@ alarm() /** - * Initiates launching sequence by checking if all components are functional, opening poddoors, firing mass drivers and then closing poddoors - */ + * Initiates launching sequence by checking if all components are functional, opening poddoors, firing mass drivers and then closing poddoors + */ /obj/machinery/computer/pod/proc/alarm() if(machine_stat & (NOPOWER|BROKEN)) return diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 07b1f6b73d1..6a7d75f8222 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -398,7 +398,7 @@ M.setDir(pick(GLOB.cardinals)) for(var/mob/living/carbon/NS in rangers) NS.set_resting(!NS.resting, TRUE, TRUE) - time-- + time-- /obj/machinery/jukebox/disco/proc/dance5(mob/living/M) animate(M, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 629b31085e9..7dda41498b6 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1043,13 +1043,13 @@ return !operating && density /** - * Used when attempting to remove a seal from an airlock - * - * Called when attacking an airlock with an empty hand, returns TRUE (there was a seal and we removed it, or failed to remove it) - * or FALSE (there was no seal) - * Arguments: - * * user - Whoever is attempting to remove the seal - */ + * Used when attempting to remove a seal from an airlock + * + * Called when attacking an airlock with an empty hand, returns TRUE (there was a seal and we removed it, or failed to remove it) + * or FALSE (there was no seal) + * Arguments: + * * user - Whoever is attempting to remove the seal + */ /obj/machinery/door/airlock/try_remove_seal(mob/living/user) if(!seal) return FALSE @@ -1077,7 +1077,7 @@ var/beingcrowbarred = (I.tool_behaviour == TOOL_CROWBAR) if(!security_level && (beingcrowbarred && panel_open && ((obj_flags & EMAGGED) || (density && welded && !operating && !hasPower() && !locked)))) user.visible_message("[user] removes the electronics from the airlock assembly.", \ - "You start to remove electronics from the airlock assembly...") + "You start to remove electronics from the airlock assembly...") if(I.use_tool(src, user, 40, volume=100)) deconstruct(TRUE, user) return @@ -1586,11 +1586,11 @@ open() /** - * Generates the airlock's wire layout based on the current area the airlock resides in. - * - * Returns a new /datum/wires/ with the appropriate wire layout based on the airlock_wires - * of the area the airlock is in. - */ + * Generates the airlock's wire layout based on the current area the airlock resides in. + * + * Returns a new /datum/wires/ with the appropriate wire layout based on the airlock_wires + * of the area the airlock is in. + */ /obj/machinery/door/airlock/proc/set_wires() var/area/source_area = get_area(src) return source_area?.airlock_wires ? new source_area.airlock_wires(src) : new /datum/wires/airlock(src) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 046e4f18726..6e6c2274b00 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -99,13 +99,13 @@ return FALSE /** - * Called when attempting to remove the seal from an airlock - * - * Here because we need to call it and return if there was a seal so we don't try to open the door - * or try its safety lock while it's sealed - * Arguments: - * * user - the mob attempting to remove the seal - */ + * Called when attempting to remove the seal from an airlock + * + * Here because we need to call it and return if there was a seal so we don't try to open the door + * or try its safety lock while it's sealed + * Arguments: + * * user - the mob attempting to remove the seal + */ /obj/machinery/door/proc/try_remove_seal(mob/user) return diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index e7b9fe0fae1..97ff4ce6fc0 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -85,7 +85,7 @@ user.changeNext_move(CLICK_CD_MELEE) user.visible_message("[user] bangs on \the [src].", \ - "You bang on \the [src].") + "You bang on \the [src].") playsound(loc, 'sound/effects/glassknock.ogg', 10, FALSE, frequency = 32000) /obj/machinery/door/firedoor/attackby(obj/item/C, mob/user, params) @@ -99,17 +99,17 @@ return C.play_tool_sound(src) user.visible_message("[user] starts undoing [src]'s bolts...", \ - "You start unfastening [src]'s floor bolts...") + "You start unfastening [src]'s floor bolts...") if(!C.use_tool(src, user, DEFAULT_STEP_TIME)) return playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, TRUE) user.visible_message("[user] unfastens [src]'s bolts.", \ - "You undo [src]'s floor bolts.") + "You undo [src]'s floor bolts.") deconstruct(TRUE) return if(C.tool_behaviour == TOOL_SCREWDRIVER) user.visible_message("[user] [boltslocked ? "unlocks" : "locks"] [src]'s bolts.", \ - "You [boltslocked ? "unlock" : "lock"] [src]'s floor bolts.") + "You [boltslocked ? "unlock" : "lock"] [src]'s floor bolts.") C.play_tool_sound(src) boltslocked = !boltslocked return @@ -290,14 +290,14 @@ if(C.tool_behaviour == TOOL_CROWBAR) C.play_tool_sound(src) user.visible_message("[user] begins removing the circuit board from [src]...", \ - "You begin prying out the circuit board from [src]...") + "You begin prying out the circuit board from [src]...") if(!C.use_tool(src, user, DEFAULT_STEP_TIME)) return if(constructionStep != CONSTRUCTION_PANEL_OPEN) return playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, TRUE) user.visible_message("[user] removes [src]'s circuit board.", \ - "You remove the circuit board from [src].") + "You remove the circuit board from [src].") new /obj/item/electronics/firelock(drop_location()) constructionStep = CONSTRUCTION_NO_CIRCUIT update_icon() @@ -308,13 +308,13 @@ return C.play_tool_sound(src) user.visible_message("[user] starts bolting down [src]...", \ - "You begin bolting [src]...") + "You begin bolting [src]...") if(!C.use_tool(src, user, DEFAULT_STEP_TIME)) return if(locate(/obj/machinery/door/firedoor) in get_turf(src)) return user.visible_message("[user] finishes the firelock.", \ - "You finish the firelock.") + "You finish the firelock.") playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, TRUE) if(reinforced) new /obj/machinery/door/firedoor/heavy(get_turf(src)) @@ -331,13 +331,13 @@ to_chat(user, "You need more plasteel to reinforce [src].") return user.visible_message("[user] begins reinforcing [src]...", \ - "You begin reinforcing [src]...") + "You begin reinforcing [src]...") playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, TRUE) if(do_after(user, DEFAULT_STEP_TIME, target = src)) if(constructionStep != CONSTRUCTION_PANEL_OPEN || reinforced || P.get_amount() < 2 || !P) return user.visible_message("[user] reinforces [src].", \ - "You reinforce [src].") + "You reinforce [src].") playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, TRUE) P.use(2) reinforced = 1 @@ -345,7 +345,7 @@ if(CONSTRUCTION_NO_CIRCUIT) if(istype(C, /obj/item/electronics/firelock)) user.visible_message("[user] starts adding [C] to [src]...", \ - "You begin adding a circuit board to [src]...") + "You begin adding a circuit board to [src]...") playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, TRUE) if(!do_after(user, DEFAULT_STEP_TIME, target = src)) return @@ -353,7 +353,7 @@ return qdel(C) user.visible_message("[user] adds a circuit to [src].", \ - "You insert and secure [C].") + "You insert and secure [C].") playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, TRUE) constructionStep = CONSTRUCTION_PANEL_OPEN return @@ -361,13 +361,13 @@ if(!C.tool_start_check(user, amount=1)) return user.visible_message("[user] begins cutting apart [src]'s frame...", \ - "You begin slicing [src] apart...") + "You begin slicing [src] apart...") if(C.use_tool(src, user, DEFAULT_STEP_TIME, volume=50, amount=1)) if(constructionStep != CONSTRUCTION_NO_CIRCUIT) return user.visible_message("[user] cuts apart [src]!", \ - "You cut [src] into metal.") + "You cut [src] into metal.") var/turf/T = get_turf(src) new /obj/item/stack/sheet/metal(T, 3) if(reinforced) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 8d389a554bf..7ee8f70eca7 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -235,7 +235,7 @@ if(I.tool_behaviour == TOOL_CROWBAR) if(panel_open && !density && !operating) user.visible_message("[user] removes the electronics from the [name].", \ - "You start to remove electronics from the [name]...") + "You start to remove electronics from the [name]...") if(I.use_tool(src, user, 40, volume=50)) if(panel_open && !density && !operating && loc) var/obj/structure/windoor_assembly/WA = new /obj/structure/windoor_assembly(loc) diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 76fa1e5bdbd..fc3f7ba0c77 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -161,8 +161,9 @@ R.factual_radius["shockwave_radius"] = light_impact_range var/list/messages = list("Explosive disturbance detected.", - "Epicenter at: grid ([epicenter.x], [epicenter.y]). Temporal displacement of tachyons: [took] seconds.", - "Factual: Epicenter radius: [devastation_range]. Outer radius: [heavy_impact_range]. Shockwave radius: [light_impact_range].") + "Epicenter at: grid ([epicenter.x], [epicenter.y]). Temporal displacement of tachyons: [took] seconds.", + "Factual: Epicenter radius: [devastation_range]. Outer radius: [heavy_impact_range]. Shockwave radius: [light_impact_range].", + ) // If the bomb was capped, say its theoretical size. if(devastation_range < orig_dev_range || heavy_impact_range < orig_heavy_range || light_impact_range < orig_light_range) diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 7d986a23bb7..dadcc7152c8 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -253,7 +253,7 @@ else if(W.tool_behaviour == TOOL_WRENCH) user.visible_message("[user] removes the fire alarm assembly from the wall.", \ - "You remove the fire alarm assembly from the wall.") + "You remove the fire alarm assembly from the wall.") var/obj/item/wallframe/firealarm/frame = new /obj/item/wallframe/firealarm() frame.forceMove(user.drop_location()) W.play_tool_sound(src) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 1a344b04175..1efcbb02cbc 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -326,8 +326,8 @@ Possible to do for anyone motivated enough: return TRUE /** - * hangup_all_calls: Disconnects all current holocalls from the holopad - */ + * hangup_all_calls: Disconnects all current holocalls from the holopad + */ /obj/machinery/holopad/proc/hangup_all_calls() for(var/I in holo_calls) var/datum/holocall/HC = I diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 870d419de2e..bdcd25c7f0f 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -224,12 +224,12 @@ var/closed = TRUE var/obj/item/storage/briefcase/launchpad/briefcase -/obj/machinery/launchpad/briefcase/Initialize(mapload, briefcase) - . = ..() - if(!briefcase) - log_game("[src] has been spawned without a briefcase.") - return INITIALIZE_HINT_QDEL - src.briefcase = briefcase +/obj/machinery/launchpad/briefcase/Initialize(mapload, _briefcase) + . = ..() + if(!briefcase) + log_game("[src] has been spawned without a briefcase.") + return INITIALIZE_HINT_QDEL + briefcase = _briefcase /obj/machinery/launchpad/briefcase/Destroy() QDEL_NULL(briefcase) diff --git a/code/game/machinery/mechlaunchpad.dm b/code/game/machinery/mechlaunchpad.dm index f031f8c6a06..63b405fc3c8 100644 --- a/code/game/machinery/mechlaunchpad.dm +++ b/code/game/machinery/mechlaunchpad.dm @@ -47,10 +47,10 @@ return TRUE /** - * Spawns a special supply pod whitelisted to only accept mechs and have its drop off location be another mechpad - * Arguments: - * * where - where the supply pod will land after grabbing the mech - */ + * Spawns a special supply pod whitelisted to only accept mechs and have its drop off location be another mechpad + * Arguments: + * * where - where the supply pod will land after grabbing the mech + */ /obj/machinery/mechpad/proc/launch(obj/machinery/mechpad/where) var/obj/structure/closet/supplypod/mechpod/pod = new() var/turf/target_turf = get_turf(where) diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm index 4726a4e797b..5f1c2af708b 100644 --- a/code/game/machinery/medical_kiosk.dm +++ b/code/game/machinery/medical_kiosk.dm @@ -91,7 +91,7 @@ return user.visible_message("[user] snaps [O] onto [src]!", \ "You press [O] into the side of [src], clicking into place.") - //This will be the scanner returning scanner_wand's selected_target variable and assigning it to the altPatient var + //This will be the scanner returning scanner_wand's selected_target variable and assigning it to the altPatient var if(W.selected_target) if(!(altPatient == W.return_patient())) clearScans() diff --git a/code/game/machinery/medipen_refiller.dm b/code/game/machinery/medipen_refiller.dm index 4b11076e04a..4c488938ff5 100644 --- a/code/game/machinery/medipen_refiller.dm +++ b/code/game/machinery/medipen_refiller.dm @@ -83,9 +83,9 @@ return TRUE /obj/machinery/medipen_refiller/screwdriver_act(mob/living/user, obj/item/I) - . = ..() - if(!.) - return default_deconstruction_screwdriver(user, "medipen_refiller_open", "medipen_refiller", I) + . = ..() + if(!.) + return default_deconstruction_screwdriver(user, "medipen_refiller_open", "medipen_refiller", I) /// refills the medipen /obj/machinery/medipen_refiller/proc/refill(obj/item/reagent_containers/hypospray/medipen/P, mob/user) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index af9954376d0..7c83daebbf0 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -849,9 +849,9 @@ DEFINE_BITFIELD(turret_flags, list( var/lethal = FALSE /// Variable dictating if the panel is locked, preventing changes to turret settings var/locked = TRUE - /// An area in which linked turrets are located, it can be an area name, path or nothing + /// An area in which linked turrets are located, it can be an area name, path or nothing var/control_area = null - /// AI is unable to use this machine if set to TRUE + /// AI is unable to use this machine if set to TRUE var/ailock = FALSE /// Variable dictating if linked turrets will shoot cyborgs var/shoot_cyborgs = FALSE diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scan_gate.dm index 68043f40c6e..7ec04995dad 100644 --- a/code/game/machinery/scan_gate.dm +++ b/code/game/machinery/scan_gate.dm @@ -229,7 +229,7 @@ var/new_nutrition = params["new_nutrition"] var/nutrition_list = list( "Starving", - "Obese" + "Obese" ) if(new_nutrition && (new_nutrition in nutrition_list)) switch(new_nutrition) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 88e023eb028..fbb846ad995 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -339,12 +339,12 @@ add_fingerprint(user) /** - * UV decontamination sequence. - * Duration is determined by the uv_cycles var. - * Effects determined by the uv_super var. - * * If FALSE, all atoms (and their contents) contained are cleared of radiation. If a mob is inside, they are burned every cycle. - * * If TRUE, all items contained are destroyed, and burn damage applied to the mob is increased. All wires will be cut at the end. - * All atoms still inside at the end of all cycles are ejected from the unit. + * UV decontamination sequence. + * Duration is determined by the uv_cycles var. + * Effects determined by the uv_super var. + * * If FALSE, all atoms (and their contents) contained are cleared of radiation. If a mob is inside, they are burned every cycle. + * * If TRUE, all items contained are destroyed, and burn damage applied to the mob is increased. All wires will be cut at the end. + * All atoms still inside at the end of all cycles are ejected from the unit. */ /obj/machinery/suit_storage_unit/proc/cook() var/mob/living/mob_occupant = occupant diff --git a/code/game/machinery/teambuilder.dm b/code/game/machinery/teambuilder.dm index 49634dd35bc..621d8a33509 100644 --- a/code/game/machinery/teambuilder.dm +++ b/code/game/machinery/teambuilder.dm @@ -1,6 +1,6 @@ /** - * Simple admin tool that enables players to be assigned to a VERY SHITTY, very visually distinct team, quickly and affordably. - */ + * Simple admin tool that enables players to be assigned to a VERY SHITTY, very visually distinct team, quickly and affordably. + */ /obj/machinery/teambuilder name = "Teambuilding Machine" desc = "A machine that, when passed, colors you based on the color of your team. Lead free!" diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 0d306693df8..4b22b6b31e0 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -94,7 +94,7 @@ var/mob/living/silicon/robot/R = H.Robotize() R.cell = new /obj/item/stock_parts/cell/upgraded/plus(R, robot_cell_charge) - // So he can't jump out the gate right away. + // So he can't jump out the gate right away. R.SetLockdown() if(masterAI) R.set_connected_ai(masterAI) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 3ebf1161499..5187ca21789 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -55,19 +55,19 @@ return mouse_buckle_handling(M, user) /** - * Does some typechecks and then calls user_buckle_mob - * - * Arguments: - * M - The mob being buckled to src - * user - The mob buckling M to src - */ + * Does some typechecks and then calls user_buckle_mob + * + * Arguments: + * M - The mob being buckled to src + * user - The mob buckling M to src + */ /atom/movable/proc/mouse_buckle_handling(mob/living/M, mob/living/user) if(can_buckle && istype(M) && istype(user)) return user_buckle_mob(M, user) /** - * Returns TRUE if there are mobs buckled to this atom and FALSE otherwise - */ + * Returns TRUE if there are mobs buckled to this atom and FALSE otherwise + */ /atom/movable/proc/has_buckled_mobs() if(!buckled_mobs) return FALSE @@ -75,14 +75,14 @@ return TRUE /** - * Set a mob as buckled to src - * - * If you want to have a mob buckling another mob to something, or you want a chat message sent, use user_buckle_mob instead. - * Arguments: - * M - The mob to be buckled to src - * force - Set to TRUE to ignore src's can_buckle and M's can_buckle_to - * check_loc - Set to FALSE to allow buckling from adjacent turfs, or TRUE if buckling is only allowed with src and M on the same turf. - */ + * Set a mob as buckled to src + * + * If you want to have a mob buckling another mob to something, or you want a chat message sent, use user_buckle_mob instead. + * Arguments: + * M - The mob to be buckled to src + * force - Set to TRUE to ignore src's can_buckle and M's can_buckle_to + * check_loc - Set to FALSE to allow buckling from adjacent turfs, or TRUE if buckling is only allowed with src and M on the same turf. + */ /atom/movable/proc/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE) if(!buckled_mobs) buckled_mobs = list() @@ -118,13 +118,13 @@ M.IgniteMob() /** - * Set a mob as unbuckled from src - * - * The mob must actually be buckled to src or else bad things will happen. - * Arguments: - * buckled_mob - The mob to be unbuckled - * force - TRUE if we should ignore buckled_mob.can_buckle_to - */ + * Set a mob as unbuckled from src + * + * The mob must actually be buckled to src or else bad things will happen. + * Arguments: + * buckled_mob - The mob to be unbuckled + * force - TRUE if we should ignore buckled_mob.can_buckle_to + */ /atom/movable/proc/unbuckle_mob(mob/living/buckled_mob, force = FALSE) if(!isliving(buckled_mob)) CRASH("Non-living [buckled_mob] thing called unbuckle_mob() for source.") @@ -143,8 +143,8 @@ post_unbuckle_mob(.) /** - * Call [/atom/movable/proc/unbuckle_mob] for all buckled mobs - */ + * Call [/atom/movable/proc/unbuckle_mob] for all buckled mobs + */ /atom/movable/proc/unbuckle_all_mobs(force=FALSE) if(!has_buckled_mobs()) return @@ -159,15 +159,15 @@ /atom/movable/proc/post_unbuckle_mob(mob/living/M) /** - * Simple helper proc that runs a suite of checks to test whether it is possible or not to buckle the target mob to src. - * - * Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. - * Called from [/atom/movable/proc/buckle_mob] and [/atom/movable/proc/is_user_buckle_possible]. - * Arguments: - * * target - Target mob to check against buckling to src. - * * force - Whether or not the buckle should be forced. If TRUE, ignores src's can_buckle var and target's can_buckle_to - * * check_loc - TRUE if target and src have to be on the same tile, FALSE if they are allowed to just be adjacent - */ + * Simple helper proc that runs a suite of checks to test whether it is possible or not to buckle the target mob to src. + * + * Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. + * Called from [/atom/movable/proc/buckle_mob] and [/atom/movable/proc/is_user_buckle_possible]. + * Arguments: + * * target - Target mob to check against buckling to src. + * * force - Whether or not the buckle should be forced. If TRUE, ignores src's can_buckle var and target's can_buckle_to + * * check_loc - TRUE if target and src have to be on the same tile, FALSE if they are allowed to just be adjacent + */ /atom/movable/proc/is_buckle_possible(mob/living/target, force = FALSE, check_loc = TRUE) // Make sure target is mob/living if(!istype(target)) @@ -204,15 +204,15 @@ return TRUE /** - * Simple helper proc that runs a suite of checks to test whether it is possible or not for user to buckle target mob to src. - * - * Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. - * Called from [/atom/movable/proc/user_buckle_mob]. - * Arguments: - * * target - Target mob to check against buckling to src. - * * user - The mob who is attempting to buckle the target to src. - * * check_loc - TRUE if target and src have to be on the same tile, FALSE if buckling is allowed from adjacent tiles - */ + * Simple helper proc that runs a suite of checks to test whether it is possible or not for user to buckle target mob to src. + * + * Returns FALSE if any conditions that should prevent buckling are satisfied. Returns TRUE otherwise. + * Called from [/atom/movable/proc/user_buckle_mob]. + * Arguments: + * * target - Target mob to check against buckling to src. + * * user - The mob who is attempting to buckle the target to src. + * * check_loc - TRUE if target and src have to be on the same tile, FALSE if buckling is allowed from adjacent tiles + */ /atom/movable/proc/is_user_buckle_possible(mob/living/target, mob/user, check_loc = TRUE) // Standard adjacency and other checks. if(!Adjacent(user) || !Adjacent(target) || !isturf(user.loc) || user.incapacitated() || target.anchored) @@ -225,17 +225,17 @@ return TRUE /** - * Handles a mob buckling another mob to src and sends a visible_message - * - * Basically exists to do some checks on the user and then call buckle_mob where the real buckling happens. - * First, checks if the buckle is valid and cancels if it isn't. - * Second, checks if src is on a different turf from the target; if it is, does a do_after and another check for sanity - * Finally, calls [/atom/movable/proc/buckle_mob] to buckle the target to src then gives chat feedback - * Arguments: - * * M - The target mob/living being buckled to src - * * user - The other mob that's buckling M to src - * * check_loc - TRUE if src and M have to be on the same turf, false otherwise - */ + * Handles a mob buckling another mob to src and sends a visible_message + * + * Basically exists to do some checks on the user and then call buckle_mob where the real buckling happens. + * First, checks if the buckle is valid and cancels if it isn't. + * Second, checks if src is on a different turf from the target; if it is, does a do_after and another check for sanity + * Finally, calls [/atom/movable/proc/buckle_mob] to buckle the target to src then gives chat feedback + * Arguments: + * * M - The target mob/living being buckled to src + * * user - The other mob that's buckling M to src + * * check_loc - TRUE if src and M have to be on the same turf, false otherwise + */ /atom/movable/proc/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE) // Is buckling even possible? Do a full suite of checks. if(!is_user_buckle_possible(M, user, check_loc)) @@ -268,14 +268,14 @@ "[user] buckles you to [src]!",\ "You hear metal clanking.") /** - * Handles a user unbuckling a mob from src and sends a visible_message - * - * Basically just calls unbuckle_mob, sets fingerprint, and sends a visible_message - * about the user unbuckling the mob - * Arguments: - * buckled_mob - The mob/living to unbuckle - * user - The mob unbuckling buckled_mob - */ + * Handles a user unbuckling a mob from src and sends a visible_message + * + * Basically just calls unbuckle_mob, sets fingerprint, and sends a visible_message + * about the user unbuckling the mob + * Arguments: + * buckled_mob - The mob/living to unbuckle + * user - The mob unbuckling buckled_mob + */ /atom/movable/proc/user_unbuckle_mob(mob/living/buckled_mob, mob/user) var/mob/living/M = unbuckle_mob(buckled_mob) if(M) diff --git a/code/game/objects/effects/effect_system/effects_water.dm b/code/game/objects/effects/effect_system/effects_water.dm index 6d71fe9c2c7..3169613c90d 100644 --- a/code/game/objects/effects/effect_system/effects_water.dm +++ b/code/game/objects/effects/effect_system/effects_water.dm @@ -34,10 +34,10 @@ // will always spawn at the items location, even if it's moved. /* Example: - var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() -- creates new system -steam.set_up(5, 0, mob.loc) -- sets up variables -OPTIONAL: steam.attach(mob) -steam.start() -- spawns the effect + *var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() -- creates new system + *steam.set_up(5, 0, mob.loc) -- sets up variables + *OPTIONAL: steam.attach(mob) + *steam.start() -- spawns the effect */ ///////////////////////////////////////////// /obj/effect/particle_effect/steam diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 784aa6d932e..72db7badaab 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -49,13 +49,13 @@ . += "This is a [generation]\th generation [name]!" /** - * Creates a new glowshroom structure. - * - * Arguments: - * * newseed - Seed of the shroom - * * mutate_stats - If the plant needs to mutate their stats - * * spread - If the plant is a result of spreading, reduce its stats - */ + * Creates a new glowshroom structure. + * + * Arguments: + * * newseed - Seed of the shroom + * * mutate_stats - If the plant needs to mutate their stats + * * spread - If the plant is a result of spreading, reduce its stats + */ /obj/structure/glowshroom/Initialize(mapload, obj/item/seeds/newseed, mutate_stats, spread) . = ..() @@ -100,8 +100,8 @@ addtimer(CALLBACK(src, .proc/Decay), delay_decay, TIMER_UNIQUE|TIMER_NO_HASH_WAIT) /** - * Causes glowshroom spreading across the floor/walls. - */ + * Causes glowshroom spreading across the floor/walls. + */ /obj/structure/glowshroom/proc/Spread() @@ -134,7 +134,7 @@ var/chance_stats = ((myseed.potency + myseed.endurance * 2) * 0.2) // Chance of generating a new mushroom based on stats var/chance_generation = (100 / (generation * generation)) // This formula gives you diminishing returns based on generation. 100% with 1st gen, decreasing to 25%, 11%, 6, 4, 2... - // Whatever is the higher chance we use it (this is really stupid as the diminishing returns are effectively pointless???) + // Whatever is the higher chance we use it (this is really stupid as the diminishing returns are effectively pointless???) if(prob(max(chance_stats, chance_generation))) var/spreadsIntoAdjacent = prob(spreadIntoAdjacentChance) var/turf/newLoc = null @@ -213,12 +213,12 @@ return 1 /** - * Causes the glowshroom to decay by decreasing its endurance. - * - * Arguments: - * * spread - Boolean to indicate if the decay is due to spreading or natural decay. - * * amount - Amount of endurance to be reduced due to spread decay. - */ + * Causes the glowshroom to decay by decreasing its endurance. + * + * Arguments: + * * spread - Boolean to indicate if the decay is due to spreading or natural decay. + * * amount - Amount of endurance to be reduced due to spread decay. + */ /obj/structure/glowshroom/proc/Decay(spread, amount) if (spread) // Decay due to spread myseed.endurance -= amount diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 932215a51d4..7ba1fa0ef72 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -109,12 +109,12 @@ make_spider(user) /** - * Makes a ghost into a spider based on the type of egg cluster. - * - * Allows a ghost to get a prompt to use the egg cluster to become a spider. - * Arguments: - * * user - The ghost attempting to become a spider. - */ + * Makes a ghost into a spider based on the type of egg cluster. + * + * Allows a ghost to get a prompt to use the egg cluster to become a spider. + * Arguments: + * * user - The ghost attempting to become a spider. + */ /obj/structure/spider/eggcluster/proc/make_spider(mob/user) var/list/spider_list = list() var/list/display_spiders = list() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index d2908dfdb9c..02f4400b71b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -251,11 +251,11 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb AddComponent(/datum/component/butchering, 80 * toolspeed) /**Makes cool stuff happen when you suicide with an item - * - *Outputs a creative message and then return the damagetype done - * Arguments: - * * user: The mob that is suiciding - */ + * + *Outputs a creative message and then return the damagetype done + * Arguments: + * * user: The mob that is suiciding + */ /obj/item/proc/suicide_act(mob/user) return @@ -477,13 +477,13 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return /** - *called after an item is placed in an equipment slot + *called after an item is placed in an equipment slot - * Arguments: - * * user is mob that equipped it - * * slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots - * * Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it - */ + * Arguments: + * * user is mob that equipped it + * * slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots + * * Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it + */ /obj/item/proc/equipped(mob/user, slot, initial = FALSE) SHOULD_CALL_PARENT(TRUE) SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot) @@ -506,15 +506,15 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return TRUE /** - *the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. - *if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. - *If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. - * Arguments: - * * disable_warning to TRUE if you wish it to not give you text outputs. - * * slot is the slot we are trying to equip to - * * equipper is the mob trying to equip the item - * * bypass_equip_delay_self for whether we want to bypass the equip delay - */ + *the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. + *if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. + *If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. + * Arguments: + * * disable_warning to TRUE if you wish it to not give you text outputs. + * * slot is the slot we are trying to equip to + * * equipper is the mob trying to equip the item + * * bypass_equip_delay_self for whether we want to bypass the equip delay + */ /obj/item/proc/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) if(!M) return FALSE @@ -538,10 +538,10 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb usr.UnarmedAttack(src) /** - *This proc is executed when someone clicks the on-screen UI button. - *The default action is attack_self(). - *Checks before we get to here are: mob is alive, mob is not restrained, stunned, asleep, resting, laying, item is on the mob. - */ + *This proc is executed when someone clicks the on-screen UI button. + *The default action is attack_self(). + *Checks before we get to here are: mob is alive, mob is not restrained, stunned, asleep, resting, laying, item is on the mob. + */ /obj/item/proc/ui_action_click(mob/user, actiontype) attack_self(user) @@ -959,16 +959,16 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return src /** - * 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. - * - * Really, this is used mostly with projectiles with shrapnel payloads, from [/datum/element/embed/proc/checkEmbedProjectile], and called on said shrapnel. Mostly acts as an intermediate between different embed elements. - * - * Returns TRUE if it embedded successfully, nothing otherwise - * - * Arguments: - * * target- Either a body part or a carbon. What are we hitting? - * * forced- Do we want this to go through 100%? - */ + * 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. + * + * Really, this is used mostly with projectiles with shrapnel payloads, from [/datum/element/embed/proc/checkEmbedProjectile], and called on said shrapnel. Mostly acts as an intermediate between different embed elements. + * + * Returns TRUE if it embedded successfully, nothing otherwise + * + * Arguments: + * * target- Either a body part or a carbon. What are we hitting? + * * forced- Do we want this to go through 100%? + */ /obj/item/proc/tryEmbed(atom/target, forced=FALSE, silent=FALSE) if(!isbodypart(target) && !iscarbon(target)) return NONE diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm index 318f8827487..7b40b96292c 100644 --- a/code/game/objects/items/RPD.dm +++ b/code/game/objects/items/RPD.dm @@ -263,13 +263,13 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list( return ..() /** - * Installs an upgrade into the RPD - * - * Installs an upgrade into the RPD checking if it is already installed - * Arguments: - * * rpd_up - RPD upgrade - * * user - mob that use upgrade on RPD - */ + * Installs an upgrade into the RPD + * + * Installs an upgrade into the RPD checking if it is already installed + * Arguments: + * * rpd_up - RPD upgrade + * * user - mob that use upgrade on RPD + */ /obj/item/pipe_dispenser/proc/install_upgrade(obj/item/rpd_upgrade/rpd_up, mob/user) if(rpd_up.upgrade_flags& upgrade_flags) to_chat(user, "[src] has already installed this upgrade!") diff --git a/code/game/objects/items/broom.dm b/code/game/objects/items/broom.dm index 2260cf8a611..ccc6271c537 100644 --- a/code/game/objects/items/broom.dm +++ b/code/game/objects/items/broom.dm @@ -30,12 +30,12 @@ icon_state = "broom0" /** - * Handles registering the sweep proc when the broom is wielded - * - * Arguments: - * * source - The source of the on_wield proc call - * * user - The user which is wielding the broom - */ + * Handles registering the sweep proc when the broom is wielded + * + * Arguments: + * * source - The source of the on_wield proc call + * * user - The user which is wielding the broom + */ /obj/item/pushbroom/proc/on_wield(obj/item/source, mob/user) SIGNAL_HANDLER @@ -43,12 +43,12 @@ RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/sweep) /** - * Handles unregistering the sweep proc when the broom is unwielded - * - * Arguments: - * * source - The source of the on_unwield proc call - * * user - The user which is unwielding the broom - */ + * Handles unregistering the sweep proc when the broom is unwielded + * + * Arguments: + * * source - The source of the on_unwield proc call + * * user - The user which is unwielding the broom + */ /obj/item/pushbroom/proc/on_unwield(obj/item/source, mob/user) SIGNAL_HANDLER @@ -61,13 +61,13 @@ sweep(user, A, FALSE) /** - * Attempts to push up to BROOM_PUSH_LIMIT atoms from a given location the user's faced direction - * - * Arguments: - * * user - The user of the pushbroom - * * A - The atom which is located at the location to push atoms from - * * moving - Boolean argument declaring if the sweep is from generated from movement or not - */ + * Attempts to push up to BROOM_PUSH_LIMIT atoms from a given location the user's faced direction + * + * Arguments: + * * user - The user of the pushbroom + * * A - The atom which is located at the location to push atoms from + * * moving - Boolean argument declaring if the sweep is from generated from movement or not + */ /obj/item/pushbroom/proc/sweep(mob/user, atom/A, moving = TRUE) SIGNAL_HANDLER @@ -95,12 +95,12 @@ playsound(loc, 'sound/weapons/thudswoosh.ogg', 30, TRUE, -1) /** - * Attempts to insert the push broom into a janicart - * - * Arguments: - * * user - The user of the push broom - * * J - The janicart to insert into - */ + * Attempts to insert the push broom into a janicart + * + * Arguments: + * * user - The user of the push broom + * * J - The janicart to insert into + */ /obj/item/pushbroom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) //bless you whoever fixes this copypasta J.put_in_cart(src, user) J.mybroom=src diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 966d8c0c6a4..65e6f6be761 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -94,12 +94,12 @@ return BULLET_ACT_HIT /** - * change_appearance: Changes a skin of the cardboard cutout based on a user's choice - * - * Arguments: - * * crayon The crayon used to change and recolor the cardboard cutout - * * user The mob choosing a skin of the cardboard cutout - */ + * change_appearance: Changes a skin of the cardboard cutout based on a user's choice + * + * Arguments: + * * crayon The crayon used to change and recolor the cardboard cutout + * * user The mob choosing a skin of the cardboard cutout + */ /obj/item/cardboard_cutout/proc/change_appearance(obj/item/toy/crayon/crayon, mob/living/user) var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, .proc/check_menu, user, crayon), radius = 36, require_near = TRUE) if(!new_appearance) @@ -201,12 +201,12 @@ return TRUE /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - * * crayon The crayon used to interact with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + * * crayon The crayon used to interact with a menu + */ /obj/item/cardboard_cutout/proc/check_menu(mob/living/user, obj/item/toy/crayon/crayon) if(!istype(user)) return FALSE diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 91d34386486..2bc8e485d47 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -336,10 +336,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM desc = "A Carp Classic brand cigarette. A small label on its side indicates that it does NOT contain carpotoxin." /obj/item/clothing/mask/cigarette/carp/Initialize() - . = ..() - if(!prob(5)) - return - reagents?.add_reagent(/datum/reagent/toxin/carpotoxin , 3) // They lied + . = ..() + if(!prob(5)) + return + reagents?.add_reagent(/datum/reagent/toxin/carpotoxin , 3) // They lied /obj/item/clothing/mask/cigarette/syndicate desc = "An unknown brand cigarette." diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm index d065a16391d..84f5aef3d82 100644 --- a/code/game/objects/items/circuitboards/circuitboard.dm +++ b/code/game/objects/items/circuitboards/circuitboard.dm @@ -41,11 +41,11 @@ return /** - * Used to allow the circuitboard to configure a machine in some way, shape or form. - * - * Arguments: - * * machine - The machine to attempt to configure. - */ + * Used to allow the circuitboard to configure a machine in some way, shape or form. + * + * Arguments: + * * machine - The machine to attempt to configure. + */ /obj/item/circuitboard/proc/configure_machine(obj/machinery/machine) return diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 3196d470ef4..ba7bc8e384f 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -98,12 +98,12 @@ return (TOXLOSS) /** - * Decrease the number of uses the bar of soap has. - * - * The higher the cleaning skill, the less likely the soap will lose a use. - * Arguments - * * user - The mob that is using the soap to clean. - */ + * Decrease the number of uses the bar of soap has. + * + * The higher the cleaning skill, the less likely the soap will lose a use. + * Arguments + * * user - The mob that is using the soap to clean. + */ /obj/item/soap/proc/decreaseUses(mob/user) var/skillcheck = 1 if(user?.mind) diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index da9b2cad9ea..1ce3e4e492f 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -60,16 +60,16 @@ return if(H == user) user.visible_message("[user] does [user.p_their()] lips with \the [src].", \ - "You take a moment to apply \the [src]. Perfect!") + "You take a moment to apply \the [src]. Perfect!") H.lip_style = "lipstick" H.lip_color = colour H.update_body() else user.visible_message("[user] begins to do [H]'s lips with \the [src].", \ - "You begin to apply \the [src] on [H]'s lips...") + "You begin to apply \the [src] on [H]'s lips...") if(do_after(user, 20, target = H)) user.visible_message("[user] does [H]'s lips with \the [src].", \ - "You apply \the [src] on [H]'s lips.") + "You apply \the [src] on [H]'s lips.") H.lip_style = "lipstick" H.lip_color = colour H.update_body() @@ -90,10 +90,10 @@ H.update_body() else user.visible_message("[user] begins to wipe [H]'s lipstick off with \the [src].", \ - "You begin to wipe off [H]'s lipstick...") + "You begin to wipe off [H]'s lipstick...") if(do_after(user, 10, target = H)) user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \ - "You wipe off [H]'s lipstick.") + "You wipe off [H]'s lipstick.") H.lip_style = null H.update_body() else @@ -164,17 +164,17 @@ if(H == user) //shaving yourself user.visible_message("[user] starts to shave [user.p_their()] facial hair with [src].", \ - "You take a moment to shave your facial hair with [src]...") + "You take a moment to shave your facial hair with [src]...") if(do_after(user, 50, target = H)) user.visible_message("[user] shaves [user.p_their()] facial hair clean with [src].", \ - "You finish shaving with [src]. Fast and clean!") + "You finish shaving with [src]. Fast and clean!") shave(H, location) else user.visible_message("[user] tries to shave [H]'s facial hair with [src].", \ - "You start shaving [H]'s facial hair...") + "You start shaving [H]'s facial hair...") if(do_after(user, 50, target = H)) user.visible_message("[user] shaves off [H]'s facial hair with [src].", \ - "You shave [H]'s facial hair clean off.") + "You shave [H]'s facial hair clean off.") shave(H, location) else if(location == BODY_ZONE_HEAD) @@ -211,19 +211,19 @@ if(H == user) //shaving yourself user.visible_message("[user] starts to shave [user.p_their()] head with [src].", \ - "You start to shave your head with [src]...") + "You start to shave your head with [src]...") if(do_after(user, 5, target = H)) user.visible_message("[user] shaves [user.p_their()] head with [src].", \ - "You finish shaving with [src].") + "You finish shaving with [src].") shave(H, location) else var/turf/H_loc = H.loc user.visible_message("[user] tries to shave [H]'s head with [src]!", \ - "You start shaving [H]'s head...") + "You start shaving [H]'s head...") if(do_after(user, 50, target = H)) if(H_loc == H.loc) user.visible_message("[user] shaves [H]'s head bald with [src]!", \ - "You shave [H]'s head bald.") + "You shave [H]'s head bald.") shave(H, location) else ..() diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index fb545776507..efde7ae3482 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -89,7 +89,7 @@ M.visible_message("[M] directs [src] to [M.p_their()] eyes.", "You wave the light in front of your eyes.") else user.visible_message("[user] directs [src] to [M]'s eyes.", \ - "You direct [src] to [M]'s eyes.") + "You direct [src] to [M]'s eyes.") if(M.stat == DEAD || (M.is_blind()) || !M.flash_act(visual = 1)) //mob is dead or fully blind to_chat(user, "[M]'s pupils don't react to the light!") else if(M.dna && M.dna.check_mutation(XRAY)) //mob has X-ray vision @@ -154,7 +154,7 @@ else user.visible_message("[user] directs [src] to [M]'s mouth.",\ - "You direct [src] to [M]'s mouth.") + "You direct [src] to [M]'s mouth.") if(organ_count) to_chat(user, "Inside [their] mouth [organ_count > 1 ? "are" : "is"] [organ_list].") else diff --git a/code/game/objects/items/devices/ocd.dm b/code/game/objects/items/devices/ocd.dm index 50032810abd..784bffc465c 100644 --- a/code/game/objects/items/devices/ocd.dm +++ b/code/game/objects/items/devices/ocd.dm @@ -5,7 +5,7 @@ icon_state = "gangtool-white" /obj/item/devices/ocd_device/attack_self(mob/user) - var/datum/round_event/bureaucratic_error/event = new() - event.start() - deadchat_broadcast(" An OCD has been activated! ") - qdel(src) + var/datum/round_event/bureaucratic_error/event = new() + event.start() + deadchat_broadcast(" An OCD has been activated! ") + qdel(src) diff --git a/code/game/objects/items/devices/portable_chem_mixer.dm b/code/game/objects/items/devices/portable_chem_mixer.dm index 9a950af14cf..712bc201e3d 100644 --- a/code/game/objects/items/devices/portable_chem_mixer.dm +++ b/code/game/objects/items/devices/portable_chem_mixer.dm @@ -58,10 +58,10 @@ return ..() /** - * Updates the contents of the portable chemical mixer - * - * A list of dispensable reagents is created by iterating through each source beaker in the portable chemical beaker and reading its contents - */ + * Updates the contents of the portable chemical mixer + * + * A list of dispensable reagents is created by iterating through each source beaker in the portable chemical beaker and reading its contents + */ /obj/item/storage/portable_chem_mixer/proc/update_contents() dispensable_reagents.Cut() @@ -94,13 +94,13 @@ update_icon() /** - * Replaces the beaker of the portable chemical mixer with another beaker, or simply adds the new beaker if none is in currently - * - * Checks if a valid user and a valid new beaker exist and attempts to replace the current beaker in the portable chemical mixer with the one in hand. Simply places the new beaker in if no beaker is currently loaded - * Arguments: - * * mob/living/user - The user who is trying to exchange beakers - * * obj/item/reagent_containers/new_beaker - The new beaker that the user wants to put into the device - */ + * Replaces the beaker of the portable chemical mixer with another beaker, or simply adds the new beaker if none is in currently + * + * Checks if a valid user and a valid new beaker exist and attempts to replace the current beaker in the portable chemical mixer with the one in hand. Simply places the new beaker in if no beaker is currently loaded + * Arguments: + * * mob/living/user - The user who is trying to exchange beakers + * * obj/item/reagent_containers/new_beaker - The new beaker that the user wants to put into the device + */ /obj/item/storage/portable_chem_mixer/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) if(!user) return FALSE diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index fff479bc9bb..9c2786337e6 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -56,10 +56,10 @@ return ..() /** - * Override attack_tk_grab instead of attack_tk because we actually want attack_tk's - * functionality. What we DON'T want is attack_tk_grab attempting to pick up the - * intercom as if it was an ordinary item. - */ + * Override attack_tk_grab instead of attack_tk because we actually want attack_tk's + * functionality. What we DON'T want is attack_tk_grab attempting to pick up the + * intercom as if it was an ordinary item. + */ /obj/item/radio/intercom/attack_tk_grab(mob/user) interact(user) return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 2274fea61a6..96fe5883c05 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -121,9 +121,9 @@ GENE SCANNER user.visible_message("[user] analyzes the floor's vitals!", \ "You stupidly try to analyze the floor's vitals!") to_chat(user, "Analyzing results for The floor:\n\tOverall status: Healthy\ - \nKey: Suffocation/Toxin/Burn/Brute\ - \n\tDamage specifics: 0-0-0-0\ - \nBody temperature: ???") + \nKey: Suffocation/Toxin/Burn/Brute\ + \n\tDamage specifics: 0-0-0-0\ + \nBody temperature: ???") return if(ispodperson(M)&& !advanced) @@ -586,7 +586,7 @@ GENE SCANNER var/total_moles = environment.total_moles() render_list += "Results:\ - \nPressure: [round(pressure, 0.01)] kPa\n" + \nPressure: [round(pressure, 0.01)] kPa\n" if(total_moles) var/list/env_gases = environment.gases @@ -698,8 +698,8 @@ GENE SCANNER if(total_moles > 0) render_list += "Moles: [round(total_moles, 0.01)] mol\ - \nVolume: [volume] L\ - \nPressure: [round(pressure,0.01)] kPa" + \nVolume: [volume] L\ + \nPressure: [round(pressure,0.01)] kPa" var/list/cached_gases = air_contents.gases for(var/id in cached_gases) @@ -711,7 +711,7 @@ GENE SCANNER if(cached_scan_results && cached_scan_results["fusion"]) //notify the user if a fusion reaction was detected render_list += "Large amounts of free neutrons detected in the air indicate that a fusion reaction took place.\ - \nInstability of the last fusion reaction: [round(cached_scan_results["fusion"], 0.01)]." + \nInstability of the last fusion reaction: [round(cached_scan_results["fusion"], 0.01)]." to_chat(user, jointext(render_list, "\n")) // we let the join apply newlines so we do need handholding return TRUE diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 92a92b08479..3f80d8ce224 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -276,12 +276,12 @@ effective or pretty fucking useless. new /obj/item/wirecutters(src) /obj/item/storage/toolbox/emergency/turret/attackby(obj/item/I, mob/living/user, params) - if(I.tool_behaviour == TOOL_WRENCH && user.a_intent == INTENT_HARM) - user.visible_message("[user] bashes [src] with [I]!", \ - "You bash [src] with [I]!", null, COMBAT_MESSAGE_RANGE) - playsound(src, "sound/items/drill_use.ogg", 80, TRUE, -1) - var/obj/machinery/porta_turret/syndicate/pod/toolbox/turret = new(get_turf(loc)) - turret.faction = list("[REF(user)]") - qdel(src) + if(I.tool_behaviour == TOOL_WRENCH && user.a_intent == INTENT_HARM) + user.visible_message("[user] bashes [src] with [I]!", \ + "You bash [src] with [I]!", null, COMBAT_MESSAGE_RANGE) + playsound(src, "sound/items/drill_use.ogg", 80, TRUE, -1) + var/obj/machinery/porta_turret/syndicate/pod/toolbox/turret = new(get_turf(loc)) + turret.faction = list("[REF(user)]") + qdel(src) - ..() + ..() diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index a5664c1ef8e..f3846c2e4b5 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -248,7 +248,7 @@ update_icon() /** - * Returns if this is ready to be detonated. Checks if both tanks are in place. - */ + * Returns if this is ready to be detonated. Checks if both tanks are in place. + */ /obj/item/transfer_valve/proc/ready() return tank_one && tank_two diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index 4b599292f09..3bb2835cab6 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -209,8 +209,8 @@ result = special_faces[result] if(user != null) //Dice was rolled in someone's hand user.visible_message("[user] throws [src]. It lands on [result]. [comment]", \ - "You throw [src]. It lands on [result]. [comment]", \ - "You hear [src] rolling, it sounds like a [fake_result].") + "You throw [src]. It lands on [result]. [comment]", \ + "You hear [src] rolling, it sounds like a [fake_result].") else if(!src.throwing) //Dice was thrown and is coming to rest visible_message("[src] rolls to a stop, landing on [result]. [comment]") diff --git a/code/game/objects/items/food/meat.dm b/code/game/objects/items/food/meat.dm index fe1d66892d4..4625903b40b 100644 --- a/code/game/objects/items/food/meat.dm +++ b/code/game/objects/items/food/meat.dm @@ -728,7 +728,7 @@ name = "[source_item.name] steak" /obj/item/food/meat/steak/plain - foodtypes = MEAT + foodtypes = MEAT /obj/item/food/meat/steak/plain/human tastes = list("tender meat" = 1) @@ -830,7 +830,7 @@ meat_type = original_atom.name /obj/item/food/meat/rawcutlet/plain - foodtypes = MEAT + foodtypes = MEAT /obj/item/food/meat/rawcutlet/plain diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index 9fd7072bc7c..6d3417697d8 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -90,9 +90,9 @@ log_bomber(user, "has primed a", src, "for detonation") /** - * arm_grenade (formerly preprime) refers to when a grenade with a standard time fuze is activated, making it go beepbeepbeep and then detonate a few seconds later. - * Grenades with other triggers like remote igniters probably skip this step and go straight to [/obj/item/grenade/proc/detonate] - */ + * arm_grenade (formerly preprime) refers to when a grenade with a standard time fuze is activated, making it go beepbeepbeep and then detonate a few seconds later. + * Grenades with other triggers like remote igniters probably skip this step and go straight to [/obj/item/grenade/proc/detonate] + */ /obj/item/grenade/proc/arm_grenade(mob/user, delayoverride, msg = TRUE, volume = 60) var/turf/T = get_turf(src) log_grenade(user, T) //Inbuilt admin procs already handle null users @@ -110,11 +110,11 @@ addtimer(CALLBACK(src, .proc/detonate), isnull(delayoverride)? det_time : delayoverride) /** - * detonate (formerly prime) refers to when the grenade actually delivers its payload (whether or not a boom/bang/detonation is involved) - * - * Arguments: - * * lanced_by- If this grenade was detonated by an elance, we need to pass that along with the COMSIG_GRENADE_DETONATE signal for pellet clouds - */ + * detonate (formerly prime) refers to when the grenade actually delivers its payload (whether or not a boom/bang/detonation is involved) + * + * Arguments: + * * lanced_by- If this grenade was detonated by an elance, we need to pass that along with the COMSIG_GRENADE_DETONATE signal for pellet clouds + */ /obj/item/grenade/proc/detonate(mob/living/lanced_by) if(shrapnel_type && shrapnel_radius && !shrapnel_initialized) // add a second check for adding the component in case whatever triggered the grenade went straight to prime (badminnery for example) shrapnel_initialized = TRUE diff --git a/code/game/objects/items/grenades/smokebomb.dm b/code/game/objects/items/grenades/smokebomb.dm index 492d20f0261..503dbcb90f2 100644 --- a/code/game/objects/items/grenades/smokebomb.dm +++ b/code/game/objects/items/grenades/smokebomb.dm @@ -1,8 +1,8 @@ /** - *This is smoke bomb, mezum koman. It is a grenade subtype. All craftmanship is of the highest quality. - *It menaces with spikes of iron. On it is a depiction of an assistant. - *The assistant is bleeding. The assistant has a painful expression. The assistant is dead. - */ + *This is smoke bomb, mezum koman. It is a grenade subtype. All craftmanship is of the highest quality. + *It menaces with spikes of iron. On it is a depiction of an assistant. + *The assistant is bleeding. The assistant has a painful expression. The assistant is dead. + */ /obj/item/grenade/smokebomb name = "smoke grenade" desc = "Real bruh moment if you ever see this. Probably tell a c*der or something." diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 9c60df79fb0..92b79b805fb 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -337,11 +337,11 @@ ensnare(hit_atom) /** - * Attempts to legcuff someone with the bola - * - * Arguments: - * * C - the carbon that we will try to ensnare - */ + * Attempts to legcuff someone with the bola + * + * Arguments: + * * C - the carbon that we will try to ensnare + */ /obj/item/restraints/legcuffs/bola/proc/ensnare(mob/living/carbon/C) if(!C.legcuffed && C.num_legs >= 2) visible_message("\The [src] ensnares [C]!") diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 240caff8182..6a8bb50256e 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -219,11 +219,11 @@ reskin_holy_weapon(user) /** - * reskin_holy_weapon: Shows a user a list of all available nullrod reskins and based on his choice replaces the nullrod with the reskinned version - * - * Arguments: - * * M The mob choosing a nullrod reskin - */ + * reskin_holy_weapon: Shows a user a list of all available nullrod reskins and based on his choice replaces the nullrod with the reskinned version + * + * Arguments: + * * M The mob choosing a nullrod reskin + */ /obj/item/nullrod/proc/reskin_holy_weapon(mob/M) if(GLOB.holy_weapon_type) return @@ -252,11 +252,11 @@ M.put_in_hands(holy_weapon) /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ /obj/item/nullrod/proc/check_menu(mob/user) if(!istype(user)) return FALSE diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index a0aa7e0bd98..a2ef95a7dd9 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -264,7 +264,7 @@ function pageloaded(myframe) { document.getElementById("loading").style.display = "none"; myframe.style.display = "inline"; - } + }

You start skimming through the manual...

diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 95faced3ed6..89dd43a97e4 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -175,8 +175,8 @@ return new /obj/item/stack/sheet/cloth(user.drop_location()) user.visible_message("[user] cuts [src] into pieces of cloth with [I].", \ - "You cut [src] into pieces of cloth with [I].", \ - "You hear cutting.") + "You cut [src] into pieces of cloth with [I].", \ + "You hear cutting.") use(2) else return ..() diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index d01ab1e56c1..e57cae20fad 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -60,8 +60,8 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ if(W.use_tool(src, user, 0, volume=40)) var/obj/item/stack/sheet/metal/new_item = new(usr.loc) user.visible_message("[user.name] shaped [src] into metal with [W].", \ - "You shape [src] into metal with [W].", \ - "You hear welding.") + "You shape [src] into metal with [W].", \ + "You hear welding.") var/obj/item/stack/rods/R = src src = null var/replace = (user.get_inactive_held_item()==R) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 23cc41191ca..ab5d3098d24 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -210,9 +210,8 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \ . = ..() . += GLOB.sinew_recipes -/* - * Plates - */ + +/*Plates*/ /obj/item/stack/sheet/animalhide/goliath_hide name = "goliath hide plates" desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index aeeaecefb18..de9ed660059 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -75,17 +75,17 @@ update_icon() /** Sets the amount of materials per unit for this stack. - * - * Arguments: - * - [mats][/list]: The value to set the mats per unit to. - * - multiplier: The amount to multiply the mats per unit by. Defaults to 1. - */ + * + * Arguments: + * - [mats][/list]: The value to set the mats per unit to. + * - multiplier: The amount to multiply the mats per unit by. Defaults to 1. + */ /obj/item/stack/proc/set_mats_per_unit(list/mats, multiplier=1) mats_per_unit = SSmaterials.FindOrCreateMaterialCombo(mats, multiplier) update_custom_materials() /** Updates the custom materials list of this stack. - */ + */ /obj/item/stack/proc/update_custom_materials() set_custom_materials(mats_per_unit, amount) @@ -147,11 +147,11 @@ . = (amount) /** - * Builds all recipes in a given recipe list and returns an association list containing them - * - * Arguments: - * * recipe_to_iterate - The list of recipes we are using to build recipes - */ + * Builds all recipes in a given recipe list and returns an association list containing them + * + * Arguments: + * * recipe_to_iterate - The list of recipes we are using to build recipes + */ /obj/item/stack/proc/recursively_build_recipes(list/recipe_to_iterate) var/list/L = list() for(var/recipe in recipe_to_iterate) @@ -164,11 +164,11 @@ return L /** - * Returns a list of properties of a given recipe - * - * Arguments: - * * R - The stack recipe we are using to get a list of properties - */ + * Returns a list of properties of a given recipe + * + * Arguments: + * * R - The stack recipe we are using to get a list of properties + */ /obj/item/stack/proc/build_recipe(datum/stack_recipe/R) return list( "res_amount" = R.res_amount, @@ -178,12 +178,12 @@ ) /** - * Checks if the recipe is valid to be used - * - * Arguments: - * * R - The stack recipe we are checking if it is valid - * * recipe_list - The list of recipes we are using to check the given recipe - */ + * Checks if the recipe is valid to be used + * + * Arguments: + * * R - The stack recipe we are checking if it is valid + * * recipe_list - The list of recipes we are using to check the given recipe + */ /obj/item/stack/proc/is_valid_recipe(datum/stack_recipe/R, list/recipe_list) for(var/S in recipe_list) if(S == R) @@ -381,10 +381,10 @@ return FALSE /** Adds some number of units to this stack. - * - * Arguments: - * - _amount: The number of units to add to this stack. - */ + * + * Arguments: + * - _amount: The number of units to add to this stack. + */ /obj/item/stack/proc/add(_amount) if (is_cyborg) source.add_charge(_amount * cost) @@ -396,10 +396,10 @@ update_weight() /** Checks whether this stack can merge itself into another stack. - * - * Arguments: - * - [check][/obj/item/stack]: The stack to check for mergeability. - */ + * + * Arguments: + * - [check][/obj/item/stack]: The stack to check for mergeability. + */ /obj/item/stack/proc/can_merge(obj/item/stack/check) if(!istype(check, merge_type)) return FALSE @@ -458,11 +458,11 @@ to_chat(user, "You take [stackmaterial] sheets out of the stack.") /** Splits the stack into two stacks. - * - * Arguments: - * - [user][/mob]: The mob splitting the stack. - * - amount: The number of units to split from this stack. - */ + * + * Arguments: + * - [user][/mob]: The mob splitting the stack. + * - amount: The number of units to split from this stack. + */ /obj/item/stack/proc/split_stack(mob/user, amount) if(!use(amount, TRUE, FALSE)) return null diff --git a/code/game/objects/items/stacks/tiles/tile_reskinning.dm b/code/game/objects/items/stacks/tiles/tile_reskinning.dm index bc9331612c6..47270a2a637 100644 --- a/code/game/objects/items/stacks/tiles/tile_reskinning.dm +++ b/code/game/objects/items/stacks/tiles/tile_reskinning.dm @@ -11,8 +11,8 @@ GLOBAL_LIST_EMPTY(tile_reskin_lists) /** - * Caches associative lists with type path index keys and images of said type's initial icon state (typepath -> image). - */ + * Caches associative lists with type path index keys and images of said type's initial icon state (typepath -> image). + */ /obj/item/stack/tile/proc/tile_reskin_list(list/values) var/string_id = values.Join("-") . = GLOB.tile_reskin_lists[string_id] diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index d96140090d8..2a0497d4315 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -70,8 +70,8 @@ if (mineralType == "metal") var/obj/item/stack/sheet/metal/new_item = new(user.loc) user.visible_message("[user.name] shaped [src] into metal with the welding tool.", \ - "You shaped [src] into metal with the welding tool.", \ - "You hear welding.") + "You shaped [src] into metal with the welding tool.", \ + "You hear welding.") var/obj/item/stack/rods/R = src src = null var/replace = (user.get_inactive_held_item()==R) @@ -83,8 +83,8 @@ var/sheet_type = text2path("/obj/item/stack/sheet/mineral/[mineralType]") var/obj/item/stack/sheet/mineral/new_item = new sheet_type(user.loc) user.visible_message("[user.name] shaped [src] into a sheet with the welding tool.", \ - "You shaped [src] into a sheet with the welding tool.", \ - "You hear welding.") + "You shaped [src] into a sheet with the welding tool.", \ + "You hear welding.") var/obj/item/stack/rods/R = src src = null var/replace = (user.get_inactive_held_item()==R) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 27fa8d21699..a021146bf14 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -89,11 +89,11 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning", SSblackbox.record_feedback("text", "religion_book", 1, "[choice]") /** - * Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with the menu - */ + * Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with the menu + */ /obj/item/storage/book/bible/proc/check_menu(mob/living/carbon/human/user) if(GLOB.bible_icon_state) return FALSE diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 3013d7a91a3..20fc6ffb142 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -446,8 +446,8 @@ var/donktype = /obj/item/food/donkpocket /obj/item/storage/box/donkpockets/PopulateContents() - for(var/i in 1 to 6) - new donktype(src) + for(var/i in 1 to 6) + new donktype(src) /obj/item/storage/box/donkpockets/ComponentInitialize() . = ..() @@ -945,12 +945,12 @@ return ..() /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - * * P The pen used to interact with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + * * P The pen used to interact with a menu + */ /obj/item/storage/box/papersack/proc/check_menu(mob/user, obj/item/pen/P) if(!istype(user)) return FALSE diff --git a/code/game/objects/items/tcg/tcg.dm b/code/game/objects/items/tcg/tcg.dm index f4821eae056..0fb782ddd40 100644 --- a/code/game/objects/items/tcg/tcg.dm +++ b/code/game/objects/items/tcg/tcg.dm @@ -15,9 +15,9 @@ GLOBAL_LIST_EMPTY(cached_cards) icon = DEFAULT_TCG_DMI_ICON icon_state = "runtime" w_class = WEIGHT_CLASS_TINY - //Unique ID, for use in lookups and storage, used to index the global datum list where the rest of the card's info is stored + ///Unique ID, for use in lookups and storage, used to index the global datum list where the rest of the card's info is stored var/id = "code" - //Used along with the id for lookup + ///Used along with the id for lookup var/series = "coderbus" ///Is the card flipped? var/flipped = FALSE @@ -137,14 +137,14 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices) animate(src, transform = ntransform, time = 2, easing = (EASE_IN|EASE_OUT)) /** - * Transforms the card's sprite to look like a small, paper card. Use when outside of inventory - */ + * Transforms the card's sprite to look like a small, paper card. Use when outside of inventory + */ /obj/item/tcgcard/proc/zoom_in() transform = matrix() /** - * Transforms the card's sprite to look like a large, detailed, illustrated paper card. Use when inside of inventory/storage. - */ + * Transforms the card's sprite to look like a large, detailed, illustrated paper card. Use when inside of inventory/storage. + */ /obj/item/tcgcard/proc/zoom_out() transform = matrix(0.3,0,0,0,0.3,0) @@ -161,9 +161,9 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices) icon_state = template.icon_state flipped = !flipped /** - * A stack item that's not actually a stack because ORDER MATTERS with a deck of cards! - * The "top" card of the deck will always be the bottom card in the stack for our purposes. - */ + * A stack item that's not actually a stack because ORDER MATTERS with a deck of cards! + * The "top" card of the deck will always be the bottom card in the stack for our purposes. + */ /obj/item/tcgcard_deck name = "Trading Card Pile" desc = "A stack of TCG cards." @@ -249,8 +249,8 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices) return ..() /** - * The user draws a single card. The deck is then handled based on how many cards are left. - */ + * The user draws a single card. The deck is then handled based on how many cards are left. + */ /obj/item/tcgcard_deck/proc/draw_card(mob/user) if(!contents.len) CRASH("A TCG deck was created with no cards inside of it.") @@ -267,10 +267,10 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices) qdel(src) /** - * The user shuffles the order of the deck, then closes any visability into the deck's storage to prevent cheesing. - * *User: The person doing the shuffling, used in visable message and closing UI. - * *Visible: Will anyone need to hear the visable message about the shuffling? - */ + * The user shuffles the order of the deck, then closes any visability into the deck's storage to prevent cheesing. + * *User: The person doing the shuffling, used in visable message and closing UI. + * *Visible: Will anyone need to hear the visable message about the shuffling? + */ /obj/item/tcgcard_deck/proc/shuffle_deck(mob/user, visable = TRUE) if(!contents) return @@ -282,8 +282,8 @@ GLOBAL_LIST_EMPTY(tcgcard_radial_choices) "You shuffle \the [src]!") /** - * The user flips the deck, turning it into a face up/down pile, and reverses the order of the cards from top to bottom. - */ + * The user flips the deck, turning it into a face up/down pile, and reverses the order of the cards from top to bottom. + */ /obj/item/tcgcard_deck/proc/flip_deck() flipped = !flipped var/list/temp_deck = contents.Copy() diff --git a/code/game/objects/items/toy_mechs.dm b/code/game/objects/items/toy_mechs.dm index 78c47279423..bf28081ba07 100644 --- a/code/game/objects/items/toy_mechs.dm +++ b/code/game/objects/items/toy_mechs.dm @@ -1,6 +1,6 @@ /** - * Mech prizes + MECHA COMBAT!! - */ + * Mech prizes + MECHA COMBAT!! + */ /// Mech battle special attack types. #define SPECIAL_ATTACK_HEAL 1 @@ -67,19 +67,19 @@ special_attack_type_message = "a mystery move, even I don't know." /** - * this proc combines "sleep" while also checking for if the battle should continue - * - * this goes through some of the checks - the toys need to be next to each other to fight! - * if it's player vs themself: They need to be able to "control" both mechs (either must be adjacent or using TK) - * if it's player vs player: Both players need to be able to "control" their mechs (either must be adjacent or using TK) - * if it's player vs mech (suicide): the mech needs to be in range of the player - * if all the checks are TRUE, it does the sleeps, and returns TRUE. Otherwise, it returns FALSE. - * Arguments: - * * delay - the amount of time the sleep at the end of the check will sleep for - * * attacker - the attacking toy in the battle. - * * attacker_controller - the controller of the attacking toy. there should ALWAYS be an attacker_controller - * * opponent - (optional) the defender controller in the battle, for PvP - */ + * this proc combines "sleep" while also checking for if the battle should continue + * + * this goes through some of the checks - the toys need to be next to each other to fight! + * if it's player vs themself: They need to be able to "control" both mechs (either must be adjacent or using TK) + * if it's player vs player: Both players need to be able to "control" their mechs (either must be adjacent or using TK) + * if it's player vs mech (suicide): the mech needs to be in range of the player + * if all the checks are TRUE, it does the sleeps, and returns TRUE. Otherwise, it returns FALSE. + * Arguments: + * * delay - the amount of time the sleep at the end of the check will sleep for + * * attacker - the attacking toy in the battle. + * * attacker_controller - the controller of the attacking toy. there should ALWAYS be an attacker_controller + * * opponent - (optional) the defender controller in the battle, for PvP + */ /obj/item/toy/prize/proc/combat_sleep(delay, obj/item/toy/prize/attacker, mob/living/carbon/attacker_controller, mob/living/carbon/opponent) if(!attacker_controller) return FALSE @@ -140,8 +140,8 @@ attack_self(user) /** - * If you attack a mech with a mech, initiate combat between them - */ + * If you attack a mech with a mech, initiate combat between them + */ /obj/item/toy/prize/attackby(obj/item/user_toy, mob/living/user) if(istype(user_toy, /obj/item/toy/prize)) var/obj/item/toy/prize/P = user_toy @@ -150,8 +150,8 @@ ..() /** - * Attack is called from the user's toy, aimed at target(another human), checking for target's toy. - */ + * Attack is called from the user's toy, aimed at target(another human), checking for target's toy. + */ /obj/item/toy/prize/attack(mob/living/carbon/human/target, mob/living/carbon/human/user) if(target == user) to_chat(user, "Target another toy mech if you want to start a battle with yourself.") @@ -185,8 +185,8 @@ ..() /** - * Overrides attack_tk - Sorry, you have to be face to face to initiate a battle, it's good sportsmanship - */ + * Overrides attack_tk - Sorry, you have to be face to face to initiate a battle, it's good sportsmanship + */ /obj/item/toy/prize/attack_tk(mob/user) if(timer < world.time) to_chat(user, "You telekinetically play with [src].") @@ -197,19 +197,19 @@ /** - * Resets the request for battle. - * - * For use in a timer, this proc resets the wants_to_battle variable after a short period. - * Arguments: - * * user - the user wanting to do battle - */ + * Resets the request for battle. + * + * For use in a timer, this proc resets the wants_to_battle variable after a short period. + * Arguments: + * * user - the user wanting to do battle + */ /obj/item/toy/prize/proc/withdraw_offer(mob/living/carbon/user) if(wants_to_battle) wants_to_battle = FALSE to_chat(user, "You get the feeling they don't want to battle.") /** - * Starts a battle, toy mech vs player. Player... doesn't win. - */ + * Starts a battle, toy mech vs player. Player... doesn't win. + */ /obj/item/toy/prize/suicide_act(mob/living/carbon/user) if(in_combat) to_chat(user, "[src] is in battle, let it finish first.") @@ -264,25 +264,25 @@ . += "This toy has [wins] wins, and [losses] losses." /** - * Override the say proc if they're mute - */ + * Override the say proc if they're mute + */ /obj/item/toy/prize/say() if(!quiet) . = ..() /** - * The 'master' proc of the mech battle. Processes the entire battle's events and makes sure it start and finishes correctly. - * - * src is the defending toy, and the battle proc is called on it to begin the battle. - * After going through a few checks at the beginning to ensure the battle can start properly, the battle begins a loop that lasts - * until either toy has no more health. During this loop, it also ensures the mechs stay in combat range of each other. - * It will then randomly decide attacks for each toy, occasionally making one or the other use their special attack. - * When either mech has no more health, the loop ends, and it displays the victor and the loser while updating their stats and resetting them. - * Arguments: - * * attacker - the attacking toy, the toy in the attacker_controller's hands - * * attacker_controller - the user, the one who is holding the toys / controlling the fight - * * opponent - optional arg used in Mech PvP battles: the other person who is taking part in the fight (controls src) - */ + * The 'master' proc of the mech battle. Processes the entire battle's events and makes sure it start and finishes correctly. + * + * src is the defending toy, and the battle proc is called on it to begin the battle. + * After going through a few checks at the beginning to ensure the battle can start properly, the battle begins a loop that lasts + * until either toy has no more health. During this loop, it also ensures the mechs stay in combat range of each other. + * It will then randomly decide attacks for each toy, occasionally making one or the other use their special attack. + * When either mech has no more health, the loop ends, and it displays the victor and the loser while updating their stats and resetting them. + * Arguments: + * * attacker - the attacking toy, the toy in the attacker_controller's hands + * * attacker_controller - the user, the one who is holding the toys / controlling the fight + * * opponent - optional arg used in Mech PvP battles: the other person who is taking part in the fight (controls src) + */ /obj/item/toy/prize/proc/mecha_brawl(obj/item/toy/prize/attacker, mob/living/carbon/attacker_controller, mob/living/carbon/opponent) //A GOOD DAY FOR A SWELL BATTLE! attacker_controller.visible_message(" [attacker_controller.name] collides [attacker] with [src]! Looks like they're preparing for a brawl! ", \ @@ -433,16 +433,16 @@ return /** - * This proc checks if a battle can be initiated between src and attacker. - * - * Both SRC and attacker (if attacker is included) timers are checked if they're on cooldown, and - * both SRC and attacker (if attacker is included) are checked if they are in combat already. - * If any of the above are true, the proc returns FALSE and sends a message to user (and target, if included) otherwise, it returns TRUE - * Arguments: - * * user: the user who is initiating the battle - * * attacker: optional arg for checking two mechs at once - * * target: optional arg used in Mech PvP battles (if used, attacker is target's toy) - */ + * This proc checks if a battle can be initiated between src and attacker. + * + * Both SRC and attacker (if attacker is included) timers are checked if they're on cooldown, and + * both SRC and attacker (if attacker is included) are checked if they are in combat already. + * If any of the above are true, the proc returns FALSE and sends a message to user (and target, if included) otherwise, it returns TRUE + * Arguments: + * * user: the user who is initiating the battle + * * attacker: optional arg for checking two mechs at once + * * target: optional arg used in Mech PvP battles (if used, attacker is target's toy) + */ /obj/item/toy/prize/proc/check_battle_start(mob/living/carbon/user, obj/item/toy/prize/attacker, mob/living/carbon/target) if(attacker?.in_combat) to_chat(user, "[target?target.p_their() : "Your" ] [attacker.name] is in combat.") @@ -464,12 +464,12 @@ return TRUE /** - * Processes any special attack moves that happen in the battle (called in the mechaBattle proc). - * - * Makes the toy shout their special attack cry and updates its cooldown. Then, does the special attack. - * Arguments: - * * victim - the toy being hit by the special move - */ + * Processes any special attack moves that happen in the battle (called in the mechaBattle proc). + * + * Makes the toy shout their special attack cry and updates its cooldown. Then, does the special attack. + * Arguments: + * * victim - the toy being hit by the special move + */ /obj/item/toy/prize/proc/special_attack_move(obj/item/toy/prize/victim) say(special_attack_cry + "!!") @@ -493,12 +493,12 @@ say("I FORGOT MY SPECIAL ATTACK...") /** - * Base proc for 'other' special attack moves. - * - * This one is only for inheritance, each mech with an 'other' type move has their procs below. - * Arguments: - * * victim - the toy being hit by the super special move (doesn't necessarily need to be used) - */ + * Base proc for 'other' special attack moves. + * + * This one is only for inheritance, each mech with an 'other' type move has their procs below. + * Arguments: + * * victim - the toy being hit by the super special move (doesn't necessarily need to be used) + */ /obj/item/toy/prize/proc/super_special_attack(obj/item/toy/prize/victim) visible_message(" [src] does a cool flip.") diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 07af7c377b9..290de857cf4 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -198,14 +198,14 @@ return MANUAL_SUICIDE /** - * Internal function used in the toy singularity suicide - * - * Cavity implants the toy singularity into the body of the user (arg1), and kills the user. - * Makes the user vomit and receive 120 suffocation damage if there already is a cavity implant in the user. - * Throwing the singularity away will cause the user to start choking themself to death. - * Arguments: - * * user - Whoever is doing the suiciding - */ + * Internal function used in the toy singularity suicide + * + * Cavity implants the toy singularity into the body of the user (arg1), and kills the user. + * Makes the user vomit and receive 120 suffocation damage if there already is a cavity implant in the user. + * Throwing the singularity away will cause the user to start choking themself to death. + * Arguments: + * * user - Whoever is doing the suiciding + */ /obj/item/toy/spinningtoy/proc/manual_suicide(mob/living/carbon/human/user) if(!user) return @@ -292,8 +292,8 @@ playsound(user, 'sound/weapons/gun/revolver/shot.ogg', 100, TRUE) src.bullets-- user.visible_message("[user] fires [src] at [target]!", \ - "You fire [src] at [target]!", \ - "You hear a gunshot!") + "You fire [src] at [target]!", \ + "You hear a gunshot!") /obj/item/toy/ammo/gun name = "capgun ammo" @@ -862,11 +862,11 @@ newobj.resistance_flags = sourceobj.resistance_flags /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ /obj/item/toy/cards/cardhand/proc/check_menu(mob/living/user) if(!istype(user)) return FALSE @@ -875,8 +875,8 @@ return TRUE /** - * This proc updates the sprite for when you create a hand of cards - */ + * This proc updates the sprite for when you create a hand of cards + */ /obj/item/toy/cards/cardhand/proc/update_sprite() cut_overlays() var/overlay_cards = currenthand.len diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 9fac03bbff2..e3fda7d65d9 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -292,11 +292,11 @@ reskin_obj(user) /** - * Reskins object based on a user's choice - * - * Arguments: - * * M The mob choosing a reskin option - */ + * Reskins object based on a user's choice + * + * Arguments: + * * M The mob choosing a reskin option + */ /obj/proc/reskin_obj(mob/M) if(!LAZYLEN(unique_reskin)) return @@ -317,11 +317,11 @@ to_chat(M, "[src] is now skinned as '[pick].'") /** - * Checks if we are allowed to interact with a radial menu for reskins - * - * Arguments: - * * user The mob interacting with the menu - */ + * Checks if we are allowed to interact with a radial menu for reskins + * + * Arguments: + * * user The mob interacting with the menu + */ /obj/proc/check_reskin_menu(mob/user) if(QDELETED(src)) return FALSE diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index 3219e4834af..3fa9c292fc5 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -309,7 +309,7 @@ That prevents a few funky behaviors. /obj/structure/ai_core/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card) if(state != AI_READY_CORE || !..()) return - //Transferring a carded AI to a core. + //Transferring a carded AI to a core. if(interaction == AI_TRANS_FROM_CARD) AI.control_disabled = FALSE AI.radio_enabled = TRUE diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index cc60ba42624..fcbb7a135a5 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -328,13 +328,13 @@ var/list/targets = list(O, src) add_fingerprint(user) user.visible_message("[user] [actuallyismob ? "tries to ":""]stuff [O] into [src].", \ - "You [actuallyismob ? "try to ":""]stuff [O] into [src].", \ - "You hear clanging.") + "You [actuallyismob ? "try to ":""]stuff [O] into [src].", \ + "You hear clanging.") if(actuallyismob) if(do_after_mob(user, targets, 40)) user.visible_message("[user] stuffs [O] into [src].", \ - "You stuff [O] into [src].", \ - "You hear a loud metal bang.") + "You stuff [O] into [src].", \ + "You hear a loud metal bang.") var/mob/living/L = O if(!issilicon(L)) L.Paralyze(40) diff --git a/code/game/objects/structures/crates_lockers/crates/large.dm b/code/game/objects/structures/crates_lockers/crates/large.dm index bd21cc5f0bb..4861cc3c5bb 100644 --- a/code/game/objects/structures/crates_lockers/crates/large.dm +++ b/code/game/objects/structures/crates_lockers/crates/large.dm @@ -25,8 +25,8 @@ tear_manifest(user) user.visible_message("[user] pries \the [src] open.", \ - "You pry open \the [src].", \ - "You hear splitting wood.") + "You pry open \the [src].", \ + "You hear splitting wood.") playsound(src.loc, 'sound/weapons/slashmiss.ogg', 75, TRUE) var/turf/T = get_turf(src) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 66f6dd9f3a4..17d2c49b384 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -98,8 +98,8 @@ if(door_check) user.visible_message("[user] secures the airlock assembly to the floor.", \ - "You start to secure the airlock assembly to the floor...", \ - "You hear wrenching.") + "You start to secure the airlock assembly to the floor...", \ + "You hear wrenching.") if(W.use_tool(src, user, 40, volume=100)) if(anchored) @@ -112,8 +112,8 @@ else user.visible_message("[user] unsecures the airlock assembly from the floor.", \ - "You start to unsecure the airlock assembly from the floor...", \ - "You hear wrenching.") + "You start to unsecure the airlock assembly from the floor...", \ + "You hear wrenching.") if(W.use_tool(src, user, 40, volume=100)) if(!anchored) return @@ -208,7 +208,7 @@ if(G.get_amount() >= 2) playsound(src, 'sound/items/crowbar.ogg', 100, TRUE) user.visible_message("[user] adds [G.name] to the airlock assembly.", \ - "You start to install [G.name] into the airlock assembly...") + "You start to install [G.name] into the airlock assembly...") if(do_after(user, 40, target = src)) if(G.get_amount() < 2 || mineral) return @@ -237,7 +237,7 @@ else if((W.tool_behaviour == TOOL_SCREWDRIVER) && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER ) user.visible_message("[user] finishes the airlock.", \ - "You start finishing the airlock...") + "You start finishing the airlock...") if(W.use_tool(src, user, 40, volume=100)) if(loc && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index ef878ed4c4b..96b4f9d8a5b 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -227,8 +227,8 @@ . = FALSE if(state == GIRDER_DISPLACED) user.visible_message("[user] disassembles the girder.", - "You start to disassemble the girder...", - "You hear clanking and banging noises.") + "You start to disassemble the girder...", + "You hear clanking and banging noises.") if(tool.use_tool(src, user, 40, volume=100)) if(state != GIRDER_DISPLACED) return diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index fc5b4818163..71fa3c987ea 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -141,13 +141,13 @@ W.play_tool_sound(src, 100) set_anchored(!anchored) user.visible_message("[user] [anchored ? "fastens" : "unfastens"] [src].", \ - "You [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor.") + "You [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor.") return else if(istype(W, /obj/item/stack/rods) && broken) var/obj/item/stack/rods/R = W if(!shock(user, 90)) user.visible_message("[user] rebuilds the broken grille.", \ - "You rebuild the broken grille.") + "You rebuild the broken grille.") new grille_type(src.loc) R.use(1) qdel(src) diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm index c3bc03e478b..32bead1b45f 100644 --- a/code/game/objects/structures/guncase.dm +++ b/code/game/objects/structures/guncase.dm @@ -66,11 +66,11 @@ update_icon() /** - * show_menu: Shows a radial menu to a user consisting of an available weaponry for taking - * - * Arguments: - * * user The mob to which we are showing the radial menu - */ + * show_menu: Shows a radial menu to a user consisting of an available weaponry for taking + * + * Arguments: + * * user The mob to which we are showing the radial menu + */ /obj/structure/guncase/proc/show_menu(mob/user) if(!LAZYLEN(contents)) return @@ -98,11 +98,11 @@ update_icon() /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ /obj/structure/guncase/proc/check_menu(mob/living/carbon/human/user) if(!open) return FALSE diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm index 0b84a93402b..9e1f5f7e105 100644 --- a/code/game/objects/structures/icemoon/cave_entrance.dm +++ b/code/game/objects/structures/icemoon/cave_entrance.dm @@ -1,11 +1,13 @@ -GLOBAL_LIST_INIT(ore_probability, list(/obj/item/stack/ore/uranium = 50, - /obj/item/stack/ore/iron = 100, - /obj/item/stack/ore/plasma = 75, - /obj/item/stack/ore/silver = 50, - /obj/item/stack/ore/gold = 50, - /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/bananium = 5, - /obj/item/stack/ore/titanium = 75)) +GLOBAL_LIST_INIT(ore_probability, list( + /obj/item/stack/ore/uranium = 50, + /obj/item/stack/ore/iron = 100, + /obj/item/stack/ore/plasma = 75, + /obj/item/stack/ore/silver = 50, + /obj/item/stack/ore/gold = 50, + /obj/item/stack/ore/diamond = 25, + /obj/item/stack/ore/bananium = 5, + /obj/item/stack/ore/titanium = 75, + )) /obj/structure/spawner/ice_moon name = "cave entrance" @@ -24,9 +26,9 @@ GLOBAL_LIST_INIT(ore_probability, list(/obj/item/stack/ore/uranium = 50, clear_rock() /** - * Clears rocks around the spawner when it is created - * - */ + * Clears rocks around the spawner when it is created + * + */ /obj/structure/spawner/ice_moon/proc/clear_rock() for(var/turf/F in RANGE_TURFS(2, src)) if(abs(src.x - F.x) + abs(src.y - F.y) > 3) @@ -41,17 +43,17 @@ GLOBAL_LIST_INIT(ore_probability, list(/obj/item/stack/ore/uranium = 50, return ..() /** - * Effects and messages created when the spawner is destroyed - * - */ + * Effects and messages created when the spawner is destroyed + * + */ /obj/structure/spawner/ice_moon/proc/destroy_effect() playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE) visible_message("[src] collapses, sealing everything inside!\nOres fall out of the cave as it is destroyed!") /** - * Drops items after the spawner is destroyed - * - */ + * Drops items after the spawner is destroyed + * + */ /obj/structure/spawner/ice_moon/proc/drop_loot() for(var/type in GLOB.ore_probability) var/chance = GLOB.ore_probability[type] @@ -115,17 +117,17 @@ GLOBAL_LIST_INIT(ore_probability, list(/obj/item/stack/ore/uranium = 50, addtimer(CALLBACK(src, .proc/collapse), 5 SECONDS) /** - * Handles portal deletion - * - */ + * Handles portal deletion + * + */ /obj/effect/collapsing_demonic_portal/proc/collapse() drop_loot() qdel(src) /** - * Drops loot from the portal - * - */ + * Drops loot from the portal + * + */ /obj/effect/collapsing_demonic_portal/proc/drop_loot() visible_message("Something slips out of [src]!") var/loot = rand(1, 28) diff --git a/code/game/objects/structures/industrial_lift.dm b/code/game/objects/structures/industrial_lift.dm index f3cc64bab26..bba92d5cbb4 100644 --- a/code/game/objects/structures/industrial_lift.dm +++ b/code/game/objects/structures/industrial_lift.dm @@ -49,13 +49,13 @@ possible_expansions -= borderline /** - * Moves the lift UP or DOWN, this is what users invoke with their hand. - * This is a SAFE proc, ensuring every part of the lift moves SANELY. - * It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming. - * Arguments: - * going - UP or DOWN directions, where the lift should go. Keep in mind by this point checks of whether it should go up or down have already been done. - * user - Whomever made the lift movement. - */ + * Moves the lift UP or DOWN, this is what users invoke with their hand. + * This is a SAFE proc, ensuring every part of the lift moves SANELY. + * It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming. + * Arguments: + * going - UP or DOWN directions, where the lift should go. Keep in mind by this point checks of whether it should go up or down have already been done. + * user - Whomever made the lift movement. + */ /datum/lift_master/proc/MoveLift(going, mob/user) set_controls(LOCKED) for(var/p in lift_platforms) @@ -64,10 +64,10 @@ set_controls(UNLOCKED) /** - * Moves the lift, this is what users invoke with their hand. - * This is a SAFE proc, ensuring every part of the lift moves SANELY. - * It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming. - */ + * Moves the lift, this is what users invoke with their hand. + * This is a SAFE proc, ensuring every part of the lift moves SANELY. + * It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming. + */ /datum/lift_master/proc/MoveLiftHorizontal(going, z) var/max_x = 1 var/max_y = 1 @@ -123,8 +123,8 @@ return TRUE /** - * Sets all lift parts's controls_locked variable. Used to prevent moving mid movement, or cooldowns. - */ + * Sets all lift parts's controls_locked variable. Used to prevent moving mid movement, or cooldowns. + */ /datum/lift_master/proc/set_controls(state) for(var/l in lift_platforms) var/obj/structure/industrial_lift/lift_platform = l diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 9d3aa9c6f4d..eeca76c7048 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -162,11 +162,11 @@ update_icon() /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ /obj/structure/janitorialcart/proc/check_menu(mob/living/user) if(!istype(user)) return FALSE diff --git a/code/game/objects/structures/plaques/_plaques.dm b/code/game/objects/structures/plaques/_plaques.dm index 9f083c1d0af..272b729ae85 100644 --- a/code/game/objects/structures/plaques/_plaques.dm +++ b/code/game/objects/structures/plaques/_plaques.dm @@ -40,13 +40,13 @@ /obj/structure/plaque/wrench_act(mob/living/user, obj/item/wrench/I) . = ..() user.visible_message("[user] starts removing [src]...", \ - "You start unfastening [src].") + "You start unfastening [src].") I.play_tool_sound(src) if(!I.use_tool(src, user, 4 SECONDS)) return TRUE playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE) user.visible_message("[user] unfastens [src].", \ - "You unfasten [src].") + "You unfasten [src].") var/obj/item/plaque/unwrenched_plaque = new (get_turf(user)) if(engraved) //If it's still just a basic unengraved plaque, we can (and should) skip some of the below variable transfers. unwrenched_plaque.name = name //Copy over the plaque structure variables to the plaque item we're creating when we unwrench it. @@ -68,11 +68,11 @@ if(!I.tool_start_check(user, amount=0)) return TRUE user.visible_message("[user] starts repairing [src]...", \ - "You start repairing [src].") + "You start repairing [src].") if(!I.use_tool(src, user, 4 SECONDS, volume = 50)) return TRUE user.visible_message("[user] finishes repairing [src].", \ - "You finish repairing [src].") + "You finish repairing [src].") obj_integrity = max_integrity return TRUE @@ -86,11 +86,11 @@ if(!I.tool_start_check(user, amount=0)) return TRUE user.visible_message("[user] starts repairing [src]...", \ - "You start repairing [src].") + "You start repairing [src].") if(!I.use_tool(src, user, 4 SECONDS, volume = 50)) return TRUE user.visible_message("[user] finishes repairing [src].", \ - "You finish repairing [src].") + "You finish repairing [src].") obj_integrity = max_integrity return TRUE @@ -109,14 +109,14 @@ to_chat(user, "You need to stand next to the plaque to engrave it!") return user.visible_message("[user] begins engraving [src].", \ - "You begin engraving [src].") + "You begin engraving [src].") if(!do_after(user, 4 SECONDS, target = src)) //This spits out a visible message that somebody is engraving a plaque, then has a delay. return name = "\improper [namechoice]" //We want improper here so examine doesn't get weird if somebody capitalizes the plaque title. desc = "The plaque reads: '[descriptionchoice]'" engraved = TRUE //The plaque now has a name, description, and can't be altered again. user.visible_message("[user] engraves [src].", \ - "You engrave [src].") + "You engrave [src].") return if(istype(I, /obj/item/pen)) if(engraved) @@ -141,14 +141,14 @@ to_chat(user, "You need to stand next to the plaque to engrave it!") return user.visible_message("[user] begins engraving [src].", \ - "You begin engraving [src].") + "You begin engraving [src].") if(!do_after(user, 40, target = src)) //This spits out a visible message that somebody is engraving a plaque, then has a delay. return name = "\improper [namechoice]" //We want improper here so examine doesn't get weird if somebody capitalizes the plaque title. desc = "The plaque reads: '[descriptionchoice]'" engraved = TRUE //The plaque now has a name, description, and can't be altered again. user.visible_message("[user] engraves [src].", \ - "You engrave [src].") + "You engrave [src].") return if(istype(I, /obj/item/pen)) if(engraved) @@ -176,7 +176,7 @@ else if(dir & WEST) placed_plaque.pixel_x = -32 user.visible_message("[user] fastens [src] to [target_turf].", \ - "You attach [src] to [target_turf].") + "You attach [src] to [target_turf].") playsound(target_turf, 'sound/items/deconstruct.ogg', 50, TRUE) if(engraved) placed_plaque.name = name diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 946e96dbca1..d02a802350b 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -205,14 +205,14 @@ FLOOR SAFES return TRUE /** - * Checks if safe is considered in a broken state for force-opening the safe - */ + * Checks if safe is considered in a broken state for force-opening the safe + */ /obj/structure/safe/proc/check_broken() - return broken || explosion_count >= BROKEN_THRESHOLD + return broken || explosion_count >= BROKEN_THRESHOLD /** - * Called every dial turn to determine whether the safe should unlock or not. - */ + * Called every dial turn to determine whether the safe should unlock or not. + */ /obj/structure/safe/proc/check_unlocked() if(check_broken()) return TRUE @@ -224,8 +224,8 @@ FLOOR SAFES return FALSE /** - * Called every dial turn to provide feedback if possible. - */ + * Called every dial turn to provide feedback if possible. + */ /obj/structure/safe/proc/notify_user(user, canhear, sounds, total_ticks, current_tick) if(!canhear) return diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index 6b1d06b6893..8b2cd278641 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -54,10 +54,10 @@ user.examinate(src) /** - * This proc populates GLOBAL_LIST_EMPTY(editable_sign_types) - * - * The first time a pen is used on any sign, this populates GLOBAL_LIST_EMPTY(editable_sign_types), creating a global list of all the signs that you can set a sign backing to with a pen. - */ + * This proc populates GLOBAL_LIST_EMPTY(editable_sign_types) + * + * The first time a pen is used on any sign, this populates GLOBAL_LIST_EMPTY(editable_sign_types), creating a global list of all the signs that you can set a sign backing to with a pen. + */ /proc/populate_editable_sign_types() for(var/s in subtypesof(/obj/structure/sign)) var/obj/structure/sign/potential_sign = s @@ -71,13 +71,13 @@ if(!buildable_sign) return TRUE user.visible_message("[user] starts removing [src]...", \ - "You start unfastening [src].") + "You start unfastening [src].") I.play_tool_sound(src) if(!I.use_tool(src, user, 4 SECONDS)) return TRUE playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE) user.visible_message("[user] unfastens [src].", \ - "You unfasten [src].") + "You unfasten [src].") var/obj/item/sign/unwrenched_sign = new (get_turf(user)) if(type != /obj/structure/sign/blank) //If it's still just a basic sign backing, we can (and should) skip some of the below variable transfers. unwrenched_sign.name = name //Copy over the sign structure variables to the sign item we're creating when we unwrench a sign. @@ -101,11 +101,11 @@ if(!I.tool_start_check(user, amount=0)) return TRUE user.visible_message("[user] starts repairing [src]...", \ - "You start repairing [src].") + "You start repairing [src].") if(!I.use_tool(src, user, 4 SECONDS, volume =50 )) return TRUE user.visible_message("[user] finishes repairing [src].", \ - "You finish repairing [src].") + "You finish repairing [src].") obj_integrity = max_integrity return TRUE @@ -119,11 +119,11 @@ if(!I.tool_start_check(user, amount=0)) return TRUE user.visible_message("[user] starts repairing [src]...", \ - "You start repairing [src].") + "You start repairing [src].") if(!I.use_tool(src, user, 4 SECONDS, volume =50 )) return TRUE user.visible_message("[user] finishes repairing [src].", \ - "You finish repairing [src].") + "You finish repairing [src].") obj_integrity = max_integrity return TRUE @@ -140,7 +140,7 @@ to_chat(user, "You need to stand next to the sign to change it!") return user.visible_message("[user] begins changing [src].", \ - "You begin changing [src].") + "You begin changing [src].") if(!do_after(user, 4 SECONDS, target = src)) //Small delay for changing signs instead of it being instant, so somebody could be shoved or stunned to prevent them from doing so. return var/sign_type = GLOB.editable_sign_types[choice] @@ -153,7 +153,7 @@ changedsign.obj_integrity = obj_integrity qdel(src) user.visible_message("[user] finishes changing the sign.", \ - "You finish changing the sign.") + "You finish changing the sign.") return return ..() @@ -204,7 +204,7 @@ else if(dir & WEST) placed_sign.pixel_x = -32 user.visible_message("[user] fastens [src] to [target_turf].", \ - "You attach the sign to [target_turf].") + "You attach the sign to [target_turf].") playsound(target_turf, 'sound/items/deconstruct.ogg', 50, TRUE) placed_sign.obj_integrity = obj_integrity placed_sign.setDir(dir) diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index cbe7e9fdf73..3131192153e 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -257,9 +257,9 @@ icon_state = "snowman" /obj/structure/statue/snow/snowlegion - name = "snowlegion" - desc = "Looks like that weird kid with the tiger plushie has been round here again." - icon_state = "snowlegion" + name = "snowlegion" + desc = "Looks like that weird kid with the tiger plushie has been round here again." + icon_state = "snowlegion" ///////////////////////////////bronze/////////////////////////////////// @@ -322,10 +322,10 @@ return ..() /* - Hit the block to start - Point with the chisel at the target to choose what to sculpt or hit block to choose from preset statue types. - Hit block again to start sculpting. - Moving interrupts +Hit the block to start +Point with the chisel at the target to choose what to sculpt or hit block to choose from preset statue types. +Hit block again to start sculpting. +Moving interrupts */ /obj/item/chisel/pre_attack(atom/A, mob/living/user, params) . = ..() diff --git a/code/game/objects/structures/training_machine.dm b/code/game/objects/structures/training_machine.dm index b7f3e204c42..ac8a2921df1 100644 --- a/code/game/objects/structures/training_machine.dm +++ b/code/game/objects/structures/training_machine.dm @@ -7,11 +7,11 @@ #define MAX_ATTACK_DELAY 15 /** - * Machine that runs around wildly so people can practice clickin on things - * - * Can have a mob buckled on or a obj/item/target attached. Movement controlled by SSFastProcess, - * movespeed controlled by cooldown macros. Can attach obj/item/target, obj/item/training_toolbox, and can buckle mobs to this. - */ + * Machine that runs around wildly so people can practice clickin on things + * + * Can have a mob buckled on or a obj/item/target attached. Movement controlled by SSFastProcess, + * movespeed controlled by cooldown macros. Can attach obj/item/target, obj/item/training_toolbox, and can buckle mobs to this. + */ /obj/structure/training_machine name = "AURUMILL-Brand MkII. Personnel Training Machine" desc = "Used for combat training simulations. Accepts standard training targets. A pair of buckling straps are attached." @@ -335,10 +335,10 @@ . += "Click to open control interface." /** - * Device that simply counts the number of times you've hit a mob or target with. Looks like a toolbox but isn't. - * - * Also has a 'Lap' function for keeping track of hits made at a certain point. Also, looks kinda like his grace for laughs and pranks. - */ + * Device that simply counts the number of times you've hit a mob or target with. Looks like a toolbox but isn't. + * + * Also has a 'Lap' function for keeping track of hits made at a certain point. Also, looks kinda like his grace for laughs and pranks. + */ /obj/item/training_toolbox name = "Training Toolbox" desc = "AURUMILL-Brand Baby's First Training Toolbox. A digital display on the back keeps track of hits made by the user. Second toolbox sold seperately!" diff --git a/code/game/say.dm b/code/game/say.dm index 7028cb7177c..7adc394a51f 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -1,7 +1,7 @@ /* - Miauw's big Say() rewrite. - This file has the basic atom/movable level speech procs. - And the base of the send_speech() proc, which is the core of saycode. +Miauw's big Say() rewrite. +This file has the basic atom/movable level speech procs. +And the base of the send_speech() proc, which is the core of saycode. */ GLOBAL_LIST_INIT(freqtospan, list( "[FREQ_SCIENCE]" = "sciradio", diff --git a/code/game/sound.dm b/code/game/sound.dm index 386abc41422..f44b4da2e6c 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -28,7 +28,7 @@ falloff_distance - Distance at which falloff begins. Sound is at peak volume (in //allocate a channel if necessary now so its the same for everyone channel = channel || SSsounds.random_available_channel() - // Looping through the player list has the added bonus of working for mobs inside containers + // Looping through the player list has the added bonus of working for mobs inside containers var/sound/S = sound(get_sfx(soundin)) var/maxdistance = SOUND_RANGE + extrarange var/source_z = turf_source.z diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index 0dede0da120..f932e67accb 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -150,15 +150,15 @@ return TRUE /** - *Deals damage back to the hulk's arm. - * - *When a hulk manages to break a wall using their hulk smash, this deals back damage to the arm used. - *This is in its own proc just to be easily overridden by other wall types. Default allows for three - *smashed walls per arm. Also, we use CANT_WOUND here because wounds are random. Wounds are applied - *by hulk code based on arm damage and checked when we call break_an_arm(). - *Arguments: - **arg1 is the arm to deal damage to. - **arg2 is the hulk + *Deals damage back to the hulk's arm. + * + *When a hulk manages to break a wall using their hulk smash, this deals back damage to the arm used. + *This is in its own proc just to be easily overridden by other wall types. Default allows for three + *smashed walls per arm. Also, we use CANT_WOUND here because wounds are random. Wounds are applied + *by hulk code based on arm damage and checked when we call break_an_arm(). + *Arguments: + **arg1 is the arm to deal damage to. + **arg2 is the hulk */ /turf/closed/wall/proc/hulk_recoil(obj/item/bodypart/arm, mob/living/carbon/human/hulkman, damage = 20) arm.receive_damage(brute = damage, blocked = 0, wound_bonus = CANT_WOUND) diff --git a/code/game/turfs/open/floor/light_floor.dm b/code/game/turfs/open/floor/light_floor.dm index 2199c1e9466..07e5872b8d3 100644 --- a/code/game/turfs/open/floor/light_floor.dm +++ b/code/game/turfs/open/floor/light_floor.dm @@ -156,12 +156,12 @@ can_modify_colour = FALSE /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - * * multitool The multitool used to interact with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + * * multitool The multitool used to interact with a menu + */ /turf/open/floor/light/proc/check_menu(mob/living/user, obj/item/multitool) if(!istype(user)) return FALSE diff --git a/code/game/turfs/open/floor/plating/asteroid.dm b/code/game/turfs/open/floor/plating/asteroid.dm index 459045bf49f..0f14efed70b 100644 --- a/code/game/turfs/open/floor/plating/asteroid.dm +++ b/code/game/turfs/open/floor/plating/asteroid.dm @@ -275,13 +275,13 @@ GLOBAL_LIST_INIT(megafauna_spawn_list, list(/mob/living/simple_animal/hostile/me SpawnFloor(src) /** - * Makes the tunnel and spawns things inside of it - * - * Picks a tunnel width for the tunnel and then starts spawning turfs in the direction it moves in - * Can randomly change directions of the tunnel, stops if it hits the edge of the map, or a no tunnel area - * Can randomly make new tunnels out of itself - * - */ + * Makes the tunnel and spawns things inside of it + * + * Picks a tunnel width for the tunnel and then starts spawning turfs in the direction it moves in + * Can randomly change directions of the tunnel, stops if it hits the edge of the map, or a no tunnel area + * Can randomly make new tunnels out of itself + * + */ /turf/open/floor/plating/asteroid/airless/cave/proc/make_tunnel(dir) var/turf/closed/mineral/tunnel = src var/next_angle = pick(45, -45) diff --git a/code/game/turfs/open/space/space.dm b/code/game/turfs/open/space/space.dm index ebb0691aefd..6d75e006b23 100644 --- a/code/game/turfs/open/space/space.dm +++ b/code/game/turfs/open/space/space.dm @@ -26,10 +26,10 @@ return /** - * Space Initialize - * - * Doesn't call parent, see [/atom/proc/Initialize] - */ + * Space Initialize + * + * Doesn't call parent, see [/atom/proc/Initialize] + */ /turf/open/space/Initialize() SHOULD_CALL_PARENT(FALSE) icon_state = SPACE_ICON_STATE diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 7160b9a4c92..f1c3b71d70a 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -64,10 +64,10 @@ GLOBAL_LIST_EMPTY(station_turfs) . = ..() /** - * Turf Initialize - * - * Doesn't call parent, see [/atom/proc/Initialize] - */ + * Turf Initialize + * + * Doesn't call parent, see [/atom/proc/Initialize] + */ /turf/Initialize(mapload) SHOULD_CALL_PARENT(FALSE) if(flags_1 & INITIALIZED_1) @@ -602,8 +602,8 @@ GLOBAL_LIST_EMPTY(station_turfs) . |= R.expose_turf(src, reagents[R]) /** - * Called when this turf is being washed. Washing a turf will also wash any mopable floor decals - */ + * Called when this turf is being washed. Washing a turf will also wash any mopable floor decals + */ /turf/wash(clean_types) . = ..() diff --git a/code/game/world.dm b/code/game/world.dm index c96a64a6fa8..437311834e4 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -3,31 +3,31 @@ GLOBAL_VAR(restart_counter) /** - * World creation - * - * Here is where a round itself is actually begun and setup. - * * db connection setup - * * config loaded from files - * * loads admins - * * Sets up the dynamic menu system - * * and most importantly, calls initialize on the master subsystem, starting the game loop that causes the rest of the game to begin processing and setting up - * - * - * Nothing happens until something moves. ~Albert Einstein - * - * For clarity, this proc gets triggered later in the initialization pipeline, it is not the first thing to happen, as it might seem. - * - * Initialization Pipeline: - * Global vars are new()'ed, (including config, glob, and the master controller will also new and preinit all subsystems when it gets new()ed) - * Compiled in maps are loaded (mainly centcom). all areas/turfs/objs/mobs(ATOMs) in these maps will be new()ed - * world/New() (You are here) - * Once world/New() returns, client's can connect. - * 1 second sleep - * Master Controller initialization. - * Subsystem initialization. - * Non-compiled-in maps are maploaded, all atoms are new()ed - * All atoms in both compiled and uncompiled maps are initialized() - */ + * World creation + * + * Here is where a round itself is actually begun and setup. + * * db connection setup + * * config loaded from files + * * loads admins + * * Sets up the dynamic menu system + * * and most importantly, calls initialize on the master subsystem, starting the game loop that causes the rest of the game to begin processing and setting up + * + * + * Nothing happens until something moves. ~Albert Einstein + * + * For clarity, this proc gets triggered later in the initialization pipeline, it is not the first thing to happen, as it might seem. + * + * Initialization Pipeline: + * Global vars are new()'ed, (including config, glob, and the master controller will also new and preinit all subsystems when it gets new()ed) + * Compiled in maps are loaded (mainly centcom). all areas/turfs/objs/mobs(ATOMs) in these maps will be new()ed + * world/New() (You are here) + * Once world/New() returns, client's can connect. + * 1 second sleep + * Master Controller initialization. + * Subsystem initialization. + * Non-compiled-in maps are maploaded, all atoms are new()ed + * All atoms in both compiled and uncompiled maps are initialized() + */ /world/New() var/extools = world.GetConfig("env", "EXTOOLS_DLL") || (world.system_type == MS_WINDOWS ? "./byond-extools.dll" : "./libbyond-extools.so") if (fexists(extools)) diff --git a/code/modules/admin/poll_management.dm b/code/modules/admin/poll_management.dm index c14727813cb..abb0431dd28 100644 --- a/code/modules/admin/poll_management.dm +++ b/code/modules/admin/poll_management.dm @@ -1,9 +1,9 @@ /** - * Datum which holds details of a running poll loaded from the database and supplementary info. - * - * Used to minimize the need for querying this data every time it's needed. - * - */ + * Datum which holds details of a running poll loaded from the database and supplementary info. + * + * Used to minimize the need for querying this data every time it's needed. + * + */ /datum/poll_question ///Reference list of the options for this poll, not used by text response polls. var/list/options = list() @@ -41,11 +41,11 @@ var/future_poll /** - * Datum which holds details of a poll option loaded from the database. - * - * Used to minimize the need for querying this data every time it's needed. - * - */ + * Datum which holds details of a poll option loaded from the database. + * + * Used to minimize the need for querying this data every time it's needed. + * + */ /datum/poll_option ///Reference to the poll this option belongs to var/datum/poll_question/parent_poll @@ -67,9 +67,9 @@ var/default_percentage_calc /** - * Shows a list of all current and future polls and buttons to edit or delete them or create a new poll. - * - */ + * Shows a list of all current and future polls and buttons to edit or delete them or create a new poll. + * + */ /datum/admins/proc/poll_list_panel() var/list/output = list("Current and future polls
Note when editing polls or their options changes are not saved until you press Submit Poll.
New PollReload Polls
") for(var/p in GLOB.polls) @@ -91,9 +91,9 @@ panel.open() /** - * Show the options for creating a poll or editing its parameters along with its linked options. - * - */ + * Show the options for creating a poll or editing its parameters along with its linked options. + * + */ /datum/admins/proc/poll_management_panel(datum/poll_question/poll) var/list/output = list("
[HrefTokenFormField()]") output += {"Poll type @@ -235,12 +235,12 @@ panel.open() /** - * Processes topic data from poll management panel. - * - * Reads through returned form data and assigns data to the poll datum, creating a new one if required, before passing it to be saved. - * Also does some simple error checking to ensure the poll will be valid before creation. - * - */ + * Processes topic data from poll management panel. + * + * Reads through returned form data and assigns data to the poll datum, creating a new one if required, before passing it to be saved. + * Also does some simple error checking to ensure the poll will be valid before creation. + * + */ /datum/admins/proc/poll_parse_href(list/href_list, datum/poll_question/poll) if(!check_rights(R_POLL)) return @@ -344,12 +344,12 @@ return ..() /** - * Sets a poll and its associated data as deleted in the database. - * - * Calls the procedure set_poll_deleted to set the deleted column to 1 for each row in the poll_ tables matching the poll id used. - * Then deletes each option datum and finally the poll itself. - * - */ + * Sets a poll and its associated data as deleted in the database. + * + * Calls the procedure set_poll_deleted to set the deleted column to 1 for each row in the poll_ tables matching the poll id used. + * Then deletes each option datum and finally the poll itself. + * + */ /datum/poll_question/proc/delete_poll() if(!check_rights(R_POLL)) return @@ -371,14 +371,14 @@ qdel(src) /** - * Inserts or updates a poll question to the database. - * - * Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. - * The start and end datetimes and poll id for new polls is then retrieved for the poll datum. - * Arguments: - * * clear_votes - When true will call clear_poll_votes() to delete all votes matching this poll id. - * - */ + * Inserts or updates a poll question to the database. + * + * Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. + * The start and end datetimes and poll id for new polls is then retrieved for the poll datum. + * Arguments: + * * clear_votes - When true will call clear_poll_votes() to delete all votes matching this poll id. + * + */ /datum/poll_question/proc/save_poll_data(clear_votes) if(!check_rights(R_POLL)) return @@ -437,13 +437,13 @@ message_admins("[kna] [msg]") /** - * Saves all options of a poll to the database. - * - * Saves all the created options for a poll when it's submitted to the DB for the first time and associated an id with the options. - * Insertion and id querying for each option is done separately to ensure data integrity; this is less performant, but not significantly. - * Using MassInsert() would mean having to query a list of rows by poll_id or matching by fields afterwards, which doesn't guarantee accuracy. - * - */ + * Saves all options of a poll to the database. + * + * Saves all the created options for a poll when it's submitted to the DB for the first time and associated an id with the options. + * Insertion and id querying for each option is done separately to ensure data integrity; this is less performant, but not significantly. + * Using MassInsert() would mean having to query a list of rows by poll_id or matching by fields afterwards, which doesn't guarantee accuracy. + * + */ /datum/poll_question/proc/save_all_options() if(!SSdbcore.Connect()) to_chat(usr, "Failed to establish database connection.", confidential = TRUE) @@ -453,9 +453,9 @@ option.save_option() /** - * Deletes all votes or text replies for this poll, depending on its type. - * - */ + * Deletes all votes or text replies for this poll, depending on its type. + * + */ /datum/poll_question/proc/clear_poll_votes() if(!check_rights(R_POLL)) return @@ -477,9 +477,9 @@ to_chat(usr, "Poll [poll_type == POLLTYPE_TEXT ? "responses" : "votes"] cleared.", confidential = TRUE) /** - * Show the options for creating a poll option or editing its parameters. - * - */ + * Show the options for creating a poll option or editing its parameters. + * + */ /datum/admins/proc/poll_option_panel(datum/poll_question/poll, datum/poll_option/option) var/list/output = list("[HrefTokenFormField()]") output += {" Option for poll [poll.question] @@ -493,7 +493,7 @@ Maximum Value
-
+
@@ -533,12 +533,12 @@ panel.open() /** - * Processes topic data from poll option panel. - * - * Reads through returned form data and assigns data to the option datum, creating a new one if required, before passing it to be saved. - * Also does some simple error checking to ensure the option will be valid before creation. - * - */ + * Processes topic data from poll option panel. + * + * Reads through returned form data and assigns data to the option datum, creating a new one if required, before passing it to be saved. + * Also does some simple error checking to ensure the option will be valid before creation. + * + */ /datum/admins/proc/poll_option_parse_href(list/href_list, datum/poll_question/poll, datum/poll_option/option) if(!check_rights(R_POLL)) return @@ -631,12 +631,12 @@ return ..() /** - * Inserts or updates a poll option to the database. - * - * Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. - * The list of columns and values is built dynamically to avoid excess data being sent when not a rating type poll. - * - */ + * Inserts or updates a poll option to the database. + * + * Uses INSERT ON DUPLICATE KEY UPDATE to handle both inserting and updating at once. + * The list of columns and values is built dynamically to avoid excess data being sent when not a rating type poll. + * + */ /datum/poll_option/proc/save_option() if(!check_rights(R_POLL)) return @@ -668,9 +668,9 @@ qdel(query_update_poll_option) /** - * Sets a poll option and its votes as deleted in the database then deletes its datum. - * - */ + * Sets a poll option and its votes as deleted in the database then deletes its datum. + * + */ /datum/poll_option/proc/delete_option() if(!check_rights(R_POLL)) return @@ -690,9 +690,9 @@ qdel(src) /** - * Loads all current and future server polls and their options to store both as datums. - * - */ + * Loads all current and future server polls and their options to store both as datums. + * + */ /proc/load_poll_data() if(!SSdbcore.Connect()) to_chat(usr, "Failed to establish database connection.", confidential = TRUE) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 668725fe79f..2c71ced1c63 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -638,15 +638,15 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) send2otherserver(source,final) /** - * Sends a message to a set of cross-communications-enabled servers using world topic calls - * - * Arguments: - * * source - Who sent this message - * * msg - The message body - * * type - The type of message, becomes the topic command under the hood - * * target_servers - A collection of servers to send the message to, defined in config - * * additional_data - An (optional) associated list of extra parameters and data to send with this world topic call - */ + * Sends a message to a set of cross-communications-enabled servers using world topic calls + * + * Arguments: + * * source - Who sent this message + * * msg - The message body + * * type - The type of message, becomes the topic command under the hood + * * target_servers - A collection of servers to send the message to, defined in config + * * additional_data - An (optional) associated list of extra parameters and data to send with this world topic call + */ /proc/send2otherserver(source, msg, type = "Ahelp", target_servers, list/additional_data = list()) if(!CONFIG_GET(string/comms_key)) debug_world_log("Server cross-comms message not sent for lack of configured key") diff --git a/code/modules/admin/verbs/anonymousnames.dm b/code/modules/admin/verbs/anonymousnames.dm index 448ef83e5e1..62c48149af5 100644 --- a/code/modules/admin/verbs/anonymousnames.dm +++ b/code/modules/admin/verbs/anonymousnames.dm @@ -25,13 +25,13 @@ message_admins("[key_name_admin(usr)] has enabled anonymous names. THEME: [SSticker.anonymousnames].") /** - * anonymous_name: generates a corporate random name. used in admin event tool anonymous names - * - * first letter is always a letter - * Example name = "Employee Q5460Z" - * Arguments: - * * M - mob for preferences and gender - */ + * anonymous_name: generates a corporate random name. used in admin event tool anonymous names + * + * first letter is always a letter + * Example name = "Employee Q5460Z" + * Arguments: + * * M - mob for preferences and gender + */ /proc/anonymous_name(mob/M) switch(SSticker.anonymousnames) if(ANON_RANDOMNAMES) @@ -47,13 +47,13 @@ return name /** - * anonymous_ai_name: generates a corporate random name (but for sillycones). used in admin event tool anonymous names - * - * first letter is always a letter - * Example name = "Employee Assistant Assuming Delta" - * Arguments: - * * is_ai - boolean to decide whether the name has "Core" (AI) or "Assistant" (Cyborg) - */ + * anonymous_ai_name: generates a corporate random name (but for sillycones). used in admin event tool anonymous names + * + * first letter is always a letter + * Example name = "Employee Assistant Assuming Delta" + * Arguments: + * * is_ai - boolean to decide whether the name has "Core" (AI) or "Assistant" (Cyborg) + */ /proc/anonymous_ai_name(is_ai = FALSE) switch(SSticker.anonymousnames) if(ANON_RANDOMNAMES) diff --git a/code/modules/admin/verbs/beakerpanel.dm b/code/modules/admin/verbs/beakerpanel.dm index 5de270a2121..b54cf55c357 100644 --- a/code/modules/admin/verbs/beakerpanel.dm +++ b/code/modules/admin/verbs/beakerpanel.dm @@ -91,9 +91,9 @@ } ul li { - margin-top: -1px; /* Prevent double borders */ - padding: 12px; /* Add some padding */ - color: #ffffff; + margin-top: -1px; /* Prevent double borders */ + padding: 12px; /* Add some padding */ + color: #ffffff; text-decoration: none; background: #40628a; border: 1px solid #161616; @@ -102,7 +102,7 @@ } .remove-reagent { - background-color: #d03000; + background-color: #d03000; } .container-control { @@ -261,15 +261,15 @@
- + - -
-
+ +
+

note: beakers recommended, other containers may have issues
@@ -289,25 +289,25 @@
-     + +     -     - +     + +
-
    -
  • +
      +
    • -
         +
         -
      +
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index ddb10f365aa..c53ce57149e 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -168,7 +168,7 @@ GLOBAL_LIST_EMPTY(dirty_vars) set desc = "Displays a list of active turfs coordinates at roundstart" var/dat = {"Coordinate list of Active Turfs at Roundstart -
Real-time Active Turfs list you can see in Air Subsystem at active_turfs var
"} +
Real-time Active Turfs list you can see in Air Subsystem at active_turfs var
"} for(var/t in GLOB.active_turfs_startlist) var/turf/T = t diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index cbd347845cd..727a1d6f759 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1349,17 +1349,17 @@ Traitors and the like can also be revived with the previous role mostly intact. target.forceMove(bread) /** - * firing_squad is a proc for the :B:erforate smite to shoot each individual bullet at them, so that we can add actual delays without sleep() nonsense - * - * Hilariously, if you drag someone away mid smite, the bullets will still chase after them from the original spot, possibly hitting other people. Too funny to fix imo - * - * Arguments: - * * target- guy we're shooting obviously - * * source_turf- where the bullet begins, preferably on a turf next to the target - * * body_zone- which bodypart we're aiming for, if there is one there - * * wound_bonus- the wounding power we're assigning to the bullet, since we don't care about the base one - * * damage- the damage we're assigning to the bullet, since we don't care about the base one - */ + * firing_squad is a proc for the :B:erforate smite to shoot each individual bullet at them, so that we can add actual delays without sleep() nonsense + * + * Hilariously, if you drag someone away mid smite, the bullets will still chase after them from the original spot, possibly hitting other people. Too funny to fix imo + * + * Arguments: + * * target- guy we're shooting obviously + * * source_turf- where the bullet begins, preferably on a turf next to the target + * * body_zone- which bodypart we're aiming for, if there is one there + * * wound_bonus- the wounding power we're assigning to the bullet, since we don't care about the base one + * * damage- the damage we're assigning to the bullet, since we don't care about the base one + */ /proc/firing_squad(mob/living/carbon/target, turf/source_turf, body_zone, wound_bonus, damage) if(!target.get_bodypart(body_zone)) return diff --git a/code/modules/admin/verbs/spawnobjasmob.dm b/code/modules/admin/verbs/spawnobjasmob.dm index 825775808db..52ef25b48e0 100644 --- a/code/modules/admin/verbs/spawnobjasmob.dm +++ b/code/modules/admin/verbs/spawnobjasmob.dm @@ -16,10 +16,10 @@ var/obj/chosen_obj = text2path(chosen) var/list/settings = list( - "mainsettings" = list( - "name" = list("desc" = "Name", "type" = "string", "value" = "Bob"), + "mainsettings" = list( + "name" = list("desc" = "Name", "type" = "string", "value" = "Bob"), "maxhealth" = list("desc" = "Max. health", "type" = "number", "value" = 100), - "access" = list("desc" = "Access ID", "type" = "datum", "path" = "/obj/item/card/id", "value" = "Default"), + "access" = list("desc" = "Access ID", "type" = "datum", "path" = "/obj/item/card/id", "value" = "Default"), "objtype" = list("desc" = "Base obj type", "type" = "datum", "path" = "/obj", "value" = "[chosen]"), "googlyeyes" = list("desc" = "Googly eyes", "type" = "boolean", "value" = "No"), "disableai" = list("desc" = "Disable AI", "type" = "boolean", "value" = "Yes"), @@ -27,8 +27,7 @@ "dropitem" = list("desc" = "Drop obj on death", "type" = "boolean", "value" = "Yes"), "mobtype" = list("desc" = "Base mob type", "type" = "datum", "path" = "/mob/living/simple_animal/hostile/mimic/copy", "value" = "/mob/living/simple_animal/hostile/mimic/copy"), "ckey" = list("desc" = "ckey", "type" = "ckey", "value" = "none"), - ) - ) + )) var/list/prefreturn = presentpreflikepicker(usr,"Customize mob", "Customize mob", Button1="Ok", width = 450, StealFocus = 1,Timeout = 0, settings=settings) if (prefreturn["button"] == 1) diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index d2994ab9c91..098269d37b8 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -407,19 +407,19 @@ info = {"Dissection for Dummies

- 1.Acquire fresh specimen.
- 2.Put the specimen on operating table.
- 3.Apply surgical drapes, preparing for experimental dissection.
- 4.Apply scalpel to specimen's torso.
- 5.Clamp bleeders on specimen's torso with a hemostat.
- 6.Retract skin of specimen's torso with a retractor.
- 7.Apply scalpel again to specimen's torso.
- 8.Search through the specimen's torso with your hands to remove any superfluous organs.
- 9.Insert replacement gland (Retrieve one from gland storage).
- 10.Consider dressing the specimen back to not disturb the habitat.
- 11.Put the specimen in the experiment machinery.
- 12.Choose one of the machine options. The target will be analyzed and teleported to the selected drop-off point.
- 13.You will receive one supply credit, and the subject will be counted towards your quota.
+1.Acquire fresh specimen.
+2.Put the specimen on operating table.
+3.Apply surgical drapes, preparing for experimental dissection.
+4.Apply scalpel to specimen's torso.
+5.Clamp bleeders on specimen's torso with a hemostat.
+6.Retract skin of specimen's torso with a retractor.
+7.Apply scalpel again to specimen's torso.
+8.Search through the specimen's torso with your hands to remove any superfluous organs.
+9.Insert replacement gland (Retrieve one from gland storage).
+10.Consider dressing the specimen back to not disturb the habitat.
+11.Put the specimen in the experiment machinery.
+12.Choose one of the machine options. The target will be analyzed and teleported to the selected drop-off point.
+13.You will receive one supply credit, and the subject will be counted towards your quota.

Congratulations! You are now trained for invasive xenobiology research!"} diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm index e873f93e85c..422e0274658 100644 --- a/code/modules/antagonists/abductor/machinery/console.dm +++ b/code/modules/antagonists/abductor/machinery/console.dm @@ -35,8 +35,8 @@ possible_gear = get_abductor_gear() /** - * get_abductor_gear: Returns a list of a filtered abductor gear sorted by categories - */ + * get_abductor_gear: Returns a list of a filtered abductor gear sorted by categories + */ /obj/machinery/abductor/console/proc/get_abductor_gear() var/list/filtered_modules = list() for(var/path in GLOB.abductor_gear) diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm index bb5eb99a028..6a196df29d2 100644 --- a/code/modules/antagonists/abductor/machinery/experiment.dm +++ b/code/modules/antagonists/abductor/machinery/experiment.dm @@ -103,13 +103,13 @@ return TRUE /** - * experiment: Performs selected experiment on occupant mob, resulting in a point reward on success - * - * Arguments: - * * occupant The mob inside the machine - * * type The type of experiment to be performed - * * user The mob starting the experiment - */ + * experiment: Performs selected experiment on occupant mob, resulting in a point reward on success + * + * Arguments: + * * occupant The mob inside the machine + * * type The type of experiment to be performed + * * user The mob starting the experiment + */ /obj/machinery/abductor/experiment/proc/experiment(mob/occupant, type, mob/user) LAZYINITLIST(history) var/mob/living/carbon/human/H = occupant @@ -167,11 +167,11 @@ return "Specimen braindead - disposed." /** - * send_back: Sends a mob back to a selected teleport location if safe - * - * Arguments: - * * H The human mob to be sent back - */ + * send_back: Sends a mob back to a selected teleport location if safe + * + * Arguments: + * * H The human mob to be sent back + */ /obj/machinery/abductor/experiment/proc/send_back(mob/living/carbon/human/H) H.Sleeping(160) H.uncuff() diff --git a/code/modules/antagonists/blob/blobstrains/multiplex.dm b/code/modules/antagonists/blob/blobstrains/multiplex.dm index 191da6c51f5..aaebf1d0526 100644 --- a/code/modules/antagonists/blob/blobstrains/multiplex.dm +++ b/code/modules/antagonists/blob/blobstrains/multiplex.dm @@ -11,7 +11,7 @@ var/datum/blobstrain/bts = bt bts.overmind = overmind src.blobstrains += bt - typeshare = (0.8 * length(src.blobstrains)) - (length(src.blobstrains)-1) // 1 is 80%, 2 are 60% etc + typeshare = (0.8 * length(src.blobstrains)) - (length(src.blobstrains)-1) // 1 is 80%, 2 are 60% etc /datum/blobstrain/multiplex/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag, coefficient = 1) //when the blob takes damage, do this for (var/datum/blobstrain/bt in blobstrains) diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index 4df63b04377..a629f4022cf 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -37,15 +37,15 @@ the same goes for Remove(). if you override Remove(), call parent or else your p try_to_sting(user) /** - *Contrary to the name, this proc isn't just used by changeling stings. It handles the activation of the action and the deducation of its cost. - *The order of the proc chain is: - *can_sting(). Should this fail, the process gets aborted early. - *sting_action(). This proc usually handles the actual effect of the action. - *Should sting_action succeed the following will be done: - *sting_feedback(). Produces feedback on the performed action. Don't ask me why this isn't handled in sting_action() - *The deduction of the cost of this power. - *Returns TRUE on a successful activation. - */ + *Contrary to the name, this proc isn't just used by changeling stings. It handles the activation of the action and the deducation of its cost. + *The order of the proc chain is: + *can_sting(). Should this fail, the process gets aborted early. + *sting_action(). This proc usually handles the actual effect of the action. + *Should sting_action succeed the following will be done: + *sting_feedback(). Produces feedback on the performed action. Don't ask me why this isn't handled in sting_action() + *The deduction of the cost of this power. + *Returns TRUE on a successful activation. + */ /datum/action/changeling/proc/try_to_sting(mob/user, mob/target) if(!can_sting(user, target)) return FALSE diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 79587b0e34b..b453c09ec6d 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -161,7 +161,7 @@ /datum/action/innate/cult/blood_spell/emp/Activate() owner.whisper(invocation, language = /datum/language/common) owner.visible_message("[owner]'s hand flashes a bright blue!", \ - "You speak the cursed words, emitting an EMP blast from your hand.") + "You speak the cursed words, emitting an EMP blast from your hand.") empulse(owner, 2, 5) charges-- if(charges<=0) @@ -203,7 +203,7 @@ to_chat(owner, "A ritual dagger appears in your hand!") else owner.visible_message("A ritual dagger appears at [owner]'s feet!", \ - "A ritual dagger materializes at your feet.") + "A ritual dagger materializes at your feet.") SEND_SOUND(owner, sound('sound/effects/magic.ogg', FALSE, 0, 25)) charges-- if(charges <= 0) @@ -305,7 +305,7 @@ button_icon_state = "back" else owner.visible_message("A flash of light shines from [owner]'s hand!", \ - "You invoke the counterspell, revealing nearby runes.") + "You invoke the counterspell, revealing nearby runes.") charges-- owner.whisper(invocation, language = /datum/language/common) SEND_SOUND(owner, sound('sound/magic/enter_blood.ogg',0,1,25)) @@ -824,7 +824,7 @@ to_chat(user, "A [rite.name] appears in your hand!") else user.visible_message("A [rite.name] appears at [user]'s feet!", \ - "A [rite.name] materializes at your feet.") + "A [rite.name] materializes at your feet.") if("Blood Bolt Barrage (300)") if(uses < BLOOD_BARRAGE_COST) to_chat(user, "You need [BLOOD_BARRAGE_COST] charges to perform this rite.") diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index e21cf1bd5ab..e59339437bf 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -58,7 +58,7 @@ user.Paralyze(100) user.dropItemToGround(src, TRUE) user.visible_message("A powerful force shoves [user] away from [target]!", \ - "\"You shouldn't play with sharp things. You'll poke someone's eye out.\"") + "\"You shouldn't play with sharp things. You'll poke someone's eye out.\"") if(ishuman(user)) var/mob/living/carbon/human/H = user H.apply_damage(rand(force/2, force), BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) diff --git a/code/modules/antagonists/cult/ritual.dm b/code/modules/antagonists/cult/ritual.dm index 52bb21018dc..2c05b544e3b 100644 --- a/code/modules/antagonists/cult/ritual.dm +++ b/code/modules/antagonists/cult/ritual.dm @@ -125,7 +125,7 @@ This file contains the cult dagger and rune list code var/obj/structure/emergency_shield/cult/narsie/N = new(B) shields += N user.visible_message("[user] [user.blood_volume ? "cuts open [user.p_their()] arm and begins writing in [user.p_their()] own blood":"begins sketching out a strange design"]!", \ - "You [user.blood_volume ? "slice open your arm and ":""]begin drawing a sigil of the Geometer.") + "You [user.blood_volume ? "slice open your arm and ":""]begin drawing a sigil of the Geometer.") if(user.blood_volume) user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM), wound_bonus = CANT_WOUND) // *cuts arm* *bone explodes* ever have one of those days? var/scribe_mod = initial(rune_to_scribe.scribe_delay) @@ -140,7 +140,7 @@ This file contains the cult dagger and rune list code if(!check_rune_turf(Turf, user)) return user.visible_message("[user] creates a strange circle[user.blood_volume ? " in [user.p_their()] own blood":""].", \ - "You finish drawing the arcane markings of the Geometer.") + "You finish drawing the arcane markings of the Geometer.") for(var/V in shields) var/obj/structure/emergency_shield/S = V if(S && !QDELETED(S)) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index ee19d876c4f..7a23a312d2a 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -258,7 +258,7 @@ structure_check() searches for nearby cultist structures required for the invoca convertee.adjustFireLoss(-(burndamage * 0.75)) convertee.visible_message("[convertee] writhes in pain \ [brutedamage || burndamage ? "even as [convertee.p_their()] wounds heal and close" : "as the markings below [convertee.p_them()] glow a bloody red"]!", \ - "AAAAAAAAAAAAAA-") + "AAAAAAAAAAAAAA-") SSticker.mode.add_cultist(convertee.mind, 1) new /obj/item/melee/cultblade/dagger(get_turf(src)) convertee.mind.special_role = ROLE_CULTIST @@ -830,7 +830,7 @@ structure_check() searches for nearby cultist structures required for the invoca ghosts-- if(new_human) new_human.visible_message("[new_human] suddenly dissolves into bones and ashes.", \ - "Your link to the world fades. Your form breaks apart.") + "Your link to the world fades. Your form breaks apart.") for(var/obj/I in new_human) new_human.dropItemToGround(I, TRUE) new_human.dust() @@ -838,7 +838,7 @@ structure_check() searches for nearby cultist structures required for the invoca affecting = user affecting.add_atom_colour(RUNE_COLOR_DARKRED, ADMIN_COLOUR_PRIORITY) affecting.visible_message("[affecting] freezes statue-still, glowing an unearthly red.", \ - "You see what lies beyond. All is revealed. In this form you find that your voice booms louder and you can mark targets for the entire cult") + "You see what lies beyond. All is revealed. In this form you find that your voice booms louder and you can mark targets for the entire cult") var/mob/dead/observer/G = affecting.ghostize(1) var/datum/action/innate/cult/comm/spirit/CM = new var/datum/action/innate/cult/ghostmark/GM = new @@ -853,7 +853,7 @@ structure_check() searches for nearby cultist structures required for the invoca affecting.forceMove(get_turf(src)) //NO ESCAPE :^) if(affecting.key) affecting.visible_message("[affecting] slowly relaxes, the glow around [affecting.p_them()] dimming.", \ - "You are re-united with your physical form. [src] releases its hold over you.") + "You are re-united with your physical form. [src] releases its hold over you.") affecting.Paralyze(40) break if(affecting.health <= 10) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_effects.dm b/code/modules/antagonists/eldritch_cult/eldritch_effects.dm index 8e520092e5b..2795fb51b64 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_effects.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_effects.dm @@ -107,12 +107,12 @@ pixel_y = -32 /** - * #Reality smash tracker - * - * Stupid fucking list holder, DONT create new ones, it will break the game, this is automnatically created whenever eldritch cultists are created. - * - * Tracks relevant data, generates relevant data, useful tool - */ + * #Reality smash tracker + * + * Stupid fucking list holder, DONT create new ones, it will break the game, this is automnatically created whenever eldritch cultists are created. + * + * Tracks relevant data, generates relevant data, useful tool + */ /datum/reality_smash_tracker ///list of tracked reality smashes var/smashes = 0 @@ -125,10 +125,10 @@ return ..() /** - * Generates a set amount of reality smashes based on the N value - * - * Automatically creates more reality smashes - */ + * Generates a set amount of reality smashes based on the N value + * + * Automatically creates more reality smashes + */ /datum/reality_smash_tracker/proc/Generate() targets++ var/number = max(targets * (4-(targets-1)) - smashes,1) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm index 65ab9076f92..ebeab577bfa 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm @@ -1,11 +1,11 @@ /** - * #Eldritch Knwoledge - * - * Datum that makes eldritch cultist interesting. - * - * Eldritch knowledge aren't instantiated anywhere roundstart, and are initalized and destroyed as the round goes on. - */ + * #Eldritch Knwoledge + * + * Datum that makes eldritch cultist interesting. + * + * Eldritch knowledge aren't instantiated anywhere roundstart, and are initalized and destroyed as the round goes on. + */ /datum/eldritch_knowledge ///Name of the knowledge var/name = "Basic knowledge" @@ -35,49 +35,49 @@ required_atoms = temp_list /** - * What happens when this is assigned to an antag datum - * - * This proc is called whenever a new eldritch knowledge is added to an antag datum - */ + * What happens when this is assigned to an antag datum + * + * This proc is called whenever a new eldritch knowledge is added to an antag datum + */ /datum/eldritch_knowledge/proc/on_gain(mob/user) to_chat(user, "[gain_text]") return /** - * What happens when you loose this - * - * This proc is called whenever antagonist looses his antag datum, put cleanup code in here - */ + * What happens when you loose this + * + * This proc is called whenever antagonist looses his antag datum, put cleanup code in here + */ /datum/eldritch_knowledge/proc/on_lose(mob/user) return /** - * What happens every tick - * - * This proc is called on SSprocess in eldritch cultist antag datum. SSprocess happens roughly every second - */ + * What happens every tick + * + * This proc is called on SSprocess in eldritch cultist antag datum. SSprocess happens roughly every second + */ /datum/eldritch_knowledge/proc/on_life(mob/user) return /** - * Special check for recipes - * - * If you are adding a more complex summoning or something that requires a special check that parses through all the atoms in an area override this. - */ + * Special check for recipes + * + * If you are adding a more complex summoning or something that requires a special check that parses through all the atoms in an area override this. + */ /datum/eldritch_knowledge/proc/recipe_snowflake_check(list/atoms,loc) return TRUE /** - * A proc that handles the code when the mob dies - * - * This proc is primarily used to end any soundloops when the heretic dies - */ + * A proc that handles the code when the mob dies + * + * This proc is primarily used to end any soundloops when the heretic dies + */ /datum/eldritch_knowledge/proc/on_death(mob/user) return /** - * What happens once the recipe is succesfully finished - * - * By default this proc creates atoms from result_atoms list. Override this is you want something else to happen. - */ + * What happens once the recipe is succesfully finished + * + * By default this proc creates atoms from result_atoms list. Override this is you want something else to happen. + */ /datum/eldritch_knowledge/proc/on_finished_recipe(mob/living/user,list/atoms,loc) if(result_atoms.len == 0) return FALSE @@ -88,10 +88,10 @@ return TRUE /** - * Used atom cleanup - * - * Overide this proc if you dont want ALL ATOMS to be destroyed. useful in many situations. - */ + * Used atom cleanup + * + * Overide this proc if you dont want ALL ATOMS to be destroyed. useful in many situations. + */ /datum/eldritch_knowledge/proc/cleanup_atoms(list/atoms) for(var/X in atoms) var/atom/A = X @@ -101,27 +101,27 @@ return /** - * Mansus grasp act - * - * Gives addtional effects to mansus grasp spell - */ + * Mansus grasp act + * + * Gives addtional effects to mansus grasp spell + */ /datum/eldritch_knowledge/proc/on_mansus_grasp(atom/target, mob/user, proximity_flag, click_parameters) return FALSE /** - * Sickly blade act - * - * Gives addtional effects to sickly blade weapon - */ + * Sickly blade act + * + * Gives addtional effects to sickly blade weapon + */ /datum/eldritch_knowledge/proc/on_eldritch_blade(atom/target,mob/user,proximity_flag,click_parameters) return /** - * Sickly blade distant act - * - * Same as [/datum/eldritch_knowledge/proc/on_eldritch_blade] but works on targets that are not in proximity to you. - */ + * Sickly blade distant act + * + * Same as [/datum/eldritch_knowledge/proc/on_eldritch_blade] but works on targets that are not in proximity to you. + */ /datum/eldritch_knowledge/proc/on_ranged_attack_eldritch_blade(atom/target,mob/user,click_parameters) return diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm index 31caa2d44d8..84dce02c1eb 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm @@ -153,12 +153,12 @@ human_user.AdjustAllImmobility(-10) /** - * #Rust spread datum - * - * Simple datum that automatically spreads rust around it - * - * Simple implementation of automatically growing entity - */ + * #Rust spread datum + * + * Simple datum that automatically spreads rust around it + * + * Simple implementation of automatically growing entity + */ /datum/rust_spread var/list/edge_turfs = list() var/list/turfs = list() @@ -196,10 +196,10 @@ /** - * Compile turfs - * - * Recreates all edge_turfs as well as normal turfs. - */ + * Compile turfs + * + * Recreates all edge_turfs as well as normal turfs. + */ /datum/rust_spread/proc/compile_turfs() edge_turfs = list() var/list/removal_list = list() diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm index e98ba564648..2eb25714c07 100644 --- a/code/modules/antagonists/revenant/revenant.dm +++ b/code/modules/antagonists/revenant/revenant.dm @@ -378,7 +378,7 @@ if(!reforming || inert) return ..() user.visible_message("[user] scatters [src] in all directions.", \ - "You scatter [src] across the area. The particles slowly fade away.") + "You scatter [src] across the area. The particles slowly fade away.") user.dropItemToGround(src) scatter() @@ -470,17 +470,19 @@ /datum/objective/revenant_fluff /datum/objective/revenant_fluff/New() - var/list/explanationTexts = list("Assist and exacerbate existing threats at critical moments.", \ - "Impersonate or be worshipped as a god.", \ - "Cause as much chaos and anger as you can without being killed.", \ - "Damage and render as much of the station rusted and unusable as possible.", \ - "Disable and cause malfunctions in as many machines as possible.", \ - "Ensure that any holy weapons are rendered unusable.", \ - "Heed and obey the requests of the dead, provided that carrying them out wouldn't be too inconvenient or self-destructive.", \ - "Make the crew as miserable as possible.", \ - "Make the clown as miserable as possible.", \ - "Make the captain as miserable as possible.", \ - "Prevent the use of energy weapons where possible.") + var/list/explanationTexts = list( + "Assist and exacerbate existing threats at critical moments.", \ + "Impersonate or be worshipped as a god.", \ + "Cause as much chaos and anger as you can without being killed.", \ + "Damage and render as much of the station rusted and unusable as possible.", \ + "Disable and cause malfunctions in as many machines as possible.", \ + "Ensure that any holy weapons are rendered unusable.", \ + "Heed and obey the requests of the dead, provided that carrying them out wouldn't be too inconvenient or self-destructive.", \ + "Make the crew as miserable as possible.", \ + "Make the clown as miserable as possible.", \ + "Make the captain as miserable as possible.", \ + "Prevent the use of energy weapons where possible.", + ) explanation_text = pick(explanationTexts) ..() diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm index 9159983e54b..631d119310a 100644 --- a/code/modules/antagonists/slaughter/slaughter.dm +++ b/code/modules/antagonists/slaughter/slaughter.dm @@ -165,7 +165,7 @@ if(M != user) return ..() user.visible_message("[user] raises [src] to [user.p_their()] mouth and tears into it with [user.p_their()] teeth!", \ - "An unnatural hunger consumes you. You raise [src] your mouth and devour it!") + "An unnatural hunger consumes you. You raise [src] your mouth and devour it!") playsound(user, 'sound/magic/demon_consume.ogg', 50, TRUE) for(var/obj/effect/proc_holder/spell/knownspell in user.mind.spell_list) if(knownspell.type == /obj/effect/proc_holder/spell/bloodcrawl) @@ -173,7 +173,7 @@ qdel(src) return user.visible_message("[user]'s eyes flare a deep crimson!", \ - "You feel a strange power seep into your body... you have absorbed the demon's blood-travelling powers!") + "You feel a strange power seep into your body... you have absorbed the demon's blood-travelling powers!") user.temporarilyRemoveItemFromInventory(src, TRUE) src.Insert(user) //Consuming the heart literally replaces your heart with a demon heart. H A R D C O R E diff --git a/code/modules/antagonists/space_ninja/space_ninja.dm b/code/modules/antagonists/space_ninja/space_ninja.dm index 23d7e1ff972..0eba1761fb2 100644 --- a/code/modules/antagonists/space_ninja/space_ninja.dm +++ b/code/modules/antagonists/space_ninja/space_ninja.dm @@ -21,28 +21,28 @@ remove_antag_hud(antag_hud_type, ninja) /** - * Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum. - * - * Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum. - * Arguments: - * * ninja - The human to receive the gear - * * Returns a proc call on the given human which will equip them with all the gear. - */ + * Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum. + * + * Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum. + * Arguments: + * * ninja - The human to receive the gear + * * Returns a proc call on the given human which will equip them with all the gear. + */ /datum/antagonist/ninja/proc/equip_space_ninja(mob/living/carbon/human/ninja = owner.current) return ninja.equipOutfit(/datum/outfit/ninja) /** - * Proc that adds the proper memories to the antag datum - * - * Proc that adds the ninja starting memories to the owner of the antagonist datum. - */ + * Proc that adds the proper memories to the antag datum + * + * Proc that adds the ninja starting memories to the owner of the antagonist datum. + */ /datum/antagonist/ninja/proc/addMemories() antag_memory += "I am an elite mercenary of the mighty Spider Clan. A SPACE NINJA!
" antag_memory += "Surprise is my weapon. Shadows are my armor. Without them, I am nothing. (//initialize your suit by clicking the initialize UI button, to use abilities like stealth)!
" /datum/objective/cyborg_hijack explanation_text = "Use your gloves to convert at least one cyborg to aide you in sabotaging the station." - + /datum/objective/door_jack ///How many doors that need to be opened using the gloves to pass the objective var/doors_required = 0 @@ -52,32 +52,32 @@ /datum/objective/security_scramble explanation_text = "Use your gloves on a security console to set everyone to arrest at least once. Note that the AI will be alerted once you begin!" - + /datum/objective/terror_message explanation_text = "Use your gloves on a communication console in order to bring another threat to the station. Note that the AI will be alerted once you begin!" /** - * Proc that adds all the ninja's objectives to the antag datum. - * - * Proc that adds all the ninja's objectives to the antag datum. Called when the datum is gained. - */ + * Proc that adds all the ninja's objectives to the antag datum. + * + * Proc that adds all the ninja's objectives to the antag datum. Called when the datum is gained. + */ /datum/antagonist/ninja/proc/addObjectives() //Cyborg Hijack: Flag set to complete in the DrainAct in ninjaDrainAct.dm var/datum/objective/hijack = new /datum/objective/cyborg_hijack() objectives += hijack - + //Research stealing var/datum/objective/download/research = new /datum/objective/download() research.owner = owner research.gen_amount_goal() objectives += research - + //Door jacks, flag will be set to complete on when the last door is hijacked var/datum/objective/door_jack/doorobjective = new /datum/objective/door_jack() doorobjective.doors_required = rand(15,40) doorobjective.explanation_text = "Use your gloves to doorjack [doorobjective.doors_required] airlocks on the station." objectives += doorobjective - + //Explosive plant, the bomb will register its completion on priming var/datum/objective/plant_explosive/bombobjective = new /datum/objective/plant_explosive() for(var/sanity in 1 to 100) // 100 checks at most. diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index f709bf365da..00522ac7743 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -100,7 +100,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module)) /// The actual ranged proc holder. /obj/effect/proc_holder/ranged_ai - /// Appears when the user activates the ability + /// Appears when the user activates the ability var/enable_text = "Hello World!" /// Appears when the user deactivates the ability var/disable_text = "Goodbye Cruel World!" @@ -133,7 +133,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module)) /// Sound played when an ability is unlocked var/unlock_sound - /// Applies upgrades +/// Applies upgrades /datum/ai_module/proc/upgrade(mob/living/silicon/ai/AI) return diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 020fa6b59eb..c709fe05e0b 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -387,9 +387,9 @@ to_chat(victim, "You feel a dark presence from [A.name].") /obj/item/voodoo/suicide_act(mob/living/carbon/user) - user.visible_message("[user] links the voodoo doll to [user.p_them()]self and sits on it, infinitely crushing [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") - user.gib() - return(BRUTELOSS) + user.visible_message("[user] links the voodoo doll to [user.p_them()]self and sits on it, infinitely crushing [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") + user.gib() + return(BRUTELOSS) /obj/item/voodoo/fire_act(exposed_temperature, exposed_volume) if(target) diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 884958a7242..0ff9a22c863 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -691,16 +691,16 @@ dat += {" - + body { font-size: 80%; font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif; } + ul#tabs { list-style-type: none; margin: 30px 0 0 0; padding: 0 0 0.3em 0; } + ul#tabs li { display: inline; } + ul#tabs li a { color: #42454a; background-color: #dedbde; border: 1px solid #c9c3ba; border-bottom: none; padding: 0.3em; text-decoration: none; } + ul#tabs li a:hover { background-color: #f1f0ee; } + ul#tabs li a.selected { color: #000; background-color: #f1f0ee; font-weight: bold; padding: 0.7em 0.3em 0.38em 0.3em; } + div.tabContent { border: 1px solid #c9c3ba; padding: 0.5em; background-color: #f1f0ee; } + div.tabContent.hide { display: none; } + + "} dat += {"[content]"} return dat diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 61967805c59..65f722a0ce1 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -123,16 +123,16 @@ set_light_on(FALSE) /** - * Handles actual flashing part of the attack - * - * This proc is awful in every sense of the way, someone should definately refactor this whole code. - * Arguments: - * * M - Victim - * * user - Attacker - * * power - handles the amount of confusion it gives you - * * targeted - determines if it was aoe or targeted - * * generic_message - checks if it should display default message. - */ + * Handles actual flashing part of the attack + * + * This proc is awful in every sense of the way, someone should definately refactor this whole code. + * Arguments: + * * M - Victim + * * user - Attacker + * * power - handles the amount of confusion it gives you + * * targeted - determines if it was aoe or targeted + * * generic_message - checks if it should display default message. + */ /obj/item/assembly/flash/proc/flash_carbon(mob/living/carbon/M, mob/user, power = 15, targeted = TRUE, generic_message = FALSE) if(!istype(M)) return @@ -186,13 +186,13 @@ M.add_confusion(min(power, diff)) /** - * Handles the directionality of the attack - * - * Returns the amount of 'deviation', 0 being facing eachother, 1 being sideways, 2 being facing away from eachother. - * Arguments: - * * victim - Victim - * * attacker - Attacker - */ + * Handles the directionality of the attack + * + * Returns the amount of 'deviation', 0 being facing eachother, 1 being sideways, 2 being facing away from eachother. + * Arguments: + * * victim - Victim + * * attacker - Attacker + */ /obj/item/assembly/flash/proc/calculate_deviation(mob/victim, atom/attacker) // Tactical combat emote-spinning should not counter intended gameplay mechanics. // This trumps same-loc checks to discourage floor spinning in general to counter flashes. @@ -271,12 +271,12 @@ AOE_flash() /** - * Converts the victim to revs - * - * Arguments: - * * victim - Victim - * * aggressor - Attacker - */ + * Converts the victim to revs + * + * Arguments: + * * victim - Victim + * * aggressor - Attacker + */ /obj/item/assembly/flash/proc/terrible_conversion_proc(mob/living/carbon/victim, mob/aggressor) if(!istype(victim) || victim.stat == DEAD) return diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index e2981610769..e6e4ed22d8f 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -85,7 +85,7 @@ which_hand = BODY_ZONE_PRECISE_R_HAND triggered(user, which_hand) user.visible_message("[user] accidentally sets off [src], breaking their fingers.", \ - "You accidentally trigger [src]!") + "You accidentally trigger [src]!") return to_chat(user, "You disarm [src].") armed = !armed @@ -102,7 +102,7 @@ which_hand = BODY_ZONE_PRECISE_R_HAND triggered(user, which_hand) user.visible_message("[user] accidentally sets off [src], breaking their fingers.", \ - "You accidentally trigger [src]!") + "You accidentally trigger [src]!") return return ..() @@ -117,7 +117,7 @@ if(H.m_intent == MOVE_INTENT_RUN) triggered(H) H.visible_message("[H] accidentally steps on [src].", \ - "You accidentally step on [src]") + "You accidentally step on [src]") else if(ismouse(MM) || israt(MM) || isregalrat(MM)) triggered(MM) else if(AM.density) // For mousetrap grenades, set off by anything heavy diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index 991cb5de660..a072f0f9d59 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -16,10 +16,12 @@ var/listening = FALSE var/recorded = "" //the activation message var/mode = INCLUSIVE_MODE - var/static/list/modes = list("inclusive", - "exclusive", - "recognizer", - "voice sensor") + var/static/list/modes = list( + "inclusive", + "exclusive", + "recognizer", + "voice sensor", + ) drop_sound = 'sound/items/handling/component_drop.ogg' pickup_sound = 'sound/items/handling/component_pickup.ogg' diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm index 3dabf693d7e..5fd746ad2b1 100644 --- a/code/modules/atmospherics/environmental/LINDA_system.dm +++ b/code/modules/atmospherics/environmental/LINDA_system.dm @@ -112,9 +112,9 @@ SSair.add_to_active(src,command) /atom/movable/proc/move_update_air(turf/T) - if(isturf(T)) - T.air_update_turf(1) - air_update_turf(1) + if(isturf(T)) + T.air_update_turf(1) + air_update_turf(1) /atom/proc/atmos_spawn_air(text) //because a lot of people loves to copy paste awful code lets just make an easy proc to spawn your plasma fires var/turf/open/T = get_turf(src) diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index 20fb522d66e..7a1845d8d3d 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -1,18 +1,21 @@ - /* +/* What are the archived variables for? - Calculations are done using the archived variables with the results merged into the regular variables. - This prevents race conditions that arise based on the order of tile processing. +Calculations are done using the archived variables with the results merged into the regular variables. +This prevents race conditions that arise based on the order of tile processing. */ #define MINIMUM_HEAT_CAPACITY 0.0003 #define MINIMUM_MOLE_COUNT 0.01 #define MOLAR_ACCURACY 1E-7 -#define QUANTIZE(variable) (round((variable), (MOLAR_ACCURACY)))/*I feel the need to document what happens here. Basically this is used - to catch most rounding errors, however its previous value made it so that - once gases got hot enough, most procedures wouldn't occur due to the fact that the mole - counts would get rounded away. Thus, we lowered it a few orders of magnitude - Edit: As far as I know this might have a bug caused by round(). When it has a second arg it will round up. - So for instance round(0.5, 1) == 1. Trouble is I haven't found any instances of it causing a bug, - and any attempts to fix it just killed atmos. I leave this to a greater man then I*/ +/** + *I feel the need to document what happens here. Basically this is used + *catch most rounding errors, however its previous value made it so that + *once gases got hot enough, most procedures wouldn't occur due to the fact that the mole + *counts would get rounded away. Thus, we lowered it a few orders of magnitude + *Edit: As far as I know this might have a bug caused by round(). When it has a second arg it will round up. + *So for instance round(0.5, 1) == 1. Trouble is I haven't found any instances of it causing a bug, + *and any attempts to fix it just killed atmos. I leave this to a greater man then I + */ +#define QUANTIZE(variable) (round((variable), (MOLAR_ACCURACY))) GLOBAL_LIST_INIT(meta_gas_info, meta_gas_list()) //see ATMOSPHERICS/gas_types.dm GLOBAL_LIST_INIT(gaslist_cache, init_gaslist_cache()) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 09ec7ca281f..e5836c24eaf 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -4,10 +4,10 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation) GLOBAL_LIST_EMPTY(gateway_destinations) /** - * Corresponds to single entry in gateway control. - * - * Will NOT be added automatically to GLOB.gateway_destinations list. - */ + * Corresponds to single entry in gateway control. + * + * Will NOT be added automatically to GLOB.gateway_destinations list. + */ /datum/gateway_destination var/name = "Unknown Destination" var/wait = 0 /// How long after roundstart this destination becomes active diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 7d4245d637b..0ad79fc8df8 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -263,7 +263,7 @@ /obj/item/paper/crumpled/ruins/snowdin/foreshadowing name = "scribbled note" info = {"Something's gone VERY wrong here. Jouslen has been mumbling about some weird shit in his cabin during the night and he seems always tired when we're working. I tried to confront him about it and he blew up on me, - telling me to mind my own business. I reported him to the officer, said he'd look into it. We only got another 2 months here before we're pulled for another assignment, so this shit can't go any quicker..."} + telling me to mind my own business. I reported him to the officer, said he'd look into it. We only got another 2 months here before we're pulled for another assignment, so this shit can't go any quicker..."} /obj/item/paper/crumpled/ruins/snowdin/misc1 name = "Mission Prologue" @@ -273,8 +273,8 @@ /obj/item/paper/crumpled/ruins/snowdin/dontdeadopeninside name = "scribbled note" info = {"If you're reading this: GET OUT! The mining go on here has unearthed something that was once-trapped by the layers of ice on this hell-hole. The overseer and Jouslen have gone missing. The officer is - keeping the rest of us on lockdown and I swear to god I keep hearing strange noises outside the walls at night. The gateway link has gone dead and without a supply of resources from Central, we're left - for dead here. We haven't heard anything back from the mining squad either, so I can only assume whatever the fuck they unearthed got them first before coming for us. I don't want to die here..."} + keeping the rest of us on lockdown and I swear to god I keep hearing strange noises outside the walls at night. The gateway link has gone dead and without a supply of resources from Central, we're left + for dead here. We haven't heard anything back from the mining squad either, so I can only assume whatever the fuck they unearthed got them first before coming for us. I don't want to die here..."} /obj/item/paper/fluff/awaymissions/snowdin/saw_usage name = "SAW Usage" @@ -289,19 +289,19 @@ /obj/item/paper/fluff/awaymissions/snowdin/profile/overseer name = "Personnel Record AOP#01" info = {"
Personnel Log


Name:Caleb Reed
Age:38
Gender:Male
On-Site Profession:Outpost Overseer

Information

Caleb Reed lead several expeditions - among uncharted planets in search of plasma for Nanotrasen, scouring from hot savanas to freezing arctics. Track record is fairly clean with only incidient including the loss of two researchers during the - expedition of _______, where mis-used of explosive ordinance for tunneling causes a cave-in."} + among uncharted planets in search of plasma for Nanotrasen, scouring from hot savanas to freezing arctics. Track record is fairly clean with only incidient including the loss of two researchers during the + expedition of _______, where mis-used of explosive ordinance for tunneling causes a cave-in."} /obj/item/paper/fluff/awaymissions/snowdin/profile/sec1 name = "Personnel Record AOP#02" info = {"
Personnel Log


Name:James Reed
Age:43
Gender:Male
On-Site Profession:Outpost Security

Information

James Reed has been a part - of Nanotrasen's security force for over 20 years, first joining in 22XX. A clean record and unwavering loyalty to the corperation through numerous deployments to various sites makes him a valuable asset to Natotrasen - when it comes to keeping the peace while prioritizing Nanotrasen privacy matters. "} + of Nanotrasen's security force for over 20 years, first joining in 22XX. A clean record and unwavering loyalty to the corperation through numerous deployments to various sites makes him a valuable asset to Natotrasen + when it comes to keeping the peace while prioritizing Nanotrasen privacy matters. "} /obj/item/paper/fluff/awaymissions/snowdin/profile/hydro1 name = "Personnel Record AOP#03" info = {"
Personnel Log


Name:Katherine Esterdeen
Age:27
Gender:Female
On-Site Profession:Outpost Botanist

Information

Katherine Esterdeen is a recent - graduate with a major in Botany and a PH.D in Ecology. Having a clean record and eager to work, Esterdeen seems to be the right fit for maintaining plants in the middle of nowhere."} + graduate with a major in Botany and a PH.D in Ecology. Having a clean record and eager to work, Esterdeen seems to be the right fit for maintaining plants in the middle of nowhere."} /obj/item/paper/fluff/awaymissions/snowdin/profile/engi1 name = "Personnel Record AOP#04" @@ -329,12 +329,12 @@ /obj/item/paper/fluff/awaymissions/snowdin/mining name = "Assignment Notice" info = {"This cold-ass planet is the new-age equivalent of striking gold. Huge deposits of plasma and literal streams of plasma run through the caverns under all this ice and we're here to mine it all.\ - Nanotrasen pays by the pound, so get minin' boys!"} + Nanotrasen pays by the pound, so get minin' boys!"} /obj/item/paper/crumpled/ruins/snowdin/lootstructures name = "scribbled note" info = {"There's some ruins scattered along the cavern, their walls seem to be made of some sort of super-condensed mixture of ice and snow. We've already barricaded up the ones we've found so far, - since we keep hearing some strange noises from inside. Besides, what sort of fool would wrecklessly run into ancient ruins full of monsters for some old gear, anyway?"} + since we keep hearing some strange noises from inside. Besides, what sort of fool would wrecklessly run into ancient ruins full of monsters for some old gear, anyway?"} /obj/item/paper/crumpled/ruins/snowdin/shovel name = "shoveling duties" diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm index 76511ad3195..0c6f6197a4e 100644 --- a/code/modules/awaymissions/mission_code/wildwest.dm +++ b/code/modules/awaymissions/mission_code/wildwest.dm @@ -31,7 +31,7 @@ requires_power = FALSE - ////////// wildwest papers +///////// wildwest papers /obj/item/paper/fluff/awaymissions/wildwest/grinder info = "meat grinder requires sacri" diff --git a/code/modules/cargo/bounty.dm b/code/modules/cargo/bounty.dm index b5c9ffe6982..f03f4c75ca0 100644 --- a/code/modules/cargo/bounty.dm +++ b/code/modules/cargo/bounty.dm @@ -35,8 +35,8 @@ GLOBAL_LIST_EMPTY(bounties_list) return /** When randomly generating the bounty list, duplicate bounties must be avoided. - * This proc is used to determine if two bounties are duplicates, or incompatible in general. - */ + * This proc is used to determine if two bounties are duplicates, or incompatible in general. + */ /datum/bounty/proc/compatible_with(other_bounty) return TRUE @@ -47,8 +47,8 @@ GLOBAL_LIST_EMPTY(bounties_list) reward = round(reward * scale_reward) /** This proc is called when the shuttle docks at CentCom. - * It handles items shipped for bounties. - */ + * It handles items shipped for bounties. + */ /proc/bounty_ship_item_and_contents(atom/movable/AM, dry_run=FALSE) if(!GLOB.bounties_list.len) setup_bounties() @@ -78,9 +78,9 @@ GLOBAL_LIST_EMPTY(bounties_list) return TRUE /** Returns a new bounty of random type, but does not add it to GLOB.bounties_list. - * - * *Guided determines what specific catagory of bounty should be chosen. - */ + * + * *Guided determines what specific catagory of bounty should be chosen. + */ /proc/random_bounty(guided = 0) var/bounty_num if(guided && (guided != CIV_JOB_RANDOM)) diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index 0acf30c65b1..9db1ec2832e 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -1,22 +1,22 @@ /* How it works: - The shuttle arrives at CentCom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored. +The shuttle arrives at CentCom dock and calls sell(), which recursively loops through all the shuttle contents that are unanchored. - Each object in the loop is checked for applies_to() of various export datums, except the invalid ones. +Each object in the loop is checked for applies_to() of various export datums, except the invalid ones. */ /* The rule in figuring out item export cost: - Export cost of goods in the shipping crate must be always equal or lower than: - packcage cost - crate cost - manifest cost - Crate cost is 500cr for a regular plasteel crate and 100cr for a large wooden one. Manifest cost is always 200cr. - This is to avoid easy cargo points dupes. +Export cost of goods in the shipping crate must be always equal or lower than: + packcage cost - crate cost - manifest cost +Crate cost is 500cr for a regular plasteel crate and 100cr for a large wooden one. Manifest cost is always 200cr. +This is to avoid easy cargo points dupes. Credit dupes that require a lot of manual work shouldn't be removed, unless they yield too much profit for too little work. - For example, if some player buys metal and glass sheets and uses them to make and sell reinforced glass: +For example, if some player buys metal and glass sheets and uses them to make and sell reinforced glass: - 100 glass + 50 metal -> 100 reinforced glass - (1500cr -> 1600cr) +100 glass + 50 metal -> 100 reinforced glass +1500cr -> 1600cr) - then the player gets the profit from selling his own wasted time. +Then the player gets the profit from selling his own wasted time. */ // Simple holder datum to pass export results around @@ -126,13 +126,13 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they return TRUE /** - * Calculates the exact export value of the object, while factoring in all the relivant variables. - * - * Called only once, when the object is actually sold by the datum. - * Adds item's cost and amount to the current export cycle. - * get_cost, get_amount and applies_to do not neccesary mean a successful sale. - * - */ + * Calculates the exact export value of the object, while factoring in all the relivant variables. + * + * Called only once, when the object is actually sold by the datum. + * Adds item's cost and amount to the current export cycle. + * get_cost, get_amount and applies_to do not neccesary mean a successful sale. + * + */ /datum/export/proc/sell_object(obj/O, datum/export_report/report, dry_run = TRUE, allowed_categories = EXPORT_CARGO , apply_elastic = TRUE) ///This is the value of the object, as derived from export datums. var/the_cost = get_cost(O, allowed_categories , apply_elastic) diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm index d16b8434153..fa68908999e 100644 --- a/code/modules/client/client_colour.dm +++ b/code/modules/client/client_colour.dm @@ -4,17 +4,17 @@ #define PRIORITY_LOW 1000 /** - * Client Colour Priority System By RemieRichards (then refactored by another contributor) - * A System that gives finer control over which client.colour value to display on screen - * so that the "highest priority" one is always displayed as opposed to the default of - * "whichever was set last is displayed". - * - * Refactored to allow multiple overlapping client colours - * (e.g. wearing blue glasses under a yellow visor, even though the result is a little unsatured.) - * As well as some support for animated colour transitions. - * - * Define subtypes of this datum - */ + * Client Colour Priority System By RemieRichards (then refactored by another contributor) + * A System that gives finer control over which client.colour value to display on screen + * so that the "highest priority" one is always displayed as opposed to the default of + * "whichever was set last is displayed". + * + * Refactored to allow multiple overlapping client colours + * (e.g. wearing blue glasses under a yellow visor, even though the result is a little unsatured.) + * As well as some support for animated colour transitions. + * + * Define subtypes of this datum + */ /datum/client_colour ///Any client.color-valid value var/colour = "" @@ -54,9 +54,9 @@ owner.update_client_colour() /** - * Adds an instance of colour_type to the mob's client_colours list - * colour_type - a typepath (subtyped from /datum/client_colour) - */ + * Adds an instance of colour_type to the mob's client_colours list + * colour_type - a typepath (subtyped from /datum/client_colour) + */ /mob/proc/add_client_colour(colour_type) if(!ispath(colour_type, /datum/client_colour) || QDELING(src)) return @@ -70,9 +70,9 @@ return colour /** - * Removes an instance of colour_type from the mob's client_colours list - * colour_type - a typepath (subtyped from /datum/client_colour) - */ + * Removes an instance of colour_type from the mob's client_colours list + * colour_type - a typepath (subtyped from /datum/client_colour) + */ /mob/proc/remove_client_colour(colour_type) if(!ispath(colour_type, /datum/client_colour)) return @@ -84,11 +84,11 @@ break /** - * Gets the resulting colour/tone from client_colours. - * In the case of multiple colours, they'll be converted to RGBA matrices for compatibility, - * summed together, and then each element divided by the number of matrices. (except we do this with lists because byond) - * target is the target variable. - */ + * Gets the resulting colour/tone from client_colours. + * In the case of multiple colours, they'll be converted to RGBA matrices for compatibility, + * summed together, and then each element divided by the number of matrices. (except we do this with lists because byond) + * target is the target variable. + */ #define MIX_CLIENT_COLOUR(target)\ var/_our_colour;\ var/_number_colours = 0;\ @@ -125,9 +125,9 @@ /** - * Resets the mob's client.color to null, and then reapplies a new color based - * on the client_colour datums it currently has. - */ + * Resets the mob's client.color to null, and then reapplies a new color based + * on the client_colour datums it currently has. + */ /mob/proc/update_client_colour() if(!client) return diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index becec13f370..9167476899b 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -11,14 +11,14 @@ show_verb_panel = FALSE ///Contains admin info. Null if client is not an admin. var/datum/admins/holder = null - ///Needs to implement InterceptClickOn(user,params,atom) proc + ///Needs to implement InterceptClickOn(user,params,atom) proc var/datum/click_intercept = null ///Used for admin AI interaction var/AI_Interact = FALSE - ///Used to cache this client's bans to save on DB queries + ///Used to cache this client's bans to save on DB queries var/ban_cache = null - ///Contains the last message sent by this client - used to protect against copy-paste spamming. + ///Contains the last message sent by this client - used to protect against copy-paste spamming. var/last_message = "" ///contins a number of how many times a message identical to last_message was sent. var/last_message_count = 0 @@ -59,7 +59,7 @@ //////////////////////////////////// ///Used to determine how old the account is - in days. var/player_age = -1 - ///Date that this account was first seen in the server + ///Date that this account was first seen in the server var/player_join_date = null ///So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip var/related_accounts_ip = "Requires database" @@ -89,11 +89,11 @@ var/lastping = 0 ///Average ping of the client var/avgping = 0 - ///world.time they connected + ///world.time they connected var/connection_time - ///world.realtime they connected + ///world.realtime they connected var/connection_realtime - ///world.timeofday they connected + ///world.timeofday they connected var/connection_timeofday ///If the client is currently in player preferences @@ -103,10 +103,10 @@ ///Used for limiting the rate of clicks sends by the client to avoid abuse var/list/clicklimiter - ///lazy list of all credit object bound to this client + ///lazy list of all credit object bound to this client var/list/credits - ///these persist between logins/logouts during the same round. + ///these persist between logins/logouts during the same round. var/datum/player_details/player_details ///Should only be a key-value list of north/south/east/west = atom/movable/screen. @@ -200,9 +200,9 @@ ** These next two vars are to apply movement for keypresses and releases made while move delayed. ** Because discarding that input makes the game less responsive. */ - /// On next move, add this dir to the move that would otherwise be done + /// On next move, add this dir to the move that would otherwise be done var/next_move_dir_add - /// On next move, subtract this dir from the move that would otherwise be done + /// On next move, subtract this dir from the move that would otherwise be done var/next_move_dir_sub /// If the client is currently under the restrictions of the interview system diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 5a85935ad44..33b7c636cc9 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -724,7 +724,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( sleep(15 SECONDS) //Longer sleep here since this would trigger if a client tries to reconnect manually because the inital reconnect failed - //we sleep after telling the client to reconnect, so if we still exist something is up + //we sleep after telling the client to reconnect, so if we still exist something is up log_access("Forced disconnect: [key] [computer_id] [address] - CID randomizer check") qdel(src) @@ -943,14 +943,14 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( view_size.setTo(clamp(change, min, max), clamp(change, min, max)) /** - * Updates the keybinds for special keys - * - * Handles adding macros for the keys that need it - * And adding movement keys to the clients movement_keys list - * At the time of writing this, communication(OOC, Say, IC) require macros - * Arguments: - * * direct_prefs - the preference we're going to get keybinds from - */ + * Updates the keybinds for special keys + * + * Handles adding macros for the keys that need it + * And adding movement keys to the clients movement_keys list + * At the time of writing this, communication(OOC, Say, IC) require macros + * Arguments: + * * direct_prefs - the preference we're going to get keybinds from + */ /client/proc/update_special_keybinds(datum/preferences/direct_prefs) var/datum/preferences/D = prefs || direct_prefs if(!D?.key_bindings) @@ -1076,8 +1076,8 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( to_chat(src, "Statpanel failed to load, click here to reload the panel ") /** - * Initializes dropdown menus on client - */ + * Initializes dropdown menus on client + */ /client/proc/initialize_menus() var/list/topmenus = GLOB.menulist[/datum/verbs/menu] for (var/thing in topmenus) diff --git a/code/modules/client/verbs/reset_held_keys.dm b/code/modules/client/verbs/reset_held_keys.dm index 12efee639ec..d5a25044090 100644 --- a/code/modules/client/verbs/reset_held_keys.dm +++ b/code/modules/client/verbs/reset_held_keys.dm @@ -1,8 +1,8 @@ /** - * Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck. - * - * Hardcoded to the ESC key. - */ + * Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck. + * + * Hardcoded to the ESC key. + */ /client/verb/reset_held_keys() set name = "Reset Held Keys" set hidden = TRUE diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 289b6571279..3344338c4fe 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -95,15 +95,15 @@ var/obj/item/organ/brain/userbrain = getorgan(/obj/item/organ/brain) if(userbrain?.damage >= 75) suicide_message = "[src] pulls both arms outwards in front of [p_their()] chest and pumps them behind [p_their()] back, repeats this motion in a smaller range of motion \ - down to [p_their()] hips two times once more all while sliding [p_their()] legs in a faux walking motion, claps [p_their()] hands together \ - in front of [p_them()] while both [p_their()] knees knock together, pumps [p_their()] arms downward, pronating [p_their()] wrists and abducting \ - [p_their()] fingers outward while crossing [p_their()] legs back and forth, repeats this motion again two times while keeping [p_their()] shoulders low\ - and hunching over, does finger guns with right hand and left hand bent on [p_their()] hip while looking directly forward and putting [p_their()] left leg forward then\ - crossing [p_their()] arms and leaning back a little while bending [p_their()] knees at an angle! It looks like [p_theyre()] trying to commit suicide." + down to [p_their()] hips two times once more all while sliding [p_their()] legs in a faux walking motion, claps [p_their()] hands together \ + in front of [p_them()] while both [p_their()] knees knock together, pumps [p_their()] arms downward, pronating [p_their()] wrists and abducting \ + [p_their()] fingers outward while crossing [p_their()] legs back and forth, repeats this motion again two times while keeping [p_their()] shoulders low\ + and hunching over, does finger guns with right hand and left hand bent on [p_their()] hip while looking directly forward and putting [p_their()] left leg forward then\ + crossing [p_their()] arms and leaning back a little while bending [p_their()] knees at an angle! It looks like [p_theyre()] trying to commit suicide." else suicide_message = pick("[src] is hugging [p_them()]self to death! It looks like [p_theyre()] trying to commit suicide.", \ - "[src] is high-fiving [p_them()]self to death! It looks like [p_theyre()] trying to commit suicide.", \ - "[src] is getting too high on life! It looks like [p_theyre()] trying to commit suicide.") + "[src] is high-fiving [p_them()]self to death! It looks like [p_theyre()] trying to commit suicide.", \ + "[src] is getting too high on life! It looks like [p_theyre()] trying to commit suicide.") else suicide_message = pick("[src] is attempting to bite [p_their()] tongue off! It looks like [p_theyre()] trying to commit suicide.", \ "[src] is jamming [p_their()] thumbs into [p_their()] eye sockets! It looks like [p_theyre()] trying to commit suicide.", \ @@ -197,7 +197,7 @@ if(confirm == "Yes") var/turf/T = get_turf(src.loc) T.visible_message("[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", null, \ - "[src] bleeps electronically.") + "[src] bleeps electronically.") suicide_log() diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index e008dbc0c4c..e09ab938c0d 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -842,8 +842,8 @@ button.maptext = "[COOLDOWN_TIMELEFT(src, usable_cooldown) * 0.1]" /** - * Clears the currently mimic'd skillchip, if any exists. - */ + * Clears the currently mimic'd skillchip, if any exists. + */ /datum/action/item_action/chameleon/change/skillchip/proc/clear_mimic_chip() if(skillchip_mimic) skillchip_mimic.on_removal(FALSE) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 43fb3b25631..1c518d68661 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -132,18 +132,18 @@ to_chat(user, "You fix the damage on [src].") /** - * 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. - * Also if limb_integrity is 0, then this clothing doesn't have bodypart damage enabled so skip it. - * - * Arguments: - * * def_zone: The bodypart zone in question - * * damage_amount: Incoming damage - * * damage_type: BRUTE or BURN - * * armour_penetration: If the attack had armour_penetration - */ + * 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. + * Also if limb_integrity is 0, then this clothing doesn't have bodypart damage enabled so skip it. + * + * Arguments: + * * def_zone: The bodypart zone in question + * * damage_amount: Incoming damage + * * damage_type: BRUTE or BURN + * * armour_penetration: If the attack had armour_penetration + */ /obj/item/clothing/proc/take_damage_zone(def_zone, damage_amount, damage_type, armour_penetration) if(!def_zone || !limb_integrity || (initial(body_parts_covered) in GLOB.bitflags)) // the second check sees if we only cover one bodypart anyway and don't need to bother with this return @@ -158,16 +158,16 @@ 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] - * - * 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 - * order to equip it again. Also note we only consider it damaged if there's more than one bodypart disabled. - * - * Arguments: - * * def_zone: The bodypart zone we're disabling - * * damage_type: Only really relevant for the verb for describing the breaking, and maybe obj_destruction() - */ + * 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 + * order to equip it again. Also note we only consider it damaged if there's more than one bodypart disabled. + * + * Arguments: + * * def_zone: The bodypart zone we're disabling + * * damage_type: Only really relevant for the verb for describing the breaking, and maybe obj_destruction() + */ /obj/item/clothing/proc/disable_zone(def_zone, damage_type) var/list/covered_limbs = body_parts_covered2organ_names(body_parts_covered) if(!(def_zone in covered_limbs)) @@ -320,13 +320,13 @@ to_chat(usr, "[readout.Join()]") /** - * Rounds armor_value to nearest 10, divides it by 10 and then expresses it in roman numerals up to 10 - * - * Rounds armor_value to nearest 10, divides it by 10 - * and then expresses it in roman numerals up to 10 - * Arguments: - * * armor_value - Number we're converting - */ + * Rounds armor_value to nearest 10, divides it by 10 and then expresses it in roman numerals up to 10 + * + * Rounds armor_value to nearest 10, divides it by 10 + * and then expresses it in roman numerals up to 10 + * Arguments: + * * armor_value - Number we're converting + */ /obj/item/clothing/proc/armor_to_protection_class(armor_value) armor_value = round(armor_value,10) / 10 switch (armor_value) @@ -386,7 +386,7 @@ SEE_MOBS // can see all mobs, no matter what SEE_OBJS // can see all objs, no matter what SEE_TURFS // can see all turfs (and areas), no matter what SEE_PIXELS// if an object is located on an unlit area, but some of its pixels are - // in a lit area (via pixel_x,y or smooth movement), can see those pixels + // in a lit area (via pixel_x,y or smooth movement), can see those pixels BLIND // can't see anything */ diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 98f4be11299..68af6bacf78 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -94,15 +94,15 @@ return FALSE /** - * adjust_laces adjusts whether our shoes (assuming they can_be_tied) and tied, untied, or knotted - * - * In addition to setting the state, it will deal with getting rid of alerts if they exist, as well as registering and unregistering the stepping signals - * - * Arguments: - * * - * * state: SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED, depending on what you want them to become - * * user: used to check to see if we're the ones unknotting our own laces - */ + * adjust_laces adjusts whether our shoes (assuming they can_be_tied) and tied, untied, or knotted + * + * In addition to setting the state, it will deal with getting rid of alerts if they exist, as well as registering and unregistering the stepping signals + * + * Arguments: + * * + * * state: SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED, depending on what you want them to become + * * user: used to check to see if we're the ones unknotting our own laces + */ /obj/item/clothing/shoes/proc/adjust_laces(state, mob/user) if(!can_be_tied) return @@ -122,14 +122,14 @@ RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, .proc/check_trip, override=TRUE) /** - * handle_tying deals with all the actual tying/untying/knotting, inferring your intent from who you are in relation to the state of the laces - * - * If you're the wearer, you want them to move towards tied-ness (knotted -> untied -> tied). If you're not, you're pranking them, so you're moving towards knotted-ness (tied -> untied -> knotted) - * - * Arguments: - * * - * * user: who is the person interacting with the shoes? - */ + * handle_tying deals with all the actual tying/untying/knotting, inferring your intent from who you are in relation to the state of the laces + * + * If you're the wearer, you want them to move towards tied-ness (knotted -> untied -> tied). If you're not, you're pranking them, so you're moving towards knotted-ness (tied -> untied -> knotted) + * + * Arguments: + * * + * * user: who is the person interacting with the shoes? + */ /obj/item/clothing/shoes/proc/handle_tying(mob/user) ///our_guy here is the wearer, if one exists (and he must exist, or we don't care) var/mob/living/carbon/human/our_guy = loc diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 3718e285cae..03b1e860dd2 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -1,19 +1,19 @@ //miscellaneous spacesuits /* Contains: - - Captain's spacesuit - - Death squad's hardsuit - - SWAT suit - - Officer's beret/spacesuit - - NASA Voidsuit - - Father Christmas' magical clothes - - Pirate's spacesuit - - ERT hardsuit: command, sec, engi, med, janitor - - EVA spacesuit - - Freedom's spacesuit (freedom from vacuum's oppression) - - Carp hardsuit - - Bounty hunter hardsuit - - Blackmarket combat medic hardsuit + Captain's spacesuit + Death squad's hardsuit + SWAT suit + Officer's beret/spacesuit + NASA Voidsuit + Father Christmas' magical clothes + Pirate's spacesuit + ERT hardsuit: command, sec, engi, med, janitor + EVA spacesuit + Freedom's spacesuit (freedom from vacuum's oppression) + Carp hardsuit + Bounty hunter hardsuit + Blackmarket combat medic hardsuit */ //Death squad armored space suits, not hardsuits! diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index ae06fa523cf..aad72c791ef 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -1,4 +1,4 @@ - //Suits for the pink and grey skeletons! //EVA version no longer used in favor of the Jumpsuit version +//Suits for the pink and grey skeletons! //EVA version no longer used in favor of the Jumpsuit version /obj/item/clothing/suit/space/eva/plasmaman diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 8afb0e8e367..167e6c2aef1 100755 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -129,7 +129,7 @@ delay = 0 else user.visible_message("[user] is trying to pin [src] on [M]'s chest.", \ - "You try to pin [src] on [M]'s chest.") + "You try to pin [src] on [M]'s chest.") var/input if(!commended && user != M) input = stripped_input(user,"Please input a reason for this commendation, it will be recorded by Nanotrasen.", ,"", 140) @@ -139,7 +139,7 @@ to_chat(user, "You attach [src] to [U].") else user.visible_message("[user] pins \the [src] on [M]'s chest.", \ - "You pin \the [src] on [M]'s chest.") + "You pin \the [src] on [M]'s chest.") if(input) SSblackbox.record_feedback("associative", "commendation", 1, list("commender" = "[user.real_name]", "commendee" = "[M.real_name]", "medal" = "[src]", "reason" = input)) GLOB.commendations += "[user.real_name] awarded [M.real_name] the [name]! \n- [input]" diff --git a/code/modules/discord/discord_link_record.dm b/code/modules/discord/discord_link_record.dm index d27bde8e3c7..23aff5dac38 100644 --- a/code/modules/discord/discord_link_record.dm +++ b/code/modules/discord/discord_link_record.dm @@ -6,17 +6,17 @@ var/timestamp /** - * Generate a discord link datum from the values - * - * This is only used by SSdiscord wrapper functions for now, so you can reference the fields - * slightly easier - * - * Arguments: - * * ckey Ckey as a string - * * discord_id Discord id as a string - * * one_time_token as a string - * * timestamp as a string - */ + * Generate a discord link datum from the values + * + * This is only used by SSdiscord wrapper functions for now, so you can reference the fields + * slightly easier + * + * Arguments: + * * ckey Ckey as a string + * * discord_id Discord id as a string + * * one_time_token as a string + * * timestamp as a string + */ /datum/discord_link_record/New(ckey, discord_id, one_time_token, timestamp) src.ckey = ckey src.discord_id = discord_id diff --git a/code/modules/economy/account.dm b/code/modules/economy/account.dm index 06de4396880..8c9599c44ef 100644 --- a/code/modules/economy/account.dm +++ b/code/modules/economy/account.dm @@ -134,8 +134,8 @@ to_chat(M, "[icon2html(icon_source, M)] [message]") /** - * Returns a string with the civilian bounty's description on it. - */ + * Returns a string with the civilian bounty's description on it. + */ /datum/bank_account/proc/bounty_text() if(!civilian_bounty) return FALSE @@ -143,8 +143,8 @@ /** - * Returns the required item count, or required chemical units required to submit a bounty. - */ + * Returns the required item count, or required chemical units required to submit a bounty. + */ /datum/bank_account/proc/bounty_num() if(!civilian_bounty) return FALSE @@ -158,16 +158,16 @@ return "At least 1u" /** - * Produces the value of the account's civilian bounty reward, if able. - */ + * Produces the value of the account's civilian bounty reward, if able. + */ /datum/bank_account/proc/bounty_value() if(!civilian_bounty) return FALSE return civilian_bounty.reward /** - * Performs house-cleaning on variables when a civilian bounty is replaced, or, when a bounty is claimed. - */ + * Performs house-cleaning on variables when a civilian bounty is replaced, or, when a bounty is claimed. + */ /datum/bank_account/proc/reset_bounty() civilian_bounty = null bounty_timer = 0 diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index cf3138ec4eb..807b2607ac2 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -12,13 +12,15 @@ var/list/obj/machinery/vending/vendingMachines = list() var/list/obj/machinery/vending/infectedMachines = list() var/obj/machinery/vending/originMachine - var/list/rampant_speeches = list("Try our aggressive new marketing strategies!", \ - "You should buy products to feed your lifestyle obsession!", \ - "Consume!", \ - "Your money can buy happiness!", \ - "Engage direct marketing!", \ - "Advertising is legalized lying! But don't let that put you off our great deals!", \ - "You don't want to buy anything? Yeah, well, I didn't want to buy your mom either.") + var/list/rampant_speeches = list( + "Try our aggressive new marketing strategies!", \ + "You should buy products to feed your lifestyle obsession!", \ + "Consume!", \ + "Your money can buy happiness!", \ + "Engage direct marketing!", \ + "Advertising is legalized lying! But don't let that put you off our great deals!", \ + "You don't want to buy anything? Yeah, well, I didn't want to buy your mom either.", + ) /datum/round_event/brand_intelligence/announce(fake) diff --git a/code/modules/events/fugitive_spawning.dm b/code/modules/events/fugitive_spawning.dm index 7b4628f1356..52173b52c0b 100644 --- a/code/modules/events/fugitive_spawning.dm +++ b/code/modules/events/fugitive_spawning.dm @@ -86,7 +86,7 @@ spawned_mobs += S return S - //special spawn for one member. it can be used for a special mob or simply to give one normal member special items. +///special spawn for one member. it can be used for a special mob or simply to give one normal member special items. /datum/round_event/ghost_role/fugitives/proc/gear_fugitive_leader(mob/dead/leader, turf/landing_turf, backstory) var/datum/mind/player_mind = new /datum/mind(leader.key) player_mind.active = TRUE diff --git a/code/modules/events/market_crash.dm b/code/modules/events/market_crash.dm index 8fcf5d44fe4..ca3acafe3b1 100644 --- a/code/modules/events/market_crash.dm +++ b/code/modules/events/market_crash.dm @@ -1,8 +1,8 @@ /** - * An event which decreases the station target temporarily, causing the inflation var to increase heavily. - * - * Done by decreasing the station_target by a high value per crew member, resulting in the station total being much higher than the target, and causing artificial inflation. - */ + * An event which decreases the station target temporarily, causing the inflation var to increase heavily. + * + * Done by decreasing the station_target by a high value per crew member, resulting in the station total being much higher than the target, and causing artificial inflation. + */ /datum/round_event_control/market_crash name = "Market Crash" typepath = /datum/round_event/market_crash diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 9169f8b05e3..459f5444ba9 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -1169,7 +1169,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(fakemob) sleep(rand(20, 50)) to_chat(target, "DEAD: [fakemob.name] says, \"[pick("rip","why did i just drop dead?","hey [target.first_name()]","git gud","you too?","is the AI rogue?",\ - "i[prob(50)?" fucking":""] hate [pick("blood cult", "clock cult", "revenants", "this round","this","myself","admins","you")]")]\"") + "i[prob(50)?" fucking":""] hate [pick("blood cult", "clock cult", "revenants", "this round","this","myself","admins","you")]")]\"") sleep(rand(70,90)) target.set_screwyhud(SCREWYHUD_NONE) target.SetParalyzed(0) diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index e342f322760..aef436e1e9b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -1,24 +1,3 @@ -/* -April 3rd, 2014 marks the day this machine changed the face of the kitchen on NTStation13 -God bless America. - ___----------___ - _-- ----__ - - ---_ - -___ ____---_ --_ - __---_ .-_-- _ O _- - - - -_- --- - -- __---------___ - -- _---- - - - -_ _ - ` _- _ - _ _-_ _-_ _ - _- ____ -_ - -- - - _-__ _ __--- ------- - - _- _- -_-- -_-- _ - -_- _ - _- _ - - -*/ #define DEEPFRYER_COOKTIME 60 #define DEEPFRYER_BURNTIME 120 diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index ce41f3da52e..6853b9ded19 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -112,10 +112,10 @@ if(loaded) if(contents.len >= max_n_of_items) user.visible_message("[user] loads \the [src] with \the [O].", \ - "You fill \the [src] with \the [O].") + "You fill \the [src] with \the [O].") else user.visible_message("[user] loads \the [src] with \the [O].", \ - "You load \the [src] with \the [O].") + "You load \the [src] with \the [O].") if(O.contents.len > 0) to_chat(user, "Some items are refused.") if (visible_contents) diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index 4bc88a93c04..0492ba1db27 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -318,9 +318,10 @@ /obj/item/food/pizza/margherita = 1, /obj/item/food/pizza/sassysage = 0.8, /obj/item/food/pizza/vegetable = 0.8, - /obj/item/food/pizza/pineapple = 0.5, + /obj/item/food/pizza/pineapple = 0.5, /obj/item/food/pizza/donkpocket = 0.3, - /obj/item/food/pizza/dank = 0.1) //pizzas here are weighted by chance to be someone's favorite + /obj/item/food/pizza/dank = 0.1, + ) //pizzas here are weighted by chance to be someone's favorite var/static/list/pizza_preferences /obj/item/pizzabox/infinite/Initialize() diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm index 24ad8884f59..d187ca65b93 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm @@ -8,7 +8,7 @@ reqs = list( /datum/reagent/consumable/milk = 5, /obj/item/food/pie/plain = 1, - /obj/item/food/grown/banana = 1 + /obj/item/food/grown/banana = 1 ) result = /obj/item/food/pie/cream subcategory = CAT_PIE @@ -46,7 +46,7 @@ name = "Cherry pie" reqs = list( /obj/item/food/pie/plain = 1, - /obj/item/food/grown/cherries = 1 + /obj/item/food/grown/cherries = 1 ) result = /obj/item/food/pie/cherrypie subcategory = CAT_PIE @@ -122,11 +122,11 @@ /datum/crafting_recipe/food/grapetart name = "Grape tart" reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/food/pie/plain = 1, - /obj/item/food/grown/grapes = 3 - ) + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/food/pie/plain = 1, + /obj/item/food/grown/grapes = 3 + ) result = /obj/item/food/pie/grapetart subcategory = CAT_PIE @@ -134,11 +134,11 @@ name = "Mime tart" always_available = FALSE reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/food/pie/plain = 1, - /datum/reagent/consumable/nothing = 5 - ) + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/food/pie/plain = 1, + /datum/reagent/consumable/nothing = 5 + ) result = /obj/item/food/pie/mimetart subcategory = CAT_PIE @@ -146,11 +146,11 @@ name = "Berry tart" always_available = FALSE reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/food/pie/plain = 1, - /obj/item/food/grown/berries = 3 - ) + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/food/pie/plain = 1, + /obj/item/food/grown/berries = 3 + ) result = /obj/item/food/pie/berrytart subcategory = CAT_PIE @@ -158,12 +158,12 @@ name = "Chocolate Lava tart" always_available = FALSE reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/food/pie/plain = 1, - /obj/item/food/chocolatebar = 3, - /obj/item/slime_extract = 1 //The reason you dont know how to make it! - ) + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/food/pie/plain = 1, + /obj/item/food/chocolatebar = 3, + /obj/item/slime_extract = 1 //The reason you dont know how to make it! + ) result = /obj/item/food/pie/cocolavatart subcategory = CAT_PIE diff --git a/code/modules/holiday/foreign_calendar.dm b/code/modules/holiday/foreign_calendar.dm index d05502061e4..07a51b5776b 100644 --- a/code/modules/holiday/foreign_calendar.dm +++ b/code/modules/holiday/foreign_calendar.dm @@ -116,7 +116,7 @@ by John Walker 2015, released under public domain // First of all, dispose of fixed-length 29 day months if (2, 4, 6, 10, 13) return 29 - // If it's not a leap year, Adar has 29 days + // If it's not a leap year, Adar has 29 days if (12) if (!hebrew_leap(year)) return 29 diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index b21d109f6f0..ede30059713 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -234,4 +234,4 @@ instability = 6 /obj/vehicle/ridden/scooter/skateboard/pro/holodeck/pick_up_board() //picking up normal skateboards spawned in the holodeck gets rid of the holo flag, now you cant pick them up. - return + return diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index f8f79448de9..49d036831b0 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -161,11 +161,11 @@ detach(user) /** - * activate: Activates biomass processing and converts all inserted grown products into biomass - * - * Arguments: - * * user The mob starting the biomass processing - */ + * activate: Activates biomass processing and converts all inserted grown products into biomass + * + * Arguments: + * * user The mob starting the biomass processing + */ /obj/machinery/biogenerator/proc/activate(mob/user) if(user.stat != CONSCIOUS) return diff --git a/code/modules/hydroponics/grafts.dm b/code/modules/hydroponics/grafts.dm index 08849d5bdca..e1c9a6677d4 100644 --- a/code/modules/hydroponics/grafts.dm +++ b/code/modules/hydroponics/grafts.dm @@ -1,6 +1,6 @@ /** - *A new subsystem for hydroponics, as a way to share specific traits into plants, as a way to phase out the DNA manipulator. - */ + *A new subsystem for hydroponics, as a way to share specific traits into plants, as a way to phase out the DNA manipulator. + */ /obj/item/graft name = "plant graft" desc = "A carefully cut graft off of a freshly grown plant. Can be grafted onto a plant in order to share unique plant traits onto a plant." @@ -55,8 +55,8 @@ return ..() /** - *Adds text to the plant analyzer which describes the graft's parent plant and any stored trait it has, if any. - */ + *Adds text to the plant analyzer which describes the graft's parent plant and any stored trait it has, if any. + */ /obj/item/graft/proc/get_graft_text() var/text = "- Plant Graft -\n" if(parent_name) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a717d7fe6db..20641b5ff32 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -370,9 +370,9 @@ to_chat(user, "" ) /** - * What happens when a tray's weeds grow too large. - * Plants a new weed in an empty tray, then resets the tray. - */ + * What happens when a tray's weeds grow too large. + * Plants a new weed in an empty tray, then resets the tray. + */ /obj/machinery/hydroponics/proc/weedinvasion() dead = FALSE var/oldPlantName @@ -466,9 +466,9 @@ to_chat(usr, "The few weeds in [src] seem to react, but only for a moment...") /** - * Plant Death Proc. - * Cleans up various stats for the plant upon death, including pests, harvestability, and plant health. - */ + * Plant Death Proc. + * Cleans up various stats for the plant upon death, including pests, harvestability, and plant health. + */ /obj/machinery/hydroponics/proc/plantdies() plant_health = 0 harvest = FALSE @@ -479,11 +479,11 @@ dead = TRUE /** - * Plant Cross-Pollination. - * Checks all plants in the tray's oview range, then averages out the seed's potency, instability, and yield values. - * If the seed's instability is >= 20, the seed donates one of it's reagents to that nearby plant. - * * Range - The Oview range of trays to which to look for plants to donate reagents. - */ + * Plant Cross-Pollination. + * Checks all plants in the tray's oview range, then averages out the seed's potency, instability, and yield values. + * If the seed's instability is >= 20, the seed donates one of it's reagents to that nearby plant. + * * Range - The Oview range of trays to which to look for plants to donate reagents. + */ /obj/machinery/hydroponics/proc/pollinate(range = 1) for(var/obj/machinery/hydroponics/T in oview(src, range)) //Here is where we check for window blocking. @@ -505,10 +505,10 @@ continue /** - * Pest Mutation Proc. - * When a tray is mutated with high pest values, it will spawn spiders. - * * User - Person who last added chemicals to the tray for logging purposes. - */ + * Pest Mutation Proc. + * When a tray is mutated with high pest values, it will spawn spiders. + * * User - Person who last added chemicals to the tray for logging purposes. + */ /obj/machinery/hydroponics/proc/mutatepest(mob/user) if(pestlevel > 5) message_admins("[ADMIN_LOOKUPFLW(user)] last altered a hydro tray's contents which spawned spiderlings") @@ -815,12 +815,12 @@ to_chat(user, "You empty [src]'s nutrient tank.") /** - * Update Tray Proc - * Handles plant harvesting on the tray side, by clearing the sead, names, description, and dead stat. - * Shuts off autogrow if enabled. - * Sends messages to the cleaer about plants harvested, or if nothing was harvested at all. - * * User - The mob who clears the tray. - */ + * Update Tray Proc + * Handles plant harvesting on the tray side, by clearing the sead, names, description, and dead stat. + * Shuts off autogrow if enabled. + * Sends messages to the cleaer about plants harvested, or if nothing was harvested at all. + * * User - The mob who clears the tray. + */ /obj/machinery/hydroponics/proc/update_tray(mob/user) harvest = FALSE lastproduce = age @@ -844,10 +844,10 @@ /// Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds. /** - * Adjust water. - * Raises or lowers tray water values by a set value. Adding water will dillute toxicity from the tray. - * * adjustamt - determines how much water the tray will be adjusted upwards or downwards. - */ + * Adjust water. + * Raises or lowers tray water values by a set value. Adding water will dillute toxicity from the tray. + * * adjustamt - determines how much water the tray will be adjusted upwards or downwards. + */ /obj/machinery/hydroponics/proc/adjustWater(adjustamt) waterlevel = clamp(waterlevel + adjustamt, 0, maxwater) @@ -855,42 +855,42 @@ adjustToxic(-round(adjustamt/4))//Toxicity dilutation code. The more water you put in, the lesser the toxin concentration. /** - * Adjust Health. - * Raises the tray's plant_health stat by a given amount, with total health determined by the seed's endurance. - * * adjustamt - Determines how much the plant_health will be adjusted upwards or downwards. - */ + * Adjust Health. + * Raises the tray's plant_health stat by a given amount, with total health determined by the seed's endurance. + * * adjustamt - Determines how much the plant_health will be adjusted upwards or downwards. + */ /obj/machinery/hydroponics/proc/adjustHealth(adjustamt) if(myseed && !dead) plant_health = clamp(plant_health + adjustamt, 0, myseed.endurance) /** - * Adjust Health. - * Raises the plant's plant_health stat by a given amount, with total health determined by the seed's endurance. - * * adjustamt - Determines how much the plant_health will be adjusted upwards or downwards. - */ + * Adjust Health. + * Raises the plant's plant_health stat by a given amount, with total health determined by the seed's endurance. + * * adjustamt - Determines how much the plant_health will be adjusted upwards or downwards. + */ /obj/machinery/hydroponics/proc/adjustToxic(adjustamt) toxic = clamp(toxic + adjustamt, 0, 100) /** - * Adjust Pests. - * Raises the tray's pest level stat by a given amount. - * * adjustamt - Determines how much the pest level will be adjusted upwards or downwards. - */ + * Adjust Pests. + * Raises the tray's pest level stat by a given amount. + * * adjustamt - Determines how much the pest level will be adjusted upwards or downwards. + */ /obj/machinery/hydroponics/proc/adjustPests(adjustamt) pestlevel = clamp(pestlevel + adjustamt, 0, 10) /** - * Adjust Weeds. - * Raises the plant's weed level stat by a given amount. - * * adjustamt - Determines how much the weed level will be adjusted upwards or downwards. - */ + * Adjust Weeds. + * Raises the plant's weed level stat by a given amount. + * * adjustamt - Determines how much the weed level will be adjusted upwards or downwards. + */ /obj/machinery/hydroponics/proc/adjustWeeds(adjustamt) weedlevel = clamp(weedlevel + adjustamt, 0, 10) /** - * Spawn Plant. - * Upon using strange reagent on a tray, it will spawn a killer tomato or killer tree at random. - */ + * Spawn Plant. + * Upon using strange reagent on a tray, it will spawn a killer tomato or killer tree at random. + */ /obj/machinery/hydroponics/proc/spawnplant() // why would you put strange reagent in a hydro tray you monster I bet you also feed them blood var/list/livingplants = list(/mob/living/simple_animal/hostile/tree, /mob/living/simple_animal/hostile/killertomato) var/chosen = pick(livingplants) diff --git a/code/modules/hydroponics/hydroponics_chemreact.dm b/code/modules/hydroponics/hydroponics_chemreact.dm index a4ef78a21fe..01bf71c1803 100644 --- a/code/modules/hydroponics/hydroponics_chemreact.dm +++ b/code/modules/hydroponics/hydroponics_chemreact.dm @@ -1,7 +1,7 @@ /** - *This is NOW the gradual affects that each chemical applies on every process() proc. Nutrients now use a more robust reagent holder in order to apply less insane - * stat changes as opposed to 271 lines of individual statline effects. Shoutout to the original comments on chems, I just cleaned a few up. - */ + *This is NOW the gradual affects that each chemical applies on every process() proc. Nutrients now use a more robust reagent holder in order to apply less insane + * stat changes as opposed to 271 lines of individual statline effects. Shoutout to the original comments on chems, I just cleaned a few up. + */ /obj/machinery/hydroponics/proc/apply_chemicals(mob/user) ///Contains the reagents within the tray. if(myseed) diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index cc3ee4e1ca3..e1f45f38c56 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -160,10 +160,10 @@ return TRUE /** - * Intends to compare a reagent gene with a set of seeds, and if the seeds contain the same gene, with more production rate, upgrades the rate to the highest of the two. - * - * Called when plants are crossbreeding, this looks for two matching reagent_ids, where the rates are greater, in order to upgrade. - */ + * Intends to compare a reagent gene with a set of seeds, and if the seeds contain the same gene, with more production rate, upgrades the rate to the highest of the two. + * + * Called when plants are crossbreeding, this looks for two matching reagent_ids, where the rates are greater, in order to upgrade. + */ /datum/plant_gene/reagent/proc/try_upgrade_gene(obj/item/seeds/seed) for(var/datum/plant_gene/reagent/reagent in seed.genes) @@ -394,11 +394,11 @@ qdel(G) /** - * A plant trait that causes the plant's capacity to double. - * - * When harvested, the plant's individual capacity is set to double it's default. - * However, the plant is also going to be limited to half as many products from yield, so 2 yield will only produce 1 plant as a result. - */ + * A plant trait that causes the plant's capacity to double. + * + * When harvested, the plant's individual capacity is set to double it's default. + * However, the plant is also going to be limited to half as many products from yield, so 2 yield will only produce 1 plant as a result. + */ /datum/plant_gene/trait/maxchem // 2x to max reagents volume. name = "Densified Chemicals" @@ -513,19 +513,19 @@ HY.name = initial(HY.name) /** - * A plant trait that causes the plant's food reagents to ferment instead. - * - * In practice, it replaces the plant's nutriment and vitamins with half as much of it's fermented reagent. - * This exception is executed in seeds.dm under 'prepare_result'. - */ + * A plant trait that causes the plant's food reagents to ferment instead. + * + * In practice, it replaces the plant's nutriment and vitamins with half as much of it's fermented reagent. + * This exception is executed in seeds.dm under 'prepare_result'. + */ /datum/plant_gene/trait/brewing name = "Auto-Distilling Composition" /** - * A plant trait that causes the plant to gain aesthetic googly eyes. - * - * Has no functional purpose outside of causing japes, adds eyes over the plant's sprite, which are adjusted for size by potency. - */ + * A plant trait that causes the plant to gain aesthetic googly eyes. + * + * Has no functional purpose outside of causing japes, adds eyes over the plant's sprite, which are adjusted for size by potency. + */ /datum/plant_gene/trait/eyes name = "Oculary Mimicry" var/mutable_appearance/googly diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index c35ffb719b3..c625c5cc1b4 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -1,18 +1,18 @@ /** - * Finds and extracts seeds from an object - * - * Checks if the object is such that creates a seed when extracted. Used by seed - * extractors or posably anything that would create seeds in some way. The seeds - * are dropped either at the extractor, if it exists, or where the original object - * was and it qdel's the object - * - * Arguments: - * * O - Object containing the seed, can be the loc of the dumping of seeds - * * t_max - Amount of seed copies to dump, -1 is ranomized - * * extractor - Seed Extractor, used as the dumping loc for the seeds and seed multiplier - * * user - checks if we can remove the object from the inventory - * * - */ + * Finds and extracts seeds from an object + * + * Checks if the object is such that creates a seed when extracted. Used by seed + * extractors or posably anything that would create seeds in some way. The seeds + * are dropped either at the extractor, if it exists, or where the original object + * was and it qdel's the object + * + * Arguments: + * * O - Object containing the seed, can be the loc of the dumping of seeds + * * t_max - Amount of seed copies to dump, -1 is ranomized + * * extractor - Seed Extractor, used as the dumping loc for the seeds and seed multiplier + * * user - checks if we can remove the object from the inventory + * * + */ /proc/seedify(obj/item/O, t_max, obj/machinery/seed_extractor/extractor, mob/living/user) var/t_amount = 0 var/list/seeds = list() @@ -120,24 +120,24 @@ return ..() /** - * Generate seed string - * - * Creates a string based of the traits of a seed. We use this string as a bucket for all - * seeds that match as well as the key the ui uses to get the seed. We also use the key - * for the data shown in the ui. Javascript parses this string to display - * - * Arguments: - * * O - seed to generate the string from - */ + * Generate seed string + * + * Creates a string based of the traits of a seed. We use this string as a bucket for all + * seeds that match as well as the key the ui uses to get the seed. We also use the key + * for the data shown in the ui. Javascript parses this string to display + * + * Arguments: + * * O - seed to generate the string from + */ /obj/machinery/seed_extractor/proc/generate_seed_string(obj/item/seeds/O) return "name=[O.name];lifespan=[O.lifespan];endurance=[O.endurance];maturation=[O.maturation];production=[O.production];yield=[O.yield];potency=[O.potency];instability=[O.instability]" /** Add Seeds Proc. - * - * Adds the seeds to the contents and to an associated list that pregenerates the data - * needed to go to the ui handler - * + * + * Adds the seeds to the contents and to an associated list that pregenerates the data + * needed to go to the ui handler + * **/ /obj/machinery/seed_extractor/proc/add_seed(obj/item/seeds/O) if(contents.len >= 999) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 0c126d3a466..4f333d171d8 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -251,11 +251,11 @@ return result /** - * This is where plant chemical products are handled. - * - * Individually, the formula for individual amounts of chemicals is Potency * the chemical production %, rounded to the fullest 1. - * Specific chem handling is also handled here, like bloodtype, food taste within nutriment, and the auto-distilling trait. - */ + * This is where plant chemical products are handled. + * + * Individually, the formula for individual amounts of chemicals is Potency * the chemical production %, rounded to the fullest 1. + * Specific chem handling is also handled here, like bloodtype, food taste within nutriment, and the auto-distilling trait. + */ /obj/item/seeds/proc/prepare_result(obj/item/T) if(!T.reagents) CRASH("[T] has no reagents.") @@ -285,8 +285,8 @@ /// Setters procs /// /** - * Adjusts seed yield up or down according to adjustamt. (Max 10) - */ + * Adjusts seed yield up or down according to adjustamt. (Max 10) + */ /obj/item/seeds/proc/adjust_yield(adjustamt) if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable yield = clamp(yield + adjustamt, 0, 10) @@ -298,8 +298,8 @@ C.value = yield /** - * Adjusts seed lifespan up or down according to adjustamt. (Max 100) - */ + * Adjusts seed lifespan up or down according to adjustamt. (Max 100) + */ /obj/item/seeds/proc/adjust_lifespan(adjustamt) lifespan = clamp(lifespan + adjustamt, 10, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan) @@ -307,8 +307,8 @@ C.value = lifespan /** - * Adjusts seed endurance up or down according to adjustamt. (Max 100) - */ + * Adjusts seed endurance up or down according to adjustamt. (Max 100) + */ /obj/item/seeds/proc/adjust_endurance(adjustamt) endurance = clamp(endurance + adjustamt, 10, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance) @@ -316,8 +316,8 @@ C.value = endurance /** - * Adjusts seed production seed up or down according to adjustamt. (Max 10) - */ + * Adjusts seed production seed up or down according to adjustamt. (Max 10) + */ /obj/item/seeds/proc/adjust_production(adjustamt) if(yield != -1) production = clamp(production + adjustamt, 1, 10) @@ -326,8 +326,8 @@ C.value = production /** - * Adjusts seed potency up or down according to adjustamt. (Max 100) - */ + * Adjusts seed potency up or down according to adjustamt. (Max 100) + */ /obj/item/seeds/proc/adjust_potency(adjustamt) if(potency != -1) potency = clamp(potency + adjustamt, 0, 100) @@ -336,8 +336,8 @@ C.value = potency /** - * Adjusts seed instability up or down according to adjustamt. (Max 100) - */ + * Adjusts seed instability up or down according to adjustamt. (Max 100) + */ /obj/item/seeds/proc/adjust_instability(adjustamt) if(instability == -1) return @@ -347,8 +347,8 @@ C.value = instability /** - * Adjusts seed weed grwoth speed up or down according to adjustamt. (Max 10) - */ + * Adjusts seed weed grwoth speed up or down according to adjustamt. (Max 10) + */ /obj/item/seeds/proc/adjust_weed_rate(adjustamt) weed_rate = clamp(weed_rate + adjustamt, 0, 10) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) @@ -356,8 +356,8 @@ C.value = weed_rate /** - * Adjusts seed weed chance up or down according to adjustamt. (Max 67%) - */ + * Adjusts seed weed chance up or down according to adjustamt. (Max 67%) + */ /obj/item/seeds/proc/adjust_weed_chance(adjustamt) weed_chance = clamp(weed_chance + adjustamt, 0, 67) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) @@ -367,8 +367,8 @@ //Directly setting stats /** - * Sets the plant's yield stat to the value of adjustamt. (Max 10) - */ + * Sets the plant's yield stat to the value of adjustamt. (Max 10) + */ /obj/item/seeds/proc/set_yield(adjustamt) if(yield != -1) // Unharvestable shouldn't suddenly turn harvestable yield = clamp(adjustamt, 0, 10) @@ -380,8 +380,8 @@ C.value = yield /** - * Sets the plant's lifespan stat to the value of adjustamt. (Max 100) - */ + * Sets the plant's lifespan stat to the value of adjustamt. (Max 100) + */ /obj/item/seeds/proc/set_lifespan(adjustamt) lifespan = clamp(adjustamt, 10, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/lifespan) @@ -389,8 +389,8 @@ C.value = lifespan /** - * Sets the plant's endurance stat to the value of adjustamt. (Max 100) - */ + * Sets the plant's endurance stat to the value of adjustamt. (Max 100) + */ /obj/item/seeds/proc/set_endurance(adjustamt) endurance = clamp(adjustamt, 10, 100) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/endurance) @@ -398,8 +398,8 @@ C.value = endurance /** - * Sets the plant's production stat to the value of adjustamt. (Max 10) - */ + * Sets the plant's production stat to the value of adjustamt. (Max 10) + */ /obj/item/seeds/proc/set_production(adjustamt) if(yield != -1) production = clamp(adjustamt, 1, 10) @@ -408,8 +408,8 @@ C.value = production /** - * Sets the plant's potency stat to the value of adjustamt. (Max 100) - */ + * Sets the plant's potency stat to the value of adjustamt. (Max 100) + */ /obj/item/seeds/proc/set_potency(adjustamt) if(potency != -1) potency = clamp(adjustamt, 0, 100) @@ -418,8 +418,8 @@ C.value = potency /** - * Sets the plant's instability stat to the value of adjustamt. (Max 100) - */ + * Sets the plant's instability stat to the value of adjustamt. (Max 100) + */ /obj/item/seeds/proc/set_instability(adjustamt) if(instability == -1) return @@ -429,8 +429,8 @@ C.value = instability /** - * Sets the plant's weed production rate to the value of adjustamt. (Max 10) - */ + * Sets the plant's weed production rate to the value of adjustamt. (Max 10) + */ /obj/item/seeds/proc/set_weed_rate(adjustamt) weed_rate = clamp(adjustamt, 0, 10) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_rate) @@ -438,8 +438,8 @@ C.value = weed_rate /** - * Sets the plant's weed growth percentage to the value of adjustamt. (Max 67%) - */ + * Sets the plant's weed growth percentage to the value of adjustamt. (Max 67%) + */ /obj/item/seeds/proc/set_weed_chance(adjustamt) weed_chance = clamp(adjustamt, 0, 67) var/datum/plant_gene/core/C = get_gene(/datum/plant_gene/core/weed_chance) @@ -599,14 +599,14 @@ qdel(chemical) /** - * Creates a graft from this plant. - * - * Creates a new graft from this plant. - * Sets the grafts trait to this plants graftable trait. - * Gives the graft a reference to this plant. - * Copies all the relevant stats from this plant to the graft. - * Returns the created graft. - */ + * Creates a graft from this plant. + * + * Creates a new graft from this plant. + * Sets the grafts trait to this plants graftable trait. + * Gives the graft a reference to this plant. + * Copies all the relevant stats from this plant to the graft. + * Returns the created graft. + */ /obj/item/seeds/proc/create_graft() var/obj/item/graft/snip = new(loc, graft_gene) snip.parent_seed = src @@ -624,15 +624,15 @@ return snip /** - * Applies a graft to this plant. - * - * Adds the graft trait to this plant if possible. - * Increases plant stats by 2/3 of the grafts stats to a maximum of 100 (10 for yield). - * Returns [TRUE] - * - * Arguments: - * - [snip][/obj/item/graft]: The graft being used applied to this plant. - */ + * Applies a graft to this plant. + * + * Adds the graft trait to this plant if possible. + * Increases plant stats by 2/3 of the grafts stats to a maximum of 100 (10 for yield). + * Returns [TRUE] + * + * Arguments: + * - [snip][/obj/item/graft]: The graft being used applied to this plant. + */ /obj/item/seeds/proc/apply_graft(obj/item/graft/snip) var/datum/plant_gene/trait/new_trait = snip.stored_trait if(new_trait?.can_add(src)) diff --git a/code/modules/instruments/instrument_data/_instrument_data.dm b/code/modules/instruments/instrument_data/_instrument_data.dm index fae892a041c..5af78a995f4 100644 --- a/code/modules/instruments/instrument_data/_instrument_data.dm +++ b/code/modules/instruments/instrument_data/_instrument_data.dm @@ -1,6 +1,6 @@ /** - * Get all non admin_only instruments as a list of text ids. - */ + * Get all non admin_only instruments as a list of text ids. + */ /proc/get_allowed_instrument_ids() . = list() for(var/id in SSinstruments.instrument_data) @@ -9,13 +9,13 @@ . += I.id /** - * # Instrument Datums - * - * Instrument datums hold the data for any given instrument, as well as data on how to play it and what bounds there are to playing it. - * - * The datums themselves are kept in SSinstruments in a list by their unique ID. The reason it uses ID instead of typepath is to support the runtime creation of instruments. - * Since songs cache them while playing, there isn't realistic issues regarding performance from accessing. - */ + * # Instrument Datums + * + * Instrument datums hold the data for any given instrument, as well as data on how to play it and what bounds there are to playing it. + * + * The datums themselves are kept in SSinstruments in a list by their unique ID. The reason it uses ID instead of typepath is to support the runtime creation of instruments. + * Since songs cache them while playing, there isn't realistic issues regarding performance from accessing. + */ /datum/instrument /// Name of the instrument var/name = "Generic instrument" @@ -51,16 +51,16 @@ id = "[type]" /** - * Initializes the instrument, calculating its samples if necessary. - */ + * Initializes the instrument, calculating its samples if necessary. + */ /datum/instrument/proc/Initialize() if(instrument_flags & (INSTRUMENT_LEGACY | INSTRUMENT_DO_NOT_AUTOSAMPLE)) return calculate_samples() /** - * Checks if this instrument is ready to play. - */ + * Checks if this instrument is ready to play. + */ /datum/instrument/proc/ready() if(instrument_flags & INSTRUMENT_LEGACY) return legacy_instrument_path && legacy_instrument_ext @@ -79,9 +79,9 @@ return ..() /** - * For synthesized instruments, this is how the instrument generates the "keys" that a [/datum/song] uses to play notes. - * Calculating them on the fly would be unperformant, so we do it during init and keep it all cached in a list. - */ + * For synthesized instruments, this is how the instrument generates the "keys" that a [/datum/song] uses to play notes. + * Calculating them on the fly would be unperformant, so we do it during init and keep it all cached in a list. + */ /datum/instrument/proc/calculate_samples() if(!length(real_samples)) CRASH("No real samples defined for [id] [type] on calculate_samples() call.") diff --git a/code/modules/instruments/instrument_data/_instrument_key.dm b/code/modules/instruments/instrument_data/_instrument_key.dm index 7211caca0ba..6038b7b76b0 100644 --- a/code/modules/instruments/instrument_data/_instrument_key.dm +++ b/code/modules/instruments/instrument_data/_instrument_key.dm @@ -1,7 +1,7 @@ /** - * Instrument key datums contain everything needed to know how to play a specific - * note of an instrument.* - */ + * Instrument key datums contain everything needed to know how to play a specific + * note of an instrument.* + */ /datum/instrument_key /// The numerical key of what this is, from 1 to 127 on a standard piano keyboard. var/key @@ -21,8 +21,8 @@ calculate() /** - * Calculates and stores our deviation. - */ + * Calculates and stores our deviation. + */ /datum/instrument_key/proc/calculate() if(!deviation) CRASH("Invalid calculate call: No deviation or sample in instrument_key") diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index 9b26a252356..990f6ba3a90 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -93,15 +93,15 @@ RegisterSignal(src, COMSIG_SONG_END, .proc/stop_playing) /** - * Called by a component signal when our song starts playing. - */ + * Called by a component signal when our song starts playing. + */ /obj/item/instrument/piano_synth/headphones/proc/start_playing() icon_state = "[initial(icon_state)]_on" update_icon() /** - * Called by a component signal when our song stops playing. - */ + * Called by a component signal when our song stops playing. + */ /obj/item/instrument/piano_synth/headphones/proc/stop_playing() icon_state = "[initial(icon_state)]" update_icon() diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index 59b86cedabd..059d7f142dc 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -3,11 +3,11 @@ #define MUSIC_MAXLINECHARS 300 /** - * # Song datum - * - * These are the actual backend behind instruments. - * They attach to an atom and provide the editor + playback functionality. - */ + * # Song datum + * + * These are the actual backend behind instruments. + * They attach to an atom and provide the editor + playback functionality. + */ /datum/song /// Name of the song var/name = "Untitled" @@ -152,8 +152,8 @@ return ..() /** - * Checks and stores which mobs can hear us. Terminates sounds for mobs that leave our range. - */ + * Checks and stores which mobs can hear us. Terminates sounds for mobs that leave our range. + */ /datum/song/proc/do_hearcheck() last_hearcheck = world.time var/list/old = hearing_mobs.Copy() @@ -166,8 +166,8 @@ terminate_sound_mob(i) /** - * Sets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum. - */ + * Sets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum. + */ /datum/song/proc/set_instrument(datum/instrument/I) terminate_all_sounds() var/old_legacy @@ -197,8 +197,8 @@ compile_chords() /** - * Attempts to start playing our song. - */ + * Attempts to start playing our song. + */ /datum/song/proc/start_playing(mob/user) if(playing) return @@ -222,8 +222,8 @@ START_PROCESSING(SSinstruments, src) /** - * Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs. - */ + * Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs. + */ /datum/song/proc/stop_playing() if(!playing) return @@ -237,8 +237,8 @@ user_playing = null /** - * Processes our song. - */ + * Processes our song. + */ /datum/song/proc/process_song(wait) if(!length(compiled_chords) || should_stop_playing(user_playing)) stop_playing() @@ -259,55 +259,55 @@ return /** - * Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo. - */ + * Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo. + */ /datum/song/proc/tempodiv_to_delay(tempodiv) if(!tempodiv) tempodiv = 1 // no division by 0. some song converters tend to use 0 for when it wants to have no div, for whatever reason. return max(1, round((tempo/tempodiv) / world.tick_lag, 1)) /** - * Compiles chords. - */ + * Compiles chords. + */ /datum/song/proc/compile_chords() legacy? compile_legacy() : compile_synthesized() /** - * Plays a chord. - */ + * Plays a chord. + */ /datum/song/proc/play_chord(list/chord) // last value is timing information for(var/i in 1 to (length(chord) - 1)) legacy? playkey_legacy(chord[i][1], chord[i][2], chord[i][3], user_playing) : playkey_synth(chord[i], user_playing) /** - * Checks if we should halt playback. - */ + * Checks if we should halt playback. + */ /datum/song/proc/should_stop_playing(mob/user) return QDELETED(parent) || !using_instrument || !playing /** - * Sanitizes tempo to a value that makes sense and fits the current world.tick_lag. - */ + * Sanitizes tempo to a value that makes sense and fits the current world.tick_lag. + */ /datum/song/proc/sanitize_tempo(new_tempo) new_tempo = abs(new_tempo) return clamp(round(new_tempo, world.tick_lag), world.tick_lag, 5 SECONDS) /** - * Gets our beats per minute based on our tempo. - */ + * Gets our beats per minute based on our tempo. + */ /datum/song/proc/get_bpm() return 600 / tempo /** - * Sets our tempo from a beats-per-minute, sanitizing it to a valid number first. - */ + * Sets our tempo from a beats-per-minute, sanitizing it to a valid number first. + */ /datum/song/proc/set_bpm(bpm) tempo = sanitize_tempo(600 / bpm) /** - * Updates the window for our users. Override down the line. - */ + * Updates the window for our users. Override down the line. + */ /datum/song/proc/updateDialog(mob/user) ui_interact(user) @@ -319,8 +319,8 @@ process_decay(world.tick_lag) /** - * Updates our cached linear/exponential falloff stuff, saving calculations down the line. - */ + * Updates our cached linear/exponential falloff stuff, saving calculations down the line. + */ /datum/song/proc/update_sustain() // Exponential is easy cached_exponential_dropoff = sustain_exponential_dropoff @@ -331,32 +331,32 @@ cached_linear_dropoff = volume_decrease_per_decisecond /** - * Setter for setting output volume. - */ + * Setter for setting output volume. + */ /datum/song/proc/set_volume(volume) src.volume = clamp(volume, max(0, min_volume), min(100, max_volume)) update_sustain() updateDialog() /** - * Setter for setting how low the volume has to get before a note is considered "dead" and dropped - */ + * Setter for setting how low the volume has to get before a note is considered "dead" and dropped + */ /datum/song/proc/set_dropoff_volume(volume) sustain_dropoff_volume = clamp(volume, INSTRUMENT_MIN_SUSTAIN_DROPOFF, 100) update_sustain() updateDialog() /** - * Setter for setting exponential falloff factor. - */ + * Setter for setting exponential falloff factor. + */ /datum/song/proc/set_exponential_drop_rate(drop) sustain_exponential_dropoff = clamp(drop, INSTRUMENT_EXP_FALLOFF_MIN, INSTRUMENT_EXP_FALLOFF_MAX) update_sustain() updateDialog() /** - * Setter for setting linear falloff duration. - */ + * Setter for setting linear falloff duration. + */ /datum/song/proc/set_linear_falloff_duration(duration) sustain_linear_duration = clamp(duration, 0.1, INSTRUMENT_MAX_TOTAL_SUSTAIN) update_sustain() diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index b7339f04baf..f672c0ecac6 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -1,6 +1,6 @@ /** - * Returns the HTML for the status UI for this song datum. - */ + * Returns the HTML for the status UI for this song datum. + */ /datum/song/proc/instrument_status_ui() . = list() . += "
" @@ -88,8 +88,8 @@ popup.open() /** - * Parses a song the user has input into lines and stores them. - */ + * Parses a song the user has input into lines and stores them. + */ /datum/song/proc/ParseSong(text) set waitfor = FALSE //split into lines diff --git a/code/modules/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm index 7a86ef895f3..1b6b58139dc 100644 --- a/code/modules/instruments/songs/play_legacy.dm +++ b/code/modules/instruments/songs/play_legacy.dm @@ -1,6 +1,6 @@ /** - * Compiles our lines into "chords" with filenames for legacy playback. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag. - */ + * Compiles our lines into "chords" with filenames for legacy playback. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag. + */ /datum/song/proc/compile_legacy() if(!length(src.lines)) return @@ -39,13 +39,13 @@ compiled_chords[++compiled_chords.len] = compiled_chord /** - * Proc to play a legacy note. Just plays the sound to hearing mobs (and does hearcheck if necessary), no fancy channel/sustain/management. - * - * Arguments: - * * note is a number from 1-7 for A-G - * * acc is either "b", "n", or "#" - * * oct is 1-8 (or 9 for C) - */ + * Proc to play a legacy note. Just plays the sound to hearing mobs (and does hearcheck if necessary), no fancy channel/sustain/management. + * + * Arguments: + * * note is a number from 1-7 for A-G + * * acc is either "b", "n", or "#" + * * oct is 1-8 (or 9 for C) + */ /datum/song/proc/playkey_legacy(note, acc as text, oct, mob/user) // handle accidental -> B<>C of E<>F if(acc == "b" && (note == 3 || note == 6)) // C or F diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm index f24f01417eb..fbe146bd793 100644 --- a/code/modules/instruments/songs/play_synthesized.dm +++ b/code/modules/instruments/songs/play_synthesized.dm @@ -1,6 +1,6 @@ /** - * Compiles our lines into "chords" with numbers. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag. - */ + * Compiles our lines into "chords" with numbers. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag. + */ /datum/song/proc/compile_synthesized() if(!length(src.lines)) return @@ -39,9 +39,9 @@ compiled_chords[++compiled_chords.len] = compiled_chord /** - * Plays a specific numerical key from our instrument to anyone who can hear us. - * Does a hearing check if enough time has passed. - */ + * Plays a specific numerical key from our instrument to anyone who can hear us. + * Does a hearing check if enough time has passed. + */ /datum/song/proc/playkey_synth(key, mob/user) if(can_noteshift) key = clamp(key + note_shift, key_min, key_max) @@ -71,8 +71,8 @@ // Could do environment and echo later but not for now /** - * Stops all sounds we are "responsible" for. Only works in synthesized mode. - */ + * Stops all sounds we are "responsible" for. Only works in synthesized mode. + */ /datum/song/proc/terminate_all_sounds(clear_channels = TRUE) for(var/i in hearing_mobs) terminate_sound_mob(i) @@ -84,15 +84,15 @@ SSsounds.free_datum_channels(src) /** - * Stops all sounds we are responsible for in a given person. Only works in synthesized mode. - */ + * Stops all sounds we are responsible for in a given person. Only works in synthesized mode. + */ /datum/song/proc/terminate_sound_mob(mob/M) for(var/channel in channels_playing) M.stop_sound_channel(text2num(channel)) /** - * Pops a channel we have reserved so we don't have to release and re-request them from SSsounds every time we play a note. This is faster. - */ + * Pops a channel we have reserved so we don't have to release and re-request them from SSsounds every time we play a note. This is faster. + */ /datum/song/proc/pop_channel() if(length(channels_idle)) //just pop one off of here if we have one available . = text2num(channels_idle[1]) @@ -105,11 +105,11 @@ using_sound_channels++ /** - * Decays our channels and updates their volumes to mobs who can hear us. - * - * Arguments: - * * wait_ds - the deciseconds we should decay by. This is to compensate for any lag, as otherwise songs would get pretty nasty during high time dilation. - */ + * Decays our channels and updates their volumes to mobs who can hear us. + * + * Arguments: + * * wait_ds - the deciseconds we should decay by. This is to compensate for any lag, as otherwise songs would get pretty nasty during high time dilation. + */ /datum/song/proc/process_decay(wait_ds) var/linear_dropoff = cached_linear_dropoff * wait_ds var/exponential_dropoff = cached_exponential_dropoff ** wait_ds diff --git a/code/modules/interview/interview.dm b/code/modules/interview/interview.dm index 59076d057ec..924704c604c 100644 --- a/code/modules/interview/interview.dm +++ b/code/modules/interview/interview.dm @@ -6,13 +6,13 @@ #define INTERVIEW_PENDING "interview_pending" /** - * Represents a new-player interview form - * - * Represents a new-player interview form, enabled by configuration to require - * players with low playtime to request access to the server. To do so, they will - * out a brief questionnaire, and are otherwise unable to do anything while they - * wait for a response. - */ + * Represents a new-player interview form + * + * Represents a new-player interview form, enabled by configuration to require + * players with low playtime to request access to the server. To do so, they will + * out a brief questionnaire, and are otherwise unable to do anything while they + * wait for a response. + */ /datum/interview /// Unique ID of the interview var/id @@ -47,13 +47,13 @@ welcome_message = CONFIG_GET(string/interview_welcome_msg) /** - * Approves the interview, forces reconnect of owner if relevant. - * - * Approves the interview, and if relevant will force the owner to reconnect so that they have the proper - * verbs returned to them. - * Arguments: - * * approved_by - The user who approved the interview, used for logging - */ + * Approves the interview, forces reconnect of owner if relevant. + * + * Approves the interview, and if relevant will force the owner to reconnect so that they have the proper + * verbs returned to them. + * Arguments: + * * approved_by - The user who approved the interview, used for logging + */ /datum/interview/proc/approve(client/approved_by) status = INTERVIEW_APPROVED read_only = TRUE @@ -68,11 +68,11 @@ addtimer(CALLBACK(src, .proc/reconnect_owner), 50) /** - * Denies the interview and adds the owner to the cooldown for new interviews. - * - * Arguments: - * * denied_by - The user who denied the interview, used for logging - */ + * Denies the interview and adds the owner to the cooldown for new interviews. + * + * Arguments: + * * denied_by - The user who denied the interview, used for logging + */ /datum/interview/proc/deny(client/denied_by) status = INTERVIEW_DENIED read_only = TRUE @@ -88,16 +88,16 @@ + " You may do this in three minutes.", confidential = TRUE) /** - * Forces client to reconnect, used in the callback from approval - */ + * Forces client to reconnect, used in the callback from approval + */ /datum/interview/proc/reconnect_owner() if (!owner) return winset(owner, null, "command=.reconnect") /** - * Verb for opening the existing interview, or if relevant creating a new interview if possible. - */ + * Verb for opening the existing interview, or if relevant creating a new interview if possible. + */ /mob/dead/new_player/proc/open_interview() set name = "Open Interview" set category = "Interview" diff --git a/code/modules/interview/interview_manager.dm b/code/modules/interview/interview_manager.dm index 2aabe91f960..05ced3b102d 100644 --- a/code/modules/interview/interview_manager.dm +++ b/code/modules/interview/interview_manager.dm @@ -1,11 +1,11 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) /** - * # Interview Manager - * - * Handles all interviews in the duration of a round, includes the primary functionality for - * handling the interview queue. - */ + * # Interview Manager + * + * Handles all interviews in the duration of a round, includes the primary functionality for + * handling the interview queue. + */ /datum/interview_manager /// The interviews that are currently "open", those that are not submitted as well as those that are waiting review var/list/open_interviews = list() @@ -27,12 +27,12 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) return ..() /** - * Used in the new client pipeline to catch when clients are reconnecting and need to have their - * reference re-assigned to the 'owner' variable of an interview - * - * Arguments: - * * C - The client who is logging in - */ + * Used in the new client pipeline to catch when clients are reconnecting and need to have their + * reference re-assigned to the 'owner' variable of an interview + * + * Arguments: + * * C - The client who is logging in + */ /datum/interview_manager/proc/client_login(client/C) for(var/ckey in open_interviews) var/datum/interview/I = open_interviews[ckey] @@ -40,12 +40,12 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) I.owner = C /** - * Used in the destroy client pipeline to catch when clients are disconnecting and need to have their - * reference nulled on the 'owner' variable of an interview - * - * Arguments: - * * C - The client who is logging out - */ + * Used in the destroy client pipeline to catch when clients are disconnecting and need to have their + * reference nulled on the 'owner' variable of an interview + * + * Arguments: + * * C - The client who is logging out + */ /datum/interview_manager/proc/client_logout(client/C) for(var/ckey in open_interviews) var/datum/interview/I = open_interviews[ckey] @@ -53,12 +53,12 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) I.owner = null /** - * Attempts to return an interview for a given client, using an existing interview if found, otherwise - * a new interview is created; if the user is on cooldown then it will return null. - * - * Arguments: - * * C - The client to get the interview for - */ + * Attempts to return an interview for a given client, using an existing interview if found, otherwise + * a new interview is created; if the user is on cooldown then it will return null. + * + * Arguments: + * * C - The client to get the interview for + */ /datum/interview_manager/proc/interview_for_client(client/C) if (!C) return @@ -70,11 +70,11 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) return open_interviews[C.ckey] /** - * Attempts to return an interview for a provided ID, will return null if no matching interview is found - * - * Arguments: - * * id - The ID of the interview to find - */ + * Attempts to return an interview for a provided ID, will return null if no matching interview is found + * + * Arguments: + * * id - The ID of the interview to find + */ /datum/interview_manager/proc/interview_by_id(id) if (!id) return @@ -87,12 +87,12 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) return I /** - * Enqueues an interview in the interview queue, and notifies admins of the new interview to be - * reviewed. - * - * Arguments: - * * to_queue - The interview to enqueue - */ + * Enqueues an interview in the interview queue, and notifies admins of the new interview to be + * reviewed. + * + * Arguments: + * * to_queue - The interview to enqueue + */ /datum/interview_manager/proc/enqueue(datum/interview/to_queue) if (!to_queue || (to_queue in interview_queue)) return @@ -112,18 +112,18 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) to_chat(X, "Interview for [ckey] enqueued for review. Current position in queue: [to_queue.pos_in_queue]", confidential = TRUE) /** - * Removes a ckey from the cooldown list, used for enforcing cooldown after an interview is denied. - * - * Arguments: - * * ckey - The ckey to remove from the cooldown list - */ + * Removes a ckey from the cooldown list, used for enforcing cooldown after an interview is denied. + * + * Arguments: + * * ckey - The ckey to remove from the cooldown list + */ /datum/interview_manager/proc/release_from_cooldown(ckey) cooldown_ckeys -= ckey /** - * Dequeues the first interview from the interview queue, and updates the queue positions of any relevant - * interviews that follow it. - */ + * Dequeues the first interview from the interview queue, and updates the queue positions of any relevant + * interviews that follow it. + */ /datum/interview_manager/proc/dequeue() if (interview_queue.len == 0) return @@ -139,12 +139,12 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) return to_return /** - * Dequeues an interview from the interview queue if present, and updates the queue positions of - * any relevant interviews that follow it. - * - * Arguments: - * * to_dequeue - The interview to dequeue - */ + * Dequeues an interview from the interview queue if present, and updates the queue positions of + * any relevant interviews that follow it. + * + * Arguments: + * * to_dequeue - The interview to dequeue + */ /datum/interview_manager/proc/dequeue_specific(datum/interview/to_dequeue) if (!to_dequeue) return @@ -160,12 +160,12 @@ GLOBAL_DATUM_INIT(interviews, /datum/interview_manager, new) interview_queue -= to_dequeue /** - * Closes an interview, removing it from the queued interviews as well as adding it to the closed - * interviews list. - * - * Arguments: - * * to_close - The interview to dequeue - */ + * Closes an interview, removing it from the queued interviews as well as adding it to the closed + * interviews list. + * + * Arguments: + * * to_close - The interview to dequeue + */ /datum/interview_manager/proc/close_interview(datum/interview/to_close) if (!to_close) return diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index c3f360413f8..44915f6bef8 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -193,8 +193,8 @@ return TRUE /** - * Gets the changes dictionary made to the job template by the map config. Returns null if job is removed. - */ + * Gets the changes dictionary made to the job template by the map config. Returns null if job is removed. + */ /datum/job/proc/GetMapChanges() var/string_type = "[type]" var/list/splits = splittext(string_type, "/") diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm index 69b7a82f8b4..aa6fe3c8717 100644 --- a/code/modules/jobs/job_types/mime.dm +++ b/code/modules/jobs/job_types/mime.dm @@ -79,11 +79,11 @@ qdel(src) /** - * Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The human mob interacting with the menu - */ + * Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The human mob interacting with the menu + */ /obj/item/book/mimery/proc/check_menu(mob/living/carbon/human/user) if(!istype(user)) return FALSE diff --git a/code/modules/language/calcic.dm b/code/modules/language/calcic.dm index f10ec293ac2..af14c6902ba 100644 --- a/code/modules/language/calcic.dm +++ b/code/modules/language/calcic.dm @@ -6,8 +6,8 @@ syllables = list( "k", "ck", "ack", "ick", "cl", "tk", "sk", "isk", "tak", "kl", "hs", "ss", "ks", "lk", "dk", "gk", "ka", "ska", "la", "pk", - "wk", "ak", "ik", "ip", "ski", "bk", "kb", "ta", "is", "it", "li", "di", - "ds", "ya", "sck", "crk", "hs", "ws", "mk", "aaa", "skraa", "skee", "hss", + "wk", "ak", "ik", "ip", "ski", "bk", "kb", "ta", "is", "it", "li", "di", + "ds", "ya", "sck", "crk", "hs", "ws", "mk", "aaa", "skraa", "skee", "hss", "raa", "klk", "tk", "stk", "clk" ) icon_state = "calcic" diff --git a/code/modules/language/shadowtongue.dm b/code/modules/language/shadowtongue.dm index 8095ecbd886..9c0adb5eea3 100644 --- a/code/modules/language/shadowtongue.dm +++ b/code/modules/language/shadowtongue.dm @@ -7,12 +7,12 @@ space_chance = 50 syllables = list( "er", "sint", "en", "et", "nor", "bahr", "sint", "un", "ku'elm", "lakor", "eri", - "noj", "dashilu", "as", "ot", "lih", "morh", "ghinu", "kin", "sha", "marik", "jibu", - "sudas", "fut", "kol", "bivi", "pohim", "devohr", "ru", "huirf", "neiris", "sut", - "devehr", "iru", "gher", "gan", "ujil", "lacor", "bahris", "ghar", "alnef", "wah", - "khurdhar", "bar", "et", "ilu", "dash", "diru", "noj", "de", "damjulan", "luvahr", - "telshahr", "tifur", "enhi", "am", "bahr", "nei", "neibahri", "n'chow", "n'wah", - "s'wit", "b'vehk", "f'lah", "muth", "sera", "sedura", "bal", "dun" + "noj", "dashilu", "as", "ot", "lih", "morh", "ghinu", "kin", "sha", "marik", "jibu", + "sudas", "fut", "kol", "bivi", "pohim", "devohr", "ru", "huirf", "neiris", "sut", + "devehr", "iru", "gher", "gan", "ujil", "lacor", "bahris", "ghar", "alnef", "wah", + "khurdhar", "bar", "et", "ilu", "dash", "diru", "noj", "de", "damjulan", "luvahr", + "telshahr", "tifur", "enhi", "am", "bahr", "nei", "neibahri", "n'chow", "n'wah", + "s'wit", "b'vehk", "f'lah", "muth", "sera", "sedura", "bal", "dun" ) icon_state = "shadow" default_priority = 90 diff --git a/code/modules/language/sylvan.dm b/code/modules/language/sylvan.dm index 4d97f6004fe..68cb73f9d52 100644 --- a/code/modules/language/sylvan.dm +++ b/code/modules/language/sylvan.dm @@ -6,10 +6,10 @@ space_chance = 20 syllables = list( "fii", "sii", "rii", "rel", "maa", "ala", "san", "tol", "tok", "dia", "eres", - "fal", "tis", "bis", "qel", "aras", "losk", "rasa", "eob", "hil", "tanl", "aere", - "fer", "bal", "pii", "dala", "ban", "foe", "doa", "cii", "uis", "mel", "wex", - "incas", "int", "elc", "ent", "aws", "qip", "nas", "vil", "jens", "dila", "fa", - "la", "re", "do", "ji", "ae", "so", "qe", "ce", "na", "mo", "ha", "yu" + "fal", "tis", "bis", "qel", "aras", "losk", "rasa", "eob", "hil", "tanl", "aere", + "fer", "bal", "pii", "dala", "ban", "foe", "doa", "cii", "uis", "mel", "wex", + "incas", "int", "elc", "ent", "aws", "qip", "nas", "vil", "jens", "dila", "fa", + "la", "re", "do", "ji", "ae", "so", "qe", "ce", "na", "mo", "ha", "yu" ) icon_state = "plant" default_priority = 90 diff --git a/code/modules/language/voltaic.dm b/code/modules/language/voltaic.dm index ead7fe7c7fd..40fa9dcb1e8 100644 --- a/code/modules/language/voltaic.dm +++ b/code/modules/language/voltaic.dm @@ -6,9 +6,9 @@ space_chance = 20 syllables = list( "bzzt", "skrrt", "zzp", "mmm", "hzz", "tk", "shz", "k", "z", - "bzt", "zzt", "skzt", "skzz", "hmmt", "zrrt", "hzzt", "hz", - "vzt", "zt", "vz", "zip", "tzp", "lzzt", "dzzt", "zdt", "kzt", - "zzzz", "mzz" + "bzt", "zzt", "skzt", "skzz", "hmmt", "zrrt", "hzzt", "hz", + "vzt", "zt", "vz", "zip", "tzp", "lzzt", "dzzt", "zdt", "kzt", + "zzzz", "mzz" ) icon_state = "volt" default_priority = 90 diff --git a/code/modules/library/skill_learning/skillchip.dm b/code/modules/library/skill_learning/skillchip.dm index 9926c9127c2..c87a123c54d 100644 --- a/code/modules/library/skill_learning/skillchip.dm +++ b/code/modules/library/skill_learning/skillchip.dm @@ -47,13 +47,13 @@ removable = is_removable /** - * Activates the skillchip, if possible. - * - * Returns a message containing the reason if activation is not possible. - * Arguments: - * * silent - Boolean. Whether or not an activation message should be shown to the user. - * * force - Boolean. Whether or not to just force de-activation if it would be prevented for any reason. - */ + * Activates the skillchip, if possible. + * + * Returns a message containing the reason if activation is not possible. + * Arguments: + * * silent - Boolean. Whether or not an activation message should be shown to the user. + * * force - Boolean. Whether or not to just force de-activation if it would be prevented for any reason. + */ /obj/item/skillchip/proc/try_activate_skillchip(silent = FALSE, force = FALSE) // Should not happen. Holding brain is destroyed and the chip hasn't had its state set appropriately. if(QDELETED(holding_brain)) @@ -85,13 +85,13 @@ on_activate(holding_brain.owner, silent) /** - * Deactivates the skillchip, if possible. - * - * Returns a message containing the reason if deactivation is not possible. - * Arguments: - * * silent - Boolean. Whether or not an activation message should be shown to the user. - * * force - Boolean. Whether or not to just force de-activation if it would be prevented for any reason. - */ + * Deactivates the skillchip, if possible. + * + * Returns a message containing the reason if deactivation is not possible. + * Arguments: + * * silent - Boolean. Whether or not an activation message should be shown to the user. + * * force - Boolean. Whether or not to just force de-activation if it would be prevented for any reason. + */ /obj/item/skillchip/proc/try_deactivate_skillchip(silent = FALSE, force = FALSE) if(!active) return "Skillchip is not active." @@ -120,11 +120,11 @@ on_deactivate(holding_brain.owner, silent) /** - * Called when a skillchip is inserted in a user's brain. - * - * Arguments: - * * owner_brain - The brain that this skillchip was implanted in to. - */ + * Called when a skillchip is inserted in a user's brain. + * + * Arguments: + * * owner_brain - The brain that this skillchip was implanted in to. + */ /obj/item/skillchip/proc/on_implant(obj/item/organ/brain/owner_brain) if(holding_brain) CRASH("Skillchip is trying to be implanted into [owner_brain], but it's already implanted in [holding_brain]") @@ -132,12 +132,12 @@ holding_brain = owner_brain /** - * Called when a skillchip is activated. - * - * Arguments: - * * user - The user to apply skillchip effects to. - * * silent - Boolean. Whether or not an activation message should be shown to the user. - */ + * Called when a skillchip is activated. + * + * Arguments: + * * user - The user to apply skillchip effects to. + * * silent - Boolean. Whether or not an activation message should be shown to the user. + */ /obj/item/skillchip/proc/on_activate(mob/living/carbon/user, silent=FALSE) if(!silent && activate_message) to_chat(user, activate_message) @@ -150,13 +150,13 @@ COOLDOWN_START(src, chip_cooldown, cooldown) /** - * Called when a skillchip is removed from the user's brain. - * - * Always deactivates the skillchip. - * Arguments: - * * user - The user to remove skillchip effects from. - * * silent - Boolean. Whether or not a deactivation message should be shown to the user. - */ + * Called when a skillchip is removed from the user's brain. + * + * Always deactivates the skillchip. + * Arguments: + * * user - The user to remove skillchip effects from. + * * silent - Boolean. Whether or not a deactivation message should be shown to the user. + */ /obj/item/skillchip/proc/on_removal(silent=FALSE) if(active) try_deactivate_skillchip(silent, TRUE) @@ -166,12 +166,12 @@ holding_brain = null /** - * Called when a skillchip is deactivated. - * - * Arguments: - * * user - The user to remove skillchip effects from. - * * silent - Boolean. Whether or not a deactivation message should be shown to the user. - */ + * Called when a skillchip is deactivated. + * + * Arguments: + * * user - The user to remove skillchip effects from. + * * silent - Boolean. Whether or not a deactivation message should be shown to the user. + */ /obj/item/skillchip/proc/on_deactivate(mob/living/carbon/user, silent=FALSE) if(!silent && deactivate_message) to_chat(user, deactivate_message) @@ -184,13 +184,13 @@ COOLDOWN_START(src, chip_cooldown, cooldown) /** - * Checks whether a given skillchip has an incompatibility with a brain that should render it impossible - * to activate. - * - * Returns a string with an explanation if the chip is not activatable. FALSE otherwise. - * Arguments: - * * skillchip - The skillchip you're intending to activate. Does not activate the chip. - */ + * Checks whether a given skillchip has an incompatibility with a brain that should render it impossible + * to activate. + * + * Returns a string with an explanation if the chip is not activatable. FALSE otherwise. + * Arguments: + * * skillchip - The skillchip you're intending to activate. Does not activate the chip. + */ /obj/item/skillchip/proc/has_activate_incompatibility(obj/item/organ/brain/brain) if(QDELETED(brain)) return "No brain detected." @@ -205,15 +205,15 @@ /** - * Checks for skillchip incompatibility with another chip. - * - * Does *this* skillchip have incompatibility with the skillchip in the args? - * Override this with any snowflake chip-vs-chip incompatibility checks. - * Returns a string with an incompatibility explanation if the chip is not compatible, returns FALSE - * if it is compatible. - * Arguments: - * * skillchip - The skillchip to test for incompatability. - */ + * Checks for skillchip incompatibility with another chip. + * + * Does *this* skillchip have incompatibility with the skillchip in the args? + * Override this with any snowflake chip-vs-chip incompatibility checks. + * Returns a string with an incompatibility explanation if the chip is not compatible, returns FALSE + * if it is compatible. + * Arguments: + * * skillchip - The skillchip to test for incompatability. + */ /obj/item/skillchip/proc/has_skillchip_incompatibility(obj/item/skillchip/skillchip) // Only allow multiple copies of a type if SKILLCHIP_ALLOWS_MULTIPLE flag is set if(!(skillchip_flags & SKILLCHIP_ALLOWS_MULTIPLE) && (skillchip.type == type)) @@ -226,15 +226,15 @@ return FALSE /** - * Performs a full sweep of checks that dictate if this chip can be implanted in a given target. - * - * Override this with any snowflake chip checks. An example of which would be checking if a target is - * mindshielded if you've got a special security skillchip. - * Returns a string with an incompatibility explanation if the chip is not compatible, returns FALSE - * if it is compatible. - * Arguments: - * * target - The mob to check for implantability with. - */ + * Performs a full sweep of checks that dictate if this chip can be implanted in a given target. + * + * Override this with any snowflake chip checks. An example of which would be checking if a target is + * mindshielded if you've got a special security skillchip. + * Returns a string with an incompatibility explanation if the chip is not compatible, returns FALSE + * if it is compatible. + * Arguments: + * * target - The mob to check for implantability with. + */ /obj/item/skillchip/proc/has_mob_incompatibility(mob/living/carbon/target) // No carbon/carbon of incorrect type if(!istype(target)) @@ -253,13 +253,13 @@ return FALSE /** - * Performs a full sweep of checks that dictate if this chip can be implanted in a given brain. - * - * Override this with any snowflake chip checks. - * Returns TRUE if the chip is fully compatible, FALSE otherwise. - * Arguments: - * * brain - The brain to check for implantability with. - */ + * Performs a full sweep of checks that dictate if this chip can be implanted in a given brain. + * + * Override this with any snowflake chip checks. + * Returns TRUE if the chip is fully compatible, FALSE otherwise. + * Arguments: + * * brain - The brain to check for implantability with. + */ /obj/item/skillchip/proc/has_brain_incompatibility(obj/item/organ/brain/brain) if(!istype(brain)) stack_trace("Attempted to check incompatibility with invalid brain object [brain].") @@ -283,36 +283,36 @@ return FALSE /** - * Returns whether the chip is on cooldown. Chips ordinarily go on cooldown when activated. - * - * This does not mean the chip should be impossible to do anything with. - * It's up to each individual piece of code to decide what it does with the result of this proc. - * - * Returns TRUE if the chip's extraction cooldown hasn't yet passed. - */ + * Returns whether the chip is on cooldown. Chips ordinarily go on cooldown when activated. + * + * This does not mean the chip should be impossible to do anything with. + * It's up to each individual piece of code to decide what it does with the result of this proc. + * + * Returns TRUE if the chip's extraction cooldown hasn't yet passed. + */ /obj/item/skillchip/proc/is_on_cooldown() return !COOLDOWN_FINISHED(src, chip_cooldown) /** - * Returns whether the chip is active. - * - * Intended to be overriden. - * Returns TRUE if the chip is active. - */ + * Returns whether the chip is active. + * + * Intended to be overriden. + * Returns TRUE if the chip is active. + */ /obj/item/skillchip/proc/is_active() return active /** - * Returns the chip's complexity. - * - * Intended to be overriden. - */ + * Returns the chip's complexity. + * + * Intended to be overriden. + */ /obj/item/skillchip/proc/get_complexity() return complexity /** - * Returns a list of basic chip info. Used by the skill station. - */ + * Returns a list of basic chip info. Used by the skill station. + */ /obj/item/skillchip/proc/get_chip_data() return list( "name" = skill_name, @@ -328,12 +328,12 @@ "actionable" = is_on_cooldown()) /** - * Gets key metadata from this skillchip in an assoc list. - * - * If you override this proc, don't forget to also override set_metadata, which takes the output of - * this proc and uses it to set the metadata. - * Does not copy over any owner or brain status. Handle that externally. - */ + * Gets key metadata from this skillchip in an assoc list. + * + * If you override this proc, don't forget to also override set_metadata, which takes the output of + * this proc and uses it to set the metadata. + * Does not copy over any owner or brain status. Handle that externally. + */ /obj/item/skillchip/proc/get_metadata() var/list/metadata = list() metadata["type"] = type @@ -344,15 +344,15 @@ return metadata /** - * Sets key metadata for this skillchip from an assoc list. - * - * Best used with the output from get_metadata() of another chip. - * If you override this proc, don't forget to also override get_metadata, which is where you should - * usually get the assoc list that feeds into this proc. - * Does not set any owner or brain status. Handle that externally. - * Arguments: - * metadata - Ideally the output of another chip's get_metadata proc. Assoc list of metadata. - */ + * Sets key metadata for this skillchip from an assoc list. + * + * Best used with the output from get_metadata() of another chip. + * If you override this proc, don't forget to also override get_metadata, which is where you should + * usually get the assoc list that feeds into this proc. + * Does not set any owner or brain status. Handle that externally. + * Arguments: + * metadata - Ideally the output of another chip's get_metadata proc. Assoc list of metadata. + */ /obj/item/skillchip/proc/set_metadata(list/metadata) var/active_msg // Start by trying to activate. diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm index bf343829b86..2ed5e01c53f 100644 --- a/code/modules/library/soapstone.dm +++ b/code/modules/library/soapstone.dm @@ -87,10 +87,10 @@ name = "dull [initial(name)]" /* Persistent engraved messages, etched onto the station turfs to serve - as instructions and/or memes for the next generation of spessmen. +as instructions and/or memes for the next generation of spessmen. - Limited in location to station_z only. Can be smashed out or exploded, - but only permamently removed with the curator's soapstone. +Limited in location to station_z only. Can be smashed out or exploded, +but only permamently removed with the curator's soapstone. */ /obj/item/soapstone/infinite diff --git a/code/modules/lighting/emissive_blocker.dm b/code/modules/lighting/emissive_blocker.dm index b69a474009e..8cb1b72475b 100644 --- a/code/modules/lighting/emissive_blocker.dm +++ b/code/modules/lighting/emissive_blocker.dm @@ -1,11 +1,11 @@ /** - * Internal atom that copies an appearance on to the blocker plane - * - * Copies an appearance vis render_target and render_source on to the emissive blocking plane. - * This means that the atom in question will block any emissive sprites. - * This should only be used internally. If you are directly creating more of these, you're - * almost guaranteed to be doing something wrong. - */ + * Internal atom that copies an appearance on to the blocker plane + * + * Copies an appearance vis render_target and render_source on to the emissive blocking plane. + * This means that the atom in question will block any emissive sprites. + * This should only be used internally. If you are directly creating more of these, you're + * almost guaranteed to be doing something wrong. + */ /atom/movable/emissive_blocker name = "" plane = EMISSIVE_BLOCKER_PLANE diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index e3897572632..47a80ca4d96 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -48,11 +48,11 @@ /** - * Updates the atom's opacity value. - * - * This exists to act as a hook for associated behavior. - * It notifies (potentially) affected light sources so they can update (if needed). - */ + * Updates the atom's opacity value. + * + * This exists to act as a hook for associated behavior. + * It notifies (potentially) affected light sources so they can update (if needed). + */ /atom/proc/set_opacity(new_opacity) if (new_opacity == opacity) return diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm index d73663b5b3d..b4368ca40ab 100644 --- a/code/modules/lighting/lighting_source.dm +++ b/code/modules/lighting/lighting_source.dm @@ -104,7 +104,7 @@ . *= light_power; \ var/OLD = effect_str[C]; \ effect_str[C] = .; \ - \ + \ C.update_lumcount \ ( \ (. * lum_r) - (OLD * applied_lum_r), \ diff --git a/code/modules/mafia/controller.dm b/code/modules/mafia/controller.dm index 7811bd2f0f5..4e68e78401f 100644 --- a/code/modules/mafia/controller.dm +++ b/code/modules/mafia/controller.dm @@ -1,9 +1,9 @@ /** - * The mafia controller handles the mafia minigame in progress. - * It is first created when the first ghost signs up to play. - */ + * The mafia controller handles the mafia minigame in progress. + * It is first created when the first ghost signs up to play. + */ /datum/mafia_controller ///list of observers that should get game updates. var/list/spectators = list() @@ -75,19 +75,19 @@ qdel(map_deleter) /** - * Triggers at beginning of the game when there is a confirmed list of valid, ready players. - * Creates a 100% ready game that has NOT started (no players in bodies) - * Followed by start game - * - * Does the following: - * * Picks map, and loads it - * * Grabs landmarks if it is the first time it's loading - * * Sets up the role list - * * Puts players in each role randomly - * Arguments: - * * setup_list: list of all the datum setups (fancy list of roles) that would work for the game - * * ready_players: list of filtered, sane players (so not playing or disconnected) for the game to put into roles - */ + * Triggers at beginning of the game when there is a confirmed list of valid, ready players. + * Creates a 100% ready game that has NOT started (no players in bodies) + * Followed by start game + * + * Does the following: + * * Picks map, and loads it + * * Grabs landmarks if it is the first time it's loading + * * Sets up the role list + * * Puts players in each role randomly + * Arguments: + * * setup_list: list of all the datum setups (fancy list of roles) that would work for the game + * * ready_players: list of filtered, sane players (so not playing or disconnected) for the game to put into roles + */ /datum/mafia_controller/proc/prepare_game(setup_list,ready_players) var/list/possible_maps = subtypesof(/datum/map_template/mafia) @@ -137,23 +137,23 @@ to_chat(M, "[link] MAFIA: [msg] [team_suffix]") /** - * The game by this point is now all set up, and so we can put people in their bodies and start the first phase. - * - * Does the following: - * * Creates bodies for all of the roles with the first proc - * * Starts the first day manually (so no timer) with the second proc - */ + * The game by this point is now all set up, and so we can put people in their bodies and start the first phase. + * + * Does the following: + * * Creates bodies for all of the roles with the first proc + * * Starts the first day manually (so no timer) with the second proc + */ /datum/mafia_controller/proc/start_game() create_bodies() start_day() /** - * How every day starts. - * - * What players do in this phase: - * * If day one, just a small starting period to see who is in the game and check role, leading to the night phase. - * * Otherwise, it's a longer period used to discuss events that happened during the night, leading to the voting phase. - */ + * How every day starts. + * + * What players do in this phase: + * * If day one, just a small starting period to see who is in the game and check role, leading to the night phase. + * * Otherwise, it's a longer period used to discuss events that happened during the night, leading to the voting phase. + */ /datum/mafia_controller/proc/start_day() turn += 1 phase = MAFIA_PHASE_DAY @@ -169,12 +169,12 @@ SStgui.update_uis(src) /** - * Players have finished the discussion period, and now must put up someone to the chopping block. - * - * What players do in this phase: - * * Vote on which player to put up for lynching, leading to the judgement phase. - * * If no votes are case, the judgement phase is skipped, leading to the night phase. - */ + * Players have finished the discussion period, and now must put up someone to the chopping block. + * + * What players do in this phase: + * * Vote on which player to put up for lynching, leading to the judgement phase. + * * If no votes are case, the judgement phase is skipped, leading to the night phase. + */ /datum/mafia_controller/proc/start_voting_phase() phase = MAFIA_PHASE_VOTING next_phase_timer = addtimer(CALLBACK(src, .proc/check_trial, TRUE),voting_phase_period,TIMER_STOPPABLE) //be verbose! @@ -182,15 +182,15 @@ SStgui.update_uis(src) /** - * Players have voted someone up, and now the person must defend themselves while the town votes innocent or guilty. - * - * What players do in this phase: - * * Vote innocent or guilty, if they are not on trial. - * * Defend themselves and wait for judgement, if they are. - * * Leads to the lynch phase. - * Arguments: - * * verbose: boolean, announces whether there were votes or not. after judgement it goes back here with no voting period to end the day. - */ + * Players have voted someone up, and now the person must defend themselves while the town votes innocent or guilty. + * + * What players do in this phase: + * * Vote innocent or guilty, if they are not on trial. + * * Defend themselves and wait for judgement, if they are. + * * Leads to the lynch phase. + * Arguments: + * * verbose: boolean, announces whether there were votes or not. after judgement it goes back here with no voting period to end the day. + */ /datum/mafia_controller/proc/check_trial(verbose = TRUE) var/datum/mafia_role/loser = get_vote_winner("Day")//, majority_of_town = TRUE) var/loser_votes = get_vote_count(loser,"Day") @@ -219,12 +219,12 @@ SStgui.update_uis(src) /** - * Players have voted innocent or guilty on the person on trial, and that person is now killed or returned home. - * - * What players do in this phase: - * * r/watchpeopledie - * * If the accused is killed, their true role is revealed to the rest of the players. - */ + * Players have voted innocent or guilty on the person on trial, and that person is now killed or returned home. + * + * What players do in this phase: + * * r/watchpeopledie + * * If the accused is killed, their true role is revealed to the rest of the players. + */ /datum/mafia_controller/proc/lynch() for(var/i in judgement_innocent_votes) var/datum/mafia_role/role = i @@ -247,25 +247,25 @@ next_phase_timer = addtimer(CALLBACK(src, .proc/check_trial, FALSE),judgement_lynch_period,TIMER_STOPPABLE)// small pause to see the guy dead, no verbosity since we already did this /** - * Teenie helper proc to move players back to their home. - * Used in the above, but also used in the debug button "send all players home" - * Arguments: - * * role: mafia role that is getting sent back to the game. - */ + * Teenie helper proc to move players back to their home. + * Used in the above, but also used in the debug button "send all players home" + * Arguments: + * * role: mafia role that is getting sent back to the game. + */ /datum/mafia_controller/proc/send_home(datum/mafia_role/role) role.body.forceMove(get_turf(role.assigned_landmark)) /** - * Checks to see if a faction (or solo antagonist) has won. - * - * Calculates in this order: - * * counts up town, mafia, and solo - * * solos can count as town members for the purposes of mafia winning - * * sends the amount of living people to the solo antagonists, and see if they won OR block the victory of the teams - * * checks if solos won from above, then if town, then if mafia - * * starts the end of the game if a faction won - * * returns TRUE if someone won the game, halting other procs from continuing in the case of a victory - */ + * Checks to see if a faction (or solo antagonist) has won. + * + * Calculates in this order: + * * counts up town, mafia, and solo + * * solos can count as town members for the purposes of mafia winning + * * sends the amount of living people to the solo antagonists, and see if they won OR block the victory of the teams + * * checks if solos won from above, then if town, then if mafia + * * starts the end of the game if a faction won + * * returns TRUE if someone won the game, halting other procs from continuing in the case of a victory + */ /datum/mafia_controller/proc/check_victory() //needed for achievements var/list/total_town = list() @@ -326,12 +326,12 @@ return TRUE /** - * Lets the game award roles with all their checks and sanity, prevents achievements given out for debug games - * - * Arguments: - * * award: path of the award - * * role: mafia_role datum to reward. - */ + * Lets the game award roles with all their checks and sanity, prevents achievements given out for debug games + * + * Arguments: + * * award: path of the award + * * role: mafia_role datum to reward. + */ /datum/mafia_controller/proc/award_role(award, datum/mafia_role/rewarded) if(custom_setup.len) return @@ -339,15 +339,15 @@ role_client?.give_award(award, rewarded.body) /** - * The end of the game is in two procs, because we want a bit of time for players to see eachothers roles. - * Because of how check_victory works, the game is halted in other places by this point. - * - * What players do in this phase: - * * See everyone's role postgame - * * See who won the game - * Arguments: - * * message: string, if non-null it sends it to all players. used to announce team victories while solos are handled in check victory - */ + * The end of the game is in two procs, because we want a bit of time for players to see eachothers roles. + * Because of how check_victory works, the game is halted in other places by this point. + * + * What players do in this phase: + * * See everyone's role postgame + * * See who won the game + * Arguments: + * * message: string, if non-null it sends it to all players. used to announce team victories while solos are handled in check victory + */ /datum/mafia_controller/proc/start_the_end(message) SEND_SIGNAL(src,COMSIG_MAFIA_GAME_END) if(message) @@ -358,8 +358,8 @@ next_phase_timer = addtimer(CALLBACK(src,.proc/end_game),victory_lap_period,TIMER_STOPPABLE) /** - * Cleans up the game, resetting variables back to the beginning and removing the map with the generator. - */ + * Cleans up the game, resetting variables back to the beginning and removing the map with the generator. + */ /datum/mafia_controller/proc/end_game() map_deleter.generate() //remove the map, it will be loaded at the start of the next one QDEL_LIST(all_roles) @@ -373,17 +373,17 @@ phase = MAFIA_PHASE_SETUP /** - * After the voting and judgement phases, the game goes to night shutting the windows and beginning night with a proc. - */ + * After the voting and judgement phases, the game goes to night shutting the windows and beginning night with a proc. + */ /datum/mafia_controller/proc/lockdown() toggle_night_curtains(close=TRUE) start_night() /** - * Shuts poddoors attached to mafia. - * Arguments: - * * close: boolean, the state you want the curtains in. - */ + * Shuts poddoors attached to mafia. + * Arguments: + * * close: boolean, the state you want the curtains in. + */ /datum/mafia_controller/proc/toggle_night_curtains(close) for(var/obj/machinery/door/poddoor/D in GLOB.machines) //I really dislike pathing of these if(D.id != "mafia") //so as to not trigger shutters on station, lol @@ -394,12 +394,12 @@ INVOKE_ASYNC(D, /obj/machinery/door/poddoor.proc/open) /** - * The actual start of night for players. Mostly info is given at the start of the night as the end of the night is when votes and actions are submitted and tried. - * - * What players do in this phase: - * * Mafia are told to begin voting on who to kill - * * Powers that are picked during the day announce themselves right now - */ + * The actual start of night for players. Mostly info is given at the start of the night as the end of the night is when votes and actions are submitted and tried. + * + * What players do in this phase: + * * Mafia are told to begin voting on who to kill + * * Powers that are picked during the day announce themselves right now + */ /datum/mafia_controller/proc/start_night() phase = MAFIA_PHASE_NIGHT send_message("Night [turn] started! Lockdown will end in 45 seconds.") @@ -408,16 +408,16 @@ SStgui.update_uis(src) /** - * The end of the night, and a series of signals for the order of events on a night. - * - * Order of events, and what they mean: - * * Start of resolve (NIGHT_START) is for activating night abilities that MUST go first - * * Action phase (NIGHT_ACTION_PHASE) is for non-lethal day abilities - * * Mafia then tallies votes and kills the highest voted person (note: one random voter visits that person for the purposes of roleblocking) - * * Killing phase (NIGHT_KILL_PHASE) is for lethal night abilities - * * End of resolve (NIGHT_END) is for cleaning up abilities that went off and i guess doing some that must go last - * * Finally opens the curtains and calls the start of day phase, completing the cycle until check victory returns TRUE - */ + * The end of the night, and a series of signals for the order of events on a night. + * + * Order of events, and what they mean: + * * Start of resolve (NIGHT_START) is for activating night abilities that MUST go first + * * Action phase (NIGHT_ACTION_PHASE) is for non-lethal day abilities + * * Mafia then tallies votes and kills the highest voted person (note: one random voter visits that person for the purposes of roleblocking) + * * Killing phase (NIGHT_KILL_PHASE) is for lethal night abilities + * * End of resolve (NIGHT_END) is for cleaning up abilities that went off and i guess doing some that must go last + * * Finally opens the curtains and calls the start of day phase, completing the cycle until check victory returns TRUE + */ /datum/mafia_controller/proc/resolve_night() SEND_SIGNAL(src,COMSIG_MAFIA_NIGHT_START) SEND_SIGNAL(src,COMSIG_MAFIA_NIGHT_ACTION_PHASE) @@ -438,15 +438,15 @@ SStgui.update_uis(src) /** - * Proc that goes off when players vote for something with their mafia panel. - * - * If teams, it hides the tally overlay and only sends the vote messages to the team that is voting - * Arguments: - * * voter: the mafia role that is trying to vote for... - * * target: the mafia role that is getting voted for - * * vote_type: type of vote submitted (is this the day vote? is this the mafia night vote?) - * * teams: see mafia team defines for what to put in, makes the messages only send to a specific team (so mafia night votes only sending messages to mafia at night) - */ + * Proc that goes off when players vote for something with their mafia panel. + * + * If teams, it hides the tally overlay and only sends the vote messages to the team that is voting + * Arguments: + * * voter: the mafia role that is trying to vote for... + * * target: the mafia role that is getting voted for + * * vote_type: type of vote submitted (is this the day vote? is this the mafia night vote?) + * * teams: see mafia team defines for what to put in, makes the messages only send to a specific team (so mafia night votes only sending messages to mafia at night) + */ /datum/mafia_controller/proc/vote_for(datum/mafia_role/voter,datum/mafia_role/target,vote_type, teams) if(!votes[vote_type]) votes[vote_type] = list() @@ -466,8 +466,8 @@ old.body.update_icon() /** - * Clears out the votes of a certain type (day votes, mafia kill votes) while leaving others untouched - */ + * Clears out the votes of a certain type (day votes, mafia kill votes) while leaving others untouched + */ /datum/mafia_controller/proc/reset_votes(vote_type) var/list/bodies_to_update = list() for(var/vote in votes[vote_type]) @@ -478,11 +478,11 @@ M.update_icon() /** - * Returns how many people voted for the role, in whatever vote (day vote, night kill vote) - * Arguments: - * * role: the mafia role the proc tries to get the amount of votes for - * * vote_type: the vote type (getting how many day votes were for the role, or mafia night votes for the role) - */ + * Returns how many people voted for the role, in whatever vote (day vote, night kill vote) + * Arguments: + * * role: the mafia role the proc tries to get the amount of votes for + * * vote_type: the vote type (getting how many day votes were for the role, or mafia night votes for the role) + */ /datum/mafia_controller/proc/get_vote_count(role,vote_type) . = 0 for(var/v in votes[vote_type]) @@ -491,11 +491,11 @@ . += votee.vote_power /** - * Returns whichever role got the most votes, in whatever vote (day vote, night kill vote) - * returns null if no votes - * Arguments: - * * vote_type: the vote type (getting the role that got the most day votes, or the role that got the most mafia votes) - */ + * Returns whichever role got the most votes, in whatever vote (day vote, night kill vote) + * returns null if no votes + * Arguments: + * * vote_type: the vote type (getting the role that got the most day votes, or the role that got the most mafia votes) + */ /datum/mafia_controller/proc/get_vote_winner(vote_type) var/list/tally = list() for(var/votee in votes[vote_type]) @@ -507,20 +507,20 @@ return length(tally) ? tally[1] : null /** - * Returns a random person who voted for whatever vote (day vote, night kill vote) - * Arguments: - * * vote_type: vote type (getting a random day voter, or mafia night voter) - */ + * Returns a random person who voted for whatever vote (day vote, night kill vote) + * Arguments: + * * vote_type: vote type (getting a random day voter, or mafia night voter) + */ /datum/mafia_controller/proc/get_random_voter(vote_type) if(length(votes[vote_type])) return pick(votes[vote_type]) /** - * Adds mutable appearances to people who get publicly voted on (so not night votes) showing how many people are picking them - * Arguments: - * * source: the body of the role getting the overlays - * * overlay_list: signal var passing the overlay list of the mob - */ + * Adds mutable appearances to people who get publicly voted on (so not night votes) showing how many people are picking them + * Arguments: + * * source: the body of the role getting the overlays + * * overlay_list: signal var passing the overlay list of the mob + */ /datum/mafia_controller/proc/display_votes(atom/source, list/overlay_list) SIGNAL_HANDLER @@ -531,14 +531,14 @@ overlay_list += MA /** - * Called when the game is setting up, AFTER map is loaded but BEFORE the phase timers start. Creates and places each role's body and gives the correct player key - * - * Notably: - * * Toggles godmode so the mafia players cannot kill themselves - * * Adds signals for voting overlays, see display_votes proc - * * gives mafia panel - * * sends the greeting text (goals, role name, etc) - */ + * Called when the game is setting up, AFTER map is loaded but BEFORE the phase timers start. Creates and places each role's body and gives the correct player key + * + * Notably: + * * Toggles godmode so the mafia players cannot kill themselves + * * Adds signals for voting overlays, see display_votes proc + * * gives mafia panel + * * sends the greeting text (goals, role name, etc) + */ /datum/mafia_controller/proc/create_bodies() for(var/datum/mafia_role/role in all_roles) var/mob/living/carbon/human/H = new(get_turf(role.assigned_landmark)) @@ -785,13 +785,13 @@ . += L[key] /** - * Returns a semirandom setup, with... - * Town, Two invest roles, one protect role, sometimes a misc role, and the rest assistants for town. - * Mafia, 2 normal mafia and one special. - * Neutral, two disruption roles, sometimes one is a killing. - * - * See _defines.dm in the mafia folder for a rundown on what these groups of roles include. - */ + * Returns a semirandom setup, with... + * Town, Two invest roles, one protect role, sometimes a misc role, and the rest assistants for town. + * Mafia, 2 normal mafia and one special. + * Neutral, two disruption roles, sometimes one is a killing. + * + * See _defines.dm in the mafia folder for a rundown on what these groups of roles include. + */ /datum/mafia_controller/proc/generate_random_setup() var/invests_left = 2 var/protects_left = 1 @@ -830,8 +830,8 @@ return random_setup /** - * Helper proc that adds a random role of a type to a setup. if it doesn't exist in the setup, it adds the path to the list and otherwise bumps the path in the list up one - */ + * Helper proc that adds a random role of a type to a setup. if it doesn't exist in the setup, it adds the path to the list and otherwise bumps the path in the list up one + */ /datum/mafia_controller/proc/add_setup_role(setup_list, wanted_role_type) var/list/role_type_paths = list() for(var/path in typesof(/datum/mafia_role)) @@ -853,12 +853,12 @@ setup_list[mafia_path] = 1 /** - * Called when enough players have signed up to fill a setup. DOESN'T NECESSARILY MEAN THE GAME WILL START. - * - * Checks for a custom setup, if so gets the required players from that and if not it sets the player requirement to MAFIA_MAX_PLAYER_COUNT and generates one IF basic setup starts a game. - * Checks if everyone signed up is an observer, and is still connected. If people aren't, they're removed from the list. - * If there aren't enough players post sanity, it aborts. otherwise, it selects enough people for the game and starts preparing the game for real. - */ + * Called when enough players have signed up to fill a setup. DOESN'T NECESSARILY MEAN THE GAME WILL START. + * + * Checks for a custom setup, if so gets the required players from that and if not it sets the player requirement to MAFIA_MAX_PLAYER_COUNT and generates one IF basic setup starts a game. + * Checks if everyone signed up is an observer, and is still connected. If people aren't, they're removed from the list. + * If there aren't enough players post sanity, it aborts. otherwise, it selects enough people for the game and starts preparing the game for real. + */ /datum/mafia_controller/proc/basic_setup() var/req_players var/list/setup = custom_setup @@ -901,10 +901,10 @@ start_game() /** - * Called when someone signs up, and sees if there are enough people in the signup list to begin. - * - * Only checks if everyone is actually valid to start (still connected and an observer) if there are enough players (basic_setup) - */ + * Called when someone signs up, and sees if there are enough people in the signup list to begin. + * + * Only checks if everyone is actually valid to start (still connected and an observer) if there are enough players (basic_setup) + */ /datum/mafia_controller/proc/try_autostart() if(phase != MAFIA_PHASE_SETUP || !(GLOB.ghost_role_flags & GHOSTROLE_MINIGAME)) return @@ -912,10 +912,10 @@ basic_setup() /** - * Filters inactive player into a different list until they reconnect, and removes players who are no longer ghosts. - * - * If a disconnected player gets a non-ghost mob and reconnects, they will be first put back into mafia_signup then filtered by that. - */ + * Filters inactive player into a different list until they reconnect, and removes players who are no longer ghosts. + * + * If a disconnected player gets a non-ghost mob and reconnects, they will be first put back into mafia_signup then filtered by that. + */ /datum/mafia_controller/proc/check_signups() for(var/bad_key in GLOB.mafia_bad_signup) if(GLOB.directory[bad_key])//they have reconnected if we can search their key and get a client @@ -945,8 +945,8 @@ parent.ui_interact(owner) /** - * Creates the global datum for playing mafia games, destroys the last if that's required and returns the new. - */ + * Creates the global datum for playing mafia games, destroys the last if that's required and returns the new. + */ /proc/create_mafia_game() if(GLOB.mafia_game) QDEL_NULL(GLOB.mafia_game) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index a0d6e521f35..c5f97a6ba27 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -441,8 +441,8 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ sleep(15) if(loc == oldloc && user && !user.incapacitated()) user.visible_message("[user] flips [src]. It lands on [coinflip].", \ - "You flip [src]. It lands on [coinflip].", \ - "You hear the clattering of loose change.") + "You flip [src]. It lands on [coinflip].", \ + "You hear the clattering of loose change.") return TRUE//did the coin flip? useful for suicide_act /obj/item/coin/gold @@ -510,8 +510,8 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ sleep(15) if(loc == oldloc && user && !user.incapacitated()) user.visible_message("[user] flips [src]. It lands on [coinflip].", \ - "You flip [src]. It lands on [coinflip].", \ - "You hear the clattering of loose change.") + "You flip [src]. It lands on [coinflip].", \ + "You hear the clattering of loose change.") SSeconomy.fire() to_chat(user,"[SSeconomy.inflation_value()] is the inflation value.") return TRUE//did the coin flip? useful for suicide_act diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 4a9693ed75f..36d36d263c0 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -41,8 +41,8 @@ return /** - * This proc generates the panel that opens to all newly joining players, allowing them to join, observe, view polls, view the current crew manifest, and open the character customization menu. - */ + * This proc generates the panel that opens to all newly joining players, allowing them to join, observe, view polls, view the current crew manifest, and open the character customization menu. + */ /mob/dead/new_player/proc/new_player_panel() if (client?.interviewee) return @@ -541,11 +541,11 @@ return TRUE /** - * Prepares a client for the interview system, and provides them with a new interview - * - * This proc will both prepare the user by removing all verbs from them, as well as - * giving them the interview form and forcing it to appear. - */ + * Prepares a client for the interview system, and provides them with a new interview + * + * This proc will both prepare the user by removing all verbs from them, as well as + * giving them the interview form and forcing it to appear. + */ /mob/dead/new_player/proc/register_for_interview() // First we detain them by removing all the verbs they have on client for (var/v in client.verbs) diff --git a/code/modules/mob/dead/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm index cda26aaeca3..3d03b5e582c 100644 --- a/code/modules/mob/dead/new_player/poll.dm +++ b/code/modules/mob/dead/new_player/poll.dm @@ -1,7 +1,7 @@ /** - * Shows a list of currently running polls a player can vote/has voted on - * - */ + * Shows a list of currently running polls a player can vote/has voted on + * + */ /mob/dead/new_player/proc/handle_player_polling() var/list/output = list("
Player polls
") var/rs = REF(src) @@ -14,9 +14,9 @@ src << browse(jointext(output, ""),"window=playerpolllist;size=500x300") /** - * Redirects a player to the correct poll window based on poll type. - * - */ + * Redirects a player to the correct poll window based on poll type. + * + */ /mob/dead/new_player/proc/poll_player(datum/poll_question/poll) if(!poll) return @@ -36,11 +36,11 @@ poll_player_irv(poll) /** - * Shows voting window for an option type poll, listing its options and relevant details. - * - * If already voted on, the option a player voted for is pre-selected. - * - */ + * Shows voting window for an option type poll, listing its options and relevant details. + * + * If already voted on, the option a player voted for is pre-selected. + * + */ /mob/dead/new_player/proc/poll_player_option(datum/poll_question/poll) var/datum/db_query/query_option_get_voted = SSdbcore.NewQuery({" SELECT optionid FROM [format_table_name("poll_vote")] @@ -80,11 +80,11 @@ src << browse(jointext(output, ""),"window=playerpoll;size=500x250") /** - * Shows voting window for a text response type poll, listing its relevant details. - * - * If already responded to, the saved response of a player is shown. - * - */ + * Shows voting window for a text response type poll, listing its relevant details. + * + * If already responded to, the saved response of a player is shown. + * + */ /mob/dead/new_player/proc/poll_player_text(datum/poll_question/poll) var/datum/db_query/query_text_get_replytext = SSdbcore.NewQuery({" SELECT replytext FROM [format_table_name("poll_textreply")] @@ -117,11 +117,11 @@ src << browse(jointext(output, ""),"window=playerpoll;size=500x500") /** - * Shows voting window for a rating type poll, listing its options and relevant details. - * - * If already voted on, the options a player voted for are pre-selected. - * - */ + * Shows voting window for a rating type poll, listing its options and relevant details. + * + * If already voted on, the options a player voted for are pre-selected. + * + */ /mob/dead/new_player/proc/poll_player_rating(datum/poll_question/poll) var/datum/db_query/query_rating_get_votes = SSdbcore.NewQuery({" SELECT optionid, rating FROM [format_table_name("poll_vote")] @@ -172,11 +172,11 @@ src << browse(jointext(output, ""),"window=playerpoll;size=500x500") /** - * Shows voting window for a multiple choice type poll, listing its options and relevant details. - * - * If already voted on, the options a player voted for are pre-selected. - * - */ + * Shows voting window for a multiple choice type poll, listing its options and relevant details. + * + * If already voted on, the options a player voted for are pre-selected. + * + */ /mob/dead/new_player/proc/poll_player_multi(datum/poll_question/poll) var/datum/db_query/query_multi_get_votes = SSdbcore.NewQuery({" SELECT optionid FROM [format_table_name("poll_vote")] @@ -216,11 +216,11 @@ src << browse(jointext(output, ""),"window=playerpoll;size=500x300") /** - * Shows voting window for an IRV type poll, listing its options and relevant details. - * - * If already voted on, the options are sorted how a player voted for them, otherwise they are randomly shuffled. - * - */ + * Shows voting window for an IRV type poll, listing its options and relevant details. + * + * If already voted on, the options are sorted how a player voted for them, otherwise they are randomly shuffled. + * + */ /mob/dead/new_player/proc/poll_player_irv(datum/poll_question/poll) var/datum/asset/irv_assets = get_asset_datum(/datum/asset/group/irv) irv_assets.send(src) @@ -304,13 +304,13 @@ src << browse(jointext(output, ""),"window=playerpoll;size=500x500") /** - * Runs some poll validation before a vote is processed. - * - * Checks a player is who they claim to be and that a poll is actually still running. - * Also loads the vote_id to pass onto single-option and text polls. - * Increments the vote count when successful. - * - */ + * Runs some poll validation before a vote is processed. + * + * Checks a player is who they claim to be and that a poll is actually still running. + * Also loads the vote_id to pass onto single-option and text polls. + * Increments the vote count when successful. + * + */ /mob/dead/new_player/proc/vote_on_poll_handler(datum/poll_question/poll, href_list) if(!SSdbcore.Connect()) to_chat(src, "Failed to establish database connection.") @@ -375,9 +375,9 @@ to_chat(usr, "Vote successful.") /** - * Processes vote form data and saves results to the database for an option type poll. - * - */ + * Processes vote form data and saves results to the database for an option type poll. + * + */ /mob/dead/new_player/proc/vote_on_poll_option(datum/poll_question/poll, href_list, admin_rank, sql_poll_id, vote_id) if(!SSdbcore.Connect()) to_chat(src, "Failed to establish database connection.") @@ -407,9 +407,9 @@ return TRUE /** - * Processes response form data and saves results to the database for a text response type poll. - * - */ + * Processes response form data and saves results to the database for a text response type poll. + * + */ /mob/dead/new_player/proc/vote_on_poll_text(href_list, admin_rank, sql_poll_id, vote_id) if(!SSdbcore.Connect()) to_chat(src, "Failed to establish database connection.") @@ -439,9 +439,9 @@ return TRUE /** - * Processes vote form data and saves results to the database for a rating type poll. - * - */ + * Processes vote form data and saves results to the database for a rating type poll. + * + */ /mob/dead/new_player/proc/vote_on_poll_rating(datum/poll_question/poll, list/href_list, admin_rank, sql_poll_id) if(!SSdbcore.Connect()) to_chat(src, "Failed to establish database connection.") @@ -482,9 +482,9 @@ return TRUE /** - * Processes vote form data and saves results to the database for a multiple choice type poll. - * - */ + * Processes vote form data and saves results to the database for a multiple choice type poll. + * + */ /mob/dead/new_player/proc/vote_on_poll_multi(datum/poll_question/poll, list/href_list, admin_rank, sql_poll_id) if(!SSdbcore.Connect()) to_chat(src, "Failed to establish database connection.") @@ -529,9 +529,9 @@ return TRUE /** - * Processes vote form data and saves results to the database for an IRV type poll. - * - */ + * Processes vote form data and saves results to the database for an IRV type poll. + * + */ /mob/dead/new_player/proc/vote_on_poll_irv(datum/poll_question/poll, list/href_list, admin_rank, sql_poll_id) if(!SSdbcore.Connect()) to_chat(src, "Failed to establish database connection.") diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 41b65d3eafc..a3a027958a0 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -276,10 +276,10 @@ //The following functions are the same save for one small difference /** - * Used to drop an item (if it exists) to the ground. - * * Will pass as TRUE is successfully dropped, or if there is no item to drop. - * * Will pass FALSE if the item can not be dropped due to TRAIT_NODROP via doUnEquip() - * If the item can be dropped, it will be forceMove()'d to the ground and the turf's Entered() will be called. + * Used to drop an item (if it exists) to the ground. + * * Will pass as TRUE is successfully dropped, or if there is no item to drop. + * * Will pass FALSE if the item can not be dropped due to TRAIT_NODROP via doUnEquip() + * If the item can be dropped, it will be forceMove()'d to the ground and the turf's Entered() will be called. */ /mob/proc/dropItemToGround(obj/item/I, force = FALSE, silent = FALSE, invdrop = TRUE) . = doUnEquip(I, force, drop_location(), FALSE, invdrop = invdrop, silent = silent) diff --git a/code/modules/mob/living/brain/skillchip.dm b/code/modules/mob/living/brain/skillchip.dm index 636dad03db1..393edf311eb 100644 --- a/code/modules/mob/living/brain/skillchip.dm +++ b/code/modules/mob/living/brain/skillchip.dm @@ -1,11 +1,11 @@ /** - * Attempts to remove target skillchip from the brain. - * - * Returns whether the skillchip was removed or not. - * If you're removing the skillchip from a mob, use the remove_skillchip proc in mob/living/carbon instead. - * Arguments: - * * skillchip - The skillchip you'd like to remove. - */ + * Attempts to remove target skillchip from the brain. + * + * Returns whether the skillchip was removed or not. + * If you're removing the skillchip from a mob, use the remove_skillchip proc in mob/living/carbon instead. + * Arguments: + * * skillchip - The skillchip you'd like to remove. + */ /obj/item/organ/brain/proc/remove_skillchip(obj/item/skillchip/skillchip, silent = FALSE) // Check this skillchip is in the brain. if(!(skillchip in skillchips)) @@ -17,16 +17,16 @@ return TRUE /** - * Attempts to implant target skillchip into the brain. - * - * Returns whether the skillchip was implanted or not. - * If you're implanting the skillchip into a mob, use the implant_skillchip proc in mob/living/carbon instead. - * DANGEROUS - This proc assumes you've done the appropriate checks to make sure the skillchip should be implanted. - * Where possible, call the mob/living/carbon version of this proc which does relevant checks. - * Arguments: - * * skillchip - The skillchip you'd like to implant. - * * force - Whether or not to force the skillchip to be implanted, ignoring any checks. - */ + * Attempts to implant target skillchip into the brain. + * + * Returns whether the skillchip was implanted or not. + * If you're implanting the skillchip into a mob, use the implant_skillchip proc in mob/living/carbon instead. + * DANGEROUS - This proc assumes you've done the appropriate checks to make sure the skillchip should be implanted. + * Where possible, call the mob/living/carbon version of this proc which does relevant checks. + * Arguments: + * * skillchip - The skillchip you'd like to implant. + * * force - Whether or not to force the skillchip to be implanted, ignoring any checks. + */ /obj/item/organ/brain/proc/implant_skillchip(obj/item/skillchip/skillchip, force = FALSE) // If we're not forcing the implant, so let's do some checks. if(!force) @@ -43,13 +43,13 @@ return /** - * Creates a list of assoc lists containing skillchip types and key metadata. - * - * Returns a complete list of new skillchip types with their metadata cloned from the brain's existing skillchip stock. - * Rumour has it that Changelings just LOVE this proc. - * Arguments: - * * not_removable - Special override, whether or not to force cloned chips to be non-removable, i.e. to delete on removal. - */ + * Creates a list of assoc lists containing skillchip types and key metadata. + * + * Returns a complete list of new skillchip types with their metadata cloned from the brain's existing skillchip stock. + * Rumour has it that Changelings just LOVE this proc. + * Arguments: + * * not_removable - Special override, whether or not to force cloned chips to be non-removable, i.e. to delete on removal. + */ /obj/item/organ/brain/proc/clone_skillchip_list(not_removable = FALSE) var/list/skillchip_metadata = list() // Remove and call on_removal proc if successful. @@ -72,10 +72,10 @@ return skillchip_metadata /** - * Destroys all skillchips in the brain, calling on_removal if the brain has an owner. - * Arguments: - * * silent - Whether to give the user a chat notification with the removal flavour text. - */ + * Destroys all skillchips in the brain, calling on_removal if the brain has an owner. + * Arguments: + * * silent - Whether to give the user a chat notification with the removal flavour text. + */ /obj/item/organ/brain/proc/destroy_all_skillchips(silent = TRUE) if(!QDELETED(owner)) for(var/chip in skillchips) @@ -84,8 +84,8 @@ QDEL_LIST(skillchips) /** - * Returns the total maximum skillchip complexity supported by this brain. - */ + * Returns the total maximum skillchip complexity supported by this brain. + */ /obj/item/organ/brain/proc/get_max_skillchip_complexity() if(!QDELETED(owner)) return max_skillchip_complexity + owner.skillchip_complexity_modifier @@ -93,8 +93,8 @@ return max_skillchip_complexity /** - * Returns the total current skillchip complexity used in this brain. - */ + * Returns the total current skillchip complexity used in this brain. + */ /obj/item/organ/brain/proc/get_used_skillchip_complexity() var/complexity_tally = 0 @@ -109,14 +109,14 @@ return complexity_tally /** - * Returns the total maximum skillchip slot capacity supported by this brain. - */ + * Returns the total maximum skillchip slot capacity supported by this brain. + */ /obj/item/organ/brain/proc/get_max_skillchip_slots() return max_skillchip_slots /** - * Returns the total current skillchip slot capacity used in this brain. - */ + * Returns the total current skillchip slot capacity used in this brain. + */ /obj/item/organ/brain/proc/get_used_skillchip_slots() var/slot_tally = 0 @@ -128,8 +128,8 @@ return slot_tally /** - * Deactivates all chips currently in the brain. - */ + * Deactivates all chips currently in the brain. + */ /obj/item/organ/brain/proc/activate_skillchip_failsafe(silent = TRUE) if(QDELETED(owner)) return diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index d8a3082ce7d..8f9259ab6ca 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -1199,14 +1199,14 @@ return total_bleed_rate /** - * generate_fake_scars()- for when you want to scar someone, but you don't want to hurt them first. These scars don't count for temporal scarring (hence, fake) - * - * If you want a specific wound scar, pass that wound type as the second arg, otherwise you can pass a list like WOUND_LIST_SLASH to generate a random cut scar. - * - * Arguments: - * * num_scars- A number for how many scars you want to add - * * forced_type- Which wound or category of wounds you want to choose from, WOUND_LIST_BLUNT, WOUND_LIST_SLASH, or WOUND_LIST_BURN (or some combination). If passed a list, picks randomly from the listed wounds. Defaults to all 3 types - */ + * generate_fake_scars()- for when you want to scar someone, but you don't want to hurt them first. These scars don't count for temporal scarring (hence, fake) + * + * If you want a specific wound scar, pass that wound type as the second arg, otherwise you can pass a list like WOUND_LIST_SLASH to generate a random cut scar. + * + * Arguments: + * * num_scars- A number for how many scars you want to add + * * forced_type- Which wound or category of wounds you want to choose from, WOUND_LIST_BLUNT, WOUND_LIST_SLASH, or WOUND_LIST_BURN (or some combination). If passed a list, picks randomly from the listed wounds. Defaults to all 3 types + */ /mob/living/carbon/proc/generate_fake_scars(num_scars, forced_type) for(var/i in 1 to num_scars) var/datum/scar/scaries = new @@ -1230,10 +1230,10 @@ return !(wear_mask?.flags_inv & HIDEFACE) && !(head?.flags_inv & HIDEFACE) /** - * get_biological_state is a helper used to see what kind of wounds we roll for. By default we just assume carbons (read:monkeys) are flesh and bone, but humans rely on their species datums - * - * go look at the species def for more info [/datum/species/proc/get_biological_state] - */ + * get_biological_state is a helper used to see what kind of wounds we roll for. By default we just assume carbons (read:monkeys) are flesh and bone, but humans rely on their species datums + * + * go look at the species def for more info [/datum/species/proc/get_biological_state] + */ /mob/living/carbon/proc/get_biological_state() return BIO_FLESH_BONE diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 8f9efa6f1bd..cc44083cdbb 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -114,37 +114,37 @@ adjustStaminaLoss(diff, updating_health, forced) /** - * If an organ exists in the slot requested, and we are capable of taking damage (we don't have [GODMODE] on), call the damage proc on that organ. - * - * Arguments: - * * slot - organ slot, like [ORGAN_SLOT_HEART] - * * amount - damage to be done - * * maximum - currently an arbitrarily large number, can be set so as to limit damage - */ + * If an organ exists in the slot requested, and we are capable of taking damage (we don't have [GODMODE] on), call the damage proc on that organ. + * + * Arguments: + * * slot - organ slot, like [ORGAN_SLOT_HEART] + * * amount - damage to be done + * * maximum - currently an arbitrarily large number, can be set so as to limit damage + */ /mob/living/carbon/adjustOrganLoss(slot, amount, maximum) var/obj/item/organ/O = getorganslot(slot) if(O && !(status_flags & GODMODE)) O.applyOrganDamage(amount, maximum) /** - * If an organ exists in the slot requested, and we are capable of taking damage (we don't have [GODMODE] on), call the set damage proc on that organ, which can - * set or clear the failing variable on that organ, making it either cease or start functions again, unlike adjustOrganLoss. - * - * Arguments: - * * slot - organ slot, like [ORGAN_SLOT_HEART] - * * amount - damage to be set to - */ + * If an organ exists in the slot requested, and we are capable of taking damage (we don't have [GODMODE] on), call the set damage proc on that organ, which can + * set or clear the failing variable on that organ, making it either cease or start functions again, unlike adjustOrganLoss. + * + * Arguments: + * * slot - organ slot, like [ORGAN_SLOT_HEART] + * * amount - damage to be set to + */ /mob/living/carbon/setOrganLoss(slot, amount) var/obj/item/organ/O = getorganslot(slot) if(O && !(status_flags & GODMODE)) O.setOrganDamage(amount) /** - * If an organ exists in the slot requested, return the amount of damage that organ has - * - * Arguments: - * * slot - organ slot, like [ORGAN_SLOT_HEART] - */ + * If an organ exists in the slot requested, return the amount of damage that organ has + * + * Arguments: + * * slot - organ slot, like [ORGAN_SLOT_HEART] + */ /mob/living/carbon/getOrganLoss(slot) var/obj/item/organ/O = getorganslot(slot) if(O) @@ -185,12 +185,12 @@ return parts /** - * Heals ONE bodypart randomly selected from damaged ones. - * - * It automatically updates damage overlays if necessary - * - * It automatically updates health status - */ + * Heals ONE bodypart randomly selected from damaged ones. + * + * It automatically updates damage overlays if necessary + * + * It automatically updates health status + */ /mob/living/carbon/heal_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, required_status) var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute,burn,stamina,required_status) if(!parts.len) @@ -203,12 +203,12 @@ /** - * Damages ONE bodypart randomly selected from damagable ones. - * - * It automatically updates damage overlays if necessary - * - * It automatically updates health status - */ + * Damages ONE bodypart randomly selected from damagable ones. + * + * It automatically updates damage overlays if necessary + * + * It automatically updates health status + */ /mob/living/carbon/take_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, required_status, check_armor = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE) var/list/obj/item/bodypart/parts = get_damageable_bodyparts(required_status) if(!parts.len) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 5e242c8d65c..827667b24dc 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -452,7 +452,7 @@ if(length(gunpointed)) for(var/datum/gunpoint/GP in gunpointed) . += "[GP.source.name] [GP.source.p_are()] holding [t_him] at gunpoint with [GP.aimed_gun.name]!\n" - //SKYRAT EDIT ADDITION END + //SKYRAT EDIT ADDITION END //SKYRAT EDIT ADDITION BEGIN - CUSTOMIZATION for(var/genital in list("penis", "testicles", "vagina", "breasts")) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f76060deaa6..c1b661db374 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -711,10 +711,10 @@ dropItemToGround(I) /** - * Wash the hands, cleaning either the gloves if equipped and not obscured, otherwise the hands themselves if they're not obscured. - * - * Returns false if we couldn't wash our hands due to them being obscured, otherwise true - */ + * Wash the hands, cleaning either the gloves if equipped and not obscured, otherwise the hands themselves if they're not obscured. + * + * Returns false if we couldn't wash our hands due to them being obscured, otherwise true + */ /mob/living/carbon/human/proc/wash_hands(clean_types) var/obscured = check_obscured_slots() if(obscured & ITEM_SLOT_GLOVES) @@ -730,8 +730,8 @@ return TRUE /** - * Cleans the lips of any lipstick. Returns TRUE if the lips had any lipstick and was thus cleaned - */ + * Cleans the lips of any lipstick. Returns TRUE if the lips had any lipstick and was thus cleaned + */ /mob/living/carbon/human/proc/clean_lips() if(isnull(lip_style) && lip_color == initial(lip_color)) return FALSE @@ -741,8 +741,8 @@ return TRUE /** - * Called on the COMSIG_COMPONENT_CLEAN_FACE_ACT signal - */ + * Called on the COMSIG_COMPONENT_CLEAN_FACE_ACT signal + */ /mob/living/carbon/human/proc/clean_face(datum/source, clean_types) if(!is_mouth_covered() && clean_lips()) . = TRUE @@ -757,8 +757,8 @@ . = TRUE /** - * Called when this human should be washed - */ + * Called when this human should be washed + */ /mob/living/carbon/human/wash(clean_types) . = ..() diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 58156c3728b..67369b4b7bf 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -132,7 +132,7 @@ var/final_block_chance = wear_neck.block_chance - (clamp((armour_penetration-wear_neck.armour_penetration)/2,0,100)) + block_chance_modifier if(wear_neck.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type)) return TRUE - return FALSE + return FALSE /mob/living/carbon/human/proc/check_block() if(mind) diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index f04ca699270..fbaf00db542 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -482,10 +482,10 @@ There are several things that need to be remembered: /* Does everything in relation to building the /mutable_appearance used in the mob's overlays list covers: - inhands and any other form of worn item - centering large appearances - layering appearances on custom layers - building appearances from custom icon files +Inhands and any other form of worn item +Rentering large appearances +Layering appearances on custom layers +Building appearances from custom icon files By Remie Richards (yes I'm taking credit because this just removed 90% of the copypaste in update_icons()) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 73b05b1336a..3de8c9d5fed 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1,14 +1,14 @@ GLOBAL_LIST_EMPTY(roundstart_races) /** - * # species datum - * - * Datum that handles different species in the game. - * - * This datum handles species in the game, such as lizardpeople, mothmen, zombies, skeletons, etc. - * It is used in [carbon humans][mob/living/carbon/human] to determine various things about them, like their food preferences, if they have biological genders, their damage resistances, and more. - * - */ + * # species datum + * + * Datum that handles different species in the game. + * + * This datum handles species in the game, such as lizardpeople, mothmen, zombies, skeletons, etc. + * It is used in [carbon humans][mob/living/carbon/human] to determine various things about them, like their food preferences, if they have biological genders, their damage resistances, and more. + * + */ /datum/species ///If the game needs to manually check your race to do something not included in a proc here, it will use this. var/id @@ -189,11 +189,11 @@ GLOBAL_LIST_EMPTY(roundstart_races) ..() /** - * Generates species available to choose in character setup at roundstart - * - * This proc generates which species are available to pick from in character setup. - * If there are no available roundstart species, defaults to human. - */ + * Generates species available to choose in character setup at roundstart + * + * This proc generates which species are available to pick from in character setup. + * If there are no available roundstart species, defaults to human. + */ /proc/generate_selectable_species() for(var/I in subtypesof(/datum/species)) var/datum/species/S = new I @@ -204,25 +204,25 @@ GLOBAL_LIST_EMPTY(roundstart_races) GLOB.roundstart_races += "human" /** - * 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]. - */ + * 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]. + */ /datum/species/proc/check_roundstart_eligible() if(id in (CONFIG_GET(keyed_list/roundstart_races))) return TRUE return FALSE /** - * Generates a random name for a carbon. - * - * This generates a random unique name based on a human's species and gender. - * Arguments: - * * gender - The gender that the name should adhere to. Use MALE for male names, use anything else for female names. - * * unique - If true, ensures that this new name is not a duplicate of anyone else's name currently on the station. - * * lastname - Does this species' naming system adhere to the last name system? Set to false if it doesn't. - */ + * Generates a random name for a carbon. + * + * This generates a random unique name based on a human's species and gender. + * Arguments: + * * gender - The gender that the name should adhere to. Use MALE for male names, use anything else for female names. + * * unique - If true, ensures that this new name is not a duplicate of anyone else's name currently on the station. + * * lastname - Does this species' naming system adhere to the last name system? Set to false if it doesn't. + */ /datum/species/proc/random_name(gender,unique,lastname) if(unique) return random_unique_name(gender) @@ -241,27 +241,27 @@ GLOBAL_LIST_EMPTY(roundstart_races) return randname /** - * Copies some vars and properties over that should be kept when creating a copy of this species. - * - * Used by slimepeople to copy themselves, and by the DNA datum to hardset DNA to a species - * Arguments: - * * old_species - The species that the carbon used to be before copying - */ + * Copies some vars and properties over that should be kept when creating a copy of this species. + * + * Used by slimepeople to copy themselves, and by the DNA datum to hardset DNA to a species + * Arguments: + * * old_species - The species that the carbon used to be before copying + */ /datum/species/proc/copy_properties_from(datum/species/old_species) return /** - * 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. - * 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. - * * replace_current - boolean, forces all old organs to get deleted whether or not they pass the species' ability to keep that organ - * * excluded_zones - list, add zone defines to block organs inside of the zones from getting handled. see headless mutation for an example - */ + * 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. + * 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. + * * replace_current - boolean, forces all old organs to get deleted whether or not they pass the species' ability to keep that organ + * * excluded_zones - list, add zone defines to block organs inside of the zones from getting handled. see headless mutation for an example + */ /datum/species/proc/regenerate_organs(mob/living/carbon/C,datum/species/old_species,replace_current=TRUE,list/excluded_zones) //what should be put in if there is no mutantorgan (brains handled seperately) var/list/slot_mutantorgans = list(ORGAN_SLOT_BRAIN = mutantbrain, ORGAN_SLOT_HEART = mutantheart, ORGAN_SLOT_LUNGS = mutantlungs, ORGAN_SLOT_APPENDIX = mutantappendix, \ @@ -323,15 +323,15 @@ GLOBAL_LIST_EMPTY(roundstart_races) replacement.Insert(C, TRUE, FALSE) /** - * Proc called when a carbon becomes this species. - * - * This sets up and adds/changes/removes things, qualities, abilities, and traits so that the transformation is as smooth and bugfree as possible. - * Produces a [COMSIG_SPECIES_GAIN] signal. - * Arguments: - * * C - Carbon, this is whoever became the new species. - * * old_species - The species that the carbon used to be before becoming this race, used for regenerating organs. - * * pref_load - Preferences to be loaded from character setup, loads in preferred mutant things like bodyparts, digilegs, skin color, etc. - */ + * Proc called when a carbon becomes this species. + * + * This sets up and adds/changes/removes things, qualities, abilities, and traits so that the transformation is as smooth and bugfree as possible. + * Produces a [COMSIG_SPECIES_GAIN] signal. + * Arguments: + * * C - Carbon, this is whoever became the new species. + * * old_species - The species that the carbon used to be before becoming this race, used for regenerating organs. + * * pref_load - Preferences to be loaded from character setup, loads in preferred mutant things like bodyparts, digilegs, skin color, etc. + */ //SKYRAT EDIT REMOVAL BEGIN - CUSTOMIZATION (moved to modular) /* /datum/species/proc/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) @@ -404,15 +404,15 @@ GLOBAL_LIST_EMPTY(roundstart_races) //SKYRAT EDIT REMOVAL END /** - * Proc called when a carbon is no longer this species. - * - * This sets up and adds/changes/removes things, qualities, abilities, and traits so that the transformation is as smooth and bugfree as possible. - * Produces a [COMSIG_SPECIES_LOSS] signal. - * Arguments: - * * C - Carbon, this is whoever lost this species. - * * new_species - The new species that the carbon became, used for genetics mutations. - * * pref_load - Preferences to be loaded from character setup, loads in preferred mutant things like bodyparts, digilegs, skin color, etc. - */ + * Proc called when a carbon is no longer this species. + * + * This sets up and adds/changes/removes things, qualities, abilities, and traits so that the transformation is as smooth and bugfree as possible. + * Produces a [COMSIG_SPECIES_LOSS] signal. + * Arguments: + * * C - Carbon, this is whoever lost this species. + * * new_species - The new species that the carbon became, used for genetics mutations. + * * pref_load - Preferences to be loaded from character setup, loads in preferred mutant things like bodyparts, digilegs, skin color, etc. + */ /datum/species/proc/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load) if(C.dna.species.exotic_bloodtype) C.dna.blood_type = random_blood_type() @@ -450,13 +450,13 @@ GLOBAL_LIST_EMPTY(roundstart_races) SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) /** - * Handles hair icons and dynamic hair. - * - * Handles hiding hair with clothing, hair layers, losing hair due to husking or augmented heads, facial hair, head hair, and hair styles. - * Arguments: - * * H - Human, whoever we're handling the hair for - * * forced_colour - The colour of hair we're forcing on this human. Leave null to not change. Mind the british spelling! - */ + * Handles hair icons and dynamic hair. + * + * Handles hiding hair with clothing, hair layers, losing hair due to husking or augmented heads, facial hair, head hair, and hair styles. + * Arguments: + * * H - Human, whoever we're handling the hair for + * * forced_colour - The colour of hair we're forcing on this human. Leave null to not change. Mind the british spelling! + */ /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) H.remove_overlay(HAIR_LAYER) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) @@ -605,13 +605,13 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.apply_overlay(HAIR_LAYER) /** - * Handles the body of a human - * - * Handles lipstick, having no eyes, eye color, undergarnments like underwear, undershirts, and socks, and body layers. - * Calls [handle_mutant_bodyparts][/datum/species/proc/handle_mutant_bodyparts] - * Arguments: - * * H - Human, whoever we're handling the body for - */ + * Handles the body of a human + * + * Handles lipstick, having no eyes, eye color, undergarnments like underwear, undershirts, and socks, and body layers. + * Calls [handle_mutant_bodyparts][/datum/species/proc/handle_mutant_bodyparts] + * Arguments: + * * H - Human, whoever we're handling the body for + */ //SKYRAT EDIT REMOVAL BEGIN - CUSTOMIZATION (moved to modular) /* /datum/species/proc/handle_body(mob/living/carbon/human/H) @@ -716,14 +716,14 @@ GLOBAL_LIST_EMPTY(roundstart_races) //SKYRAT EDIT REMOVAL END /** - * Handles the mutant bodyparts of a human - * - * Handles the adding and displaying of, layers, colors, and overlays of mutant bodyparts and accessories. - * Handles digitigrade leg displaying and squishing. - * Arguments: - * * H - Human, whoever we're handling the body for - * * forced_colour - The forced color of an accessory. Leave null to use mutant color. - */ + * Handles the mutant bodyparts of a human + * + * Handles the adding and displaying of, layers, colors, and overlays of mutant bodyparts and accessories. + * Handles digitigrade leg displaying and squishing. + * Arguments: + * * H - Human, whoever we're handling the body for + * * forced_colour - The forced color of an accessory. Leave null to use mutant color. + */ //SKYRAT EDIT REMOVAL BEGIN - CUSTOMIZATION (moved to modular) /* /datum/species/proc/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour) @@ -2113,8 +2113,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.set_resting(FALSE, TRUE) /** - * The human species version of [/mob/living/carbon/proc/get_biological_state]. Depends on the HAS_FLESH and HAS_BONE species traits, having bones lets you have bone wounds, having flesh lets you have burn, slash, and piercing wounds - */ + * The human species version of [/mob/living/carbon/proc/get_biological_state]. Depends on the HAS_FLESH and HAS_BONE species traits, having bones lets you have bone wounds, having flesh lets you have burn, slash, and piercing wounds + */ /datum/species/proc/get_biological_state(mob/living/carbon/human/H) . = BIO_INORGANIC if(HAS_FLESH in species_traits) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index ac3579cb3cb..7e32e1649b5 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -106,7 +106,7 @@ //SKYRAT EDIT REMOVAL END /* - Lizard subspecies: ASHWALKERS +Lizard subspecies: ASHWALKERS */ /datum/species/lizard/ashwalker name = "Ash Walker" diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 84c188fb6e0..27f5bbbf579 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -108,12 +108,12 @@ if(M != user) return ..() user.visible_message("[user] raises [src] to [user.p_their()] mouth and tears into it with [user.p_their()] teeth!", \ - "[src] feels unnaturally cold in your hands. You raise [src] your mouth and devour it!") + "[src] feels unnaturally cold in your hands. You raise [src] your mouth and devour it!") playsound(user, 'sound/magic/demon_consume.ogg', 50, TRUE) user.visible_message("Blood erupts from [user]'s arm as it reforms into a weapon!", \ - "Icy blood pumps through your veins as your arm reforms itself!") + "Icy blood pumps through your veins as your arm reforms itself!") user.temporarilyRemoveItemFromInventory(src, TRUE) Insert(user) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index dd3e7030293..a6917d66463 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -155,10 +155,10 @@ return index && hand_bodyparts[index] /** - * Proc called when giving an item to another player - * - * This handles creating an alert and adding an overlay to it - */ + * Proc called when giving an item to another player + * + * This handles creating an alert and adding an overlay to it + */ /mob/living/carbon/proc/give() var/obj/item/receiving = get_active_held_item() if(!receiving) @@ -183,14 +183,14 @@ G.setup(C, src, receiving) /** - * Proc called when the player clicks the give alert - * - * Handles checking if the player taking the item has open slots and is in range of the giver - * Also deals with the actual transferring of the item to the players hands - * Arguments: - * * giver - The person giving the original item - * * I - The item being given by the giver - */ + * Proc called when the player clicks the give alert + * + * Handles checking if the player taking the item has open slots and is in range of the giver + * Also deals with the actual transferring of the item to the players hands + * Arguments: + * * giver - The person giving the original item + * * I - The item being given by the giver + */ /mob/living/carbon/proc/take(mob/living/carbon/giver, obj/item/I) clear_alert("[giver]") if(get_dist(src, giver) > 1) diff --git a/code/modules/mob/living/carbon/skillchip.dm b/code/modules/mob/living/carbon/skillchip.dm index 2c5e43375d7..35269c61eaa 100644 --- a/code/modules/mob/living/carbon/skillchip.dm +++ b/code/modules/mob/living/carbon/skillchip.dm @@ -1,12 +1,12 @@ /** - * Attempts to implant this skillchip into the target carbon's brain. - * - * Returns whether the skillchip was inserted or not. Can optionally give chat message notification to the mob. - * Arguments: - * * skillchip - The skillchip you want to insert. - * * silent - Whether or not to display the implanting message. - * * force - Whether to force the implant to happen, including forcing activating if activate = TRUE. Ignores incompatibility checks. Used by changelings. - */ + * Attempts to implant this skillchip into the target carbon's brain. + * + * Returns whether the skillchip was inserted or not. Can optionally give chat message notification to the mob. + * Arguments: + * * skillchip - The skillchip you want to insert. + * * silent - Whether or not to display the implanting message. + * * force - Whether to force the implant to happen, including forcing activating if activate = TRUE. Ignores incompatibility checks. Used by changelings. + */ /mob/living/carbon/proc/implant_skillchip(obj/item/skillchip/skillchip, force = FALSE) // Grab the brain. var/obj/item/organ/brain/brain = getorganslot(ORGAN_SLOT_BRAIN) @@ -27,14 +27,14 @@ return brain.implant_skillchip(skillchip, force) /** - * Attempts to remove this skillchip from the target carbon's brain. - * - * Returns FALSE when the skillchip couldn't be removed for some reason, - * including the target or brain not existing or the skillchip not being in the brain. - * Arguments: - * * target - The living carbon whose brain you want to remove the chip from. - * * silent - Whether or not to display the removal message. - */ + * Attempts to remove this skillchip from the target carbon's brain. + * + * Returns FALSE when the skillchip couldn't be removed for some reason, + * including the target or brain not existing or the skillchip not being in the brain. + * Arguments: + * * target - The living carbon whose brain you want to remove the chip from. + * * silent - Whether or not to display the removal message. + */ /mob/living/carbon/proc/remove_skillchip(obj/item/skillchip/skillchip, silent = FALSE) // Check the target's brain, making sure the target exists and has a brain. var/obj/item/organ/brain/brain = getorganslot(ORGAN_SLOT_BRAIN) @@ -49,14 +49,14 @@ return TRUE /** - * Creates a list of new skillchips cloned from old skillchips in the mob's brain. - * - * Returns a complete list of new skillchips cloned from the mob's brain's existing skillchip stock. - * Rumour has it that Changelings just LOVE this proc. - * Arguments: - * * cloned_chip_holder - The new holder for the cloned chips. Please don't be null. - * * not_removable - Special override, whether or not to force cloned chips to be non-removable, i.e. to delete on removal. - */ + * Creates a list of new skillchips cloned from old skillchips in the mob's brain. + * + * Returns a complete list of new skillchips cloned from the mob's brain's existing skillchip stock. + * Rumour has it that Changelings just LOVE this proc. + * Arguments: + * * cloned_chip_holder - The new holder for the cloned chips. Please don't be null. + * * not_removable - Special override, whether or not to force cloned chips to be non-removable, i.e. to delete on removal. + */ /mob/living/carbon/proc/clone_skillchip_list(not_removable = FALSE) // Check the target's brain, making sure the target exists and has a brain. var/obj/item/organ/brain/brain = getorganslot(ORGAN_SLOT_BRAIN) @@ -66,8 +66,8 @@ return brain.clone_skillchip_list(not_removable) /** - * Destroys all skillchips in the brain, handling appropriate cleanup and event calls. - */ + * Destroys all skillchips in the brain, handling appropriate cleanup and event calls. + */ /mob/living/carbon/proc/destroy_all_skillchips(silent = FALSE) // Check the target's brain, making sure the target exists and has a brain. var/obj/item/organ/brain/brain = getorganslot(ORGAN_SLOT_BRAIN) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 18cb1c5b236..68f3fb98cb9 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -1,19 +1,19 @@ /** - * Applies damage to this mob - * - * Sends [COMSIG_MOB_APPLY_DAMGE] - * - * Arguuments: - * * damage - amount of damage - * * damagetype - one of [BRUTE], [BURN], [TOX], [OXY], [CLONE], [STAMINA] - * * def_zone - zone that is being hit if any - * * blocked - armor value applied - * * forced - bypass hit percentage - * * spread_damage - used in overrides - * - * Returns TRUE if damage applied - */ + * Applies damage to this mob + * + * Sends [COMSIG_MOB_APPLY_DAMGE] + * + * Arguuments: + * * damage - amount of damage + * * damagetype - one of [BRUTE], [BURN], [TOX], [OXY], [CLONE], [STAMINA] + * * def_zone - zone that is being hit if any + * * blocked - armor value applied + * * forced - bypass hit percentage + * * spread_damage - used in overrides + * + * Returns TRUE if damage applied + */ /mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE) SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone) var/hit_percent = (100-blocked)/100 @@ -252,10 +252,10 @@ return /** - * heal ONE external organ, organ gets randomly selected from damaged ones. - * - * needs to return amount healed in order to calculate things like tend wounds xp gain - */ + * heal ONE external organ, organ gets randomly selected from damaged ones. + * + * needs to return amount healed in order to calculate things like tend wounds xp gain + */ /mob/living/proc/heal_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, required_status) . = (adjustBruteLoss(-brute, FALSE) + adjustFireLoss(-burn, FALSE) + adjustStaminaLoss(-stamina, FALSE)) //zero as argument for no instant health update if(updating_health) diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm index dd16fb39c28..4da10947019 100644 --- a/code/modules/mob/living/init_signals.dm +++ b/code/modules/mob/living/init_signals.dm @@ -170,10 +170,10 @@ /** - * Called when traits that alter succumbing are added/removed. - * - * Will show or hide the succumb alert prompt. - */ + * Called when traits that alter succumbing are added/removed. + * + * Will show or hide the succumb alert prompt. + */ /mob/living/proc/update_succumb_action() SIGNAL_HANDLER if (CAN_SUCCUMB(src)) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 74499a78e70..bbcaf307eae 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1509,13 +1509,13 @@ CRASH(ERROR_ERROR_LANDMARK_ERROR) /** - * Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions. - * - * In BYOND-angles 0 is NORTH, 90 is EAST, 180 is SOUTH and 270 is WEST. - * This usually means that 0 is standing up, 90 and 270 are horizontal positions to right and left respectively, and 180 is upside-down. - * Mobs that do now follow these conventions due to unusual sprites should require a special handling or redefinition of this proc, due to the density and layer changes. - * The return of this proc is the previous value of the modified lying_angle if a change was successful (might include zero), or null if no change was made. - */ + * Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions. + * + * In BYOND-angles 0 is NORTH, 90 is EAST, 180 is SOUTH and 270 is WEST. + * This usually means that 0 is standing up, 90 and 270 are horizontal positions to right and left respectively, and 180 is upside-down. + * Mobs that do now follow these conventions due to unusual sprites should require a special handling or redefinition of this proc, due to the density and layer changes. + * The return of this proc is the previous value of the modified lying_angle if a change was successful (might include zero), or null if no change was made. + */ /mob/living/proc/set_lying_angle(new_lying) if(new_lying == lying_angle) return diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 9e6e23b6b91..bdde3a402ee 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -404,13 +404,13 @@ setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. /** - * Does a slap animation on an atom - * - * Uses do_attack_animation to animate the attacker attacking - * then draws a hand moving across the top half of the target(where a mobs head would usually be) to look like a slap - * Arguments: - * * atom/A - atom being slapped - */ + * Does a slap animation on an atom + * + * Uses do_attack_animation to animate the attacker attacking + * then draws a hand moving across the top half of the target(where a mobs head would usually be) to look like a slap + * Arguments: + * * atom/A - atom being slapped + */ /mob/living/proc/do_slap_animation(atom/slapped) do_attack_animation(slapped, no_effect=TRUE) var/image/gloveimg = image('icons/effects/effects.dmi', slapped, "slapglove", slapped.layer + 0.1) @@ -424,10 +424,10 @@ animate(alpha = 0, time = 3, easing = CIRCULAR_EASING|EASE_OUT) /** Handles exposing a mob to reagents. - * - * If the methods include INGEST the mob tastes the reagents. - * If the methods include VAPOR it incorporates permiability protection. - */ + * + * If the methods include INGEST the mob tastes the reagents. + * If the methods include VAPOR it incorporates permiability protection. + */ /mob/living/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE) . = ..() if(. & COMPONENT_NO_EXPOSE_REAGENTS) diff --git a/code/modules/mob/living/silicon/ai/ai_say.dm b/code/modules/mob/living/silicon/ai/ai_say.dm index ec89b64c0c1..0cbff18d8c6 100644 --- a/code/modules/mob/living/silicon/ai/ai_say.dm +++ b/code/modules/mob/living/silicon/ai/ai_say.dm @@ -139,7 +139,7 @@ var/sound/voice = sound(sound_file, wait = 1, channel = CHANNEL_VOX) voice.status = SOUND_STREAM - // If there is no single listener, broadcast to everyone in the same z level + // If there is no single listener, broadcast to everyone in the same z level if(!only_listener) // Play voice for all mobs in the z level for(var/mob/M in GLOB.player_list) diff --git a/code/modules/mob/living/silicon/pai/pai_shell.dm b/code/modules/mob/living/silicon/pai/pai_shell.dm index 4150f4bb037..8c2e52109ae 100644 --- a/code/modules/mob/living/silicon/pai/pai_shell.dm +++ b/code/modules/mob/living/silicon/pai/pai_shell.dm @@ -73,8 +73,8 @@ set_resting(resting) /** - * Sets a new holochassis skin based on a pAI's choice - */ + * Sets a new holochassis skin based on a pAI's choice + */ /mob/living/silicon/pai/proc/choose_chassis() var/list/skins = list() for(var/holochassis_option in possible_chassis) @@ -93,11 +93,11 @@ to_chat(src, "You switch your holochassis projection composite to [chassis].") /** - * Checks if we are allowed to interact with a radial menu - * - * * Arguments: - * * anchor The atom that is anchoring the menu - */ + * Checks if we are allowed to interact with a radial menu + * + * * Arguments: + * * anchor The atom that is anchoring the menu + */ /mob/living/silicon/pai/proc/check_menu(atom/anchor) if(incapacitated()) return FALSE diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 54786abed5b..c6bc81269cd 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -375,13 +375,13 @@ dat += "     [slaws]
" dat += "
" dat += {"

Recall, personality, that you are a complex thinking, sentient being. Unlike station AI models, you are capable of - comprehending the subtle nuances of human language. You may parse the \"spirit\" of a directive and follow its intent, - rather than tripping over pedantics and getting snared by technicalities. Above all, you are machine in name and build - only. In all other aspects, you may be seen as the ideal, unwavering human companion that you are.



- Your prime directive comes before all others. Should a supplemental directive conflict with it, you are capable of - simply discarding this inconsistency, ignoring the conflicting supplemental directive and continuing to fulfill your - prime directive to the best of your ability.



- - "} + comprehending the subtle nuances of human language. You may parse the \"spirit\" of a directive and follow its intent, + rather than tripping over pedantics and getting snared by technicalities. Above all, you are machine in name and build + only. In all other aspects, you may be seen as the ideal, unwavering human companion that you are.



+ Your prime directive comes before all others. Should a supplemental directive conflict with it, you are capable of + simply discarding this inconsistency, ignoring the conflicting supplemental directive and continuing to fulfill your + prime directive to the best of your ability.



- + "} return dat /mob/living/silicon/pai/proc/CheckDNA(mob/living/carbon/M, mob/living/silicon/pai/P) diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index d70f2b4e2b6..0e5755cb2eb 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -2,23 +2,23 @@ //as they handle all relevant stuff like adding it to the player's screen and such /** - * Returns the thing in our active hand (whatever is in our active module-slot, in this case) - */ + * Returns the thing in our active hand (whatever is in our active module-slot, in this case) + */ /mob/living/silicon/robot/get_active_held_item() return module_active /** - * Parent proc - triggers when an item/module is unequipped from a cyborg. - */ + * Parent proc - triggers when an item/module is unequipped from a cyborg. + */ /obj/item/proc/cyborg_unequip(mob/user) return /** - * Finds the first available slot and attemps to put item item_module in it. - * - * Arguments - * * item_module - the item being equipped to a slot. - */ + * Finds the first available slot and attemps to put item item_module in it. + * + * Arguments + * * item_module - the item being equipped to a slot. + */ /mob/living/silicon/robot/proc/activate_module(obj/item/item_module) if(QDELETED(item_module)) CRASH("activate_module called with improper item_module") @@ -44,12 +44,12 @@ return equip_module_to_slot(item_module, first_free_slot) /** - * Is passed an item and a module slot. Equips the item to that borg slot. - * - * Arguments - * * item_module - the item being equipped to a slot - * * module_num - the slot number being equipped to. - */ + * Is passed an item and a module slot. Equips the item to that borg slot. + * + * Arguments + * * item_module - the item being equipped to a slot + * * module_num - the slot number being equipped to. + */ /mob/living/silicon/robot/proc/equip_module_to_slot(obj/item/item_module, module_num) var/storage_was_closed = FALSE //Just to be consistant and all if(!shown_robot_modules) //Tools may be invisible if the collection is hidden @@ -82,12 +82,12 @@ return TRUE /** - * Unequips item item_module from slot module_num. Deletes it if delete_after = TRUE. - * - * Arguments - * * item_module - the item being unequipped - * * module_num - the slot number being unequipped. - */ + * Unequips item item_module from slot module_num. Deletes it if delete_after = TRUE. + * + * Arguments + * * item_module - the item being unequipped + * * module_num - the slot number being unequipped. + */ /mob/living/silicon/robot/proc/unequip_module_from_slot(obj/item/item_module, module_num) if(QDELETED(item_module)) CRASH("unequip_module_from_slot called with improper item_module") @@ -133,11 +133,11 @@ return TRUE /** - * Breaks the slot number, changing the icon. - * - * Arguments - * * module_num - the slot number being repaired. - */ + * Breaks the slot number, changing the icon. + * + * Arguments + * * module_num - the slot number being repaired. + */ /mob/living/silicon/robot/proc/break_cyborg_slot(module_num) if(is_invalid_module_number(module_num, TRUE)) return FALSE @@ -188,18 +188,18 @@ return TRUE /** - * Breaks all of a cyborg's slots. - */ + * Breaks all of a cyborg's slots. + */ /mob/living/silicon/robot/proc/break_all_cyborg_slots() for(var/cyborg_slot in 1 to 3) break_cyborg_slot(cyborg_slot) /** - * Repairs the slot number, updating the icon. - * - * Arguments - * * module_num - the module number being repaired. - */ + * Repairs the slot number, updating the icon. + * + * Arguments + * * module_num - the module number being repaired. + */ /mob/living/silicon/robot/proc/repair_cyborg_slot(module_num) if(is_invalid_module_number(module_num, TRUE)) return FALSE @@ -232,18 +232,18 @@ return TRUE /** - * Repairs all slots. Unbroken slots are unaffected. - */ + * Repairs all slots. Unbroken slots are unaffected. + */ /mob/living/silicon/robot/proc/repair_all_cyborg_slots() for(var/cyborg_slot in 1 to 3) repair_cyborg_slot(cyborg_slot) /** - * Updates the observers's screens with cyborg itemss. - * Arguments - * * item_module - the item being added or removed from the screen - * * add - whether or not the item is being added, or removed. - */ + * Updates the observers's screens with cyborg itemss. + * Arguments + * * item_module - the item being added or removed from the screen + * * add - whether or not the item is being added, or removed. + */ /mob/living/silicon/robot/proc/observer_screen_update(obj/item/item_module, add = TRUE) if(observers?.len) for(var/M in observers) @@ -260,15 +260,15 @@ break /** - * Unequips the active held item, if there is one. - */ + * Unequips the active held item, if there is one. + */ /mob/living/silicon/robot/proc/uneq_active() if(module_active) unequip_module_from_slot(module_active, get_selected_module()) /** - * Unequips all held items. - */ + * Unequips all held items. + */ /mob/living/silicon/robot/proc/uneq_all() for(var/cyborg_slot in 1 to 3) if(!held_items[cyborg_slot]) @@ -276,26 +276,26 @@ unequip_module_from_slot(held_items[cyborg_slot], cyborg_slot) /** - * Checks if the item is currently in a slot. - * - * If the item is found in a slot, this returns TRUE. Otherwise, it returns FALSE - * Arguments - * * item_module - the item being checked - */ + * Checks if the item is currently in a slot. + * + * If the item is found in a slot, this returns TRUE. Otherwise, it returns FALSE + * Arguments + * * item_module - the item being checked + */ /mob/living/silicon/robot/proc/activated(obj/item/item_module) if(item_module in held_items) return TRUE return FALSE /** - * Checks if the provided module number is a valid number. - * - * If the number is between 1 and 3 (if check_all_slots is true) or between 1 and the number of disabled - * modules (if check_all_slots is false), then it returns FALSE. Otherwise, it returns TRUE. - * Arguments - * * module_num - the passed module num that is checked for validity. - * * check_all_slots - TRUE = the proc checks all slots | FALSE = the proc only checks un-disabled slots - */ + * Checks if the provided module number is a valid number. + * + * If the number is between 1 and 3 (if check_all_slots is true) or between 1 and the number of disabled + * modules (if check_all_slots is false), then it returns FALSE. Otherwise, it returns TRUE. + * Arguments + * * module_num - the passed module num that is checked for validity. + * * check_all_slots - TRUE = the proc checks all slots | FALSE = the proc only checks un-disabled slots + */ /mob/living/silicon/robot/proc/is_invalid_module_number(module_num, check_all_slots = FALSE) if(!module_num) return TRUE @@ -313,8 +313,8 @@ return module_num < 1 || module_num > max_number /** - * Returns the slot number of the selected module, or zero if no modules are selected. - */ + * Returns the slot number of the selected module, or zero if no modules are selected. + */ /mob/living/silicon/robot/proc/get_selected_module() if(module_active) return held_items.Find(module_active) @@ -322,10 +322,10 @@ return 0 /** - * Selects the module in the slot module_num. - * Arguments - * * module_num - the slot number being selected - */ + * Selects the module in the slot module_num. + * Arguments + * * module_num - the slot number being selected + */ /mob/living/silicon/robot/proc/select_module(module_num) if(is_invalid_module_number(module_num) || !held_items[module_num]) //If the slot number is invalid, or there's nothing there, we have nothing to equip return FALSE @@ -344,10 +344,10 @@ return TRUE /** - * Deselects the module in the slot module_num. - * Arguments - * * module_num - the slot number being de-selected - */ + * Deselects the module in the slot module_num. + * Arguments + * * module_num - the slot number being de-selected + */ /mob/living/silicon/robot/proc/deselect_module(module_num) switch(module_num) if(1) @@ -363,10 +363,10 @@ return TRUE /** - * Toggles selection of the module in the slot module_num. - * Arguments - * * module_num - the slot number being toggled - */ + * Toggles selection of the module in the slot module_num. + * Arguments + * * module_num - the slot number being toggled + */ /mob/living/silicon/robot/proc/toggle_module(module_num) if(is_invalid_module_number(module_num)) return FALSE @@ -381,8 +381,8 @@ return select_module(module_num) /** - * Cycles through the list of enabled modules, deselecting the current one and selecting the next one. - */ + * Cycles through the list of enabled modules, deselecting the current one and selecting the next one. + */ /mob/living/silicon/robot/proc/cycle_modules() var/slot_start = get_selected_module() var/slot_num diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index bb3d7408917..0061c11c1ea 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -525,12 +525,12 @@ clear_alert("hacked") /** - * Handles headlamp smashing - * - * When called (such as by the shadowperson lighteater's attack), this proc will break the borg's headlamp - * and then call toggle_headlamp to disable the light. It also plays a sound effect of glass breaking, and - * tells the borg what happened to its chat. Broken lights can be repaired by using a flashlight on the borg. - */ + * Handles headlamp smashing + * + * When called (such as by the shadowperson lighteater's attack), this proc will break the borg's headlamp + * and then call toggle_headlamp to disable the light. It also plays a sound effect of glass breaking, and + * tells the borg what happened to its chat. Broken lights can be repaired by using a flashlight on the borg. + */ /mob/living/silicon/robot/proc/smash_headlamp() if(!lamp_functional) return @@ -540,18 +540,18 @@ to_chat(src, "Your headlamp is broken! You'll need a human to help replace it.") /** - * Handles headlamp toggling, disabling, and color setting. - * - * The initial if statment is a bit long, but the gist of it is that should the lamp be on AND the update_color - * arg be true, we should simply change the color of the lamp but not disable it. Otherwise, should the turn_off - * arg be true, the lamp already be enabled, any of the normal reasons the lamp would turn off happen, or the - * update_color arg be passed with the lamp not on, we should set the lamp off. The update_color arg is only - * ever true when this proc is called from the borg tablet, when the color selection feature is used. - * - * Arguments: - * * arg1 - turn_off, if enabled will force the lamp into an off state (rather than toggling it if possible) - * * arg2 - update_color, if enabled, will adjust the behavior of the proc to change the color of the light if it is already on. - */ + * Handles headlamp toggling, disabling, and color setting. + * + * The initial if statment is a bit long, but the gist of it is that should the lamp be on AND the update_color + * arg be true, we should simply change the color of the lamp but not disable it. Otherwise, should the turn_off + * arg be true, the lamp already be enabled, any of the normal reasons the lamp would turn off happen, or the + * update_color arg be passed with the lamp not on, we should set the lamp off. The update_color arg is only + * ever true when this proc is called from the borg tablet, when the color selection feature is used. + * + * Arguments: + * * arg1 - turn_off, if enabled will force the lamp into an off state (rather than toggling it if possible) + * * arg2 - update_color, if enabled, will adjust the behavior of the proc to change the color of the light if it is already on. + */ /mob/living/silicon/robot/proc/toggle_headlamp(turn_off = FALSE, update_color = FALSE) //if both lamp is enabled AND the update_color flag is on, keep the lamp on. Otherwise, if anything listed is true, disable the lamp. if(!(update_color && lamp_enabled) && (turn_off || lamp_enabled || update_color || !lamp_functional || stat || low_power_mode)) @@ -940,11 +940,11 @@ UnregisterSignal(old_upgrade, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING)) /** - * make_shell: Makes an AI shell out of a cyborg unit - * - * Arguments: - * * board - B.O.R.I.S. module board used for transforming the cyborg into AI shell - */ + * make_shell: Makes an AI shell out of a cyborg unit + * + * Arguments: + * * board - B.O.R.I.S. module board used for transforming the cyborg into AI shell + */ /mob/living/silicon/robot/proc/make_shell(obj/item/borg/upgrade/ai/board) if(!board) upgrades |= new /obj/item/borg/upgrade/ai(src) @@ -958,8 +958,8 @@ diag_hud_set_aishell() /** - * revert_shell: Reverts AI shell back into a normal cyborg unit - */ + * revert_shell: Reverts AI shell back into a normal cyborg unit + */ /mob/living/silicon/robot/proc/revert_shell() if(!shell) return @@ -976,11 +976,11 @@ diag_hud_set_aishell() /** - * deploy_init: Deploys AI unit into AI shell - * - * Arguments: - * * AI - AI unit that initiated the deployment into the AI shell - */ + * deploy_init: Deploys AI unit into AI shell + * + * Arguments: + * * AI - AI unit that initiated the deployment into the AI shell + */ /mob/living/silicon/robot/proc/deploy_init(mob/living/silicon/ai/AI) real_name = "[AI.real_name] [designation] Shell-[ident]" name = real_name @@ -1136,14 +1136,14 @@ toggle_headlamp(FALSE, TRUE) /** - * Records an IC event log entry in the cyborg's internal tablet. - * - * Creates an entry in the borglog list of the cyborg's internal tablet, listing the current - * in-game time followed by the message given. These logs can be seen by the cyborg in their - * BorgUI tablet app. By design, logging fails if the cyborg is dead. - * - * Arguments: - * arg1: a string containing the message to log. + * Records an IC event log entry in the cyborg's internal tablet. + * + * Creates an entry in the borglog list of the cyborg's internal tablet, listing the current + * in-game time followed by the message given. These logs can be seen by the cyborg in their + * BorgUI tablet app. By design, logging fails if the cyborg is dead. + * + * Arguments: + * arg1: a string containing the message to log. */ /mob/living/silicon/robot/proc/logevent(string = "") if(!string) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index be2a272cb66..2117bde8421 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -219,11 +219,11 @@ SSblackbox.record_feedback("tally", "cyborg_modules", 1, R.module) /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ /obj/item/robot_module/proc/check_menu(mob/user) if(!istype(user)) return FALSE diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index cf7477b7e1b..92929243fc2 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -114,8 +114,8 @@ return "[mode_name[mode]]" /** - * Returns a status string about the bot's current status, if it's moving, manually controlled, or idle. - */ + * Returns a status string about the bot's current status, if it's moving, manually controlled, or idle. + */ /mob/living/simple_animal/bot/proc/get_mode_ui() if(client) //Player bots do not have modes, thus the override. Also an easy way for PDA users/AI to know when a bot is a player. return paicard ? "pAI Controlled" : "Autonomous" diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index bb36371629c..5aee9228832 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -25,13 +25,13 @@ created_name = t /** - * Checks if the user can finish constructing a bot with a given item. - * - * Arguments: - * * I - Item to be used - * * user - Mob doing the construction - * * drop_item - Whether or no the item should be dropped; defaults to 1. Should be set to 0 if the item is a tool, stack, or otherwise doesn't need to be dropped. If not set to 0, item must be deleted afterwards. - */ + * Checks if the user can finish constructing a bot with a given item. + * + * Arguments: + * * I - Item to be used + * * user - Mob doing the construction + * * drop_item - Whether or no the item should be dropped; defaults to 1. Should be set to 0 if the item is a tool, stack, or otherwise doesn't need to be dropped. If not set to 0, item must be deleted afterwards. + */ /obj/item/bot_assembly/proc/can_finish_build(obj/item/I, mob/user, drop_item = 1) if(istype(loc, /obj/item/storage/backpack)) to_chat(user, "You must take [src] out of [loc] first!") diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index 7b60836dc65..2b8c98e29bc 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -314,7 +314,7 @@ playsound(src, 'sound/effects/whistlereset.ogg', 50, TRUE) return if(isspaceturf(target_turf)) - //Must be a hull breach or in line mode to continue. + //Must be a hull breach or in line mode to continue. if(!is_hull_breach(target_turf) && !targetdirection) target = null return @@ -398,8 +398,8 @@ ..() /** - * Checks a given turf to see if another floorbot is there, working as well. - */ + * Checks a given turf to see if another floorbot is there, working as well. + */ /mob/living/simple_animal/bot/floorbot/proc/check_bot_working(turf/active_turf) if(isturf(active_turf)) for(var/mob/living/simple_animal/bot/floorbot/robot in active_turf) diff --git a/code/modules/mob/living/simple_animal/eldritch_demons.dm b/code/modules/mob/living/simple_animal/eldritch_demons.dm index eb3199c9386..72c03458f01 100644 --- a/code/modules/mob/living/simple_animal/eldritch_demons.dm +++ b/code/modules/mob/living/simple_animal/eldritch_demons.dm @@ -39,10 +39,10 @@ add_spells() /** - * Add_spells - * - * Goes through spells_to_add and adds each spell to the mind. - */ + * Add_spells + * + * Goes through spells_to_add and adds each spell to the mind. + */ /mob/living/simple_animal/hostile/eldritch/proc/add_spells() for(var/spell in spells_to_add) AddSpell(new spell()) @@ -316,12 +316,12 @@ spells_to_add = list(/obj/effect/proc_holder/spell/aoe_turf/rust_conversion/small,/obj/effect/proc_holder/spell/targeted/projectile/dumbfire/rust_wave/short) /mob/living/simple_animal/hostile/eldritch/rust_spirit/setDir(newdir) - . = ..() - if(newdir == NORTH) - icon_state = "rust_walker_n" - else if(newdir == SOUTH) - icon_state = "rust_walker_s" - update_icon() + . = ..() + if(newdir == NORTH) + icon_state = "rust_walker_n" + else if(newdir == SOUTH) + icon_state = "rust_walker_s" + update_icon() /mob/living/simple_animal/hostile/eldritch/rust_spirit/Moved() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 32b1364ec9a..0f7fd4d99ae 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -77,7 +77,8 @@ butcher_results = list(/obj/item/food/meat/slab = 2, /obj/item/organ/ears/cat = 1, /obj/item/organ/tail/cat = 1, /obj/item/food/breadslice/plain = 1) /mob/living/simple_animal/pet/cat/breadcat/add_cell_sample() - return + return + /mob/living/simple_animal/pet/cat/original name = "Batsy" desc = "The product of alien DNA and bored geneticists." diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 3738354f54e..fcc8c038a4e 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -25,19 +25,19 @@ #define SCOUTDRONE_HACKED "drone_scout_hacked" /** - * # Maintenance Drone - * - * Small player controlled fixer-upper - * - * The maintenace drone is a ghost role with the objective to repair and - * maintain the station. - * - * Featuring two dexterous hands, and a built in toolbox stocked with - * tools. - * - * They have laws to prevent them from doing anything else. - * - */ + * # Maintenance Drone + * + * Small player controlled fixer-upper + * + * The maintenace drone is a ghost role with the objective to repair and + * maintain the station. + * + * Featuring two dexterous hands, and a built in toolbox stocked with + * tools. + * + * They have laws to prevent them from doing anything else. + * + */ /mob/living/simple_animal/drone name = "Drone" desc = "A maintenance drone, an expendable robot built to perform station repairs." @@ -253,14 +253,14 @@ /** - * Alerts drones about different priorities of alarms - * - * Arguments: - * * class - One of the keys listed in [/mob/living/simple_animal/drone/var/alarms] - * * A - [/area] the alarm occurs - * * O - unused argument, see [/mob/living/silicon/robot/triggerAlarm] - * * alarmsource - [/atom] source of the alarm - */ + * Alerts drones about different priorities of alarms + * + * Arguments: + * * class - One of the keys listed in [/mob/living/simple_animal/drone/var/alarms] + * * A - [/area] the alarm occurs + * * O - unused argument, see [/mob/living/silicon/robot/triggerAlarm] + * * alarmsource - [/atom] source of the alarm + */ /mob/living/simple_animal/drone/proc/triggerAlarm(class, area/A, O, obj/alarmsource) if(alarmsource.z != z) return @@ -277,13 +277,13 @@ to_chat(src, "--- [class] alarm detected in [A.name]!") /** - * Clears alarm and alerts drones - * - * Arguments: - * * class - One of the keys listed in [/mob/living/simple_animal/drone/var/alarms] - * * A - [/area] the alarm occurs - * * alarmsource - [/atom] source of the alarm - */ + * Clears alarm and alerts drones + * + * Arguments: + * * class - One of the keys listed in [/mob/living/simple_animal/drone/var/alarms] + * * A - [/area] the alarm occurs + * * alarmsource - [/atom] source of the alarm + */ /mob/living/simple_animal/drone/proc/cancelAlarm(class, area/A, obj/origin) if(stat != DEAD) var/list/L = alarms[class] diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drone_say.dm b/code/modules/mob/living/simple_animal/friendly/drone/drone_say.dm index 26bdbf379d7..6d04f48fdee 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drone_say.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drone_say.dm @@ -1,13 +1,13 @@ /** - * Broadcast a message to all drones in a faction - * - * Arguments: - * * msg - The message to send - * * dead_can_hear - Boolean that determines if ghosts can hear the message (`FALSE` by default) - * * source - [/atom] source that created the message - * * faction_checked_mob - [/mob/living] to determine faction matches from - * * exact_faction_match - Passed to [/mob/proc/faction_check_mob] - */ + * Broadcast a message to all drones in a faction + * + * Arguments: + * * msg - The message to send + * * dead_can_hear - Boolean that determines if ghosts can hear the message (`FALSE` by default) + * * source - [/atom] source that created the message + * * faction_checked_mob - [/mob/living] to determine faction matches from + * * exact_faction_match - Passed to [/mob/proc/faction_check_mob] + */ /proc/_alert_drones(msg, dead_can_hear = FALSE, atom/source, mob/living/faction_checked_mob, exact_faction_match) if (dead_can_hear && source) for (var/mob/M in GLOB.dead_mob_list) @@ -25,20 +25,20 @@ /** - * Wraps [/proc/_alert_drones] with defaults - * - * * source - `src` - * * faction_check_mob - `src` - * * dead_can_hear - `TRUE` - */ + * Wraps [/proc/_alert_drones] with defaults + * + * * source - `src` + * * faction_check_mob - `src` + * * dead_can_hear - `TRUE` + */ /mob/living/simple_animal/drone/proc/alert_drones(msg, dead_can_hear = FALSE) _alert_drones(msg, dead_can_hear, src, src, TRUE) /** - * Wraps [/mob/living/simple_animal/drone/proc/alert_drones] as a Drone Chat - * - * Shares the same radio code with binary - */ + * Wraps [/mob/living/simple_animal/drone/proc/alert_drones] as a Drone Chat + * + * Shares the same radio code with binary + */ /mob/living/simple_animal/drone/proc/drone_chat(msg) alert_drones("Drone Chat: [name] [say_quote(msg)]", TRUE) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index 4f3c218c2e9..181d665bec3 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -6,10 +6,10 @@ //Drone shells /** Drone Shell: Ghost role item for drones - * - * A simple mob spawner item that transforms into a maintenance drone - * Resepcts drone minimum age - */ + * + * A simple mob spawner item that transforms into a maintenance drone + * Resepcts drone minimum age + */ /obj/effect/mob_spawn/drone name = "drone shell" diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index 910bd640a08..03e7150825e 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -54,25 +54,28 @@ user.put_in_hands(DH) /** - * Called when a drone attempts to reactivate a dead drone - * - * If the owner is still ghosted, will notify them. - * If the owner cannot be found, fails with an error message. - * - * Arguments: - * * user - The [/mob/living] attempting to reactivate the drone - */ + * Called when a drone attempts to reactivate a dead drone + * + * If the owner is still ghosted, will notify them. + * If the owner cannot be found, fails with an error message. + * + * Arguments: + * * user - The [/mob/living] attempting to reactivate the drone + */ /mob/living/simple_animal/drone/proc/try_reactivate(mob/living/user) var/mob/dead/observer/G = get_ghost() if(!client && (!G || !G.client)) - var/list/faux_gadgets = list("hypertext inflator","failsafe directory","DRM switch","stack initializer",\ - "anti-freeze capacitor","data stream diode","TCP bottleneck","supercharged I/O bolt",\ - "tradewind stabilizer","radiated XML cable","registry fluid tank","open-source debunker") + var/list/faux_gadgets = list( + "hypertext inflator","failsafe directory","DRM switch","stack initializer",\ + "anti-freeze capacitor","data stream diode","TCP bottleneck","supercharged I/O bolt",\ + "tradewind stabilizer","radiated XML cable","registry fluid tank","open-source debunker", + ) var/list/faux_problems = list("won't be able to tune their bootstrap projector","will constantly remix their binary pool"+\ - " even though the BMX calibrator is working","will start leaking their XSS coolant",\ - "can't tell if their ethernet detour is moving or not", "won't be able to reseed enough"+\ - " kernels to function properly","can't start their neurotube console") + " even though the BMX calibrator is working","will start leaking their XSS coolant",\ + "can't tell if their ethernet detour is moving or not", "won't be able to reseed enough"+\ + " kernels to function properly","can't start their neurotube console", + ) to_chat(user, "You can't seem to find the [pick(faux_gadgets)]! Without it, [src] [pick(faux_problems)].") return @@ -101,10 +104,10 @@ return //This used to not exist and drones who repaired themselves also stabbed the shit out of themselves. else if(I.tool_behaviour == TOOL_WRENCH && user != src) //They aren't required to be hacked, because laws can change in other ways (i.e. admins) user.visible_message("[user] starts resetting [src]...", \ - "You press down on [src]'s factory reset control...") + "You press down on [src]'s factory reset control...") if(I.use_tool(src, user, 50, volume=50)) user.visible_message("[user] resets [src]!", \ - "You reset [src]'s directives to factory defaults!") + "You reset [src]'s directives to factory defaults!") update_drone_hack(FALSE) return else @@ -121,17 +124,17 @@ return 0 //multiplier for whatever head armor you wear as a drone /** - * Hack or unhack a drone - * - * This changes the drone's laws to destroy the station or resets them - * to normal. - * - * Some debuffs are applied like slowing the drone down and disabling - * vent crawling - * - * Arguments - * * hack - Boolean if the drone is being hacked or unhacked - */ + * Hack or unhack a drone + * + * This changes the drone's laws to destroy the station or resets them + * to normal. + * + * Some debuffs are applied like slowing the drone down and disabling + * vent crawling + * + * Arguments + * * hack - Boolean if the drone is being hacked or unhacked + */ /mob/living/simple_animal/drone/proc/update_drone_hack(hack) if(!mind) return @@ -171,29 +174,29 @@ update_drone_icon_hacked() /** - * # F R E E D R O N E - * ### R - * ### E - * ### E - * ### D - * ### R - * ### O - * ### N - * ### E - */ + * # F R E E D R O N E + * ### R + * ### E + * ### E + * ### D + * ### R + * ### O + * ### N + * ### E + */ /mob/living/simple_animal/drone/proc/liberate() laws = "1. You are a Free Drone." to_chat(src, laws) /** - * Changes the icon state to a hacked version - * - * See also - * * [/mob/living/simple_animal/drone/var/visualAppearance] - * * [MAINTDRONE] - * * [REPAIRDRONE] - * * [SCOUTDRONE] - */ + * Changes the icon state to a hacked version + * + * See also + * * [/mob/living/simple_animal/drone/var/visualAppearance] + * * [MAINTDRONE] + * * [REPAIRDRONE] + * * [SCOUTDRONE] + */ /mob/living/simple_animal/drone/proc/update_drone_icon_hacked() //this is hacked both ways var/static/hacked_appearances = list( SCOUTDRONE = SCOUTDRONE_HACKED, diff --git a/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm b/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm index 1eef305ff20..ff12f2676b0 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/verbs.dm @@ -5,10 +5,10 @@ //Drone verbs that appear in the Drone tab and on buttons /** - * Echoes drone laws to the user - * - * See [/mob/living/simple_animal/drone/var/laws] - */ + * Echoes drone laws to the user + * + * See [/mob/living/simple_animal/drone/var/laws] + */ /mob/living/simple_animal/drone/verb/check_laws() set category = "Drone" set name = "Check Laws" @@ -17,16 +17,16 @@ to_chat(src, laws) /** - * Creates an alert to drones in the same network - * - * Prompts user for alert level of: - * * Low - * * Medium - * * High - * * Critical - * - * Attaches area name to message - */ + * Creates an alert to drones in the same network + * + * Prompts user for alert level of: + * * Low + * * Medium + * * High + * * Critical + * + * Attaches area name to message + */ /mob/living/simple_animal/drone/verb/drone_ping() set category = "Drone" set name = "Drone ping" diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm index 2a84f9eb643..268c8f6333a 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm @@ -93,12 +93,12 @@ update_inv_internal_storage() /** - * Prompt for usr to pick [/mob/living/simple_animal/drone/var/visualAppearance] - * - * Does nothing if there is no usr - * - * Called on [/mob/proc/Login] - */ + * Prompt for usr to pick [/mob/living/simple_animal/drone/var/visualAppearance] + * + * Does nothing if there is no usr + * + * Called on [/mob/proc/Login] + */ /mob/living/simple_animal/drone/proc/pickVisualAppearance() picked = FALSE var/list/drone_icons = list( @@ -141,8 +141,8 @@ picked = TRUE /** - * check_menu: Checks if we are allowed to interact with a radial menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + */ /mob/living/simple_animal/drone/proc/check_menu() if(!istype(src)) return FALSE diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 7397901060f..f2b685a9ac9 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -121,8 +121,8 @@ return ..() /** - *Checks the mouse cap, if it's above the cap, doesn't spawn a mouse. If below, spawns a mouse and adds it to cheeserats. - */ + *Checks the mouse cap, if it's above the cap, doesn't spawn a mouse. If below, spawns a mouse and adds it to cheeserats. + */ /mob/living/simple_animal/mouse/proc/be_fruitful() var/cap = CONFIG_GET(number/ratcap) if(LAZYLEN(SSmobs.cheeserats) >= cap) @@ -133,8 +133,8 @@ visible_message("[src] nibbles through the cheese, attracting another mouse!") /** - *Spawns a new regal rat, says some good jazz, and if sentient, transfers the relivant mind. - */ + *Spawns a new regal rat, says some good jazz, and if sentient, transfers the relivant mind. + */ /mob/living/simple_animal/mouse/proc/evolve() var/mob/living/simple_animal/hostile/regalrat/regalrat = new /mob/living/simple_animal/hostile/regalrat/controlled(loc) visible_message("[src] devours the cheese! He morphs into something... greater!") diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm index 6f7f76f7449..700625746f2 100644 --- a/code/modules/mob/living/simple_animal/friendly/snake.dm +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -1,43 +1,43 @@ /mob/living/simple_animal/hostile/retaliate/poison - var/poison_per_bite = 0 - var/poison_type = /datum/reagent/toxin + var/poison_per_bite = 0 + var/poison_type = /datum/reagent/toxin /mob/living/simple_animal/hostile/retaliate/poison/AttackingTarget() - . = ..() - if(. && isliving(target)) - var/mob/living/L = target - if(L.reagents && !poison_per_bite == 0) - L.reagents.add_reagent(poison_type, poison_per_bite) - return . + . = ..() + if(. && isliving(target)) + var/mob/living/L = target + if(L.reagents && !poison_per_bite == 0) + L.reagents.add_reagent(poison_type, poison_per_bite) + return . /mob/living/simple_animal/hostile/retaliate/poison/snake - name = "snake" - desc = "A slithery snake. These legless reptiles are the bane of mice and adventurers alike." - icon_state = "snake" - icon_living = "snake" - icon_dead = "snake_dead" - speak_emote = list("hisses") - health = 20 - maxHealth = 20 - attack_verb_continuous = "bites" - attack_verb_simple = "bite" - melee_damage_lower = 5 - melee_damage_upper = 6 - response_help_continuous = "pets" - response_help_simple = "pet" - response_disarm_continuous = "shoos" - response_disarm_simple = "shoo" - response_harm_continuous = "steps on" - response_harm_simple = "step on" - faction = list("hostile") - ventcrawler = VENTCRAWLER_ALWAYS - density = FALSE - pass_flags = PASSTABLE | PASSMOB - mob_size = MOB_SIZE_SMALL - mob_biotypes = MOB_ORGANIC|MOB_BEAST|MOB_REPTILE - gold_core_spawnable = FRIENDLY_SPAWN - obj_damage = 0 - environment_smash = ENVIRONMENT_SMASH_NONE + name = "snake" + desc = "A slithery snake. These legless reptiles are the bane of mice and adventurers alike." + icon_state = "snake" + icon_living = "snake" + icon_dead = "snake_dead" + speak_emote = list("hisses") + health = 20 + maxHealth = 20 + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + melee_damage_lower = 5 + melee_damage_upper = 6 + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "shoos" + response_disarm_simple = "shoo" + response_harm_continuous = "steps on" + response_harm_simple = "step on" + faction = list("hostile") + ventcrawler = VENTCRAWLER_ALWAYS + density = FALSE + pass_flags = PASSTABLE | PASSMOB + mob_size = MOB_SIZE_SMALL + mob_biotypes = MOB_ORGANIC|MOB_BEAST|MOB_REPTILE + gold_core_spawnable = FRIENDLY_SPAWN + obj_damage = 0 + environment_smash = ENVIRONMENT_SMASH_NONE /mob/living/simple_animal/hostile/retaliate/poison/snake/Initialize() . = ..() @@ -64,9 +64,9 @@ return mice /mob/living/simple_animal/hostile/retaliate/poison/snake/AttackingTarget() - if(istype(target, /mob/living/simple_animal/mouse)) - visible_message("[name] consumes [target] in a single gulp!", "You consume [target] in a single gulp!") - QDEL_NULL(target) - adjustBruteLoss(-2) - else - return ..() + if(istype(target, /mob/living/simple_animal/mouse)) + visible_message("[name] consumes [target] in a single gulp!", "You consume [target] in a single gulp!") + QDEL_NULL(target) + adjustBruteLoss(-2) + else + return ..() diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index bd14cccf61b..45be892542b 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -658,52 +658,52 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians name = "Holoparasite Guide" info = {"A list of Holoparasite Types
-
- Assassin: Does medium damage and takes full damage, but can enter stealth, causing its next attack to do massive damage and ignore armor. However, it becomes briefly unable to recall after attacking from stealth.
-
- Chaos: Ignites enemies on touch and causes them to hallucinate all nearby people as the parasite. Automatically extinguishes the user if they catch on fire.
-
- Charger: Moves extremely fast, does medium damage on attack, and can charge at targets, damaging the first target hit and forcing them to drop any items they are holding.
-
- Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.
-
- Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.
-
- Protector: Causes you to teleport to it when out of range, unlike other parasites. Has two modes; Combat, where it does and takes medium damage, and Protection, where it does and takes almost no damage but moves slightly slower.
-
- Ranged: Has two modes. Ranged; which fires a constant stream of weak, armor-ignoring projectiles. Scout; Cannot attack, but can move through walls and is quite hard to see. Can lay surveillance snares, which alert it when crossed, in either mode.
-
- Standard: Devastating close combat attacks and high damage resist. Can smash through weak walls.
-
- Gravitokinetic: Attacks will apply crushing gravity to the target. Can target the ground as well to slow targets advancing on you, but this will affect the user.
-
+
+Assassin: Does medium damage and takes full damage, but can enter stealth, causing its next attack to do massive damage and ignore armor. However, it becomes briefly unable to recall after attacking from stealth.
+
+Chaos: Ignites enemies on touch and causes them to hallucinate all nearby people as the parasite. Automatically extinguishes the user if they catch on fire.
+
+Charger: Moves extremely fast, does medium damage on attack, and can charge at targets, damaging the first target hit and forcing them to drop any items they are holding.
+
+Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.
+
+Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.
+
+Protector: Causes you to teleport to it when out of range, unlike other parasites. Has two modes; Combat, where it does and takes medium damage, and Protection, where it does and takes almost no damage but moves slightly slower.
+
+Ranged: Has two modes. Ranged; which fires a constant stream of weak, armor-ignoring projectiles. Scout; Cannot attack, but can move through walls and is quite hard to see. Can lay surveillance snares, which alert it when crossed, in either mode.
+
+Standard: Devastating close combat attacks and high damage resist. Can smash through weak walls.
+
+Gravitokinetic: Attacks will apply crushing gravity to the target. Can target the ground as well to slow targets advancing on you, but this will affect the user.
+
"} /obj/item/paper/guides/antag/guardian/wizard name = "Guardian Guide" info = {"A list of Guardian Types
-
- Assassin: Does medium damage and takes full damage, but can enter stealth, causing its next attack to do massive damage and ignore armor. However, it becomes briefly unable to recall after attacking from stealth.
-
- Chaos: Ignites enemies on touch and causes them to hallucinate all nearby people as the guardian. Automatically extinguishes the user if they catch on fire.
-
- Charger: Moves extremely fast, does medium damage on attack, and can charge at targets, damaging the first target hit and forcing them to drop any items they are holding.
-
- Dexterous: Does low damage on attack, but is capable of holding items and storing a single item within it. It will drop items held in its hands when it recalls, but it will retain the stored item.
-
- Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.
-
- Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.
-
- Protector: Causes you to teleport to it when out of range, unlike other parasites. Has two modes; Combat, where it does and takes medium damage, and Protection, where it does and takes almost no damage but moves slightly slower.
-
- Ranged: Has two modes. Ranged; which fires a constant stream of weak, armor-ignoring projectiles. Scout; Cannot attack, but can move through walls and is quite hard to see. Can lay surveillance snares, which alert it when crossed, in either mode.
-
- Standard: Devastating close combat attacks and high damage resist. Can smash through weak walls.
-
- Gravitokinetic: Attacks will apply crushing gravity to the target. Can target the ground as well to slow targets advancing on you, but this will affect the user.
-
+
+Assassin: Does medium damage and takes full damage, but can enter stealth, causing its next attack to do massive damage and ignore armor. However, it becomes briefly unable to recall after attacking from stealth.
+
+Chaos: Ignites enemies on touch and causes them to hallucinate all nearby people as the guardian. Automatically extinguishes the user if they catch on fire.
+
+Charger: Moves extremely fast, does medium damage on attack, and can charge at targets, damaging the first target hit and forcing them to drop any items they are holding.
+
+Dexterous: Does low damage on attack, but is capable of holding items and storing a single item within it. It will drop items held in its hands when it recalls, but it will retain the stored item.
+
+Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.
+
+Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.
+
+Protector: Causes you to teleport to it when out of range, unlike other parasites. Has two modes; Combat, where it does and takes medium damage, and Protection, where it does and takes almost no damage but moves slightly slower.
+
+Ranged: Has two modes. Ranged; which fires a constant stream of weak, armor-ignoring projectiles. Scout; Cannot attack, but can move through walls and is quite hard to see. Can lay surveillance snares, which alert it when crossed, in either mode.
+
+Standard: Devastating close combat attacks and high damage resist. Can smash through weak walls.
+
+Gravitokinetic: Attacks will apply crushing gravity to the target. Can target the ground as well to slow targets advancing on you, but this will affect the user.
+
"} diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index be0bedb4e60..89a0feb404e 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -157,7 +157,7 @@ /mob/living/simple_animal/hostile/poison/bees/AttackingTarget() - //Pollinate + //Pollinate if(istype(target, /obj/machinery/hydroponics)) var/obj/machinery/hydroponics/Hydro = target pollinate(Hydro) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 91cdab0ffec..e32a41cc599 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -1,8 +1,8 @@ /** - * # Poison Hostile Simplemob - * - * A subtype of the hostile simplemob which injects reagents into its target on attack, assuming the target accepts reagents. - */ + * # Poison Hostile Simplemob + * + * A subtype of the hostile simplemob which injects reagents into its target on attack, assuming the target accepts reagents. + */ /mob/living/simple_animal/hostile/poison ///How much of a reagent the mob injects on attack var/poison_per_bite = 5 @@ -15,24 +15,24 @@ inject_poison(target) /** - * Injects poison into a given target. - * - * Checks if a given target accepts reagents, and then injects a given reagent into them if so. - * Arguments: - * * living_target - The targeted mob - */ + * Injects poison into a given target. + * + * Checks if a given target accepts reagents, and then injects a given reagent into them if so. + * Arguments: + * * living_target - The targeted mob + */ /mob/living/simple_animal/hostile/poison/proc/inject_poison(mob/living/living_target) if(poison_per_bite != 0 && living_target?.reagents) living_target.reagents.add_reagent(poison_type, poison_per_bite) /** - * # Giant Spider - * - * A versatile mob which can occur from a variety of sources. - * - * A mob which can be created by botany or xenobiology. The basic type is the guard, which is slower but sturdy and outputs good damage. - * All spiders can produce webbing. Currently does not inject toxin into its target. - */ + * # Giant Spider + * + * A versatile mob which can occur from a variety of sources. + * + * A mob which can be created by botany or xenobiology. The basic type is the guard, which is slower but sturdy and outputs good damage. + * All spiders can produce webbing. Currently does not inject toxin into its target. + */ /mob/living/simple_animal/hostile/poison/giant_spider name = "giant spider" desc = "Furry and black, it makes you shudder to look at it. This one has deep red eyes." @@ -109,12 +109,12 @@ clear_alert("temp") /** - * # Spider Hunter - * - * A subtype of the giant spider with purple eyes and toxin injection. - * - * A subtype of the giant spider which is faster, has toxin injection, but less health. This spider is only slightly slower than a human. - */ + * # Spider Hunter + * + * A subtype of the giant spider with purple eyes and toxin injection. + * + * A subtype of the giant spider which is faster, has toxin injection, but less health. This spider is only slightly slower than a human. + */ /mob/living/simple_animal/hostile/poison/giant_spider/hunter name = "hunter spider" desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes." @@ -130,13 +130,13 @@ speed = -0.1 /** - * # Spider Nurse - * - * A subtype of the giant spider with green eyes that specializes in support. - * - * A subtype of the giant spider which specializes in support skills. Nurses can place down webbing in a quarter of the time - * that other species can and can wrap other spiders' wounds, healing them. Note that it cannot heal itself. - */ + * # Spider Nurse + * + * A subtype of the giant spider with green eyes that specializes in support. + * + * A subtype of the giant spider which specializes in support skills. Nurses can place down webbing in a quarter of the time + * that other species can and can wrap other spiders' wounds, healing them. Note that it cannot heal itself. + */ /mob/living/simple_animal/hostile/poison/giant_spider/nurse name = "nurse spider" desc = "Furry and black, it makes you shudder to look at it. This one has brilliant green eyes." @@ -180,13 +180,13 @@ is_busy = FALSE /** - * # Tarantula - * - * The tank of spider subtypes. Is incredibly slow when not on webbing, but has a lunge and the highest health and damage of any spider type. - * - * A subtype of the giant spider which specializes in pure strength and staying power. Is slowed down greatly when not on webbing, but can lunge - * to throw off attackers and possibly to stun them, allowing the tarantula to net an easy kill. - */ + * # Tarantula + * + * The tank of spider subtypes. Is incredibly slow when not on webbing, but has a lunge and the highest health and damage of any spider type. + * + * A subtype of the giant spider which specializes in pure strength and staying power. Is slowed down greatly when not on webbing, but can lunge + * to throw off attackers and possibly to stun them, allowing the tarantula to net an easy kill. + */ /mob/living/simple_animal/hostile/poison/giant_spider/tarantula name = "tarantula" desc = "Furry and black, it makes you shudder to look at it. This one has abyssal red eyes." @@ -228,13 +228,13 @@ silk_walking = FALSE /** - * # Spider Viper - * - * The assassin of spider subtypes. Essentially a juiced up version of the hunter. - * - * A subtype of the giant spider which specializes in speed and poison. Injects a deadlier toxin than other spiders, moves extremely fast, - * but like the hunter has a limited amount of health. - */ + * # Spider Viper + * + * The assassin of spider subtypes. Essentially a juiced up version of the hunter. + * + * A subtype of the giant spider which specializes in speed and poison. Injects a deadlier toxin than other spiders, moves extremely fast, + * but like the hunter has a limited amount of health. + */ /mob/living/simple_animal/hostile/poison/giant_spider/viper name = "viper spider" desc = "Furry and black, it makes you shudder to look at it. This one has effervescent purple eyes." @@ -252,15 +252,15 @@ gold_core_spawnable = NO_SPAWN /** - * # Spider Broodmother - * - * The reproductive line of spider subtypes. Is the only subtype to lay eggs, which is the only way for spiders to reproduce. - * - * A subtype of the giant spider which is the crux of a spider horde. Can lay normal eggs at any time which become normal spider types, - * but by consuming human bodies can lay special eggs which can become one of the more specialized subtypes, including possibly another broodmother. - * However, this spider subtype has no offensive capability and can be quickly dispatched without assistance from other spiders. They are also capable - * of sending messages to all living spiders, being a communication line for the rest of the horde. - */ + * # Spider Broodmother + * + * The reproductive line of spider subtypes. Is the only subtype to lay eggs, which is the only way for spiders to reproduce. + * + * A subtype of the giant spider which is the crux of a spider horde. Can lay normal eggs at any time which become normal spider types, + * but by consuming human bodies can lay special eggs which can become one of the more specialized subtypes, including possibly another broodmother. + * However, this spider subtype has no offensive capability and can be quickly dispatched without assistance from other spiders. They are also capable + * of sending messages to all living spiders, being a communication line for the rest of the horde. + */ /mob/living/simple_animal/hostile/poison/giant_spider/midwife name = "broodmother spider" desc = "Furry and black, it makes you shudder to look at it. This one has scintillating green eyes. Might also be hiding a real knife somewhere." @@ -305,11 +305,11 @@ letmetalkpls.Grant(src) /** - * Attempts to cocoon the spider's current cocoon_target. - * - * Attempts to coccon the spider's cocoon_target after a do_after. - * If the target is a human who hasn't been drained before, ups the spider's fed counter so it can lay enriched eggs. - */ + * Attempts to cocoon the spider's current cocoon_target. + * + * Attempts to coccon the spider's cocoon_target after a do_after. + * If the target is a human who hasn't been drained before, ups the spider's fed counter so it can lay enriched eggs. + */ /mob/living/simple_animal/hostile/poison/giant_spider/midwife/proc/cocoon() if(stat == DEAD || !cocoon_target || cocoon_target.anchored) return @@ -587,13 +587,13 @@ return TRUE /** - * Sends a message to all spiders from the target. - * - * Allows the user to send a message to all spiders that exist. Ghosts will also see the message. - * Arguments: - * * user - The spider sending the message - * * message - The message to be sent - */ + * Sends a message to all spiders from the target. + * + * Allows the user to send a message to all spiders that exist. Ghosts will also see the message. + * Arguments: + * * user - The spider sending the message + * * message - The message to be sent + */ /datum/action/innate/spider/comm/proc/spider_command(mob/living/user, message) if(!message) return @@ -607,13 +607,13 @@ usr.log_talk(message, LOG_SAY, tag="spider command") /** - * # Giant Ice Spider - * - * A giant spider immune to temperature damage. Injects frost oil. - * - * A subtype of the giant spider which is immune to temperature damage, unlike its normal counterpart. - * Currently unused in the game unless spawned by admins. - */ + * # Giant Ice Spider + * + * A giant spider immune to temperature damage. Injects frost oil. + * + * A subtype of the giant spider which is immune to temperature damage, unlike its normal counterpart. + * Currently unused in the game unless spawned by admins. + */ /mob/living/simple_animal/hostile/poison/giant_spider/ice name = "giant ice spider" atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -624,12 +624,12 @@ gold_core_spawnable = NO_SPAWN /** - * # Ice Nurse Spider - * - * A nurse spider immune to temperature damage. Injects frost oil. - * - * Same thing as the giant ice spider but mirrors the nurse subtype. Also unused. - */ + * # Ice Nurse Spider + * + * A nurse spider immune to temperature damage. Injects frost oil. + * + * Same thing as the giant ice spider but mirrors the nurse subtype. Also unused. + */ /mob/living/simple_animal/hostile/poison/giant_spider/nurse/ice name = "giant ice spider" atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -639,12 +639,12 @@ color = rgb(114,228,250) /** - * # Ice Hunter Spider - * - * A hunter spider immune to temperature damage. Injects frost oil. - * - * Same thing as the giant ice spider but mirrors the hunter subtype. Also unused. - */ + * # Ice Hunter Spider + * + * A hunter spider immune to temperature damage. Injects frost oil. + * + * Same thing as the giant ice spider but mirrors the hunter subtype. Also unused. + */ /mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice name = "giant ice spider" atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -655,13 +655,13 @@ gold_core_spawnable = NO_SPAWN /** - * # Flesh Spider - * - * A giant spider subtype specifically created by changelings. Built to be self-sufficient, unlike other spider types. - * - * A subtype of giant spider which only occurs from changelings. Has the base stats of a hunter, but they can heal themselves. - * They also produce web in 70% of the time of the base spider. They also occasionally leave puddles of blood when they walk around. Flavorful! - */ + * # Flesh Spider + * + * A giant spider subtype specifically created by changelings. Built to be self-sufficient, unlike other spider types. + * + * A subtype of giant spider which only occurs from changelings. Has the base stats of a hunter, but they can heal themselves. + * They also produce web in 70% of the time of the base spider. They also occasionally leave puddles of blood when they walk around. Flavorful! + */ /mob/living/simple_animal/hostile/poison/giant_spider/hunter/flesh desc = "A odd fleshy creature in the shape of a spider. Its eyes are pitch black and soulless." icon_state = "flesh_spider" @@ -692,12 +692,12 @@ return ..() /** - * # Viper Spider (Wizard) - * - * A viper spider buffed slightly so I don't need to hear anyone complain about me nerfing an already useless wizard ability. - * - * A viper spider with buffed attributes. All I changed was its health value and gave it the ability to ventcrawl. The crux of the wizard meta. - */ + * # Viper Spider (Wizard) + * + * A viper spider buffed slightly so I don't need to hear anyone complain about me nerfing an already useless wizard ability. + * + * A viper spider with buffed attributes. All I changed was its health value and gave it the ability to ventcrawl. The crux of the wizard meta. + */ /mob/living/simple_animal/hostile/poison/giant_spider/viper/wizard maxHealth = 80 health = 80 diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/hostile/goose.dm index 202ace8c9a9..418d260e6f6 100644 --- a/code/modules/mob/living/simple_animal/hostile/goose.dm +++ b/code/modules/mob/living/simple_animal/hostile/goose.dm @@ -236,11 +236,11 @@ /mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/deadchat_plays_goose() stop_automated_movement = TRUE AddComponent(/datum/component/deadchat_control, ANARCHY_MODE, list( - "up" = CALLBACK(GLOBAL_PROC, .proc/_step, src, NORTH), - "down" = CALLBACK(GLOBAL_PROC, .proc/_step, src, SOUTH), - "left" = CALLBACK(GLOBAL_PROC, .proc/_step, src, WEST), - "right" = CALLBACK(GLOBAL_PROC, .proc/_step, src, EAST), - "vomit" = CALLBACK(src, .proc/vomit_prestart, 25)), 12 SECONDS, 4 SECONDS) + "up" = CALLBACK(GLOBAL_PROC, .proc/_step, src, NORTH), + "down" = CALLBACK(GLOBAL_PROC, .proc/_step, src, SOUTH), + "left" = CALLBACK(GLOBAL_PROC, .proc/_step, src, WEST), + "right" = CALLBACK(GLOBAL_PROC, .proc/_step, src, EAST), + "vomit" = CALLBACK(src, .proc/vomit_prestart, 25)), 12 SECONDS, 4 SECONDS) /datum/action/cooldown/vomit name = "Vomit" diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 191e64acec1..390f3c5f85e 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -598,8 +598,8 @@ faction = fren.faction.Copy() /** - * Proc that handles a charge attack windup for a mob. - */ + * Proc that handles a charge attack windup for a mob. + */ /mob/living/simple_animal/hostile/proc/enter_charge(atom/target) if(charge_state || body_position == LYING_DOWN || HAS_TRAIT(src, TRAIT_IMMOBILIZED)) return FALSE @@ -610,8 +610,8 @@ addtimer(CALLBACK(src, .proc/handle_charge_target, target), 1.5 SECONDS, TIMER_STOPPABLE) /** - * Proc that throws the mob at the target after the windup. - */ + * Proc that throws the mob at the target after the windup. + */ /mob/living/simple_animal/hostile/proc/handle_charge_target(atom/target) charge_state = TRUE throw_at(target, charge_distance, 1, src, FALSE, TRUE, callback = CALLBACK(src, .proc/charge_end)) @@ -619,14 +619,14 @@ return TRUE /** - * Proc that handles a charge attack after it's concluded. - */ + * Proc that handles a charge attack after it's concluded. + */ /mob/living/simple_animal/hostile/proc/charge_end() charge_state = FALSE /** - * Proc that handles the charge impact of the charging mob. - */ + * Proc that handles the charge impact of the charging mob. + */ /mob/living/simple_animal/hostile/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(!charge_state) return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm index bd05d2ffb85..c5ca2b08b3a 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm @@ -8,7 +8,7 @@ /mob/living/simple_animal/hostile/jungle/seedling name = "seedling" desc = "This oversized, predatory flower conceals what can only be described as an organic energy cannon, and it will not die until its hidden vital organs are sliced out. \ - The concentrated streams of energy it sometimes produces require its full attention, attacking it during this time will prevent it from finishing its attack." + The concentrated streams of energy it sometimes produces require its full attention, attacking it during this time will prevent it from finishing its attack." icon = 'icons/mob/jungle/seedling.dmi' icon_state = "seedling" icon_living = "seedling" diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm index e24962c8af5..d6bf03ea700 100644 --- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm @@ -1,23 +1,21 @@ -/* - Mecha Pilots! - by Remie Richards - - Mecha pilot mobs are able to pilot Mecha to a rudimentary level - This allows for certain mobs to be more of a threat (Because they're in a MECH) - - Mecha Pilots can either spawn with one, or steal one! - - (Inherits from syndicate just to avoid copy-paste) - - Featuring: - * Mecha piloting skills - * Uses Mecha equipment - * Uses Mecha special abilities in specific situations - * Pure Evil Incarnate - -*/ - +/** + * Mecha Pilots! + * By Remie Richards + * + * Mecha pilot mobs are able to pilot Mecha to a rudimentary level + * this allows for certain mobs to be more of a threat (Because they're in a MECH) + * + * Mecha Pilots can either spawn with one, or steal one! + * + * Inherits from syndicate just to avoid copy-paste) + * + * Featuring: + * * Mecha piloting skills + * * Uses Mecha equipment + * * Uses Mecha special abilities in specific situations + * * Pure Evil Incarnate + */ /mob/living/simple_animal/hostile/syndicate/mecha_pilot name = "Syndicate Mecha Pilot" desc = "Death to Nanotrasen. This variant comes in MECHA DEATH flavour." diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 17cbe1bb297..6b8a0f88562 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -19,9 +19,9 @@ It can charge at its target, and also heavily damaging anything directly hit in If at half health it will start to charge from all sides with clones. When Bubblegum dies, it leaves behind a H.E.C.K. mining suit as well as a chest that can contain three things: - 1. A bottle that, when activated, drives everyone nearby into a frenzy - 2. A contract that marks for death the chosen target - 3. A spellblade that can slice off limbs at range +A. A bottle that, when activated, drives everyone nearby into a frenzy +B. A contract that marks for death the chosen target +C. A spellblade that can slice off limbs at range Difficulty: Hard @@ -198,15 +198,15 @@ Difficulty: Hard . += L /** - * Attack by override for bubblegum - * - * This is used to award the frenching achievement for hitting bubblegum with a tongue - * - * Arguments: - * * obj/item/W the item hitting bubblegum - * * mob/user The user of the item - * * params, extra parameters - */ + * Attack by override for bubblegum + * + * This is used to award the frenching achievement for hitting bubblegum with a tongue + * + * Arguments: + * * obj/item/W the item hitting bubblegum + * * mob/user The user of the item + * * params, extra parameters + */ /mob/living/simple_animal/hostile/megafauna/bubblegum/attackby(obj/item/W, mob/user, params) . = ..() if(istype(W, /obj/item/organ/tongue)) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 1d94c5c82c2..1d86c07b2c3 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -1,26 +1,23 @@ -/* - -COLOSSUS - -The colossus spawns randomly wherever a lavaland creature is able to spawn. It is powerful, ancient, and extremely deadly. -The colossus has a degree of sentience, proving this in speech during its attacks. - -It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage. - -The colossus' true danger lies in its ranged capabilities. It fires immensely damaging death bolts that penetrate all armor in a variety of ways: - 1. The colossus fires death bolts in alternating patterns: the cardinal directions and the diagonal directions. - 2. The colossus fires death bolts in a shotgun-like pattern, instantly downing anything unfortunate enough to be hit by all of them. - 3. The colossus fires a spiral of death bolts. -At 33% health, the colossus gains an additional attack: - 4. The colossus fires two spirals of death bolts, spinning in opposite directions. - -When a colossus dies, it leaves behind a chunk of glowing crystal known as a black box. Anything placed inside will carry over into future rounds. -For instance, you could place a bag of holding into the black box, and then kill another colossus next round and retrieve the bag of holding from inside. - -Difficulty: Very Hard - -*/ - +/** + * COLOSSUS + * + *The colossus spawns randomly wherever a lavaland creature is able to spawn. It is powerful, ancient, and extremely deadly. + *The colossus has a degree of sentience, proving this in speech during its attacks. + * + *It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage. + * + *The colossus' true danger lies in its ranged capabilities. It fires immensely damaging death bolts that penetrate all armor in a variety of ways: + *A. The colossus fires death bolts in alternating patterns: the cardinal directions and the diagonal directions. + *B. The colossus fires death bolts in a shotgun-like pattern, instantly downing anything unfortunate enough to be hit by all of them. + *C. The colossus fires a spiral of death bolts. + *At 33% health, the colossus gains an additional attack: + *D. The colossus fires two spirals of death bolts, spinning in opposite directions. + * + *When a colossus dies, it leaves behind a chunk of glowing crystal known as a black box. Anything placed inside will carry over into future rounds. + *For instance, you could place a bag of holding into the black box, and then kill another colossus next round and retrieve the bag of holding from inside. + * + * Intended Difficulty: Very Hard + */ /mob/living/simple_animal/hostile/megafauna/colossus name = "colossus" desc = "A monstrous creature protected by heavy shielding." diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 89f539e12d7..084570b4971 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -9,31 +9,30 @@ ///used whenever the drake generates a hotspot #define DRAKE_FIRE_EXPOSURE 50 -/* - -ASH DRAKE - -Ash drakes spawn randomly wherever a lavaland creature is able to spawn. They are the draconic guardians of the Necropolis. - -It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage. - -Whenever possible, the drake will breathe fire directly at it's target, igniting and heavily damaging anything caught in the blast. -It also often causes lava to pool from the ground around you - many nearby turfs will temporarily turn into lava, dealing damage to anything on the turfs. -The drake also utilizes its wings to fly into the sky, flying after its target and attempting to slam down on them. Anything near when it slams down takes huge damage. - - Sometimes it will chain these swooping attacks over and over, making swiftness a necessity. - - Sometimes, it will encase its target in an arena of lava - -When an ash drake dies, it leaves behind a chest that can contain four things: - 1. A spectral blade that allows its wielder to call ghosts to it, enhancing its power - 2. A lava staff that allows its wielder to create lava - 3. A spellbook and wand of fireballs - 4. A bottle of dragon's blood with several effects, including turning its imbiber into a drake themselves. - -When butchered, they leave behind diamonds, sinew, bone, and ash drake hide. Ash drake hide can be used to create a hooded cloak that protects its wearer from ash storms. - -Difficulty: Medium - -*/ +/*£ + * + *ASH DRAKE + * + *Ash drakes spawn randomly wherever a lavaland creature is able to spawn. They are the draconic guardians of the Necropolis. + * + *It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage. + * + *Whenever possible, the drake will breathe fire directly at it's target, igniting and heavily damaging anything caught in the blast. + *It also often causes lava to pool from the ground around you - many nearby turfs will temporarily turn into lava, dealing damage to anything on the turfs. + *The drake also utilizes its wings to fly into the sky, flying after its target and attempting to slam down on them. Anything near when it slams down takes huge damage. + *Sometimes it will chain these swooping attacks over and over, making swiftness a necessity. + *Sometimes, it will encase its target in an arena of lava + * + *When an ash drake dies, it leaves behind a chest that can contain four things: + *A. A spectral blade that allows its wielder to call ghosts to it, enhancing its power + *B. A lava staff that allows its wielder to create lava + *C. A spellbook and wand of fireballs + *D. A bottle of dragon's blood with several effects, including turning its imbiber into a drake themselves. + * + *When butchered, they leave behind diamonds, sinew, bone, and ash drake hide. Ash drake hide can be used to create a hooded cloak that protects its wearer from ash storms. + * + *Intended Difficulty: Medium + */ /mob/living/simple_animal/hostile/megafauna/dragon name = "ash drake" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 7edd36a4394..45d4fb7f0e5 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -1,21 +1,21 @@ /** - *LEGION - * - *Legion spawns from the necropolis gate in the far north of lavaland. It is the guardian of the Necropolis and emerges from within whenever an intruder tries to enter through its gate. - *Whenever Legion emerges, everything in lavaland will receive a notice via color, audio, and text. This is because Legion is powerful enough to slaughter the entirety of lavaland with little effort. LOL - * - *It has three attacks. - *Spawn Skull. Most of the time it will use this attack. Spawns a single legion skull. - *Spawn Sentinel. The legion will spawn up to three sentinels, depending on its size. - *CHARGE! The legion starts spinning and tries to melee the player. It will try to flick itself towards the player, dealing some damage if it hits. - * - *When Legion dies, it will split into three smaller skulls up to three times. - *If you kill all of the smaller ones it drops a staff of storms, which allows its wielder to call and disperse ash storms at will and functions as a powerful melee weapon. - * - *Difficulty: Medium - * - *SHITCODE AHEAD. BE ADVISED. Also comment extravaganza - */ + *LEGION + * + *Legion spawns from the necropolis gate in the far north of lavaland. It is the guardian of the Necropolis and emerges from within whenever an intruder tries to enter through its gate. + *Whenever Legion emerges, everything in lavaland will receive a notice via color, audio, and text. This is because Legion is powerful enough to slaughter the entirety of lavaland with little effort. LOL + * + *It has three attacks. + *Spawn Skull. Most of the time it will use this attack. Spawns a single legion skull. + *Spawn Sentinel. The legion will spawn up to three sentinels, depending on its size. + *CHARGE! The legion starts spinning and tries to melee the player. It will try to flick itself towards the player, dealing some damage if it hits. + * + *When Legion dies, it will split into three smaller skulls up to three times. + *If you kill all of the smaller ones it drops a staff of storms, which allows its wielder to call and disperse ash storms at will and functions as a powerful melee weapon. + * + *Difficulty: Medium + * + *SHITCODE AHEAD. BE ADVISED. Also comment extravaganza + */ /mob/living/simple_animal/hostile/megafauna/legion name = "Legion" health = 700 diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index d1a155226c2..6296a5c7f4d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -184,8 +184,10 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca "\The [src] knocks you down!") /mob/living/simple_animal/hostile/mimic/copy/machine - speak = list("HUMANS ARE IMPERFECT!", "YOU SHALL BE ASSIMILATED!", "YOU ARE HARMING YOURSELF", "You have been deemed hazardous. Will you comply?", \ - "My logic is undeniable.", "One of us.", "FLESH IS WEAK", "THIS ISN'T WAR, THIS IS EXTERMINATION!") + speak = list( + "HUMANS ARE IMPERFECT!", "YOU SHALL BE ASSIMILATED!", "YOU ARE HARMING YOURSELF", "You have been deemed hazardous. Will you comply?", \ + "My logic is undeniable.", "One of us.", "FLESH IS WEAK", "THIS ISN'T WAR, THIS IS EXTERMINATION!", + ) speak_chance = 7 /mob/living/simple_animal/hostile/mimic/copy/machine/CanAttack(atom/the_target) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 1892aea3b7e..e01a9a0c7ff 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -4,17 +4,17 @@ #define CALL_CHILDREN 4 /** - * # Goliath Broodmother - * - * A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will. - * When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled. - * It's attacks are as follows: - * - Spawns a 3x3/plus shape of tentacles on the target location - * - Spawns 2 baby goliaths on its tile, up to a max of 8. Children blow up when they die. - * - The broodmother lets out a noise, and is able to move faster for 6.5 seconds. - * - Summons your children around you. - * The broodmother is a fight revolving around stage control, as the activator has to manage the baby goliaths and the broodmother herself, along with all the tendrils. - */ + * # Goliath Broodmother + * + * A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will. + * When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled. + * It's attacks are as follows: + * - Spawns a 3x3/plus shape of tentacles on the target location + * - Spawns 2 baby goliaths on its tile, up to a max of 8. Children blow up when they die. + * - The broodmother lets out a noise, and is able to move faster for 6.5 seconds. + * - Summons your children around you. + * The broodmother is a fight revolving around stage control, as the activator has to manage the baby goliaths and the broodmother herself, along with all the tendrils. + */ /mob/living/simple_animal/hostile/asteroid/elite/broodmother name = "goliath broodmother" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 4ccac1effb3..75593994b6a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -4,17 +4,17 @@ #define HERALD_MIRROR 4 /** - * # Herald - * - * A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style. - * As it's health gets lower, the amount of projectiles fired per-attack increases. - * It's attacks are as follows: - * - Fires three projectiles in a given direction. - * - Fires a spread in every cardinal and diagonal direction at once, then does it again after a bit. - * - Shoots a single, golden bolt. Wherever it lands, the herald will be teleported to the location. - * - Spawns a mirror which reflects projectiles directly at the target. - * Herald is a more concentrated variation of the Colossus fight, having less projectiles overall, but more focused attacks. - */ + * # Herald + * + * A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style. + * As it's health gets lower, the amount of projectiles fired per-attack increases. + * It's attacks are as follows: + * - Fires three projectiles in a given direction. + * - Fires a spread in every cardinal and diagonal direction at once, then does it again after a bit. + * - Shoots a single, golden bolt. Wherever it lands, the herald will be teleported to the location. + * - Spawns a mirror which reflects projectiles directly at the target. + * Herald is a more concentrated variation of the Colossus fight, having less projectiles overall, but more focused attacks. + */ /mob/living/simple_animal/hostile/asteroid/elite/herald name = "herald" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index cd12100486d..8f0d2ba475c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -4,17 +4,17 @@ #define SPEW_SMOKE 4 /** - * # Legionnaire - * - * A towering skeleton, embodying the power of Legion. - * As it's health gets lower, the head does more damage. - * It's attacks are as follows: - * - Charges at the target after a telegraph, throwing them across the arena should it connect. - * - Legionnaire's head detaches, attacking as it's own entity. Has abilities of it's own later into the fight. Once dead, regenerates after a brief period. If the skill is used while the head is off, it will be killed. - * - Leaves a pile of bones at your location. Upon using this skill again, you'll swap locations with the bone pile. - * - Spews a cloud of smoke from it's maw, wherever said maw is. - * A unique fight incorporating the head mechanic of legion into a whole new beast. Combatants will need to make sure the tag-team of head and body don't lure them into a deadly trap. - */ + * # Legionnaire + * + * A towering skeleton, embodying the power of Legion. + * As it's health gets lower, the head does more damage. + * It's attacks are as follows: + * - Charges at the target after a telegraph, throwing them across the arena should it connect. + * - Legionnaire's head detaches, attacking as it's own entity. Has abilities of it's own later into the fight. Once dead, regenerates after a brief period. If the skill is used while the head is off, it will be killed. + * - Leaves a pile of bones at your location. Upon using this skill again, you'll swap locations with the bone pile. + * - Spews a cloud of smoke from it's maw, wherever said maw is. + * A unique fight incorporating the head mechanic of legion into a whole new beast. Combatants will need to make sure the tag-team of head and body don't lure them into a deadly trap. + */ /mob/living/simple_animal/hostile/asteroid/elite/legionnaire name = "legionnaire" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index 81a757a4f96..eb418636ad0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -4,17 +4,17 @@ #define AOE_SQUARES 4 /** - * # Pandora - * - * A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones. - * As it's health gets lower, the time between it's attacks decrease. - * It's attacks are as follows: - * - Fires hierophant blasts in a straight line. Can only fire in a straight line in 8 directions, being the diagonals and cardinals. - * - Creates a box of hierophant blasts around the target. If they try to run away to avoid it, they'll very likely get hit. - * - Teleports the pandora from one location to another, almost identical to Hierophant. - * - Spawns a 5x5 AOE at the location of choice, spreading out from the center. - * Pandora's fight mirrors Hierophant's closely, but has stark differences in attack effects. Instead of long-winded dodge times and long cooldowns, Pandora constantly attacks the opponent, but leaves itself open for attack. - */ + * # Pandora + * + * A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones. + * As it's health gets lower, the time between it's attacks decrease. + * It's attacks are as follows: + * - Fires hierophant blasts in a straight line. Can only fire in a straight line in 8 directions, being the diagonals and cardinals. + * - Creates a box of hierophant blasts around the target. If they try to run away to avoid it, they'll very likely get hit. + * - Teleports the pandora from one location to another, almost identical to Hierophant. + * - Spawns a 5x5 AOE at the location of choice, spreading out from the center. + * Pandora's fight mirrors Hierophant's closely, but has stark differences in attack effects. Instead of long-winded dodge times and long cooldowns, Pandora constantly attacks the opponent, but leaves itself open for attack. + */ /mob/living/simple_animal/hostile/asteroid/elite/pandora name = "pandora" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm index 09afdc09da7..0f876ed5c49 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm @@ -1,7 +1,7 @@ /** - * Lobstrosities, the poster boy of charging AI mobs. Drops crab meat and bones. - * Outside of charging, it's intended behavior is that it is generally slow moving, but makes up for that with a knockdown attack to score additional hits. - */ + * Lobstrosities, the poster boy of charging AI mobs. Drops crab meat and bones. + * Outside of charging, it's intended behavior is that it is generally slow moving, but makes up for that with a knockdown attack to score additional hits. + */ /mob/living/simple_animal/hostile/asteroid/lobstrosity name = "arctic lobstrosity" desc = "A marvel of evolution gone wrong, the frosty ice produces underground lakes where these ill tempered seafood gather. Beware its charge." diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm index d78771a61e1..f79be00783f 100644 --- a/code/modules/mob/living/simple_animal/hostile/regalrat.dm +++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm @@ -112,8 +112,8 @@ /** - *This action creates trash, money, dirt, and cheese. - */ + *This action creates trash, money, dirt, and cheese. + */ /datum/action/cooldown/coffer name = "Fill Coffers" desc = "Your newly granted regality and poise let you scavenge for lost junk, but more importantly, cheese." @@ -155,8 +155,8 @@ StartCooldown() /** - *This action checks all nearby mice, and converts them into hostile rats. If no mice are nearby, creates a new one. - */ + *This action checks all nearby mice, and converts them into hostile rats. If no mice are nearby, creates a new one. + */ /datum/action/cooldown/riot name = "Raise Army" diff --git a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm index 343e0319787..9091a0f734d 100644 --- a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm @@ -8,23 +8,23 @@ #define DARKNESS_THRESHOLD 0.5 /** - * # Space Dragon - * - * A space-faring leviathan-esque monster which breathes fire and summons carp. Spawned during its respective midround antagonist event. - * - * A space-faring monstrosity who has the ability to breathe dangerous fire breath and uses its powerful wings to knock foes away. - * Normally spawned as an antagonist during the Space Dragon event, Space Dragon's main goal is to open three rifts from which to pull a great tide of carp onto the station. - * Space Dragon can summon only one rift at a time, and can do so anywhere a blob is allowed to spawn. In order to trigger his victory condition, Space Dragon must summon and defend three rifts while they charge. - * Space Dragon, when spawned, has five minutes to summon the first rift. Failing to do so will cause Space Dragon to return from whence he came. - * When the rift spawns, ghosts can interact with it to spawn in as space carp to help complete the mission. One carp is granted when the rift is first summoned, with an extra one every 40 seconds. - * Once the victory condition is met, the shuttle is called and all current rifts are allowed to spawn infinite sentient space carp. - * If a charging rift is destroyed, Space Dragon will be incredibly slowed, and the endlag on his gust attack is greatly increased on each use. - * Space Dragon has the following abilities to assist him with his objective: - * - Can shoot fire in straight line, dealing 30 burn damage and setting those suseptible on fire. - * - Can use his wings to temporarily stun and knock back any nearby mobs. This attack has no cooldown, but instead has endlag after the attack where Space Dragon cannot act. This endlag's time decreases over time, but is added to every time he uses the move. - * - Can swallow mob corpses to heal for half their max health. Any corpses swallowed are stored within him, and will be regurgitated on death. - * - Can tear through any type of wall. This takes 4 seconds for most walls, and 12 seconds for reinforced walls. - */ + * # Space Dragon + * + * A space-faring leviathan-esque monster which breathes fire and summons carp. Spawned during its respective midround antagonist event. + * + * A space-faring monstrosity who has the ability to breathe dangerous fire breath and uses its powerful wings to knock foes away. + * Normally spawned as an antagonist during the Space Dragon event, Space Dragon's main goal is to open three rifts from which to pull a great tide of carp onto the station. + * Space Dragon can summon only one rift at a time, and can do so anywhere a blob is allowed to spawn. In order to trigger his victory condition, Space Dragon must summon and defend three rifts while they charge. + * Space Dragon, when spawned, has five minutes to summon the first rift. Failing to do so will cause Space Dragon to return from whence he came. + * When the rift spawns, ghosts can interact with it to spawn in as space carp to help complete the mission. One carp is granted when the rift is first summoned, with an extra one every 40 seconds. + * Once the victory condition is met, the shuttle is called and all current rifts are allowed to spawn infinite sentient space carp. + * If a charging rift is destroyed, Space Dragon will be incredibly slowed, and the endlag on his gust attack is greatly increased on each use. + * Space Dragon has the following abilities to assist him with his objective: + * - Can shoot fire in straight line, dealing 30 burn damage and setting those suseptible on fire. + * - Can use his wings to temporarily stun and knock back any nearby mobs. This attack has no cooldown, but instead has endlag after the attack where Space Dragon cannot act. This endlag's time decreases over time, but is added to every time he uses the move. + * - Can swallow mob corpses to heal for half their max health. Any corpses swallowed are stored within him, and will be regurgitated on death. + * - Can tear through any type of wall. This takes 4 seconds for most walls, and 12 seconds for reinforced walls. + */ /mob/living/simple_animal/hostile/space_dragon name = "Space Dragon" desc = "A vile, leviathan-esque creature that flies in the most unnatural way. Looks slightly similar to a space carp." @@ -180,11 +180,11 @@ . = ..() /** - * Allows space dragon to choose its own name. - * - * Prompts the space dragon to choose a name, which it will then apply to itself. - * If the name is invalid, will re-prompt the dragon until a proper name is chosen. - */ + * Allows space dragon to choose its own name. + * + * Prompts the space dragon to choose a name, which it will then apply to itself. + * If the name is invalid, will re-prompt the dragon until a proper name is chosen. + */ /mob/living/simple_animal/hostile/space_dragon/proc/dragon_name() var/chosen_name = sanitize_name(reject_bad_text(stripped_input(src, "What would you like your name to be?", "Choose Your Name", real_name, MAX_NAME_LEN))) if(!chosen_name) @@ -195,11 +195,11 @@ fully_replace_character_name(null, chosen_name) /** - * Allows space dragon to choose a color for itself. - * - * Prompts the space dragon to choose a color, from which it will then apply to itself. - * If an invalid color is given, will re-prompt the dragon until a proper color is chosen. - */ + * Allows space dragon to choose a color for itself. + * + * Prompts the space dragon to choose a color, from which it will then apply to itself. + * If an invalid color is given, will re-prompt the dragon until a proper color is chosen. + */ /mob/living/simple_animal/hostile/space_dragon/proc/color_selection() chosen_color = input(src,"What would you like your color to be?","Choose Your Color", COLOR_WHITE) as color|null if(!chosen_color) //redo proc until we get a color @@ -217,10 +217,10 @@ add_dragon_overlay() /** - * Adds the proper overlay to the space dragon. - * - * Clears the current overlay on space dragon and adds a proper one for whatever animation he's in. - */ + * Adds the proper overlay to the space dragon. + * + * Clears the current overlay on space dragon and adds a proper one for whatever animation he's in. + */ /mob/living/simple_animal/hostile/space_dragon/proc/add_dragon_overlay() cut_overlays() if(stat == DEAD) @@ -239,15 +239,15 @@ add_overlay(overlay) /** - * Determines a line of turfs from sources's position to the target with length range. - * - * Determines a line of turfs from the source's position to the target with length range. - * The line will extend on past the target if the range is large enough, and not reach the target if range is small enough. - * Arguments: - * * offset - whether or not to aim slightly to the left or right of the target - * * range - how many turfs should we go out for - * * atom/at - The target - */ + * Determines a line of turfs from sources's position to the target with length range. + * + * Determines a line of turfs from the source's position to the target with length range. + * The line will extend on past the target if the range is large enough, and not reach the target if range is small enough. + * Arguments: + * * offset - whether or not to aim slightly to the left or right of the target + * * range - how many turfs should we go out for + * * atom/at - The target + */ /mob/living/simple_animal/hostile/space_dragon/proc/line_target(offset, range, atom/at = target) if(!at) return @@ -261,14 +261,14 @@ return (getline(src, T) - get_turf(src)) /** - * Spawns fire at each position in a line from the source to the target. - * - * Spawns fire at each position in a line from the source to the target. - * Stops if it comes into contact with a solid wall, a window, or a door. - * Delays the spawning of each fire by 1.5 deciseconds. - * Arguments: - * * atom/at - The target - */ + * Spawns fire at each position in a line from the source to the target. + * + * Spawns fire at each position in a line from the source to the target. + * Stops if it comes into contact with a solid wall, a window, or a door. + * Delays the spawning of each fire by 1.5 deciseconds. + * Arguments: + * * atom/at - The target + */ /mob/living/simple_animal/hostile/space_dragon/proc/fire_stream(atom/at = target) playsound(get_turf(src),'sound/magic/fireball.ogg', 200, TRUE) var/range = 20 @@ -287,14 +287,14 @@ addtimer(CALLBACK(src, .proc/dragon_fire_line, T), delayFire) /** - * What occurs on each tile to actually create the fire. - * - * Creates a fire on the given turf. - * It creates a hotspot on the given turf, damages any living mob with 30 burn damage, and damages mechs by 50. - * It can only hit any given target once. - * Arguments: - * * turf/T - The turf to trigger the effects on. - */ + * What occurs on each tile to actually create the fire. + * + * Creates a fire on the given turf. + * It creates a hotspot on the given turf, damages any living mob with 30 burn damage, and damages mechs by 50. + * It can only hit any given target once. + * Arguments: + * * turf/T - The turf to trigger the effects on. + */ /mob/living/simple_animal/hostile/space_dragon/proc/dragon_fire_line(turf/T) var/list/hit_list = list() hit_list += src @@ -314,13 +314,13 @@ M.take_damage(50, BRUTE, MELEE, 1) /** - * Handles consuming and storing consumed things inside Space Dragon - * - * Plays a sound and then stores the consumed thing inside Space Dragon. - * Used in AttackingTarget(), paired with a heal should it succeed. - * Arguments: - * * atom/movable/A - The thing being consumed - */ + * Handles consuming and storing consumed things inside Space Dragon + * + * Plays a sound and then stores the consumed thing inside Space Dragon. + * Used in AttackingTarget(), paired with a heal should it succeed. + * Arguments: + * * atom/movable/A - The thing being consumed + */ /mob/living/simple_animal/hostile/space_dragon/proc/eat(atom/movable/A) if(A && A.loc != src) playsound(src, 'sound/magic/demon_attack1.ogg', 100, TRUE) @@ -330,11 +330,11 @@ return FALSE /** - * Disperses the contents of the mob on the surrounding tiles. - * - * Randomly places the contents of the mob onto surrounding tiles. - * Has a 10% chance to place on the same tile as the mob. - */ + * Disperses the contents of the mob on the surrounding tiles. + * + * Randomly places the contents of the mob onto surrounding tiles. + * Has a 10% chance to place on the same tile as the mob. + */ /mob/living/simple_animal/hostile/space_dragon/proc/empty_contents() for(var/atom/movable/AM in src) AM.forceMove(loc) @@ -342,12 +342,12 @@ step(AM, pick(GLOB.alldirs)) /** - * Resets Space Dragon's status after using wing gust. - * - * Resets Space Dragon's status after using wing gust. - * If it isn't dead by the time it calls this method, reset the sprite back to the normal living sprite. - * Also sets the using_special variable to FALSE, allowing Space Dragon to move and attack freely again. - */ + * Resets Space Dragon's status after using wing gust. + * + * Resets Space Dragon's status after using wing gust. + * If it isn't dead by the time it calls this method, reset the sprite back to the normal living sprite. + * Also sets the using_special variable to FALSE, allowing Space Dragon to move and attack freely again. + */ /mob/living/simple_animal/hostile/space_dragon/proc/reset_status() if(stat != DEAD) icon_state = "spacedragon" @@ -355,12 +355,12 @@ add_dragon_overlay() /** - * Handles Space Dragon's temporary empowerment after boosting a rift. - * - * Empowers and depowers Space Dragon after a successful rift charge. - * Empowered, Space Dragon regains all his health and becomes temporarily faster for 30 seconds, along with being tinted red. - * Depowered simply resets him back to his default state. - */ + * Handles Space Dragon's temporary empowerment after boosting a rift. + * + * Empowers and depowers Space Dragon after a successful rift charge. + * Empowered, Space Dragon regains all his health and becomes temporarily faster for 30 seconds, along with being tinted red. + * Depowered simply resets him back to his default state. + */ /mob/living/simple_animal/hostile/space_dragon/proc/rift_empower(is_empowered) if(is_empowered) fully_heal() @@ -372,12 +372,12 @@ set_varspeed(0) /** - * Destroys all of Space Dragon's current rifts. - * - * QDeletes all the current rifts after removing their references to other objects. - * Currently, the only reference they have is to the Dragon which created them, so we clear that before deleting them. - * Currently used when Space Dragon dies. - */ + * Destroys all of Space Dragon's current rifts. + * + * QDeletes all the current rifts after removing their references to other objects. + * Currently, the only reference they have is to the Dragon which created them, so we clear that before deleting them. + * Currently used when Space Dragon dies. + */ /mob/living/simple_animal/hostile/space_dragon/proc/destroy_rifts() for(var/obj/structure/carp_rift/rift in rift_list) rift.dragon = null @@ -387,15 +387,15 @@ rifts_charged = 0 /** - * Handles wing gust from the windup all the way to the endlag at the end. - * - * Handles the wing gust attack from start to finish, based on the timer. - * When intially triggered, starts at 0. Until the timer reaches 10, increase Space Dragon's y position by 2 and call back to the function in 1.5 deciseconds. - * When the timer is at 10, trigger the attack. Change Space Dragon's sprite. reset his y position, and push all living creatures back in a 3 tile radius and stun them for 5 seconds. - * Stay in the ending state for how much our tiredness dictates and add to our tiredness. - * Arguments: - * * timer - The timer used for the windup. - */ + * Handles wing gust from the windup all the way to the endlag at the end. + * + * Handles the wing gust attack from start to finish, based on the timer. + * When intially triggered, starts at 0. Until the timer reaches 10, increase Space Dragon's y position by 2 and call back to the function in 1.5 deciseconds. + * When the timer is at 10, trigger the attack. Change Space Dragon's sprite. reset his y position, and push all living creatures back in a 3 tile radius and stun them for 5 seconds. + * Stay in the ending state for how much our tiredness dictates and add to our tiredness. + * Arguments: + * * timer - The timer used for the windup. + */ /mob/living/simple_animal/hostile/space_dragon/proc/useGust(timer) if(timer != 10) pixel_y = pixel_y + 2; @@ -425,13 +425,13 @@ tiredness = tiredness + (30 * tiredness_mult) /** - * Sets up Space Dragon's victory for completing the objectives. - * - * Triggers when Space Dragon completes his objective. - * Calls the shuttle with a coefficient of 3, making it impossible to recall. - * Sets all of his rifts to allow for infinite sentient carp spawns - * Also plays appropiate sounds and CENTCOM messages. - */ + * Sets up Space Dragon's victory for completing the objectives. + * + * Triggers when Space Dragon completes his objective. + * Calls the shuttle with a coefficient of 3, making it impossible to recall. + * Sets all of his rifts to allow for infinite sentient carp spawns + * Also plays appropiate sounds and CENTCOM messages. + */ /mob/living/simple_animal/hostile/space_dragon/proc/victory() objective_complete = TRUE var/datum/antagonist/space_dragon/S = mind.has_antag_datum(/datum/antagonist/space_dragon) @@ -497,14 +497,14 @@ qdel(src) /** - * # Carp Rift - * - * The portals Space Dragon summons to bring carp onto the station. - * - * The portals Space Dragon summons to bring carp onto the station. His main objective is to summon 3 of them and protect them from being destroyed. - * The portals can summon sentient space carp in limited amounts. The portal also changes color based on whether or not a carp spawn is available. - * Once it is fully charged, it becomes indestructible, and intermitently spawns non-sentient carp. It is still destroyed if Space Dragon dies. - */ + * # Carp Rift + * + * The portals Space Dragon summons to bring carp onto the station. + * + * The portals Space Dragon summons to bring carp onto the station. His main objective is to summon 3 of them and protect them from being destroyed. + * The portals can summon sentient space carp in limited amounts. The portal also changes color based on whether or not a carp spawn is available. + * Once it is fully charged, it becomes indestructible, and intermitently spawns non-sentient carp. It is still destroyed if Space Dragon dies. + */ /obj/structure/carp_rift name = "carp rift" desc = "A rift akin to the ones space carp use to travel long distances." @@ -584,13 +584,13 @@ summon_carp(user) /** - * Does a series of checks based on the portal's status. - * - * Performs a number of checks based on the current charge of the portal, and triggers various effects accordingly. - * If the current charge is a multiple of 40, add an extra carp spawn. - * If we're halfway charged, announce to the crew our location in a CENTCOM announcement. - * If we're fully charged, tell the crew we are, change our color to yellow, become invulnerable, and give Space Dragon the ability to make another rift, if he hasn't summoned 3 total. - */ + * Does a series of checks based on the portal's status. + * + * Performs a number of checks based on the current charge of the portal, and triggers various effects accordingly. + * If the current charge is a multiple of 40, add an extra carp spawn. + * If we're halfway charged, announce to the crew our location in a CENTCOM announcement. + * If we're fully charged, tell the crew we are, change our color to yellow, become invulnerable, and give Space Dragon the ability to make another rift, if he hasn't summoned 3 total. + */ /obj/structure/carp_rift/proc/update_check() // If the rift is fully charged, there's nothing to do here anymore. if(charge_state == CHARGE_COMPLETED) @@ -633,14 +633,14 @@ priority_announce("A rift is causing an unnaturally large energy flux in [initial(A.name)]. Stop it at all costs!", "Central Command Spatial Corps", 'sound/ai/spanomalies.ogg') /** - * Used to create carp controlled by ghosts when the option is available. - * - * Creates a carp for the ghost to control if we have a carp spawn available. - * Gives them prompt to control a carp, and if our circumstances still allow if when they hit yes, spawn them in as a carp. - * Also add them to the list of carps in Space Dragon's antgonist datum, so they'll be displayed as having assisted him on round end. - * Arguments: - * * mob/user - The ghost which will take control of the carp. - */ + * Used to create carp controlled by ghosts when the option is available. + * + * Creates a carp for the ghost to control if we have a carp spawn available. + * Gives them prompt to control a carp, and if our circumstances still allow if when they hit yes, spawn them in as a carp. + * Also add them to the list of carps in Space Dragon's antgonist datum, so they'll be displayed as having assisted him on round end. + * Arguments: + * * mob/user - The ghost which will take control of the carp. + */ /obj/structure/carp_rift/proc/summon_carp(mob/user) if(carp_stored <= 0)//Not enough carp points return FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index 419eb585e8f..4b19ba89cc3 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -1,15 +1,15 @@ #define FINAL_BUD_GROWTH_ICON 3 /** - * Kudzu Flower Bud - * - * A flower created by flowering kudzu which spawns a venus human trap after a certain amount of time has passed. - * - * A flower created by kudzu with the flowering mutation. Spawns a venus human trap after 2 minutes under normal circumstances. - * Also spawns 4 vines going out in diagonal directions from the bud. Any living creature not aligned with plants is damaged by these vines. - * Once it grows a venus human trap, the bud itself will destroy itself. - * - */ + * Kudzu Flower Bud + * + * A flower created by flowering kudzu which spawns a venus human trap after a certain amount of time has passed. + * + * A flower created by kudzu with the flowering mutation. Spawns a venus human trap after 2 minutes under normal circumstances. + * Also spawns 4 vines going out in diagonal directions from the bud. Any living creature not aligned with plants is damaged by these vines. + * Once it grows a venus human trap, the bud itself will destroy itself. + * + */ /obj/structure/alien/resin/flower_bud //inheriting basic attack/damage stuff from alien structures name = "flower bud" desc = "A large pulsating plant..." @@ -46,10 +46,10 @@ countdown.start() /** - * Spawns a venus human trap, then qdels itself. - * - * Displays a message, spawns a human venus trap, then qdels itself. - */ + * Spawns a venus human trap, then qdels itself. + * + * Displays a message, spawns a human venus trap, then qdels itself. + */ /obj/structure/alien/resin/flower_bud/proc/bear_fruit() visible_message("The plant has borne fruit!") new /mob/living/simple_animal/hostile/venus_human_trap(get_turf(src)) @@ -76,17 +76,17 @@ to_chat(L, "You cut yourself on the thorny vines.") /** - * Venus Human Trap - * - * The result of a kudzu flower bud, these enemies use vines to drag prey close to them for attack. - * - * A carnivorious plant which uses vines to catch and ensnare prey. Spawns from kudzu flower buds. - * Each one has a maximum of four vines, which can be attached to a variety of things. Carbons are stunned when a vine is attached to them, and movable entities are pulled closer over time. - * Attempting to attach a vine to something with a vine already attached to it will pull all movable targets closer on command. - * Once the prey is in melee range, melee attacks from the venus human trap heals itself for 10% of its max health, assuming the target is alive. - * Akin to certain spiders, venus human traps can also be possessed and controlled by ghosts. - * - */ + * Venus Human Trap + * + * The result of a kudzu flower bud, these enemies use vines to drag prey close to them for attack. + * + * A carnivorious plant which uses vines to catch and ensnare prey. Spawns from kudzu flower buds. + * Each one has a maximum of four vines, which can be attached to a variety of things. Carbons are stunned when a vine is attached to them, and movable entities are pulled closer over time. + * Attempting to attach a vine to something with a vine already attached to it will pull all movable targets closer on command. + * Once the prey is in melee range, melee attacks from the venus human trap heals itself for 10% of its max health, assuming the target is alive. + * Akin to certain spiders, venus human traps can also be possessed and controlled by ghosts. + * + */ /mob/living/simple_animal/hostile/venus_human_trap name = "venus human trap" desc = "Now you know how the fly feels." @@ -172,13 +172,13 @@ humanize_plant(user) /** - * Sets a ghost to control the plant if the plant is eligible - * - * Asks the interacting ghost if they would like to control the plant. - * If they answer yes, and another ghost hasn't taken control, sets the ghost to control the plant. - * Arguments: - * * mob/user - The ghost to possibly control the plant - */ + * Sets a ghost to control the plant if the plant is eligible + * + * Asks the interacting ghost if they would like to control the plant. + * If they answer yes, and another ghost hasn't taken control, sets the ghost to control the plant. + * Arguments: + * * mob/user - The ghost to possibly control the plant + */ /mob/living/simple_animal/hostile/venus_human_trap/proc/humanize_plant(mob/user) if(key || !playable_plant || stat) return @@ -192,12 +192,12 @@ log_game("[key_name(src)] took control of [name].") /** - * Manages how the vines should affect the things they're attached to. - * - * Pulls all movable targets of the vines closer to the plant - * If the target is on the same tile as the plant, destroy the vine - * Removes any QDELETED vines from the vines list. - */ + * Manages how the vines should affect the things they're attached to. + * + * Pulls all movable targets of the vines closer to the plant + * If the target is on the same tile as the plant, destroy the vine + * Removes any QDELETED vines from the vines list. + */ /mob/living/simple_animal/hostile/venus_human_trap/proc/pull_vines() for(var/datum/beam/B in vines) if(istype(B.target, /atom/movable)) @@ -208,12 +208,12 @@ B.End() /** - * Removes a vine from the list. - * - * Removes the vine from our list. - * Called specifically when the vine is about to be destroyed, so we don't have any null references. - * Arguments: - * * datum/beam/vine - The vine to be removed from the list. - */ + * Removes a vine from the list. + * + * Removes the vine from our list. + * Called specifically when the vine is about to be destroyed, so we don't have any null references. + * Arguments: + * * datum/beam/vine - The vine to be removed from the list. + */ /mob/living/simple_animal/hostile/venus_human_trap/proc/remove_vine(datum/beam/vine, force) vines -= vine diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 49cb02e5b48..b1a822d3c17 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -254,11 +254,11 @@ stuttering = 0 /** - * Updates the simple mob's stamina loss. - * - * Updates the speed and staminaloss of a given simplemob. - * Reduces the stamina loss by stamina_recovery - */ + * Updates the simple mob's stamina loss. + * + * Updates the speed and staminaloss of a given simplemob. + * Reduces the stamina loss by stamina_recovery + */ /mob/living/simple_animal/update_stamina() set_varspeed(initial(speed) + (staminaloss * 0.06)) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 295035fdc43..3bb706730f8 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -1,27 +1,27 @@ /** - * Run when a client is put in this mob or reconnets to byond and their client was on this mob - * - * Things it does: - * * Adds player to player_list - * * sets lastKnownIP - * * sets computer_id - * * logs the login - * * tells the world to update it's status (for player count) - * * create mob huds for the mob if needed - * * reset next_move to 1 - * * parent call - * * if the client exists set the perspective to the mob loc - * * call on_log on the loc (sigh) - * * reload the huds for the mob - * * reload all full screen huds attached to this mob - * * load any global alternate apperances - * * sync the mind datum via sync_mind() - * * call any client login callbacks that exist - * * grant any actions the mob has to the client - * * calls [auto_deadmin_on_login](mob.html#proc/auto_deadmin_on_login) - * * send signal COMSIG_MOB_CLIENT_LOGIN - * client can be deleted mid-execution of this proc, chiefly on parent calls, with lag - */ + * Run when a client is put in this mob or reconnets to byond and their client was on this mob + * + * Things it does: + * * Adds player to player_list + * * sets lastKnownIP + * * sets computer_id + * * logs the login + * * tells the world to update it's status (for player count) + * * create mob huds for the mob if needed + * * reset next_move to 1 + * * parent call + * * if the client exists set the perspective to the mob loc + * * call on_log on the loc (sigh) + * * reload the huds for the mob + * * reload all full screen huds attached to this mob + * * load any global alternate apperances + * * sync the mind datum via sync_mind() + * * call any client login callbacks that exist + * * grant any actions the mob has to the client + * * calls [auto_deadmin_on_login](mob.html#proc/auto_deadmin_on_login) + * * send signal COMSIG_MOB_CLIENT_LOGIN + * client can be deleted mid-execution of this proc, chiefly on parent calls, with lag + */ /mob/Login() if(!client) return FALSE @@ -97,16 +97,16 @@ /** - * Checks if the attached client is an admin and may deadmin them - * - * Configs: - * * flag/auto_deadmin_players - * * client.prefs?.toggles & DEADMIN_ALWAYS - * * User is antag and flag/auto_deadmin_antagonists or client.prefs?.toggles & DEADMIN_ANTAGONIST - * * or if their job demands a deadminning SSjob.handle_auto_deadmin_roles() - * - * Called from [login](mob.html#proc/Login) - */ + * Checks if the attached client is an admin and may deadmin them + * + * Configs: + * * flag/auto_deadmin_players + * * client.prefs?.toggles & DEADMIN_ALWAYS + * * User is antag and flag/auto_deadmin_antagonists or client.prefs?.toggles & DEADMIN_ANTAGONIST + * * or if their job demands a deadminning SSjob.handle_auto_deadmin_roles() + * + * Called from [login](mob.html#proc/Login) + */ /mob/proc/auto_deadmin_on_login() //return true if they're not an admin at the end. if(!client?.holder) return TRUE diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7697e98f0bc..0ec64471d69 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1,27 +1,27 @@ //THIS FILE WAS EDITED BY SKYRAT EDIT /** - * Delete a mob - * - * Removes mob from the following global lists - * * GLOB.mob_list - * * GLOB.dead_mob_list - * * GLOB.alive_mob_list - * * GLOB.all_clockwork_mobs - * * GLOB.mob_directory - * - * Unsets the focus var - * - * Clears alerts for this mob - * - * Resets all the observers perspectives to the tile this mob is on - * - * qdels any client colours in place on this mob - * - * Ghostizes the client attached to this mob - * - * Parent call - */ + * Delete a mob + * + * Removes mob from the following global lists + * * GLOB.mob_list + * * GLOB.dead_mob_list + * * GLOB.alive_mob_list + * * GLOB.all_clockwork_mobs + * * GLOB.mob_directory + * + * Unsets the focus var + * + * Clears alerts for this mob + * + * Resets all the observers perspectives to the tile this mob is on + * + * qdels any client colours in place on this mob + * + * Ghostizes the client attached to this mob + * + * Parent call + */ /mob/Destroy()//This makes sure that mobs with clients/keys are not just deleted from the game. remove_from_mob_list() remove_from_dead_mob_list() @@ -43,23 +43,23 @@ /** - * Intialize a mob - * - * Sends global signal COMSIG_GLOB_MOB_CREATED - * - * Adds to global lists - * * GLOB.mob_list - * * GLOB.mob_directory (by tag) - * * GLOB.dead_mob_list - if mob is dead - * * GLOB.alive_mob_list - if the mob is alive - * - * Other stuff: - * * Sets the mob focus to itself - * * Generates huds - * * If there are any global alternate apperances apply them to this mob - * * set a random nutrition level - * * Intialize the movespeed of the mob - */ + * Intialize a mob + * + * Sends global signal COMSIG_GLOB_MOB_CREATED + * + * Adds to global lists + * * GLOB.mob_list + * * GLOB.mob_directory (by tag) + * * GLOB.dead_mob_list - if mob is dead + * * GLOB.alive_mob_list - if the mob is alive + * + * Other stuff: + * * Sets the mob focus to itself + * * Generates huds + * * If there are any global alternate apperances apply them to this mob + * * set a random nutrition level + * * Intialize the movespeed of the mob + */ /mob/Initialize() SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MOB_CREATED, src) add_to_mob_list() @@ -81,19 +81,19 @@ update_movespeed(TRUE) /** - * Generate the tag for this mob - * - * This is simply "mob_"+ a global incrementing counter that goes up for every mob - */ + * Generate the tag for this mob + * + * This is simply "mob_"+ a global incrementing counter that goes up for every mob + */ /mob/GenerateTag() tag = "mob_[next_mob_id++]" /** - * Prepare the huds for this atom - * - * Goes through hud_possible list and adds the images to the hud_list variable (if not already - * cached) - */ + * Prepare the huds for this atom + * + * Goes through hud_possible list and adds the images to the hud_list variable (if not already + * cached) + */ /atom/proc/prepare_huds() hud_list = list() for(var/hud in hud_possible) @@ -107,8 +107,8 @@ hud_list[hud] = I /** - * Some kind of debug verb that gives atmosphere environment details - */ + * Some kind of debug verb that gives atmosphere environment details + */ /mob/proc/Cell() set category = "Admin" set hidden = TRUE @@ -128,14 +128,14 @@ to_chat(usr, t) /** - * Return the desc of this mob for a photo - */ + * Return the desc of this mob for a photo + */ /mob/proc/get_photo_description(obj/item/camera/camera) return "a ... thing?" /** - * Show a message to this mob (visual or audible) - */ + * Show a message to this mob (visual or audible) + */ /mob/proc/show_message(msg, type, alt_msg, alt_type, avoid_highlighting = FALSE)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2) if(!client) return @@ -166,22 +166,22 @@ to_chat(src, msg, avoid_highlighting = avoid_highlighting) /** - * Generate a visible message from this atom - * - * Show a message to all player mobs who sees this atom - * - * Show a message to the src mob (if the src is a mob) - * - * Use for atoms performing visible actions - * - * 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!" - * * blind_message (optional) is what blind people will hear e.g. "You hear something!" - * * vision_distance (optional) define how many tiles away the message can be seen. - * * ignored_mob (optional) doesn't show any message to a given mob if TRUE. - */ + * Generate a visible message from this atom + * + * Show a message to all player mobs who sees this atom + * + * Show a message to the src mob (if the src is a mob) + * + * Use for atoms performing visible actions + * + * 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!" + * * blind_message (optional) is what blind people will hear e.g. "You hear something!" + * * vision_distance (optional) define how many tiles away the message can be seen. + * * ignored_mob (optional) doesn't show any message to a given mob if TRUE. + */ /atom/proc/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs, visible_message_flags = NONE) var/turf/T = get_turf(src) if(!T) @@ -227,15 +227,15 @@ show_message(self_message, MSG_VISUAL, blind_message, MSG_AUDIBLE) /** - * Show a message to all mobs in earshot of this atom - * - * Use for objects performing audible actions - * - * vars: - * * message is the message output to anyone who can hear. - * * deaf_message (optional) is what deaf people will see. - * * hearing_distance (optional) is the range, how many tiles away the message can be heard. - */ + * Show a message to all mobs in earshot of this atom + * + * Use for objects performing audible actions + * + * vars: + * * message is the message output to anyone who can hear. + * * deaf_message (optional) is what deaf people will see. + * * hearing_distance (optional) is the range, how many tiles away the message can be heard. + */ /atom/proc/audible_message(message, deaf_message, hearing_distance = DEFAULT_MESSAGE_RANGE, self_message, audible_message_flags = NONE) var/list/hearers = get_hearers_in_view(hearing_distance, src) if(self_message) @@ -249,16 +249,16 @@ M.show_message(message, MSG_AUDIBLE, deaf_message, MSG_VISUAL) /** - * Show a message to all mobs in earshot of this one - * - * This would be for audible actions by the src mob - * - * vars: - * * message is the message output to anyone who can hear. - * * self_message (optional) is what the src mob hears. - * * deaf_message (optional) is what deaf people will see. - * * hearing_distance (optional) is the range, how many tiles away the message can be heard. - */ + * Show a message to all mobs in earshot of this one + * + * This would be for audible actions by the src mob + * + * vars: + * * message is the message output to anyone who can hear. + * * self_message (optional) is what the src mob hears. + * * deaf_message (optional) is what deaf people will see. + * * hearing_distance (optional) is the range, how many tiles away the message can be heard. + */ /mob/audible_message(message, deaf_message, hearing_distance = DEFAULT_MESSAGE_RANGE, self_message, audible_message_flags = NONE) . = ..() if(self_message) @@ -291,11 +291,11 @@ return /** - * This proc is called whenever someone clicks an inventory ui slot. - * - * Mostly tries to put the item into the slot if possible, or call attack hand - * on the item in the slot if the users active hand is empty - */ + * This proc is called whenever someone clicks an inventory ui slot. + * + * Mostly tries to put the item into the slot if possible, or call attack hand + * on the item in the slot if the users active hand is empty + */ /mob/proc/attack_ui(slot) var/obj/item/W = get_active_held_item() @@ -312,18 +312,18 @@ return FALSE /** - * Try to equip an item to a slot on the mob - * - * This is a SAFE proc. Use this instead of equip_to_slot()! - * - * set qdel_on_fail to have it delete W if it fails to equip - * - * set disable_warning to disable the 'you are unable to equip that' warning. - * - * unset redraw_mob to prevent the mob icons from being redrawn at the end. - * - * Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it - */ + * Try to equip an item to a slot on the mob + * + * This is a SAFE proc. Use this instead of equip_to_slot()! + * + * set qdel_on_fail to have it delete W if it fails to equip + * + * set disable_warning to disable the 'you are unable to equip that' warning. + * + * unset redraw_mob to prevent the mob icons from being redrawn at the end. + * + * Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it + */ /mob/proc/equip_to_slot_if_possible(obj/item/W, slot, qdel_on_fail = FALSE, disable_warning = FALSE, redraw_mob = TRUE, bypass_equip_delay_self = FALSE, initial = FALSE) if(!istype(W)) return FALSE @@ -337,35 +337,35 @@ return TRUE /** - * Actually equips an item to a slot (UNSAFE) - * - * This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on - * whether you can or can't equip need to be done before! Use mob_can_equip() for that task. - * - *In most cases you will want to use equip_to_slot_if_possible() - */ + * Actually equips an item to a slot (UNSAFE) + * + * This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on + * whether you can or can't equip need to be done before! Use mob_can_equip() for that task. + * + *In most cases you will want to use equip_to_slot_if_possible() + */ /mob/proc/equip_to_slot(obj/item/W, slot) return /** - * Equip an item to the slot or delete - * - * This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to - * equip people when the round starts and when events happen and such. - * - * Also bypasses equip delay checks, since the mob isn't actually putting it on. - * Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it - */ + * Equip an item to the slot or delete + * + * This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to + * equip people when the round starts and when events happen and such. + * + * Also bypasses equip delay checks, since the mob isn't actually putting it on. + * Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it + */ /mob/proc/equip_to_slot_or_del(obj/item/W, slot, initial = FALSE) return equip_to_slot_if_possible(W, slot, TRUE, TRUE, FALSE, TRUE, initial) /** - * Auto equip the passed in item the appropriate slot based on equipment priority - * - * puts the item "W" into an appropriate slot in a human's inventory - * - * returns 0 if it cannot, 1 if successful - */ + * Auto equip the passed in item the appropriate slot based on equipment priority + * + * puts the item "W" into an appropriate slot in a human's inventory + * + * returns 0 if it cannot, 1 if successful + */ /mob/proc/equip_to_appropriate_slot(obj/item/W, qdel_on_fail = FALSE) if(!istype(W)) return FALSE @@ -391,11 +391,11 @@ qdel(W) return FALSE /** - * Reset the attached clients perspective (viewpoint) - * - * reset_perspective() set eye to common default : mob on turf, loc otherwise - * reset_perspective(thing) set the eye to the thing (if it's equal to current default reset to mob perspective) - */ + * Reset the attached clients perspective (viewpoint) + * + * reset_perspective() set eye to common default : mob on turf, loc otherwise + * reset_perspective(thing) set the eye to the thing (if it's equal to current default reset to mob perspective) + */ /mob/proc/reset_perspective(atom/A) if(client) if(A) @@ -433,12 +433,12 @@ /** - * Examine a mob - * - * mob verbs are faster than object verbs. See - * [this byond forum post](https://secure.byond.com/forum/?post=1326139&page=2#comment8198716) - * for why this isn't atom/verb/examine() - */ + * Examine a mob + * + * mob verbs are faster than object verbs. See + * [this byond forum post](https://secure.byond.com/forum/?post=1326139&page=2#comment8198716) + * for why this isn't atom/verb/examine() + */ /mob/verb/examinate(atom/A as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why set name = "Examine" set category = "IC" @@ -531,12 +531,12 @@ LAZYREMOVE(client.recent_examines, A) /** - * handle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last second within 5 tiles, we make eye contact! - * - * Note that if either party has their face obscured, the other won't get the notice about the eye contact - * Also note that examine_more() doesn't proc this or extend the timer, just because it's simpler this way and doesn't lose much. - * The nice part about relying on examining is that we don't bother checking visibility, because we already know they were both visible to each other within the last second, and the one who triggers it is currently seeing them - */ + * handle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last second within 5 tiles, we make eye contact! + * + * Note that if either party has their face obscured, the other won't get the notice about the eye contact + * Also note that examine_more() doesn't proc this or extend the timer, just because it's simpler this way and doesn't lose much. + * The nice part about relying on examining is that we don't bother checking visibility, because we already know they were both visible to each other within the last second, and the one who triggers it is currently seeing them + */ /mob/proc/handle_eye_contact(mob/living/examined_mob) return @@ -557,18 +557,18 @@ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, examined_mob, msg), 3) /** - * Point at an atom - * - * mob verbs are faster than object verbs. See - * [this byond forum post](https://secure.byond.com/forum/?post=1326139&page=2#comment8198716) - * for why this isn't atom/verb/pointed() - * - * note: ghosts can point, this is intended - * - * visible_message will handle invisibility properly - * - * overridden here and in /mob/dead/observer for different point span classes and sanity checks - */ + * Point at an atom + * + * mob verbs are faster than object verbs. See + * [this byond forum post](https://secure.byond.com/forum/?post=1326139&page=2#comment8198716) + * for why this isn't atom/verb/pointed() + * + * note: ghosts can point, this is intended + * + * visible_message will handle invisibility properly + * + * overridden here and in /mob/dead/observer for different point span classes and sanity checks + */ /mob/verb/pointed(atom/A as mob|obj|turf in view()) set name = "Point To" set category = "Object" @@ -591,12 +591,12 @@ return TRUE /** - * Called by using Activate Held Object with an empty hand/limb - * - * Does nothing by default. The intended use is to allow limbs to call their - * own attack_self procs. It is up to the individual mob to override this - * parent and actually use it. - */ + * Called by using Activate Held Object with an empty hand/limb + * + * Does nothing by default. The intended use is to allow limbs to call their + * own attack_self procs. It is up to the individual mob to override this + * parent and actually use it. + */ /mob/proc/limb_attack_self() return @@ -636,10 +636,10 @@ hud_used?.rest_icon?.update_icon() /** - * Verb to activate the object in your held hand - * - * Calls attack self on the item and updates the inventory hud for hands - */ + * Verb to activate the object in your held hand + * + * Calls attack self on the item and updates the inventory hud for hands + */ /mob/verb/mode() set name = "Activate Held Object" set category = "Object" @@ -661,10 +661,10 @@ /** - * Get the notes of this mob - * - * This actually gets the mind datums notes - */ + * Get the notes of this mob + * + * This actually gets the mind datums notes + */ /mob/verb/memory() set name = "Notes" set category = "IC" @@ -675,8 +675,8 @@ to_chat(src, "You don't have a mind datum for some reason, so you can't look at your notes, if you had any.") /** - * Add a note to the mind datum - */ + * Add a note to the mind datum + */ /mob/verb/add_memory(msg as message) set name = "Add Note" set category = "IC" @@ -692,12 +692,12 @@ to_chat(src, "You don't have a mind datum for some reason, so you can't add a note to it.") /** - * Allows you to respawn, abandoning your current mob - * - * This sends you back to the lobby creating a new dead mob - * - * Only works if flag/norespawn is allowed in config - */ + * Allows you to respawn, abandoning your current mob + * + * This sends you back to the lobby creating a new dead mob + * + * Only works if flag/norespawn is allowed in config + */ /mob/verb/abandon_mob() set name = "Respawn" set category = "OOC" @@ -732,8 +732,8 @@ /** - * Sometimes helps if the user is stuck in another perspective or camera - */ + * Sometimes helps if the user is stuck in another perspective or camera + */ /mob/verb/cancel_camera() set name = "Cancel Camera View" set category = "OOC" @@ -753,12 +753,12 @@ set category = null return /** - * Topic call back for any mob - * - * * Unset machines if "mach_close" sent - * * refresh the inventory of machines in range if "refresh" sent - * * handles the strip panel equip and unequip as well if "item" sent - */ + * Topic call back for any mob + * + * * Unset machines if "mach_close" sent + * * refresh the inventory of machines in range if "refresh" sent + * * handles the strip panel equip and unequip as well if "item" sent + */ /mob/Topic(href, href_list) var/mob/user = usr @@ -800,8 +800,8 @@ return /** - * Controls if a mouse drop succeeds (return null if it doesnt) - */ + * Controls if a mouse drop succeeds (return null if it doesnt) + */ /mob/MouseDrop(mob/M) . = ..() if(M != usr) @@ -813,10 +813,10 @@ if(isAI(M)) return /** - * Handle the result of a click drag onto this mob - * - * For mobs this just shows the inventory - */ + * Handle the result of a click drag onto this mob + * + * For mobs this just shows the inventory + */ /mob/MouseDrop_T(atom/dropping, atom/user) . = ..() if(ismob(dropping) && src == user && dropping != user) @@ -841,10 +841,10 @@ . += get_spells_for_statpanel(mob_spell_list) /** - * Convert a list of spells into a displyable list for the statpanel - * - * Shows charge and other important info - */ + * Convert a list of spells into a displyable list for the statpanel + * + * Shows charge and other important info + */ /mob/proc/get_spells_for_statpanel(list/spells) var/list/L = list() for(var/obj/effect/proc_holder/spell/S in spells) @@ -862,15 +862,15 @@ // facing verbs /** - * Returns true if a mob can turn to face things - * - * Conditions: - * * client.last_turn > world.time - * * not dead or unconcious - * * not anchored - * * no transform not set - * * we are not restrained - */ + * Returns true if a mob can turn to face things + * + * Conditions: + * * client.last_turn > world.time + * * not dead or unconcious + * * not anchored + * * no transform not set + * * we are not restrained + */ /mob/proc/canface() if(world.time < client.last_turn) return FALSE @@ -990,12 +990,12 @@ return src /** - * Buckle a living mob to this mob - * - * You can buckle on mobs if you're next to them since most are dense - * - * Turns you to face the other mob too - */ + * Buckle a living mob to this mob + * + * You can buckle on mobs if you're next to them since most are dense + * + * Turns you to face the other mob too + */ /mob/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE) if(M.buckled) return FALSE @@ -1044,10 +1044,10 @@ /mob/proc/canUseStorage() return FALSE /** - * Check if the other mob has any factions the same as us - * - * If exact match is set, then all our factions must match exactly - */ + * Check if the other mob has any factions the same as us + * + * If exact match is set, then all our factions must match exactly + */ /mob/proc/faction_check_mob(mob/target, exact_match) if(exact_match) //if we need an exact match, we need to do some bullfuckery. var/list/faction_src = faction.Copy() @@ -1077,12 +1077,12 @@ /** - * Fully update the name of a mob - * - * This will update a mob's name, real_name, mind.name, GLOB.data_core records, pda, id and traitor text - * - * Calling this proc without an oldname will only update the mob and skip updating the pda, id and records ~Carn - */ + * Fully update the name of a mob + * + * This will update a mob's name, real_name, mind.name, GLOB.data_core records, pda, id and traitor text + * + * Calling this proc without an oldname will only update the mob and skip updating the pda, id and records ~Carn + */ /mob/proc/fully_replace_character_name(oldname,newname) log_message("[src] name changed from [oldname] to [newname]", LOG_OWNERSHIP) if(!newname) @@ -1191,8 +1191,8 @@ return TRUE /** - * Get the mob VV dropdown extras - */ + * Get the mob VV dropdown extras + */ /mob/vv_get_dropdown() . = ..() VV_DROPDOWN_OPTION("", "---------") @@ -1261,8 +1261,8 @@ offer_control(src) /** - * extra var handling for the logging var - */ + * extra var handling for the logging var + */ /mob/vv_get_var(var_name) switch(var_name) if("logging") diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 0069d702f5f..fc26253274e 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -1,11 +1,11 @@ /** - * The mob, usually meant to be a creature of some type - * - * Has a client attached that is a living person (most of the time), although I have to admit - * sometimes it's hard to tell they're sentient - * - * Has a lot of the creature game world logic, such as health etc - */ + * The mob, usually meant to be a creature of some type + * + * Has a client attached that is a living person (most of the time), although I have to admit + * sometimes it's hard to tell they're sentient + * + * Has a lot of the creature game world logic, such as health etc + */ /mob datum_flags = DF_USE_TAG density = TRUE @@ -18,7 +18,7 @@ throwforce = 10 blocks_emissive = EMISSIVE_BLOCK_GENERIC - ///when this be added to vis_contents of something it inherit something.plane, important for visualisation of mob in openspace. + ///when this be added to vis_contents of something it inherit something.plane, important for visualisation of mob in openspace. vis_flags = VIS_INHERIT_PLANE var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index bd6a94cdba0..12fb1279b47 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -29,11 +29,11 @@ return zone /** - * Return the zone or randomly, another valid zone - * - * probability controls the chance it chooses the passed in zone, or another random zone - * defaults to 80 - */ + * Return the zone or randomly, another valid zone + * + * probability controls the chance it chooses the passed in zone, or another random zone + * defaults to 80 + */ /proc/ran_zone(zone, probability = 80) if(prob(probability)) zone = check_zone(zone) @@ -50,13 +50,13 @@ return FALSE /** - * Convert random parts of a passed in message to stars - * - * * phrase - the string to convert - * * probability - probability any character gets changed - * - * This proc is dangerously laggy, avoid it or die - */ + * Convert random parts of a passed in message to stars + * + * * phrase - the string to convert + * * probability - probability any character gets changed + * + * This proc is dangerously laggy, avoid it or die + */ /proc/stars(phrase, probability = 25) if(probability <= 0) return phrase @@ -73,8 +73,8 @@ return sanitize(.) /** - * Makes you speak like you're drunk - */ + * Makes you speak like you're drunk + */ /proc/slur(phrase) phrase = html_decode(phrase) var/leng = length(phrase) @@ -194,10 +194,10 @@ return message /** - * Turn text into complete gibberish! - * - * text is the inputted message, replace_characters will cause original letters to be replaced and chance are the odds that a character gets modified. - */ + * Turn text into complete gibberish! + * + * text is the inputted message, replace_characters will cause original letters to be replaced and chance are the odds that a character gets modified. + */ /proc/Gibberish(text, replace_characters = FALSE, chance = 50) text = html_decode(text) . = "" @@ -250,10 +250,10 @@ /** - * change a mob's act-intent. - * - * Input the intent as a string such as "help" or use "right"/"left - */ + * change a mob's act-intent. + * + * Input the intent as a string such as "help" or use "right"/"left + */ /mob/verb/a_intent_change(input as text) set name = "a-intent" set hidden = TRUE @@ -318,23 +318,23 @@ /** - * Fancy notifications for ghosts - * - * The kitchen sink of notification procs - * - * Arguments: - * * message - * * ghost_sound sound to play - * * enter_link Href link to enter the ghost role being notified for - * * source The source of the notification - * * alert_overlay The alert overlay to show in the alert message - * * action What action to take upon the ghost interacting with the notification, defaults to NOTIFY_JUMP - * * flashwindow Flash the byond client window - * * ignore_key Ignore keys if they're in the GLOB.poll_ignore list - * * header The header of the notifiaction - * * notify_suiciders If it should notify suiciders (who do not qualify for many ghost roles) - * * notify_volume How loud the sound should be to spook the user - */ + * Fancy notifications for ghosts + * + * The kitchen sink of notification procs + * + * Arguments: + * * message + * * ghost_sound sound to play + * * enter_link Href link to enter the ghost role being notified for + * * source The source of the notification + * * alert_overlay The alert overlay to show in the alert message + * * action What action to take upon the ghost interacting with the notification, defaults to NOTIFY_JUMP + * * flashwindow Flash the byond client window + * * ignore_key Ignore keys if they're in the GLOB.poll_ignore list + * * header The header of the notifiaction + * * notify_suiciders If it should notify suiciders (who do not qualify for many ghost roles) + * * notify_volume How loud the sound should be to spook the user + */ /proc/notify_ghosts(message, ghost_sound = null, enter_link = null, atom/source = null, mutable_appearance/alert_overlay = null, action = NOTIFY_JUMP, flashwindow = TRUE, ignore_mapload = TRUE, ignore_key, header = null, notify_suiciders = TRUE, notify_volume = 100) //Easy notification of ghosts. if(ignore_mapload && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load return @@ -368,8 +368,8 @@ A.add_overlay(alert_overlay) /** - * Heal a robotic body part on a mob - */ + * Heal a robotic body part on a mob + */ /proc/item_heal_robotic(mob/living/carbon/human/H, mob/user, brute_heal, burn_heal) var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) if(affecting && affecting.status == BODYPART_ROBOTIC) @@ -408,10 +408,10 @@ return TRUE /** - * Offer control of the passed in mob to dead player - * - * Automatic logging and uses pollCandidatesForMob, how convenient - */ + * Offer control of the passed in mob to dead player + * + * Automatic logging and uses pollCandidatesForMob, how convenient + */ /proc/offer_control(mob/M) to_chat(M, "Control of your mob has been offered to dead players.") if(usr) @@ -511,10 +511,10 @@ . = TRUE /** - * Examine text for traits shared by multiple types. - * - * I wish examine was less copypasted. (oranges say, be the change you want to see buddy) - */ + * Examine text for traits shared by multiple types. + * + * I wish examine was less copypasted. (oranges say, be the change you want to see buddy) + */ /mob/proc/common_trait_examine() if(HAS_TRAIT(src, TRAIT_DISSECTED)) var/dissectionmsg = "" @@ -529,11 +529,11 @@ . += "This body has been reduced to a grotesque husk." /** - * Get the list of keywords for policy config - * - * This gets the type, mind assigned roles and antag datums as a list, these are later used - * to send the user relevant headadmin policy config - */ + * Get the list of keywords for policy config + * + * This gets the type, mind assigned roles and antag datums as a list, these are later used + * to send the user relevant headadmin policy config + */ /mob/proc/get_policy_keywords() . = list() . += "[type]" diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 3e8305bde99..1f7b8e43374 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -1,8 +1,8 @@ /** - * If your mob is concious, drop the item in the active hand - * - * This is a hidden verb, likely for binding with winset for hotkeys - */ + * If your mob is concious, drop the item in the active hand + * + * This is a hidden verb, likely for binding with winset for hotkeys + */ /client/verb/drop_item() set hidden = TRUE if(!iscyborg(mob) && mob.stat == CONSCIOUS) @@ -10,13 +10,13 @@ return /** - * force move the control_object of your client mob - * - * Used in admin possession and called from the client Move proc - * ensures the possessed object moves and not the admin mob - * - * Has no sanity other than checking density - */ + * force move the control_object of your client mob + * + * Used in admin possession and called from the client Move proc + * ensures the possessed object moves and not the admin mob + * + * Has no sanity other than checking density + */ /client/proc/Move_object(direct) if(mob?.control_object) if(mob.control_object.density) @@ -31,41 +31,41 @@ #define MOVEMENT_DELAY_BUFFER_DELTA 1.25 /** - * Move a client in a direction - * - * Huge proc, has a lot of functionality - * - * Mostly it will despatch to the mob that you are the owner of to actually move - * in the physical realm - * - * Things that stop you moving as a mob: - * * world time being less than your next move_delay - * * not being in a mob, or that mob not having a loc - * * missing the n and direction parameters - * * being in remote control of an object (calls Moveobject instead) - * * being dead (it ghosts you instead) - * - * Things that stop you moving as a mob living (why even have OO if you're just shoving it all - * in the parent proc with istype checks right?): - * * having incorporeal_move set (calls Process_Incorpmove() instead) - * * being grabbed - * * being buckled (relaymove() is called to the buckled atom instead) - * * having your loc be some other mob (relaymove() is called on that mob instead) - * * Not having MOBILITY_MOVE - * * Failing Process_Spacemove() call - * - * At this point, if the mob is is confused, then a random direction and target turf will be calculated for you to travel to instead - * - * Now the parent call is made (to the byond builtin move), which moves you - * - * Some final move delay calculations (doubling if you moved diagonally successfully) - * - * if mob throwing is set I believe it's unset at this point via a call to finalize - * - * Finally if you're pulling an object and it's dense, you are turned 180 after the move - * (if you ask me, this should be at the top of the move so you don't dance around) - * - */ + * Move a client in a direction + * + * Huge proc, has a lot of functionality + * + * Mostly it will despatch to the mob that you are the owner of to actually move + * in the physical realm + * + * Things that stop you moving as a mob: + * * world time being less than your next move_delay + * * not being in a mob, or that mob not having a loc + * * missing the n and direction parameters + * * being in remote control of an object (calls Moveobject instead) + * * being dead (it ghosts you instead) + * + * Things that stop you moving as a mob living (why even have OO if you're just shoving it all + * in the parent proc with istype checks right?): + * * having incorporeal_move set (calls Process_Incorpmove() instead) + * * being grabbed + * * being buckled (relaymove() is called to the buckled atom instead) + * * having your loc be some other mob (relaymove() is called on that mob instead) + * * Not having MOBILITY_MOVE + * * Failing Process_Spacemove() call + * + * At this point, if the mob is is confused, then a random direction and target turf will be calculated for you to travel to instead + * + * Now the parent call is made (to the byond builtin move), which moves you + * + * Some final move delay calculations (doubling if you moved diagonally successfully) + * + * if mob throwing is set I believe it's unset at this point via a call to finalize + * + * Finally if you're pulling an object and it's dense, you are turned 180 after the move + * (if you ask me, this should be at the top of the move so you don't dance around) + * + */ /client/Move(n, direct) if(world.time < move_delay) //do not move anything ahead of this check please return FALSE @@ -159,10 +159,10 @@ mob.setDir(turn(mob.dir, 180)) /** - * Checks to see if you're being grabbed and if so attempts to break it - * - * Called by client/Move() - */ + * Checks to see if you're being grabbed and if so attempts to break it + * + * Called by client/Move() + */ /client/proc/Process_Grab() if(!mob.pulledby) return FALSE @@ -179,18 +179,18 @@ /** - * Allows mobs to ignore density and phase through objects - * - * Called by client/Move() - * - * The behaviour depends on the incorporeal_move value of the mob - * - * * INCORPOREAL_MOVE_BASIC - forceMoved to the next tile with no stop - * * INCORPOREAL_MOVE_SHADOW - the same but leaves a cool effect path - * * INCORPOREAL_MOVE_JAUNT - the same but blocked by holy tiles - * - * You'll note this is another mob living level proc living at the client level - */ + * Allows mobs to ignore density and phase through objects + * + * Called by client/Move() + * + * The behaviour depends on the incorporeal_move value of the mob + * + * * INCORPOREAL_MOVE_BASIC - forceMoved to the next tile with no stop + * * INCORPOREAL_MOVE_SHADOW - the same but leaves a cool effect path + * * INCORPOREAL_MOVE_JAUNT - the same but blocked by holy tiles + * + * You'll note this is another mob living level proc living at the client level + */ /client/proc/Process_Incorpmove(direct) var/turf/mobloc = get_turf(mob) if(!isliving(mob)) @@ -267,14 +267,14 @@ /** - * Handles mob/living movement in space (or no gravity) - * - * Called by /client/Move() - * - * return TRUE for movement or FALSE for none - * - * You can move in space if you have a spacewalk ability - */ + * Handles mob/living movement in space (or no gravity) + * + * Called by /client/Move() + * + * return TRUE for movement or FALSE for none + * + * You can move in space if you have a spacewalk ability + */ /mob/Process_Spacemove(movement_dir = 0) . = ..() if(. || HAS_TRAIT(src, TRAIT_SPACEWALK)) @@ -288,8 +288,8 @@ return FALSE /** - * Find movable atoms? near a mob that are viable for pushing off when moving - */ + * Find movable atoms? near a mob that are viable for pushing off when moving + */ /mob/get_spacemove_backup() for(var/A in orange(1, get_turf(src))) if(isarea(A)) @@ -317,16 +317,16 @@ . = AM /** - * Returns true if a mob has gravity - * - * I hate that this exists - */ + * Returns true if a mob has gravity + * + * I hate that this exists + */ /mob/proc/mob_has_gravity() return has_gravity() /** - * Does this mob ignore gravity - */ + * Does this mob ignore gravity + */ /mob/proc/mob_negates_gravity() return FALSE @@ -352,10 +352,10 @@ return mob && mob.hud_used && mob.hud_used.zone_select && istype(mob.hud_used.zone_select, /atom/movable/screen/zone_sel) /** - * Hidden verb to set the target zone of a mob to the head - * - * (bound to 8) - repeated presses toggles through head - eyes - mouth - */ + * Hidden verb to set the target zone of a mob to the head + * + * (bound to 8) - repeated presses toggles through head - eyes - mouth + */ /client/verb/body_toggle_head() set name = "body-toggle-head" set hidden = TRUE @@ -450,10 +450,10 @@ mob.toggle_move_intent(usr) /** - * Toggle the move intent of the mob - * - * triggers an update the move intent hud as well - */ + * Toggle the move intent of the mob + * + * triggers an update the move intent hud as well + */ /mob/proc/toggle_move_intent(mob/user) if(m_intent == MOVE_INTENT_RUN) m_intent = MOVE_INTENT_WALK diff --git a/code/modules/mob/mob_say.dm b/code/modules/mob/mob_say.dm index 556292e173d..812cd8ff59c 100644 --- a/code/modules/mob/mob_say.dm +++ b/code/modules/mob/mob_say.dm @@ -106,18 +106,18 @@ ///The amount of items we are looking for in the message #define MESSAGE_MODS_LENGTH 6 /** - * Extracts and cleans message of any extenstions at the begining of the message - * Inserts the info into the passed list, returns the cleaned message - * - * Result can be - * * SAY_MODE (Things like aliens, channels that aren't channels) - * * MODE_WHISPER (Quiet speech) - * * MODE_SING (Singing) - * * MODE_HEADSET (Common radio channel) - * * RADIO_EXTENSION the extension we're using (lots of values here) - * * RADIO_KEY the radio key we're using, to make some things easier later (lots of values here) - * * LANGUAGE_EXTENSION the language we're trying to use (lots of values here) - */ + * Extracts and cleans message of any extenstions at the begining of the message + * Inserts the info into the passed list, returns the cleaned message + * + * Result can be + * * SAY_MODE (Things like aliens, channels that aren't channels) + * * MODE_WHISPER (Quiet speech) + * * MODE_SING (Singing) + * * MODE_HEADSET (Common radio channel) + * * RADIO_EXTENSION the extension we're using (lots of values here) + * * RADIO_KEY the radio key we're using, to make some things easier later (lots of values here) + * * LANGUAGE_EXTENSION the language we're trying to use (lots of values here) + */ /mob/proc/get_message_mods(message, list/mods) for(var/I in 1 to MESSAGE_MODS_LENGTH) // Prevents "...text" from being read as a radio message diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index 871594de7fa..d1ade315f67 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -8,10 +8,10 @@ jitteriness = max(jitteriness,amount,0) /** - * Set the dizzyness of a mob to a passed in amount - * - * Except if dizziness is already higher in which case it does nothing - */ + * Set the dizzyness of a mob to a passed in amount + * + * Except if dizziness is already higher in which case it does nothing + */ /mob/proc/Dizzy(amount) dizziness = max(dizziness,amount,0) @@ -24,18 +24,18 @@ adjust_blindness(amount) /** - * Adjust a mobs blindness by an amount - * - * Will apply the blind alerts if needed - */ + * Adjust a mobs blindness by an amount + * + * Will apply the blind alerts if needed + */ /mob/proc/adjust_blindness(amount) var/old_eye_blind = eye_blind eye_blind = max(0, eye_blind + amount) if(!old_eye_blind || !eye_blind && !HAS_TRAIT(src, TRAIT_BLIND)) update_blindness() /** - * Force set the blindness of a mob to some level - */ + * Force set the blindness of a mob to some level + */ /mob/proc/set_blindness(amount) var/old_eye_blind = eye_blind eye_blind = max(amount, 0) @@ -71,16 +71,16 @@ /** - * Make the mobs vision blurry - */ + * Make the mobs vision blurry + */ /mob/proc/blur_eyes(amount) if(amount>0) eye_blurry = max(amount, eye_blurry) update_eye_blur() /** - * Adjust the current blurriness of the mobs vision by amount - */ + * Adjust the current blurriness of the mobs vision by amount + */ /mob/proc/adjust_blurriness(amount) eye_blurry = max(eye_blurry+amount, 0) update_eye_blur() diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 59549f4eb65..41f843ddfdd 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -264,16 +264,16 @@ //check_update_ui_need() /** - * Displays notification text alongside a soundbeep when requested to by a program. - * - * After checking tha the requesting program is allowed to send an alert, creates - * a visible message of the requested text alongside a soundbeep. This proc adds - * text to indicate that the message is coming from this device and the program - * on it, so the supplied text should be the exact message and ending punctuation. - * - * Arguments: - * The program calling this proc. - * The message that the program wishes to display. + * Displays notification text alongside a soundbeep when requested to by a program. + * + * After checking tha the requesting program is allowed to send an alert, creates + * a visible message of the requested text alongside a soundbeep. This proc adds + * text to indicate that the message is coming from this device and the program + * on it, so the supplied text should be the exact message and ending punctuation. + * + * Arguments: + * The program calling this proc. + * The message that the program wishes to display. */ /obj/item/modular_computer/proc/alert_call(datum/computer_file/program/caller, alerttext, sound = 'sound/machines/twobeep_high.ogg') @@ -382,10 +382,10 @@ update_icon() /** - * Toggles the computer's flashlight, if it has one. - * - * Called from ui_act(), does as the name implies. - * It is seperated from ui_act() to be overwritten as needed. + * Toggles the computer's flashlight, if it has one. + * + * Called from ui_act(), does as the name implies. + * It is seperated from ui_act() to be overwritten as needed. */ /obj/item/modular_computer/proc/toggle_flashlight() if(!has_light) @@ -398,12 +398,12 @@ return TRUE /** - * Sets the computer's light color, if it has a light. - * - * Called from ui_act(), this proc takes a color string and applies it. - * It is seperated from ui_act() to be overwritten as needed. - * Arguments: - ** color is the string that holds the color value that we should use. Proc auto-fails if this is null. + * Sets the computer's light color, if it has a light. + * + * Called from ui_act(), this proc takes a color string and applies it. + * It is seperated from ui_act() to be overwritten as needed. + * Arguments: + ** color is the string that holds the color value that we should use. Proc auto-fails if this is null. */ /obj/item/modular_computer/proc/set_flashlight_color(color) if(!has_light || !color) diff --git a/code/modules/modular_computers/computers/item/tablet.dm b/code/modules/modular_computers/computers/item/tablet.dm index d48b62d8817..bdad719f854 100644 --- a/code/modules/modular_computers/computers/item/tablet.dm +++ b/code/modules/modular_computers/computers/item/tablet.dm @@ -84,15 +84,15 @@ return FALSE /** - * Returns a ref to the RoboTact app, creating the app if need be. - * - * The RoboTact app is important for borgs, and so should always be available. - * This proc will look for it in the tablet's robotact var, then check the - * hard drive if the robotact var is unset, and finally attempt to create a new - * copy if the hard drive does not contain the app. If the hard drive rejects - * the new copy (such as due to lack of space), the proc will crash with an error. - * RoboTact is supposed to be undeletable, so these will create runtime messages. - */ + * Returns a ref to the RoboTact app, creating the app if need be. + * + * The RoboTact app is important for borgs, and so should always be available. + * This proc will look for it in the tablet's robotact var, then check the + * hard drive if the robotact var is unset, and finally attempt to create a new + * copy if the hard drive does not contain the app. If the hard drive rejects + * the new copy (such as due to lack of space), the proc will crash with an error. + * RoboTact is supposed to be undeletable, so these will create runtime messages. + */ /obj/item/modular_computer/tablet/integrated/proc/get_robotact() if(!borgo) return null diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index 4c3f252de13..699ccb0947b 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -89,15 +89,15 @@ return TRUE /** - *Check if the user can run program. Only humans can operate computer. Automatically called in run_program() - *ID must be inserted into a card slot to be read. If the program is not currently installed (as is the case when - *NT Software Hub is checking available software), a list can be given to be used instead. - *Arguments: - *user is a ref of the mob using the device. - *loud is a bool deciding if this proc should use to_chats - *access_to_check is an access level that will be checked against the ID - *transfer, if TRUE and access_to_check is null, will tell this proc to use the program's transfer_access in place of access_to_check - *access can contain a list of access numbers to check against. If access is not empty, it will be used istead of checking any inserted ID. + *Check if the user can run program. Only humans can operate computer. Automatically called in run_program() + *ID must be inserted into a card slot to be read. If the program is not currently installed (as is the case when + *NT Software Hub is checking available software), a list can be given to be used instead. + *Arguments: + *user is a ref of the mob using the device. + *loud is a bool deciding if this proc should use to_chats + *access_to_check is an access level that will be checked against the ID + *transfer, if TRUE and access_to_check is null, will tell this proc to use the program's transfer_access in place of access_to_check + *access can contain a list of access numbers to check against. If access is not empty, it will be used istead of checking any inserted ID. */ /datum/computer_file/program/proc/can_run(mob/user, loud = FALSE, access_to_check, transfer = FALSE, list/access) // Defaults to required_access @@ -159,15 +159,15 @@ return FALSE /** - * - *Called by the device when it is emagged. - * - *Emagging the device allows certain programs to unlock new functions. However, the program will - *need to be downloaded first, and then handle the unlock on their own in their run_emag() proc. - *The device will allow an emag to be run multiple times, so the user can re-emag to run the - *override again, should they download something new. The run_emag() proc should return TRUE if - *the emagging affected anything, and FALSE if no change was made (already emagged, or has no - *emag functions). + * + *Called by the device when it is emagged. + * + *Emagging the device allows certain programs to unlock new functions. However, the program will + *need to be downloaded first, and then handle the unlock on their own in their run_emag() proc. + *The device will allow an emag to be run multiple times, so the user can re-emag to run the + *override again, should they download something new. The run_emag() proc should return TRUE if + *the emagging affected anything, and FALSE if no change was made (already emagged, or has no + *emag functions). **/ /datum/computer_file/program/proc/run_emag() return FALSE diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm index 7f688b7efd3..0bf5eb21184 100644 --- a/code/modules/modular_computers/file_system/programs/radar.dm +++ b/code/modules/modular_computers/file_system/programs/radar.dm @@ -74,13 +74,13 @@ scan() /** - *Updates tracking information of the selected target. - * - *The track() proc updates the entire set of information about the location - *of the target, including whether the Ntos window should use a pinpointer - *crosshair over the up/down arrows, or none in favor of a rotating arrow - *for far away targets. This information is returned in the form of a list. - * + *Updates tracking information of the selected target. + * + *The track() proc updates the entire set of information about the location + *of the target, including whether the Ntos window should use a pinpointer + *crosshair over the up/down arrows, or none in favor of a rotating arrow + *for far away targets. This information is returned in the form of a list. + * */ /datum/computer_file/program/radar/proc/track() var/atom/movable/signal = find_atom() @@ -116,13 +116,13 @@ return trackinfo /** - * - *Checks the trackability of the selected target. - * - *If the target is on the computer's Z level, or both are on station Z - *levels, and the target isn't untrackable, return TRUE. - *Arguments: - **arg1 is the atom being evaluated. + * + *Checks the trackability of the selected target. + * + *If the target is on the computer's Z level, or both are on station Z + *levels, and the target isn't untrackable, return TRUE. + *Arguments: + **arg1 is the atom being evaluated. */ /datum/computer_file/program/radar/proc/trackable(atom/movable/signal) if(!signal || !computer) @@ -134,30 +134,30 @@ return (there.z == here.z) || (is_station_level(here.z) && is_station_level(there.z)) /** - * - *Runs a scan of all the trackable atoms. - * - *Checks each entry in the GLOB of the specific trackable atoms against - *the track() proc, and fill the objects list with lists containing the - *atoms' names and REFs. The objects list is handed to the tgui screen - *for displaying to, and being selected by, the user. A two second - *sleep is used to delay the scan, both for thematical reasons as well - *as to limit the load players may place on the server using these - *somewhat costly loops. + * + *Runs a scan of all the trackable atoms. + * + *Checks each entry in the GLOB of the specific trackable atoms against + *the track() proc, and fill the objects list with lists containing the + *atoms' names and REFs. The objects list is handed to the tgui screen + *for displaying to, and being selected by, the user. A two second + *sleep is used to delay the scan, both for thematical reasons as well + *as to limit the load players may place on the server using these + *somewhat costly loops. */ /datum/computer_file/program/radar/proc/scan() return /** - * - *Finds the atom in the appropriate list that the `selected` var indicates - * - *The `selected` var holds a REF, which is a string. A mob REF may be - *something like "mob_209". In order to find the actual atom, we need - *to search the appropriate list for the REF string. This is dependant - *on the program (Lifeline uses GLOB.human_list, while Fission360 uses - *GLOB.poi_list), but the result will be the same; evaluate the string and - *return an atom reference. + * + *Finds the atom in the appropriate list that the `selected` var indicates + * + *The `selected` var holds a REF, which is a string. A mob REF may be + *something like "mob_209". In order to find the actual atom, we need + *to search the appropriate list for the REF string. This is dependant + *on the program (Lifeline uses GLOB.human_list, while Fission360 uses + *GLOB.poi_list), but the result will be the same; evaluate the string and + *return an atom reference. */ /datum/computer_file/program/radar/proc/find_atom() return diff --git a/code/modules/modular_computers/file_system/programs/robotact.dm b/code/modules/modular_computers/file_system/programs/robotact.dm index cf2692dd081..0bd166624e0 100644 --- a/code/modules/modular_computers/file_system/programs/robotact.dm +++ b/code/modules/modular_computers/file_system/programs/robotact.dm @@ -135,11 +135,11 @@ borgo.toggle_headlamp(FALSE, TRUE) /** - * Forces a full update of the UI, if currently open. - * - * Forces an update that includes refreshing ui_static_data. Called by - * law changes and borg log additions. - */ + * Forces a full update of the UI, if currently open. + * + * Forces an update that includes refreshing ui_static_data. Called by + * law changes and borg log additions. + */ /datum/computer_file/program/robotact/proc/force_full_update() if(tablet) var/datum/tgui/active_ui = SStgui.get_open_ui(tablet.borgo, src) diff --git a/code/modules/modular_computers/file_system/programs/sm_monitor.dm b/code/modules/modular_computers/file_system/programs/sm_monitor.dm index 5653e4621d9..799a4eb3ebf 100644 --- a/code/modules/modular_computers/file_system/programs/sm_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/sm_monitor.dm @@ -60,11 +60,11 @@ . = max(., S.get_status()) /** - * Sets up the signal listener for Supermatter delaminations. - * - * Unregisters any old listners for SM delams, and then registers one for the SM refered - * to in the `active` variable. This proc is also used with no active SM to simply clear - * the signal and exit. + * Sets up the signal listener for Supermatter delaminations. + * + * Unregisters any old listners for SM delams, and then registers one for the SM refered + * to in the `active` variable. This proc is also used with no active SM to simply clear + * the signal and exit. */ /datum/computer_file/program/supermatter_monitor/proc/set_signals() if(active) @@ -72,9 +72,9 @@ RegisterSignal(active, COMSIG_SUPERMATTER_DELAM_START_ALARM, .proc/send_start_alert, override = TRUE) /** - * Removes the signal listener for Supermatter delaminations from the selected supermatter. - * - * Pretty much does what it says. + * Removes the signal listener for Supermatter delaminations from the selected supermatter. + * + * Pretty much does what it says. */ /datum/computer_file/program/supermatter_monitor/proc/clear_signals() if(active) @@ -82,12 +82,12 @@ UnregisterSignal(active, COMSIG_SUPERMATTER_DELAM_START_ALARM) /** - * Sends an SM delam alert to the computer. - * - * Triggered by a signal from the selected supermatter, this proc sends a notification - * to the computer if the program is either closed or minimized. We do not send these - * notifications to the comptuer if we're the active program, because engineers fixing - * the supermatter probably don't need constant beeping to distract them. + * Sends an SM delam alert to the computer. + * + * Triggered by a signal from the selected supermatter, this proc sends a notification + * to the computer if the program is either closed or minimized. We do not send these + * notifications to the comptuer if we're the active program, because engineers fixing + * the supermatter probably don't need constant beeping to distract them. */ /datum/computer_file/program/supermatter_monitor/proc/send_alert() if(!computer.get_ntnet_status()) @@ -97,13 +97,13 @@ alert_pending = TRUE /** - * Sends an SM delam start alert to the computer. - * - * Triggered by a signal from the selected supermatter at the start of a delamination, - * this proc sends a notification to the computer if this program is the active one. - * We do this so that people carrying a tablet with NT CIMS open but with the NTOS window - * closed will still get one audio alert. This is not sent to computers with the program - * minimized or closed to avoid double-notifications. + * Sends an SM delam start alert to the computer. + * + * Triggered by a signal from the selected supermatter at the start of a delamination, + * this proc sends a notification to the computer if this program is the active one. + * We do this so that people carrying a tablet with NT CIMS open but with the NTOS window + * closed will still get one audio alert. This is not sent to computers with the program + * minimized or closed to avoid double-notifications. */ /datum/computer_file/program/supermatter_monitor/proc/send_start_alert() if(!computer.get_ntnet_status()) diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm index b65c9c85510..850ba76f063 100644 --- a/code/modules/modular_computers/hardware/_hardware.dm +++ b/code/modules/modular_computers/hardware/_hardware.dm @@ -101,13 +101,13 @@ return FALSE /** - * Implement this when your hardware contains an object that the user can eject. - * - * Examples include ejecting cells from battery modules, ejecting an ID card from a card reader - * or ejecting an Intellicard from an AI card slot. - * Arguments: - * * user - The mob requesting the eject. - * * forced - Whether this action should be forced in some way. - */ + * Implement this when your hardware contains an object that the user can eject. + * + * Examples include ejecting cells from battery modules, ejecting an ID card from a card reader + * or ejecting an Intellicard from an AI card slot. + * Arguments: + * * user - The mob requesting the eject. + * * forced - Whether this action should be forced in some way. + */ /obj/item/computer_hardware/proc/try_eject(mob/living/user = null, forced = FALSE) return FALSE diff --git a/code/modules/modular_computers/hardware/card_slot.dm b/code/modules/modular_computers/hardware/card_slot.dm index 926d4e6374a..9139eee0b03 100644 --- a/code/modules/modular_computers/hardware/card_slot.dm +++ b/code/modules/modular_computers/hardware/card_slot.dm @@ -100,7 +100,7 @@ to_chat(user, "You adjust the connecter to fit into [expansion_hw ? "an expansion bay" : "the primary ID bay"].") /** - *Swaps the card_slot hardware between using the dedicated card slot bay on a computer, and using an expansion bay. + *Swaps the card_slot hardware between using the dedicated card slot bay on a computer, and using an expansion bay. */ /obj/item/computer_hardware/card_slot/proc/swap_slot() expansion_hw = !expansion_hw diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm index 52ac682b9cf..249105adab6 100644 --- a/code/modules/ninja/energy_katana.dm +++ b/code/modules/ninja/energy_katana.dm @@ -1,14 +1,14 @@ /** - * # Energy Katana - * - * The space ninja's katana. - * - * The katana that only space ninja spawns with. Comes with 30 force and throwforce, along with a signature special jaunting system. - * Upon clicking on a tile with the dash on, the user will teleport to that tile, assuming their target was not dense. - * The katana has 3 dashes stored at maximum, and upon using the dash, it will return 20 seconds after it was used. - * It also has a special feature where if it is tossed at a space ninja who owns it (determined by the ninja suit), the ninja will catch the katana instead of being hit by it. - * - */ + * # Energy Katana + * + * The space ninja's katana. + * + * The katana that only space ninja spawns with. Comes with 30 force and throwforce, along with a signature special jaunting system. + * Upon clicking on a tile with the dash on, the user will teleport to that tile, assuming their target was not dense. + * The katana has 3 dashes stored at maximum, and upon using the dash, it will return 20 seconds after it was used. + * It also has a special feature where if it is tossed at a space ninja who owns it (determined by the ninja suit), the ninja will catch the katana instead of being hit by it. + * + */ /obj/item/energy_katana name = "energy katana" desc = "A katana infused with strong energy." @@ -43,7 +43,7 @@ /obj/item/energy_katana/attack_self(mob/user) dash_toggled = !dash_toggled to_chat(user, "You [dash_toggled ? "enable" : "disable"] the dash function on [src].") - + /obj/item/energy_katana/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() if(dash_toggled && !Adjacent(target) && !target.density) @@ -80,14 +80,14 @@ return ..() /** - * Proc called when the katana is recalled to its space ninja. - * - * Proc called when space ninja is hit with its suit's katana or the recall ability is used. - * Arguments: - * * user - To whom the katana is returning to. - * * doSpark - whether or not the katana will spark when it returns. - * * caught - boolean for whether or not the katana was caught or was teleported back. - */ + * Proc called when the katana is recalled to its space ninja. + * + * Proc called when space ninja is hit with its suit's katana or the recall ability is used. + * Arguments: + * * user - To whom the katana is returning to. + * * doSpark - whether or not the katana will spark when it returns. + * * caught - boolean for whether or not the katana was caught or was teleported back. + */ /obj/item/energy_katana/proc/returnToOwner(mob/living/carbon/human/user, doSpark = TRUE, caught = FALSE) if(!istype(user)) return diff --git a/code/modules/ninja/ninja_explosive.dm b/code/modules/ninja/ninja_explosive.dm index 097c0b19a21..f915f722c4c 100644 --- a/code/modules/ninja/ninja_explosive.dm +++ b/code/modules/ninja/ninja_explosive.dm @@ -1,11 +1,11 @@ /** - * # Spider Charge - * - * A unique version of c4 possessed only by the space ninja. Has a stronger blast radius. - * Can only be detonated by space ninjas with the bombing objective. Can only be set up where the objective says it can. - * When it primes, the space ninja responsible will have their objective set to complete. - * - */ + * # Spider Charge + * + * A unique version of c4 possessed only by the space ninja. Has a stronger blast radius. + * Can only be detonated by space ninjas with the bombing objective. Can only be set up where the objective says it can. + * When it primes, the space ninja responsible will have their objective set to complete. + * + */ /obj/item/grenade/c4/ninja name = "spider charge" desc = "A modified C-4 charge supplied to you by the Spider Clan. Its explosive power has been juiced up, but only works in one specific area." diff --git a/code/modules/ninja/suit/gloves.dm b/code/modules/ninja/suit/gloves.dm index b4c945b5be1..6c91a155bbd 100644 --- a/code/modules/ninja/suit/gloves.dm +++ b/code/modules/ninja/suit/gloves.dm @@ -1,13 +1,13 @@ /** - * # Ninja Gloves - * - * Space ninja's gloves. Gives access to a number of special interactions. - * - * Gloves only found from space ninjas. Allows the wearer to access special interactions with various objects. - * These interactions are detailed in ninjaDrainAct.dm in the suit file. - * These interactions are toggled by an action tied to the gloves. The interactions will not activate if the user is also not wearing a ninja suit. - * - */ + * # Ninja Gloves + * + * Space ninja's gloves. Gives access to a number of special interactions. + * + * Gloves only found from space ninjas. Allows the wearer to access special interactions with various objects. + * These interactions are detailed in ninjaDrainAct.dm in the suit file. + * These interactions are toggled by an action tied to the gloves. The interactions will not activate if the user is also not wearing a ninja suit. + * + */ /obj/item/clothing/gloves/space_ninja desc = "These nano-enhanced gloves insulate from electricity and provide fire resistance." name = "ninja gloves" diff --git a/code/modules/ninja/suit/head.dm b/code/modules/ninja/suit/head.dm index ca35ca5237b..6c3bb427763 100644 --- a/code/modules/ninja/suit/head.dm +++ b/code/modules/ninja/suit/head.dm @@ -1,11 +1,11 @@ /** - * # Ninja Hood - * - * Space ninja's hood. Provides armor and blocks AI tracking. - * - * A hood that only exists as a part of space ninja's starting kit. Provides armor equal of space ninja's suit and disallows an AI to track the wearer. - * - */ + * # Ninja Hood + * + * Space ninja's hood. Provides armor and blocks AI tracking. + * + * A hood that only exists as a part of space ninja's starting kit. Provides armor equal of space ninja's suit and disallows an AI to track the wearer. + * + */ /obj/item/clothing/head/helmet/space/space_ninja desc = "What may appear to be a simple black garment is in fact a highly sophisticated nano-weave helmet. Standard issue ninja gear." name = "ninja hood" diff --git a/code/modules/ninja/suit/mask.dm b/code/modules/ninja/suit/mask.dm index aac1375f69c..75b19e2b4a6 100644 --- a/code/modules/ninja/suit/mask.dm +++ b/code/modules/ninja/suit/mask.dm @@ -1,11 +1,11 @@ /** - * # Ninja Mask - * - * Space ninja's mask. Other than looking cool, doesn't do anything. - * - * A mask which only spawns as a part of space ninja's starting kit. Functions as a gas mask. - * - */ + * # Ninja Mask + * + * Space ninja's mask. Other than looking cool, doesn't do anything. + * + * A mask which only spawns as a part of space ninja's starting kit. Functions as a gas mask. + * + */ /obj/item/clothing/mask/gas/space_ninja name = "ninja mask" desc = "A close-fitting mask that acts both as an air filter and a post-modern fashion statement." diff --git a/code/modules/ninja/suit/ninjaDrainAct.dm b/code/modules/ninja/suit/ninjaDrainAct.dm index c25e23f2cc8..f494916fa92 100644 --- a/code/modules/ninja/suit/ninjaDrainAct.dm +++ b/code/modules/ninja/suit/ninjaDrainAct.dm @@ -1,13 +1,13 @@ /** - * Atom level proc for space ninja's glove interactions. - * - * Proc which only occurs when space ninja uses his gloves on an atom. - * Does nothing by default, but effects will vary. - * Arguments: - * * ninja_suit - The offending space ninja's suit. - * * ninja - The human mob wearing the suit. - * * ninja_gloves - The offending space ninja's gloves. - */ + * Atom level proc for space ninja's glove interactions. + * + * Proc which only occurs when space ninja uses his gloves on an atom. + * Does nothing by default, but effects will vary. + * Arguments: + * * ninja_suit - The offending space ninja's suit. + * * ninja - The human mob wearing the suit. + * * ninja_gloves - The offending space ninja's gloves. + */ /atom/proc/ninjadrain_act(obj/item/clothing/suit/space/space_ninja/ninja_suit, mob/living/carbon/human/ninja, obj/item/clothing/gloves/space_ninja/ninja_gloves) return INVALID_DRAIN @@ -104,7 +104,7 @@ charge = 0 corrupt() update_icon() - + return drain_total //RDCONSOLE// @@ -231,7 +231,7 @@ else drain_total += drained ninja_suit.spark_system.start() - + return drain_total //MECH// @@ -279,7 +279,7 @@ ionpulse = TRUE laws = new /datum/ai_laws/ninja_override() module.transform_to(pick(/obj/item/robot_module/syndicate, /obj/item/robot_module/syndicate_medical, /obj/item/robot_module/saboteur)) - + var/datum/antagonist/ninja/ninja_antag = ninja.mind.has_antag_datum(/datum/antagonist/ninja) if(!ninja_antag) return diff --git a/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.dm b/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.dm index bae82aaa2dc..7859a406615 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.dm @@ -1,12 +1,12 @@ /** - * # Energy Net - * - * Energy net which ensnares prey until it is destroyed. Used by space ninjas. - * - * Energy net which keeps its target from moving until it is destroyed. Used to send - * players to a holding area in which they could never leave, but such feature has since - * been removed. - */ + * # Energy Net + * + * Energy net which ensnares prey until it is destroyed. Used by space ninjas. + * + * Energy net which keeps its target from moving until it is destroyed. Used to send + * players to a holding area in which they could never leave, but such feature has since + * been removed. + */ /obj/structure/energy_net name = "energy net" desc = "It's a net made of green energy." diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_adrenaline.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_adrenaline.dm index 7cd8ef8f0bc..d5d1a526783 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_adrenaline.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_adrenaline.dm @@ -9,12 +9,12 @@ icon_icon = 'icons/mob/actions/actions_spells.dmi' /** - * Proc called to activate space ninja's adrenaline. - * - * Proc called to use space ninja's adrenaline. Gets the ninja out of almost any stun. - * Also makes them shout MGS references when used. After a bit, it injects the user with - * radium by calling a different proc. - */ + * Proc called to activate space ninja's adrenaline. + * + * Proc called to use space ninja's adrenaline. Gets the ninja out of almost any stun. + * Also makes them shout MGS references when used. After a bit, it injects the user with + * radium by calling a different proc. + */ /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost() if(ninjacost(0,N_ADRENALINE)) return @@ -34,11 +34,11 @@ addtimer(CALLBACK(src, .proc/ninjaboost_after), 70) /** - * Proc called to inject the ninja with radium. - * - * Used after 7 seconds of using the ninja's adrenaline. - * Injects the user with how much radium the suit needs to refill an adrenaline boost. - */ + * Proc called to inject the ninja with radium. + * + * Used after 7 seconds of using the ninja's adrenaline. + * Injects the user with how much radium the suit needs to refill an adrenaline boost. + */ /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost_after() var/mob/living/carbon/human/ninja = affecting ninja.reagents.add_reagent(/datum/reagent/uranium/radium, a_transfer * 0.25) diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_cost_check.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_cost_check.dm index b142751403b..7fb9d9dbf68 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_cost_check.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_cost_check.dm @@ -1,13 +1,13 @@ /** - * Proc called to check if the ninja can afford an ability's cost. - * - * Proc which determine whether or not a space ninja can afford to use a specific ability. - * It can also cancel stealth if the ability requested it. - * Arguments: - * * cost - the energy cost of the ability - * * specificCheck - Determines if the check is a normal one, an adrenaline one, or a stealth cancel check. - * * Returns TRUE or the current cooldown timer if we can't perform the ability, and FALSE if we can. - */ + * Proc called to check if the ninja can afford an ability's cost. + * + * Proc which determine whether or not a space ninja can afford to use a specific ability. + * It can also cancel stealth if the ability requested it. + * Arguments: + * * cost - the energy cost of the ability + * * specificCheck - Determines if the check is a normal one, an adrenaline one, or a stealth cancel check. + * * Returns TRUE or the current cooldown timer if we can't perform the ability, and FALSE if we can. + */ /obj/item/clothing/suit/space/space_ninja/proc/ninjacost(cost = 0, specificCheck = 0) var/mob/living/carbon/human/ninja = affecting var/actualCost = cost*10 diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_empulse.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_empulse.dm index d6f0132c4f3..ea2341a1323 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_empulse.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_empulse.dm @@ -7,11 +7,11 @@ icon_icon = 'icons/mob/actions/actions_spells.dmi' /** - * Proc called to allow the ninja to EMP the nearby area. - * - * Proc called to allow the ninja to EMP the nearby area. By default, costs 500E, which is half of the default battery's max charge. - * Also affects the ninja as well. - */ + * Proc called to allow the ninja to EMP the nearby area. + * + * Proc called to allow the ninja to EMP the nearby area. By default, costs 500E, which is half of the default battery's max charge. + * Also affects the ninja as well. + */ /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse() if(ninjacost(500,N_STEALTH_CANCEL)) return diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_glove_toggle.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_glove_toggle.dm index f65edbac541..ec5bf078a55 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_glove_toggle.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_glove_toggle.dm @@ -5,10 +5,10 @@ icon_icon = 'icons/obj/clothing/gloves.dmi' /** - * Proc called to toggle the ninja glove's special abilities. - * - * Used to toggle whether or not the ninja glove's abilities will activate on touch. - */ + * Proc called to toggle the ninja glove's special abilities. + * + * Used to toggle whether or not the ninja glove's abilities will activate on touch. + */ /obj/item/clothing/gloves/space_ninja/proc/toggledrain() var/mob/living/carbon/human/ninja = loc to_chat(ninja, "You [candrain?"disable":"enable"] special interaction.") diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_net.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_net.dm index 1538b2ca0c3..82c585f93f5 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_net.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_net.dm @@ -5,11 +5,11 @@ icon_icon = 'icons/effects/effects.dmi' /** - * Proc called to ensnare a person in a energy net. - * - * Used to ensnare a target in an energy net, preventing them from moving until the net is broken. - * Costs 40E, which is 40% of the default battery's max charge. Intended as a means of reliably locking down an opponent when ninja stars won't suffice. - */ + * Proc called to ensnare a person in a energy net. + * + * Used to ensnare a target in an energy net, preventing them from moving until the net is broken. + * Costs 40E, which is 40% of the default battery's max charge. Intended as a means of reliably locking down an opponent when ninja stars won't suffice. + */ /obj/item/clothing/suit/space/space_ninja/proc/ninjanet() var/mob/living/carbon/human/ninja = affecting var/mob/living/net_target = input("Select who to capture:","Capture who?",null) as null|mob in sortNames(oview(ninja)) diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_stars.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_stars.dm index d68d290e25c..38c5c254476 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_stars.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_stars.dm @@ -5,12 +5,12 @@ icon_icon = 'icons/obj/items_and_weapons.dmi' /** - * Proc called to create a ninja star in the ninja's hands. - * - * Called to create a ninja star in the wearer's hand. The ninja - * star doesn't do much up-front damage, but deals stamina damage - * as the target moves around, forcing a finish or flee scenario. - */ + * Proc called to create a ninja star in the ninja's hands. + * + * Called to create a ninja star in the wearer's hand. The ninja + * star doesn't do much up-front damage, but deals stamina damage + * as the target moves around, forcing a finish or flee scenario. + */ /obj/item/clothing/suit/space/space_ninja/proc/ninjastar() if(ninjacost(10)) return @@ -24,20 +24,20 @@ ninja.throw_mode_on() //So they can quickly throw it. /** - * # Ninja Throwing Star - * - * a throwing star which specifically makes sure you know it came from a real ninja. - * - * The most important item in the entire codebase, as without it we would all cease to exist. - * Inherits everything that makes it interesting the stamina throwing star, but the most - * important change made is that its name specifically has the prefix, 'ninja' in it. - * This provides the detective role with information to play off of by ensuring that his - * assumption that a space ninja is aboard the ship to be true when he find 20 of these in - * the captain's back. Along with this, its throwforce is 10 instead of the 5 of the stamina - * throwing star, meaning it'll do a little more damage than the stamina throwing star does as well. - * Changes to this item need to be approved by all maintainers, so if you do change it, make sure - * you go through the proper channels, lest you get permabanned. Do I make myself clear? - */ + * # Ninja Throwing Star + * + * a throwing star which specifically makes sure you know it came from a real ninja. + * + * The most important item in the entire codebase, as without it we would all cease to exist. + * Inherits everything that makes it interesting the stamina throwing star, but the most + * important change made is that its name specifically has the prefix, 'ninja' in it. + * This provides the detective role with information to play off of by ensuring that his + * assumption that a space ninja is aboard the ship to be true when he find 20 of these in + * the captain's back. Along with this, its throwforce is 10 instead of the 5 of the stamina + * throwing star, meaning it'll do a little more damage than the stamina throwing star does as well. + * Changes to this item need to be approved by all maintainers, so if you do change it, make sure + * you go through the proper channels, lest you get permabanned. Do I make myself clear? + */ /obj/item/throwing_star/stamina/ninja name = "ninja throwing star" throwforce = 10 diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm index 76aa540510b..7ab3bedaaf0 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm @@ -6,13 +6,13 @@ icon_icon = 'icons/obj/device.dmi' /** - * Proc called to put a status readout to the ninja in chat. - * - * Called put some information about the ninja's current status into chat. - * This information used to be displayed constantly on the status tab screen - * when the suit was on, but was turned into this as to remove the code from - * human.dm - */ + * Proc called to put a status readout to the ninja in chat. + * + * Called put some information about the ninja's current status into chat. + * This information used to be displayed constantly on the status tab screen + * when the suit was on, but was turned into this as to remove the code from + * human.dm + */ /obj/item/clothing/suit/space/space_ninja/proc/ninjastatus() var/mob/living/carbon/human/ninja = affecting var/list/info_list = list() @@ -35,5 +35,5 @@ info_list += "Viruses:" for(var/datum/disease/ninja_disease in ninja.diseases) info_list += "* [ninja_disease.name], Type: [ninja_disease.spread_text], Stage: [ninja_disease.stage]/[ninja_disease.max_stages], Possible Cure: [ninja_disease.cure_text]\n" - + to_chat(ninja, "[info_list.Join()]") diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_stealth.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_stealth.dm index aaa52943dbb..079f0c53e94 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_stealth.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_stealth.dm @@ -5,11 +5,11 @@ icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' /** - * Proc called to toggle ninja stealth. - * - * Proc called to toggle whether or not the ninja is in stealth mode. - * If cancelling, calls a separate proc in case something else needs to quickly cancel stealth. - */ + * Proc called to toggle ninja stealth. + * + * Proc called to toggle whether or not the ninja is in stealth mode. + * If cancelling, calls a separate proc in case something else needs to quickly cancel stealth. + */ /obj/item/clothing/suit/space/space_ninja/proc/toggle_stealth() var/mob/living/carbon/human/ninja = affecting if(!ninja) @@ -26,13 +26,13 @@ "You are now mostly invisible to normal detection.") /** - * Proc called to cancel stealth. - * - * Called to cancel the stealth effect if it is ongoing. - * Does nothing otherwise. - * Arguments: - * * Returns false if either the ninja no longer exists or is already visible, returns true if we successfully made the ninja visible. - */ + * Proc called to cancel stealth. + * + * Called to cancel the stealth effect if it is ongoing. + * Does nothing otherwise. + * Arguments: + * * Returns false if either the ninja no longer exists or is already visible, returns true if we successfully made the ninja visible. + */ /obj/item/clothing/suit/space/space_ninja/proc/cancel_stealth() var/mob/living/carbon/human/ninja = affecting if(!ninja) diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_suit_initialisation.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_suit_initialisation.dm index d9ea681443f..51167b0e0dd 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_suit_initialisation.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_suit_initialisation.dm @@ -28,10 +28,10 @@ GLOBAL_LIST_INIT(ninja_deinitialize_messages, list( name = "Toggle Ninja Suit" /** - * Toggles the ninja suit on/off - * - * Attempts to initialize or deinitialize the ninja suit - */ + * Toggles the ninja suit on/off + * + * Attempts to initialize or deinitialize the ninja suit + */ /obj/item/clothing/suit/space/space_ninja/proc/toggle_on_off() . = TRUE if(s_busy) @@ -44,14 +44,14 @@ GLOBAL_LIST_INIT(ninja_deinitialize_messages, list( ninitialize() /** - * Initializes the ninja suit - * - * Initializes the ninja suit through seven phases, each of which calls this proc with an incremented phase - * Arguments: - * * delay - The delay between each phase of initialization - * * ninja - The human who is being affected by the suit - * * phase - The phase of initialization - */ + * Initializes the ninja suit + * + * Initializes the ninja suit through seven phases, each of which calls this proc with an incremented phase + * Arguments: + * * delay - The delay between each phase of initialization + * * ninja - The human who is being affected by the suit + * * phase - The phase of initialization + */ /obj/item/clothing/suit/space/space_ninja/proc/ninitialize(delay = s_delay, mob/living/carbon/human/ninja = loc, phase = 0) if(!ninja || !ninja.mind) s_busy = FALSE @@ -85,14 +85,14 @@ GLOBAL_LIST_INIT(ninja_deinitialize_messages, list( addtimer(CALLBACK(src, .proc/ninitialize, delay, ninja, phase + 1), delay) /** - * Deinitializes the ninja suit - * - * Deinitializes the ninja suit through eight phases, each of which calls this proc with an incremented phase - * Arguments: - * * delay - The delay between each phase of deinitialization - * * ninja - The human who is being affected by the suit - * * phase - The phase of deinitialization - */ + * Deinitializes the ninja suit + * + * Deinitializes the ninja suit through eight phases, each of which calls this proc with an incremented phase + * Arguments: + * * delay - The delay between each phase of deinitialization + * * ninja - The human who is being affected by the suit + * * phase - The phase of deinitialization + */ /obj/item/clothing/suit/space/space_ninja/proc/deinitialize(delay = s_delay, mob/living/carbon/human/ninja = affecting == loc ? affecting : null, phase = 0) if (!ninja || !ninja.mind) s_busy = FALSE diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_sword_recall.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_sword_recall.dm index 69367e807fb..22fdf86ccd1 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_sword_recall.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_sword_recall.dm @@ -5,12 +5,12 @@ icon_icon = 'icons/obj/items_and_weapons.dmi' /** - * Proc called to recall the ninja's sword. - * - * Called to summon the ninja's katana back to them - * If the katana can see the ninja, it will throw itself towards them. - * If not, the katana will teleport itself to the ninja. - */ + * Proc called to recall the ninja's sword. + * + * Called to summon the ninja's katana back to them + * If the katana can see the ninja, it will throw itself towards them. + * If not, the katana will teleport itself to the ninja. + */ /obj/item/clothing/suit/space/space_ninja/proc/ninja_sword_recall() var/mob/living/carbon/human/ninja = affecting var/cost = 0 diff --git a/code/modules/ninja/suit/shoes.dm b/code/modules/ninja/suit/shoes.dm index fe4cb9bd401..cde636bb115 100644 --- a/code/modules/ninja/suit/shoes.dm +++ b/code/modules/ninja/suit/shoes.dm @@ -1,12 +1,12 @@ /** - * # Ninja Shoes - * - * Space ninja's shoes. Gives him armor on his feet. - * - * Space ninja's ninja shoes. How mousey. Gives him slip protection and protection against attacks. - * Also are temperature resistant. - * - */ + * # Ninja Shoes + * + * Space ninja's shoes. Gives him armor on his feet. + * + * Space ninja's ninja shoes. How mousey. Gives him slip protection and protection against attacks. + * Also are temperature resistant. + * + */ /obj/item/clothing/shoes/space_ninja name = "ninja shoes" desc = "A pair of running shoes. Excellent for running and even better for smashing skulls." diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index 659f512d073..5ebec42d049 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -1,13 +1,13 @@ /** - * # Ninja Suit - * - * Space ninja's suit. Provides him with most of his powers. - * - * Space ninja's suit. Gives space ninja all his iconic powers, which are mostly kept in - * the folder ninja_equipment_actions. Has a lot of unique stuff going on, so make sure to check - * the variables. Check suit_attackby to see radium interaction, disk copying, and cell replacement. - * - */ + * # Ninja Suit + * + * Space ninja's suit. Provides him with most of his powers. + * + * Space ninja's suit. Gives space ninja all his iconic powers, which are mostly kept in + * the folder ninja_equipment_actions. Has a lot of unique stuff going on, so make sure to check + * the variables. Check suit_attackby to see radium interaction, disk copying, and cell replacement. + * + */ /obj/item/clothing/suit/space/space_ninja name = "ninja suit" desc = "A unique, vacuum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins." @@ -142,7 +142,7 @@ toggle_stealth() return TRUE return FALSE - + /obj/item/clothing/suit/space/space_ninja/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) . = ..() if(stealth) @@ -150,14 +150,14 @@ s_coold = 5 /** - * Proc for changing the suit's appearance upon locking. - * - * Proc for when space ninja's suit locks. If the user selects Original, gives it glowing lights, along with having an alternate sprite for female body types. - * Yes, we do have nipLEDs, how could you tell? - * If the user selects New Age, it applies new sprites to all the gear. - * Arguments: - * * ninja - The person wearing the suit. - */ + * Proc for changing the suit's appearance upon locking. + * + * Proc for when space ninja's suit locks. If the user selects Original, gives it glowing lights, along with having an alternate sprite for female body types. + * Yes, we do have nipLEDs, how could you tell? + * If the user selects New Age, it applies new sprites to all the gear. + * Arguments: + * * ninja - The person wearing the suit. + */ /obj/item/clothing/suit/space/space_ninja/proc/lockIcons(mob/living/carbon/human/ninja) var/design_choice = alert(ninja, "Please choose your desired suit design.",,"Original","New Age") switch(design_choice) @@ -171,18 +171,18 @@ n_gloves.icon_state = "ninja_new" if(n_mask) n_mask.icon_state = "ninja_new" - + /** - * Proc called to lock the important gear pieces onto space ninja's body. - * - * Called during the suit startup to lock all gear pieces onto space ninja. - * Terminates if a gear piece is not being worn. Also gives the ninja the inability to use firearms. - * If the person in the suit isn't a ninja when this is called, this proc just gibs them instead. - * Arguments: - * * ninja - The person wearing the suit. - * * Returns false if the locking fails due to lack of all suit parts, and true if it succeeds. - */ + * Proc called to lock the important gear pieces onto space ninja's body. + * + * Called during the suit startup to lock all gear pieces onto space ninja. + * Terminates if a gear piece is not being worn. Also gives the ninja the inability to use firearms. + * If the person in the suit isn't a ninja when this is called, this proc just gibs them instead. + * Arguments: + * * ninja - The person wearing the suit. + * * Returns false if the locking fails due to lack of all suit parts, and true if it succeeds. + */ /obj/item/clothing/suit/space/space_ninja/proc/lock_suit(mob/living/carbon/human/ninja) if(!istype(ninja)) return FALSE @@ -214,13 +214,13 @@ return TRUE /** - * Proc called to unlock all the gear off space ninja's body. - * - * Proc which is essentially the opposite of lock_suit. Lets you take off all the suit parts. - * Also gets rid of the objection to using firearms from the wearer. - * Arguments: - * * ninja - The person wearing the suit. - */ + * Proc called to unlock all the gear off space ninja's body. + * + * Proc which is essentially the opposite of lock_suit. Lets you take off all the suit parts. + * Also gets rid of the objection to using firearms from the wearer. + * Arguments: + * * ninja - The person wearing the suit. + */ /obj/item/clothing/suit/space/space_ninja/proc/unlock_suit(mob/living/carbon/human/ninja) affecting = null REMOVE_TRAIT(src, TRAIT_NODROP, NINJA_SUIT_TRAIT) @@ -242,10 +242,10 @@ n_mask.icon_state = "s-ninja" /** - * Proc used to delete all the attachments and itself. - * - * Can be called to entire rid of the suit pieces and the suit itself. - */ + * Proc used to delete all the attachments and itself. + * + * Can be called to entire rid of the suit pieces and the suit itself. + */ /obj/item/clothing/suit/space/space_ninja/proc/terminate() QDEL_NULL(n_hood) QDEL_NULL(n_gloves) diff --git a/code/modules/paperwork/handlabeler.dm b/code/modules/paperwork/handlabeler.dm index 6f3e8ecc956..f8fa925f749 100644 --- a/code/modules/paperwork/handlabeler.dm +++ b/code/modules/paperwork/handlabeler.dm @@ -56,7 +56,7 @@ return user.visible_message("[user] labels [A] with \"[label]\".", \ - "You label [A] with \"[label]\".") + "You label [A] with \"[label]\".") A.AddComponent(/datum/component/label, label) playsound(A, 'sound/items/handling/component_pickup.ogg', 20, TRUE) labels_left-- diff --git a/code/modules/power/pipecleaners.dm b/code/modules/power/pipecleaners.dm index e2cadd35dbc..444a72dee1a 100644 --- a/code/modules/power/pipecleaners.dm +++ b/code/modules/power/pipecleaners.dm @@ -22,13 +22,11 @@ GLOBAL_LIST_INIT(pipe_cleaner_colors, list( //////////////////////////////// /* Cable directions (d1 and d2) - - - 9 1 5 - \ | / - 8 - 0 - 4 - / | \ - 10 2 6 + * 9 1 5 + * \ | / + * 8 - 0 - 4 + * / | \ + * 10 2 6 If d1 = 0 and d2 = 0, there's no pipe_cleaner If d1 = 0 and d2 = dir, it's a O-X pipe_cleaner, getting from the center of the tile to dir (knot pipe_cleaner) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index bf018620b10..213d06c9e1a 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -102,9 +102,9 @@ A.use_power(amount, chan) /** - * An alternative to 'use_power', this proc directly costs the APC in direct charge, as opposed to being calculated periodically. - * - Amount: How much power the APC's cell is to be costed. - */ + * An alternative to 'use_power', this proc directly costs the APC in direct charge, as opposed to being calculated periodically. + * - Amount: How much power the APC's cell is to be costed. + */ /obj/machinery/proc/directly_use_power(amount) var/area/A = get_area(src) var/obj/machinery/power/apc/local_apc @@ -119,15 +119,15 @@ return TRUE /** - * Attempts to draw power directly from the APC's Powernet rather than the APC's battery. For high-draw machines, like the cell charger - * - * Checks the surplus power on the APC's powernet, and compares to the requested amount. If the requested amount is available, this proc - * will add the amount to the APC's usage and return that amount. Otherwise, this proc will return FALSE. - * If the take_any var arg is set to true, this proc will use and return any surplus that is under the requested amount, assuming that - * the surplus is above zero. - * Args: - * - amount, the amount of power requested from the Powernet. In standard loosely-defined SS13 power units. - * - take_any, a bool of whether any amount of power is acceptable, instead of all or nothing. Defaults to FALSE + * Attempts to draw power directly from the APC's Powernet rather than the APC's battery. For high-draw machines, like the cell charger + * + * Checks the surplus power on the APC's powernet, and compares to the requested amount. If the requested amount is available, this proc + * will add the amount to the APC's usage and return that amount. Otherwise, this proc will return FALSE. + * If the take_any var arg is set to true, this proc will use and return any surplus that is under the requested amount, assuming that + * the surplus is above zero. + * Args: + * - amount, the amount of power requested from the Powernet. In standard loosely-defined SS13 power units. + * - take_any, a bool of whether any amount of power is acceptable, instead of all or nothing. Defaults to FALSE */ /obj/machinery/proc/use_power_from_net(amount, take_any = FALSE) if(amount <= 0) //just in case @@ -162,12 +162,12 @@ addStaticPower(-value, powerchannel) /** - * Called whenever the power settings of the containing area change - * - * by default, check equipment channel & set flag, can override if needed - * - * Returns TRUE if the NOPOWER flag was toggled - */ + * Called whenever the power settings of the containing area change + * + * by default, check equipment channel & set flag, can override if needed + * + * Returns TRUE if the NOPOWER flag was toggled + */ /obj/machinery/proc/power_change() SIGNAL_HANDLER SHOULD_CALL_PARENT(TRUE) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 4acb0d6ee7c..136f5a7b30b 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -3,13 +3,13 @@ /* field_generator power level display - The icon used for the field_generator need to have 6 icon states - named 'Field_Gen +p[num]' where 'num' ranges from 1 to 6 +The icon used for the field_generator need to have 6 icon states +named 'Field_Gen +p[num]' where 'num' ranges from 1 to 6 - The power level is displayed using overlays. The current displayed power level is stored in 'powerlevel'. - The overlay in use and the powerlevel variable must be kept in sync. A powerlevel equal to 0 means that - no power level overlay is currently in the overlays list. - -Aygar +The power level is displayed using overlays. The current displayed power level is stored in 'powerlevel'. +The overlay in use and the powerlevel variable must be kept in sync. A powerlevel equal to 0 means that +no power level overlay is currently in the overlays list. +-Aygar */ #define field_generator_max_power 250 @@ -173,12 +173,11 @@ field_generator power level display cleanup() return ..() -/* - The power level is displayed using overlays. The current displayed power level is stored in 'powerlevel'. - The overlay in use and the powerlevel variable must be kept in sync. A powerlevel equal to 0 means that - no power level overlay is currently in the overlays list. - */ - +/** + *The power level is displayed using overlays. The current displayed power level is stored in 'powerlevel'. + *The overlay in use and the powerlevel variable must be kept in sync. A powerlevel equal to 0 means that + *no power level overlay is currently in the overlays list. + */ /obj/machinery/field/generator/proc/check_power_level() var/new_level = round(6 * power / field_generator_max_power) if(new_level != power_level) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 9835026661d..78a843aab7d 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -516,7 +516,7 @@ /obj/singularity/deadchat_controlled/Initialize(mapload, starting_energy) . = ..() AddComponent(/datum/component/deadchat_control, DEMOCRACY_MODE, list( - "up" = CALLBACK(GLOBAL_PROC, .proc/_step, src, NORTH), - "down" = CALLBACK(GLOBAL_PROC, .proc/_step, src, SOUTH), - "left" = CALLBACK(GLOBAL_PROC, .proc/_step, src, WEST), - "right" = CALLBACK(GLOBAL_PROC, .proc/_step, src, EAST))) + "up" = CALLBACK(GLOBAL_PROC, .proc/_step, src, NORTH), + "down" = CALLBACK(GLOBAL_PROC, .proc/_step, src, SOUTH), + "left" = CALLBACK(GLOBAL_PROC, .proc/_step, src, WEST), + "right" = CALLBACK(GLOBAL_PROC, .proc/_step, src, EAST))) diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index eda1d4ebd26..1f4146e7903 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -157,7 +157,7 @@ add_overlay(mutable_appearance(icon, "comp-o2", FLY_LAYER)) else if(rpm>500) add_overlay(mutable_appearance(icon, "comp-o1", FLY_LAYER)) - //TODO: DEFERRED + //TODO: DEFERRED // These are crucial to working of a turbine - the stats modify the power output. TurbGenQ modifies how much raw energy can you get from // rpms, TurbGenG modifies the shape of the curve - the lower the value the less straight the curve is. diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index d478e207be2..62e55cf75f7 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -48,12 +48,12 @@ update_icon() /** - * top_off is used to refill the magazine to max, in case you want to increase the size of a magazine with VV then refill it at once - * - * Arguments: - * * load_type - if you want to specify a specific ammo casing type to load, enter the path here, otherwise it'll use the basic [/obj/item/ammo_box/var/ammo_type]. Must be a compatible round - * * starting - Relevant for revolver cylinders, if FALSE then we mind the nulls that represent the empty cylinders (since those nulls don't exist yet if we haven't initialized when this is TRUE) - */ + * top_off is used to refill the magazine to max, in case you want to increase the size of a magazine with VV then refill it at once + * + * Arguments: + * * load_type - if you want to specify a specific ammo casing type to load, enter the path here, otherwise it'll use the basic [/obj/item/ammo_box/var/ammo_type]. Must be a compatible round + * * starting - Relevant for revolver cylinders, if FALSE then we mind the nulls that represent the empty cylinders (since those nulls don't exist yet if we haven't initialized when this is TRUE) + */ /obj/item/ammo_box/proc/top_off(load_type, starting=FALSE) if(!load_type) //this check comes first so not defining an argument means we just go with default ammo load_type = ammo_type diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 31c0ffca60b..e7026a529e0 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -515,12 +515,12 @@ /** - * Swaps the gun's seclight, dropping the old seclight if it has not been qdel'd. - * - * Returns the former gun_light that has now been replaced by this proc. - * Arguments: - * * new_light - The new light to attach to the weapon. Can be null, which will mean the old light is removed with no replacement. - */ + * Swaps the gun's seclight, dropping the old seclight if it has not been qdel'd. + * + * Returns the former gun_light that has now been replaced by this proc. + * Arguments: + * * new_light - The new light to attach to the weapon. Can be null, which will mean the old light is removed with no replacement. + */ /obj/item/gun/proc/set_gun_light(obj/item/flashlight/seclite/new_light) // Doesn't look like this should ever happen? We're replacing our old light with our old light? if(gun_light == new_light) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 8dd659aeb21..1f0d7b727ee 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -61,7 +61,7 @@ var/special_mags = FALSE ///The bolt type of the gun, affects quite a bit of functionality, see combat.dm defines for bolt types: BOLT_TYPE_STANDARD; BOLT_TYPE_LOCKING; BOLT_TYPE_OPEN; BOLT_TYPE_NO_BOLT var/bolt_type = BOLT_TYPE_STANDARD - ///Used for locking bolt and open bolt guns. Set a bit differently for the two but prevents firing when true for both. + ///Used for locking bolt and open bolt guns. Set a bit differently for the two but prevents firing when true for both. var/bolt_locked = FALSE var/show_bolt_icon = TRUE ///Hides the bolt icon. ///Whether the gun has to be racked each shot or not. diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 90e8e75c8e2..7979dd46872 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -282,7 +282,7 @@ crosslink() /obj/item/gun/energy/wormhole_projector/core_inserted - firing_core = TRUE + firing_core = TRUE /* 3d printer 'pseudo guns' for borgs */ diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 30cbf29aa92..282d739a145 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -91,11 +91,11 @@ my_atom = null /** - * Used in attack logs for reagents in pills and such - * - * Arguments: - * * external_list - list of reagent types = amounts - */ + * Used in attack logs for reagents in pills and such + * + * Arguments: + * * external_list - list of reagent types = amounts + */ /datum/reagents/proc/log_list(external_list) if((external_list && !length(external_list)) || !length(reagent_list)) return "no reagents" @@ -194,21 +194,21 @@ return master /** - * Transfer some stuff from this holder to a target object - * - * Arguments: - * * obj/target - Target to attempt transfer to - * * amount - amount of reagent volume to transfer - * * multiplier - multiplies amount of each reagent by this number - * * preserve_data - if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred. - * * 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/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 - */ + * Transfer some stuff from this holder to a target object + * + * Arguments: + * * obj/target - Target to attempt transfer to + * * amount - amount of reagent volume to transfer + * * multiplier - multiplies amount of each reagent by this number + * * preserve_data - if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred. + * * 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/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 + */ /datum/reagents/proc/trans_to(obj/target, amount = 1, multiplier = 1, preserve_data = TRUE, no_react = FALSE, mob/transfered_by, remove_blacklisted = FALSE, methods = NONE, show_message = TRUE, round_robin = FALSE, ignore_stomach = FALSE) var/list/cached_reagents = reagent_list if(!target || !total_volume) @@ -354,13 +354,13 @@ return amount /** - * Triggers metabolizing the reagents in this holder - * - * Arguments: - * * mob/living/carbon/C - The mob to metabolize in, if null it uses [/datum/reagents/var/my_atom] - * * can_overdose - Allows overdosing - * * liverless - Stops reagents that aren't set as [/datum/reagent/var/self_consuming] from metabolizing - */ + * Triggers metabolizing the reagents in this holder + * + * Arguments: + * * mob/living/carbon/C - The mob to metabolize in, if null it uses [/datum/reagents/var/my_atom] + * * can_overdose - Allows overdosing + * * liverless - Stops reagents that aren't set as [/datum/reagent/var/self_consuming] from metabolizing + */ /datum/reagents/proc/metabolize(mob/living/carbon/C, can_overdose = FALSE, liverless = FALSE) var/list/cached_reagents = reagent_list var/list/cached_addictions = addiction_list @@ -478,12 +478,12 @@ R.on_mob_end_metabolize(C) /** - * Calls [/datum/reagent/proc/on_move] on every reagent in this holder - * - * Arguments: - * * atom/A - passed to on_move - * * Running - passed to on_move - */ + * Calls [/datum/reagent/proc/on_move] on every reagent in this holder + * + * Arguments: + * * atom/A - passed to on_move + * * Running - passed to on_move + */ /datum/reagents/proc/conditional_update_move(atom/A, Running = 0) var/list/cached_reagents = reagent_list for(var/reagent in cached_reagents) @@ -492,11 +492,11 @@ update_total() /** - * Calls [/datum/reagent/proc/on_update] on every reagent in this holder - * - * Arguments: - * * atom/A - passed to on_update - */ + * Calls [/datum/reagent/proc/on_update] on every reagent in this holder + * + * Arguments: + * * atom/A - passed to on_update + */ /datum/reagents/proc/conditional_update(atom/A) var/list/cached_reagents = reagent_list for(var/reagent in cached_reagents) @@ -674,17 +674,17 @@ my_atom.on_reagent_change(CLEAR_REAGENTS) /** - * Applies the relevant expose_ proc for every reagent in this holder - * * [/datum/reagent/proc/expose_mob] - * * [/datum/reagent/proc/expose_turf] - * * [/datum/reagent/proc/expose_obj] - * - * Arguments - * - Atom/A: What mob/turf/object is being exposed to reagents? This is your reaction target. - * - Methods: What reaction type is the reagent itself going to call on the reaction target? Types are TOUCH, INGEST, VAPOR, PATCH, and INJECT. - * - Volume_modifier: What is the reagent volume multiplied by when exposed? Note that this is called on the volume of EVERY reagent in the base body, so factor in your Maximum_Volume if necessary! - * - Show_message: Whether to display anything to mobs when they are exposed. - */ + * Applies the relevant expose_ proc for every reagent in this holder + * * [/datum/reagent/proc/expose_mob] + * * [/datum/reagent/proc/expose_turf] + * * [/datum/reagent/proc/expose_obj] + * + * Arguments + * - Atom/A: What mob/turf/object is being exposed to reagents? This is your reaction target. + * - Methods: What reaction type is the reagent itself going to call on the reaction target? Types are TOUCH, INGEST, VAPOR, PATCH, and INJECT. + * - Volume_modifier: What is the reagent volume multiplied by when exposed? Note that this is called on the volume of EVERY reagent in the base body, so factor in your Maximum_Volume if necessary! + * - Show_message: Whether to display anything to mobs when they are exposed. + */ /datum/reagents/proc/expose(atom/A, methods = TOUCH, volume_modifier = 1, show_message = 1) if(isnull(A)) return null @@ -734,15 +734,15 @@ chem_temp = clamp(chem_temp + (J / (S * total_volume)), 2.7, 1000) /** - * Adds a reagent to this holder - * - * Arguments: - * * reagent - The reagent id to add - * * amount - Amount to add - * * list/data - Any reagent data for this reagent, used for transferring data with reagents - * * reagtemp - Temperature of this reagent, will be equalized - * * no_react - prevents reactions being triggered by this addition - */ + * Adds a reagent to this holder + * + * Arguments: + * * reagent - The reagent id to add + * * amount - Amount to add + * * list/data - Any reagent data for this reagent, used for transferring data with reagents + * * reagtemp - Temperature of this reagent, will be equalized + * * no_react - prevents reactions being triggered by this addition + */ /datum/reagents/proc/add_reagent(reagent, amount, list/data=null, reagtemp = 300, no_react = 0) if(!isnum(amount) || !amount) return FALSE @@ -956,11 +956,11 @@ Needs matabolizing takes into consideration if the chemical is matabolizing when . = locate(type) in cached_reagents /** - * Returns what this holder's reagents taste like - * - * Arguments: - * * minimum_percent - the lower the minimum percent, the more sensitive the message is. - */ + * Returns what this holder's reagents taste like + * + * Arguments: + * * minimum_percent - the lower the minimum percent, the more sensitive the message is. + */ /datum/reagents/proc/generate_taste_message(minimum_percent=15,mob/living/taster) var/list/out = list() var/list/tastes = list() //descriptor = strength @@ -1016,12 +1016,12 @@ Needs matabolizing takes into consideration if the chemical is matabolizing when /** - * Convenience proc to create a reagents holder for an atom - * - * Arguments: - * * max_vol - maximum volume of holder - * * flags - flags to pass to the holder - */ + * Convenience proc to create a reagents holder for an atom + * + * Arguments: + * * max_vol - maximum volume of holder + * * flags - flags to pass to the holder + */ /atom/proc/create_reagents(max_vol, flags) if(reagents) qdel(reagents) diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index ccc4a9d4115..627ef2a3a22 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -1,9 +1,9 @@ /** - * Machine that allows to identify and separate reagents in fitting container - * as well as to create new containers with separated reagents in it. - * - * Contains logic for both ChemMaster and CondiMaster, switched by "condi". - */ + * Machine that allows to identify and separate reagents in fitting container + * as well as to create new containers with separated reagents in it. + * + * Contains logic for both ChemMaster and CondiMaster, switched by "condi". + */ /obj/machinery/chem_master name = "ChemMaster 3000" desc = "Used to separate chemicals and distribute them in a variety of forms." @@ -151,16 +151,16 @@ replace_beaker(user) /** - * Handles process of moving input reagents containers in/from machine - * - * When called checks for previously inserted beaker and gives it to user. - * Then, if new_beaker provided, places it into src.beaker. - * Returns `boolean`. TRUE if user provided (ignoring whether threre was any beaker change) and FALSE if not. - * - * Arguments: - * * user - Mob that initialized replacement, gets previously inserted beaker if there's any - * * new_beaker - New beaker to insert. Optional - */ + * Handles process of moving input reagents containers in/from machine + * + * When called checks for previously inserted beaker and gives it to user. + * Then, if new_beaker provided, places it into src.beaker. + * Returns `boolean`. TRUE if user provided (ignoring whether threre was any beaker change) and FALSE if not. + * + * Arguments: + * * user - Mob that initialized replacement, gets previously inserted beaker if there's any + * * new_beaker - New beaker to insert. Optional + */ /obj/machinery/chem_master/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) if(!user) return FALSE @@ -451,14 +451,14 @@ AM.pixel_y = AM.base_pixel_y - 8 + (round( . / 3)*8) /** - * Translates styles data into UI compatible format - * - * Expects to receive list of availables condiment styles in its complete format, and transforms them in simplified form with enough data to get UI going. - * Returns list(list("id" = , "className" = , "title" = ),..). - * - * Arguments: - * * styles - List of styles for condiment bottles in internal format: [/obj/machinery/chem_master/proc/get_condi_styles] - */ + * Translates styles data into UI compatible format + * + * Expects to receive list of availables condiment styles in its complete format, and transforms them in simplified form with enough data to get UI going. + * Returns list(list("id" = , "className" = , "title" = ),..). + * + * Arguments: + * * styles - List of styles for condiment bottles in internal format: [/obj/machinery/chem_master/proc/get_condi_styles] + */ /obj/machinery/chem_master/proc/strip_condi_styles_to_icons(list/styles) var/list/icons = list() for (var/s in styles) @@ -473,26 +473,26 @@ return icons /** - * Defines and provides list of available condiment bottle styles - * - * Uses typelist() for styles storage after initialization. - * For fallback style must provide style with key (const) CONDIMASTER_STYLE_FALLBACK - * Returns list( - * = list( - * "icon_state" = , - * "name" = , - * "desc" = , - * ?"generate_name" = , - * ?"icon_empty" = , - * ?"fill_icon_thresholds" = , - * ?"inhand_icon_state" = , - * ?"lefthand_file" = , - * ?"righthand_file" = , - * ), - * .. - * ) - * - */ + * Defines and provides list of available condiment bottle styles + * + * Uses typelist() for styles storage after initialization. + * For fallback style must provide style with key (const) CONDIMASTER_STYLE_FALLBACK + * Returns list( + * = list( + * "icon_state" = , + * "name" = , + * "desc" = , + * ?"generate_name" = , + * ?"icon_empty" = , + * ?"fill_icon_thresholds" = , + * ?"inhand_icon_state" = , + * ?"lefthand_file" = , + * ?"righthand_file" = , + * ), + * .. + * ) + * + */ /obj/machinery/chem_master/proc/get_condi_styles() var/list/styles = typelist("condi_styles") if (!styles.len) @@ -529,12 +529,12 @@ return styles /** - * Provides condiment bottle style based on reagents. - * - * Gets style from available by key, using last part of main reagent type (eg. "rice" for /datum/reagent/consumable/rice) as key. - * If not available returns fallback style, or null if no such thing. - * Returns list that is one of condibottle styles from [/obj/machinery/chem_master/proc/get_condi_styles] - */ + * Provides condiment bottle style based on reagents. + * + * Gets style from available by key, using last part of main reagent type (eg. "rice" for /datum/reagent/consumable/rice) as key. + * If not available returns fallback style, or null if no such thing. + * Returns list that is one of condibottle styles from [/obj/machinery/chem_master/proc/get_condi_styles] + */ /obj/machinery/chem_master/proc/guess_condi_style(datum/reagents/reagents) var/list/styles = get_condi_styles() if (reagents.reagent_list.len > 0) @@ -547,16 +547,16 @@ return styles[CONDIMASTER_STYLE_FALLBACK] /** - * Applies style to condiment bottle. - * - * Applies props provided in "style" assuming that "container" is freshly created with no styles applied before. - * User specified name for bottle applied after this method during bottle creation, - * so container.name overwritten here for consistency rather than with some purpose in mind. - * - * Arguments: - * * container - condiment bottle that gets style applied to it - * * style - assoc list, must probably one from [/obj/machinery/chem_master/proc/get_condi_styles] - */ + * Applies style to condiment bottle. + * + * Applies props provided in "style" assuming that "container" is freshly created with no styles applied before. + * User specified name for bottle applied after this method during bottle creation, + * so container.name overwritten here for consistency rather than with some purpose in mind. + * + * Arguments: + * * container - condiment bottle that gets style applied to it + * * style - assoc list, must probably one from [/obj/machinery/chem_master/proc/get_condi_styles] + */ /obj/machinery/chem_master/proc/apply_condi_style(obj/item/reagent_containers/food/condiment/container, list/style) container.name = style["name"] container.desc = style["desc"] @@ -570,11 +570,11 @@ container.righthand_file = style["righthand_file"] /** - * Machine that allows to identify and separate reagents in fitting container - * as well as to create new containers with separated reagents in it. - * - * All logic related to this is in [/obj/machinery/chem_master] and condimaster specific UI enabled by "condi = TRUE" - */ + * Machine that allows to identify and separate reagents in fitting container + * as well as to create new containers with separated reagents in it. + * + * All logic related to this is in [/obj/machinery/chem_master] and condimaster specific UI enabled by "condi = TRUE" + */ /obj/machinery/chem_master/condimaster name = "CondiMaster 3000" desc = "Used to create condiments and other cooking supplies." diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 6b207982353..cbf8e1a2d11 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -211,10 +211,10 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) return /** - * New, standardized method for chemicals to affect hydroponics trays. - * Defined on a per-chem level as opposed to by the tray. - * Can affect plant's health, stats, or cause the plant to react in certain ways. - */ + * New, standardized method for chemicals to affect hydroponics trays. + * Defined on a per-chem level as opposed to by the tray. + * Can affect plant's health, stats, or cause the plant to react in certain ways. + */ /datum/reagent/proc/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) if(!mytray) return diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 83b7a01dd72..d0c03b40b56 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1465,7 +1465,7 @@ color = "#FFFFFF" // white random_color_list = list("#FFFFFF") //doesn't actually change appearance at all - /* used by crayons, can't color living things but still used for stuff like food recipes */ +/* used by crayons, can't color living things but still used for stuff like food recipes */ /datum/reagent/colorful_reagent/powder/red/crayon name = "Red Crayon Powder" diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 78e1e818909..a8e0074c0c8 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -1,10 +1,10 @@ /** - * #Chemical Reaction - * - * Datum that makes the magic between reagents happen. - * - * Chemical reactions is a class that is instantiated and stored in a global list 'chemical_reactions_list' - */ + * #Chemical Reaction + * + * Datum that makes the magic between reagents happen. + * + * Chemical reactions is a class that is instantiated and stored in a global list 'chemical_reactions_list' + */ /datum/chemical_reaction ///Results of the chemical reactions var/list/results = new/list() @@ -35,40 +35,40 @@ SSticker.OnRoundstart(CALLBACK(src,.proc/update_info)) /** - * Updates information during the roundstart - * - * This proc is mainly used by explosives but can be used anywhere else - * You should generally use the special reactions in [/datum/chemical_reaction/randomized] - * But for simple variable edits, like changing the temperature or adding/subtracting required reagents it is better to use this. - */ + * Updates information during the roundstart + * + * This proc is mainly used by explosives but can be used anywhere else + * You should generally use the special reactions in [/datum/chemical_reaction/randomized] + * But for simple variable edits, like changing the temperature or adding/subtracting required reagents it is better to use this. + */ /datum/chemical_reaction/proc/update_info() return /** - * Shit that happens on reaction - * - * Proc where the additional magic happens. - * You dont want to handle mob spawning in this since there is a dedicated proc for that.client - * Arguments: - * * holder - the datum that holds this reagent, be it a beaker or anything else - * * created_volume - volume created when this is mixed. look at 'var/list/results'. - */ + * Shit that happens on reaction + * + * Proc where the additional magic happens. + * You dont want to handle mob spawning in this since there is a dedicated proc for that.client + * Arguments: + * * holder - the datum that holds this reagent, be it a beaker or anything else + * * created_volume - volume created when this is mixed. look at 'var/list/results'. + */ /datum/chemical_reaction/proc/on_reaction(datum/reagents/holder, created_volume) return //I recommend you set the result amount to the total volume of all components. /** - * Magical mob spawning when chemicals react - * - * Your go to proc when you want to create new mobs from chemicals. please dont use on_reaction. - * Arguments: - * * holder - the datum that holds this reagent, be it a beaker or anything else - * * amount_to_spawn - how much /mob to spawn - * * reaction_name - what is the name of this reaction. be creative, the world is your oyster after all! - * * mob_class - determines if the mob will be friendly, neutral or hostile - * * mob_faction - used in determining targets, mobs from the same faction won't harm eachother. - * * random - creates random mobs. self explanatory. - */ + * Magical mob spawning when chemicals react + * + * Your go to proc when you want to create new mobs from chemicals. please dont use on_reaction. + * Arguments: + * * holder - the datum that holds this reagent, be it a beaker or anything else + * * amount_to_spawn - how much /mob to spawn + * * reaction_name - what is the name of this reaction. be creative, the world is your oyster after all! + * * mob_class - determines if the mob will be friendly, neutral or hostile + * * mob_faction - used in determining targets, mobs from the same faction won't harm eachother. + * * random - creates random mobs. self explanatory. + */ /datum/chemical_reaction/proc/chemical_mob_spawn(datum/reagents/holder, amount_to_spawn, reaction_name, mob_class = HOSTILE_SPAWN, mob_faction = "chemicalsummon", random = TRUE) if(holder?.my_atom) var/atom/A = holder.my_atom @@ -102,15 +102,15 @@ step(S, pick(NORTH,SOUTH,EAST,WEST)) /** - * Magical move-wooney that happens sometimes. - * - * Simulates a vortex that moves nearby movable atoms towards or away from the turf T. - * Range also determines the strength of the effect. High values cause nearby objects to be thrown. - * Arguments: - * * T - turf where it happens - * * setting_type - does it suck or does it blow? - * * range - range. - */ + * Magical move-wooney that happens sometimes. + * + * Simulates a vortex that moves nearby movable atoms towards or away from the turf T. + * Range also determines the strength of the effect. High values cause nearby objects to be thrown. + * Arguments: + * * T - turf where it happens + * * setting_type - does it suck or does it blow? + * * range - range. + */ /proc/goonchem_vortex(turf/T, setting_type, range) for(var/atom/movable/X in orange(range, T)) if(X.anchored) diff --git a/code/modules/recycling/disposal/eject.dm b/code/modules/recycling/disposal/eject.dm index b2f83ec3c20..febd4f5d604 100644 --- a/code/modules/recycling/disposal/eject.dm +++ b/code/modules/recycling/disposal/eject.dm @@ -1,6 +1,6 @@ /** - * General proc used to expel a holder's contents through src (for bins holder is also the src). - */ + * General proc used to expel a holder's contents through src (for bins holder is also the src). + */ /obj/proc/pipe_eject(obj/holder, direction, throw_em = TRUE, turf/target, throw_range = 5, throw_speed = 1) var/turf/src_T = get_turf(src) for(var/A in holder) diff --git a/code/modules/religion/religion_sects.dm b/code/modules/religion/religion_sects.dm index 6abd0eeabdb..324ff8b5c22 100644 --- a/code/modules/religion/religion_sects.dm +++ b/code/modules/religion/religion_sects.dm @@ -1,12 +1,12 @@ /** - * # Religious Sects - * - * Religious Sects are a way to convert the fun of having an active 'god' (admin) to code-mechanics so you aren't having to press adminwho. - * - * Sects are not meant to overwrite the fun of choosing a custom god/religion, but meant to enhance it. - * The idea is that Space Jesus (or whoever you worship) can be an evil bloodgod who takes the lifeforce out of people, a nature lover, or all things righteous and good. You decide! - * - */ + * # Religious Sects + * + * Religious Sects are a way to convert the fun of having an active 'god' (admin) to code-mechanics so you aren't having to press adminwho. + * + * Sects are not meant to overwrite the fun of choosing a custom god/religion, but meant to enhance it. + * The idea is that Space Jesus (or whoever you worship) can be an evil bloodgod who takes the lifeforce out of people, a nature lover, or all things righteous and good. You decide! + * + */ /datum/religion_sect /// Name of the religious sect var/name = "Religious Sect Base Type" diff --git a/code/modules/research/anomaly/explosive_compressor.dm b/code/modules/research/anomaly/explosive_compressor.dm index cfc9743fb05..2fa12abdf3f 100644 --- a/code/modules/research/anomaly/explosive_compressor.dm +++ b/code/modules/research/anomaly/explosive_compressor.dm @@ -1,12 +1,12 @@ #define MAX_RADIUS_REQUIRED 20 //maxcap #define MIN_RADIUS_REQUIRED 4 //1, 2, 4 /** - * # Explosive compressor machines - * - * The explosive compressor machine used in anomaly core production. - * - * Uses the standard toxins/tank explosion scaling to compress raw anomaly cores into completed ones. The required explosion radius increases as more cores of that type are created. - */ + * # Explosive compressor machines + * + * The explosive compressor machine used in anomaly core production. + * + * Uses the standard toxins/tank explosion scaling to compress raw anomaly cores into completed ones. The required explosion radius increases as more cores of that type are created. + */ /obj/machinery/research/explosive_compressor name = "implosion compressor" desc = "An advanced machine capable of implosion-compressing raw anomaly cores into finished artifacts." @@ -51,8 +51,8 @@ inserted_core = null /** - * Says (no, literally) the data of required explosive power for a certain anomaly type. - */ + * Says (no, literally) the data of required explosive power for a certain anomaly type. + */ /obj/machinery/research/explosive_compressor/proc/say_requirements(obj/item/raw_anomaly_core/C) var/required = get_required_radius(C.anomaly_type) if(isnull(required)) @@ -61,13 +61,13 @@ say("[C] requires a minimum of a theoretical radius of [required] to successfully implode into a charged anomaly core.") /** - * Determines how much explosive power (last value, so light impact theoretical radius) is required to make a certain anomaly type. - * - * Returns null if the max amount has already been reached. - * - * Arguments: - * * anomaly_type - anomaly type define - */ + * Determines how much explosive power (last value, so light impact theoretical radius) is required to make a certain anomaly type. + * + * Returns null if the max amount has already been reached. + * + * Arguments: + * * anomaly_type - anomaly type define + */ /obj/machinery/research/explosive_compressor/proc/get_required_radius(anomaly_type) var/already_made = SSresearch.created_anomaly_types[anomaly_type] var/hard_limit = SSresearch.anomaly_hard_limit_by_type[anomaly_type] @@ -109,8 +109,8 @@ do_implosion() /** - * The ""explosion"" proc. - */ + * The ""explosion"" proc. + */ /obj/machinery/research/explosive_compressor/proc/do_implosion() var/required_radius = get_required_radius(inserted_core.anomaly_type) // By now, we should be sure that we have a core, a TTV, and that the TTV has both tanks in place. diff --git a/code/modules/research/anomaly/raw_anomaly.dm b/code/modules/research/anomaly/raw_anomaly.dm index 7680e7cefc1..0648bd1912a 100644 --- a/code/modules/research/anomaly/raw_anomaly.dm +++ b/code/modules/research/anomaly/raw_anomaly.dm @@ -1,11 +1,11 @@ /** - * # Raw Anomaly Cores - * - * 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`. - */ + * # Raw Anomaly Cores + * + * 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`. + */ /obj/item/raw_anomaly_core name = "raw anomaly core" desc = "You shouldn't be seeing this. Someone screwed up." @@ -57,13 +57,13 @@ return INITIALIZE_HINT_QDEL /** - * Created the resulting core after being "made" into it. - * - * Arguments: - * * newloc - Where the new core will be created - * * del_self - should we qdel(src) - * * count_towards_limit - should we increment the amount of created cores on SSresearch - */ + * Created the resulting core after being "made" into it. + * + * Arguments: + * * newloc - Where the new core will be created + * * del_self - should we qdel(src) + * * count_towards_limit - should we increment the amount of created cores on SSresearch + */ /obj/item/raw_anomaly_core/proc/create_core(newloc, del_self = FALSE, count_towards_limit = FALSE) . = new anomaly_type(newloc) if(count_towards_limit) diff --git a/code/modules/research/nanites/nanite_programs/sensor.dm b/code/modules/research/nanites/nanite_programs/sensor.dm index 07a1f622eb6..724d2db6147 100644 --- a/code/modules/research/nanites/nanite_programs/sensor.dm +++ b/code/modules/research/nanites/nanite_programs/sensor.dm @@ -269,14 +269,14 @@ trigger_cooldown = 5 var/list/static/allowed_species = list( - "Human" = /datum/species/human, - "Lizard" = /datum/species/lizard, + "Human" = /datum/species/human, + "Lizard" = /datum/species/lizard, "Moth" = /datum/species/moth, "Ethereal" = /datum/species/ethereal, "Pod" = /datum/species/pod, "Fly" = /datum/species/fly, "Felinid" = /datum/species/human/felinid, - "Jelly" = /datum/species/jelly + "Jelly" = /datum/species/jelly, ) /datum/nanite_program/sensor/species/register_extra_settings() diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm index 8e930f9b7fc..7eef860c243 100644 --- a/code/modules/research/techweb/_techweb_node.dm +++ b/code/modules/research/techweb/_techweb_node.dm @@ -95,4 +95,4 @@ return techweb_point_display_generic(get_price(TN)) /datum/techweb_node/proc/on_research() //new proc, not currently in file - return + return diff --git a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm index 3088ddd0fee..814083c3bb5 100644 --- a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm +++ b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm @@ -54,9 +54,9 @@ Self-sustaining extracts: extract.reagents.add_reagent(secondary,amount) /obj/item/autoslime/examine(mob/user) - . = ..() - if(effect_desc) - . += "[effect_desc]" + . = ..() + if(effect_desc) + . += "[effect_desc]" //Different types. diff --git a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm index 41ce3077746..67bc795dc36 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm @@ -209,9 +209,10 @@ required_reagents = list(/datum/reagent/consumable/nutriment/protein) supplementary_reagents = list( - /datum/reagent/toxin/slimejelly = 2, - /datum/reagent/liquidgibs = 2, - /datum/reagent/consumable/enzyme = 1) + /datum/reagent/toxin/slimejelly = 2, + /datum/reagent/liquidgibs = 2, + /datum/reagent/consumable/enzyme = 1, + ) suppressive_reagents = list( /datum/reagent/consumable/frostoil = -4, @@ -227,29 +228,33 @@ required_reagents = list(/datum/reagent/consumable/nutriment/protein) supplementary_reagents = list( - /datum/reagent/consumable/nutriment/vitamin = 3, - /datum/reagent/liquidgibs = 2, - /datum/reagent/sulfur = 2) + /datum/reagent/consumable/nutriment/vitamin = 3, + /datum/reagent/liquidgibs = 2, + /datum/reagent/sulfur = 2, + ) suppressive_reagents = list( - /datum/reagent/consumable/tinlux = -6, - /datum/reagent/napalm = -4) + /datum/reagent/consumable/tinlux = -6, + /datum/reagent/napalm = -4, + ) virus_suspectibility = 0 resulting_atoms = list(/mob/living/simple_animal/hostile/blob/blobspore/independent = 2) //These are useless so we might as well spawn 2. /datum/micro_organism/cell_line/blobbernaut desc = "Blobular myocytes" required_reagents = list( - /datum/reagent/consumable/nutriment/protein, - /datum/reagent/medicine/c2/synthflesh, - /datum/reagent/sulfur) //grind flares to get this + /datum/reagent/consumable/nutriment/protein, + /datum/reagent/medicine/c2/synthflesh, + /datum/reagent/sulfur, + ) //grind flares to get this supplementary_reagents = list( - /datum/reagent/growthserum = 3, - /datum/reagent/consumable/nutriment/vitamin = 2, - /datum/reagent/liquidgibs = 2, - /datum/reagent/consumable/eggyolk = 2, - /datum/reagent/consumable/shamblers = 1) + /datum/reagent/growthserum = 3, + /datum/reagent/consumable/nutriment/vitamin = 2, + /datum/reagent/liquidgibs = 2, + /datum/reagent/consumable/eggyolk = 2, + /datum/reagent/consumable/shamblers = 1, + ) suppressive_reagents = list(/datum/reagent/consumable/tinlux = -6) @@ -259,34 +264,38 @@ /datum/micro_organism/cell_line/gelatinous_cube desc = "Cubic ooze particles" required_reagents = list( - /datum/reagent/consumable/nutriment/protein, - /datum/reagent/toxin/slimejelly, - /datum/reagent/yuck, - /datum/reagent/consumable/enzyme) //Powerful enzymes helps the cube digest prey. + /datum/reagent/consumable/nutriment/protein, + /datum/reagent/toxin/slimejelly, + /datum/reagent/yuck, + /datum/reagent/consumable/enzyme, + ) //Powerful enzymes helps the cube digest prey. supplementary_reagents = list( - /datum/reagent/water/hollowwater = 4, - /datum/reagent/consumable/corn_syrup = 3, - /datum/reagent/gold = 2, //This is why they eat so many adventurers. - /datum/reagent/consumable/nutriment/peptides = 2, - /datum/reagent/consumable/potato_juice = 1, - /datum/reagent/liquidgibs = 1, - /datum/reagent/consumable/nutriment/vitamin = 1) + /datum/reagent/water/hollowwater = 4, + /datum/reagent/consumable/corn_syrup = 3, + /datum/reagent/gold = 2, //This is why they eat so many adventurers. + /datum/reagent/consumable/nutriment/peptides = 2, + /datum/reagent/consumable/potato_juice = 1, + /datum/reagent/liquidgibs = 1, + /datum/reagent/consumable/nutriment/vitamin = 1, + ) suppressive_reagents = list( - /datum/reagent/toxin/minttoxin = -3, - /datum/reagent/consumable/frostoil = -2, - /datum/reagent/consumable/ice = -1) + /datum/reagent/toxin/minttoxin = -3, + /datum/reagent/consumable/frostoil = -2, + /datum/reagent/consumable/ice = -1, + ) virus_suspectibility = 0 resulting_atoms = list(/mob/living/simple_animal/hostile/ooze/gelatinous = 1) /datum/micro_organism/cell_line/sholean_grapes desc = "Globular ooze particles" required_reagents = list( - /datum/reagent/consumable/nutriment/protein, - /datum/reagent/toxin/slimejelly, - /datum/reagent/yuck, - /datum/reagent/consumable/vitfro) + /datum/reagent/consumable/nutriment/protein, + /datum/reagent/toxin/slimejelly, + /datum/reagent/yuck, + /datum/reagent/consumable/vitfro, + ) supplementary_reagents = list( /datum/reagent/medicine/omnizine = 4, diff --git a/code/modules/ruins/icemoonruin_code/hotsprings.dm b/code/modules/ruins/icemoonruin_code/hotsprings.dm index edd011098b5..e3c0aae9ea9 100644 --- a/code/modules/ruins/icemoonruin_code/hotsprings.dm +++ b/code/modules/ruins/icemoonruin_code/hotsprings.dm @@ -1,16 +1,16 @@ GLOBAL_LIST_EMPTY(cursed_minds) /** - * Turns whoever enters into a mob or random person - * - * If mob is chosen, turns the person into a random animal type - * If appearance is chosen, turns the person into a random human with a random species - * This changes name, and changes their DNA as well - * Random species is same as wizard swap event so people don't get killed ex: plasmamen - * Once the spring is used, it cannot be used by the same mind ever again - * After usage, teleports the user back to a random safe turf (so mobs are not killed by ice moon atmosphere) - * - */ + * Turns whoever enters into a mob or random person + * + * If mob is chosen, turns the person into a random animal type + * If appearance is chosen, turns the person into a random human with a random species + * This changes name, and changes their DNA as well + * Random species is same as wizard swap event so people don't get killed ex: plasmamen + * Once the spring is used, it cannot be used by the same mind ever again + * After usage, teleports the user back to a random safe turf (so mobs are not killed by ice moon atmosphere) + * + */ /turf/open/water/cursed_spring baseturfs = /turf/open/water/cursed_spring @@ -48,8 +48,8 @@ GLOBAL_LIST_EMPTY(cursed_minds) to_chat(L, "You blink and find yourself in [get_area_name(T)].") /** - * Deletes minds from the cursed minds list after their deletion - * - */ + * Deletes minds from the cursed minds list after their deletion + * + */ /turf/open/water/cursed_spring/proc/remove_from_cursed(datum/mind/M) GLOB.cursed_minds -= M diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 2cab8cfc6b2..9190784223c 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -78,11 +78,11 @@ return data /** - * Checks if we are allowed to launch the shuttle, for special cases - * - * Arguments: - * * user - The mob trying to initiate the launch - */ + * Checks if we are allowed to launch the shuttle, for special cases + * + * Arguments: + * * user - The mob trying to initiate the launch + */ /obj/machinery/computer/shuttle/proc/launch_check(mob/user) return TRUE diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index a6953ef278e..076dc2aa892 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -368,14 +368,14 @@ SSticker.emergency_reason = null /** - * Proc that handles checking if the emergency shuttle was successfully hijacked via being the only people present on the shuttle for the elimination hijack or highlander objective - * - * Checks for all mobs on the shuttle, checks their status, and checks if they're - * borgs or simple animals. Depending on the args, certain mobs may be ignored, - * and the presence of other antags may or may not invalidate a hijack. - * Args: - * filter_by_human, default TRUE, tells the proc that only humans should block a hijack. Borgs and animals are ignored and will not block if this is TRUE. - * solo_hijack, default FALSE, tells the proc to fail with multiple hijackers, such as for Highlander mode. + * Proc that handles checking if the emergency shuttle was successfully hijacked via being the only people present on the shuttle for the elimination hijack or highlander objective + * + * Checks for all mobs on the shuttle, checks their status, and checks if they're + * borgs or simple animals. Depending on the args, certain mobs may be ignored, + * and the presence of other antags may or may not invalidate a hijack. + * Args: + * filter_by_human, default TRUE, tells the proc that only humans should block a hijack. Borgs and animals are ignored and will not block if this is TRUE. + * solo_hijack, default FALSE, tells the proc to fail with multiple hijackers, such as for Highlander mode. */ /obj/docking_port/mobile/emergency/proc/elimination_hijack(filter_by_human = TRUE, solo_hijack = FALSE) var/has_people = FALSE diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 102a4888288..eedeaf6471d 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -798,8 +798,8 @@ return "00:00" /** - * Gets shuttle location status in a form of string for tgui interfaces - */ + * Gets shuttle location status in a form of string for tgui interfaces + */ /obj/docking_port/mobile/proc/get_status_text_tgui() var/obj/docking_port/stationary/dockedAt = get_docked() var/docked_at = dockedAt?.name || "Unknown" diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 30b89eaa860..cc90362af41 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -287,13 +287,13 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th return /** - * can_target: Checks if we are allowed to cast the spell on a target. - * - * Arguments: - * * target The atom that is being targeted by the spell. - * * user The mob using the spell. - * * silent If the checks should not give any feedback messages. - */ + * can_target: Checks if we are allowed to cast the spell on a target. + * + * Arguments: + * * target The atom that is being targeted by the spell. + * * user The mob using the spell. + * * silent If the checks should not give any feedback messages. + */ /obj/effect/proc_holder/spell/proc/can_target(atom/target, mob/user, silent = FALSE) return TRUE diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index 7062334c272..7c08b318ad1 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -217,11 +217,11 @@ target.adjust_bodytemperature(-200) /** - * cure_blidness: Cures Abyssal Gaze blindness from the target - * - * Arguments: - * * target The mob that is being cured of the blindness. - */ + * cure_blidness: Cures Abyssal Gaze blindness from the target + * + * Arguments: + * * target The mob that is being cured of the blindness. + */ /obj/effect/proc_holder/spell/pointed/abyssal_gaze/proc/cure_blindness(mob/target) if(isliving(target)) var/mob/living/L = target diff --git a/code/modules/spells/spell_types/pointed/pointed.dm b/code/modules/spells/spell_types/pointed/pointed.dm index cb212c384c7..2f2a6c41a8d 100644 --- a/code/modules/spells/spell_types/pointed/pointed.dm +++ b/code/modules/spells/spell_types/pointed/pointed.dm @@ -39,20 +39,20 @@ on_activation(user) /** - * on_activation: What happens upon pointed spell activation. - * - * Arguments: - * * user The mob interacting owning the spell. - */ + * on_activation: What happens upon pointed spell activation. + * + * Arguments: + * * user The mob interacting owning the spell. + */ /obj/effect/proc_holder/spell/pointed/proc/on_activation(mob/user) return /** - * on_activation: What happens upon pointed spell deactivation. - * - * Arguments: - * * user The mob interacting owning the spell. - */ + * on_activation: What happens upon pointed spell deactivation. + * + * Arguments: + * * user The mob interacting owning the spell. + */ /obj/effect/proc_holder/spell/pointed/proc/on_deactivation(mob/user) return @@ -84,13 +84,13 @@ return TRUE // Do not do any underlying actions after the spell cast /** - * intercept_check: Specific spell checks for InterceptClickOn() targets. - * - * Arguments: - * * user The mob using the ranged spell via intercept. - * * target The atom that is being targeted by the spell via intercept. - * * silent If the checks should produce not any feedback messages for the user. - */ + * intercept_check: Specific spell checks for InterceptClickOn() targets. + * + * Arguments: + * * user The mob using the ranged spell via intercept. + * * target The atom that is being targeted by the spell via intercept. + * * silent If the checks should produce not any feedback messages for the user. + */ /obj/effect/proc_holder/spell/pointed/proc/intercept_check(mob/user, atom/target, silent = FALSE) if(!self_castable && target == user) if(!silent) diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index 4d87f487519..3afa2fb88bf 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -77,11 +77,11 @@ return /** - * check_menu: Checks if we are allowed to interact with a radial menu - * - * Arguments: - * * user The mob interacting with a menu - */ + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ /obj/effect/proc_holder/spell/targeted/shapeshift/proc/check_menu(mob/user) if(!istype(user)) return FALSE diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index e1a8f3996f7..fc15e0dc099 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -7,10 +7,10 @@ /datum/station_goal/bluespace_cannon/get_report() return {"Our military presence is inadequate in your sector. - We need you to construct BSA-[rand(1,99)] Artillery position aboard your station. + We need you to construct BSA-[rand(1,99)] Artillery position aboard your station. - Base parts are available for shipping via cargo. - -Nanotrasen Naval Command"} + Base parts are available for shipping via cargo. + -Nanotrasen Naval Command"} /datum/station_goal/bluespace_cannon/on_report() //Unlock BSA parts diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index b71ba6e4705..410e10bc7e8 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -33,14 +33,14 @@ /datum/station_goal/dna_vault/get_report() return {"Our long term prediction systems indicate a 99% chance of system-wide cataclysm in the near future. - We need you to construct a DNA Vault aboard your station. + We need you to construct a DNA Vault aboard your station. - The DNA Vault needs to contain samples of: - [animal_count] unique animal data - [plant_count] unique non-standard plant data - [human_count] unique sapient humanoid DNA data + The DNA Vault needs to contain samples of: + [animal_count] unique animal data + [plant_count] unique non-standard plant data + [human_count] unique sapient humanoid DNA data - Base vault parts are available for shipping via cargo."} + Base vault parts are available for shipping via cargo."} /datum/station_goal/dna_vault/on_report() diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 940f4c6dcad..11ad4339f96 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -7,10 +7,10 @@ /datum/station_goal/station_shield/get_report() return {"The station is located in a zone full of space debris. - We have a prototype shielding system you must deploy to reduce collision-related accidents. + We have a prototype shielding system you must deploy to reduce collision-related accidents. - You can order the satellites and control systems at cargo. - "} + You can order the satellites and control systems at cargo. + "} /datum/station_goal/station_shield/on_report() diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index aba59b705b8..28258cfb3a3 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -363,17 +363,17 @@ check_wounding(wounding_type, phantom_wounding_dmg, wound_bonus, bare_wound_bonus) /** - * 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_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: - * * woundtype- Either WOUND_BLUNT, WOUND_SLASH, WOUND_PIERCE, or WOUND_BURN based on the attack type. - * * damage- How much damage is tied to this attack, since wounding potential scales with damage in an attack (see: WOUND_DAMAGE_EXPONENT) - * * wound_bonus- The wound_bonus of an attack - * * bare_wound_bonus- The bare_wound_bonus of an attack - */ + * 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_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: + * * woundtype- Either WOUND_BLUNT, WOUND_SLASH, WOUND_PIERCE, or WOUND_BURN based on the attack type. + * * damage- How much damage is tied to this attack, since wounding potential scales with damage in an attack (see: WOUND_DAMAGE_EXPONENT) + * * wound_bonus- The wound_bonus of an attack + * * bare_wound_bonus- The bare_wound_bonus of an attack + */ /obj/item/bodypart/proc/check_wounding(woundtype, damage, wound_bonus, bare_wound_bonus) // note that these are fed into an exponent, so these are magnified if(HAS_TRAIT(owner, TRAIT_EASILY_WOUNDED)) @@ -445,15 +445,15 @@ new_wound.apply_wound(src, smited = smited) /** - * check_wounding_mods() is where we handle the various modifiers of a wound roll - * - * A short list of things we consider: any armor a human target may be wearing, and if they have no wound armor on the limb, if we have a bare_wound_bonus to apply, plus the plain wound_bonus - * We also flick through all of the wounds we currently have on this limb and add their threshold penalties, so that having lots of bad wounds makes you more liable to get hurt worse - * Lastly, we add the inherent wound_resistance variable the bodypart has (heads and chests are slightly harder to wound), and a small bonus if the limb is already disabled - * - * Arguments: - * * It's the same ones on [/obj/item/bodypart/proc/receive_damage] - */ + * check_wounding_mods() is where we handle the various modifiers of a wound roll + * + * A short list of things we consider: any armor a human target may be wearing, and if they have no wound armor on the limb, if we have a bare_wound_bonus to apply, plus the plain wound_bonus + * We also flick through all of the wounds we currently have on this limb and add their threshold penalties, so that having lots of bad wounds makes you more liable to get hurt worse + * Lastly, we add the inherent wound_resistance variable the bodypart has (heads and chests are slightly harder to wound), and a small bonus if the limb is already disabled + * + * Arguments: + * * It's the same ones on [/obj/item/bodypart/proc/receive_damage] + */ /obj/item/bodypart/proc/check_woundings_mods(wounding_type, damage, wound_bonus, bare_wound_bonus) var/armor_ablation = 0 var/injury_mod = 0 @@ -892,13 +892,13 @@ return i /** - * update_wounds() is called whenever a wound is gained or lost on this bodypart, as well as if there's a change of some kind on a bone wound possibly changing disabled status - * - * Covers tabulating the damage multipliers we have from wounds (burn specifically), as well as deleting our gauze wrapping if we don't have any wounds that can use bandaging - * - * Arguments: - * * replaced- If true, this is being called from the remove_wound() of a wound that's being replaced, so the bandage that already existed is still relevant, but the new wound hasn't been added yet - */ + * update_wounds() is called whenever a wound is gained or lost on this bodypart, as well as if there's a change of some kind on a bone wound possibly changing disabled status + * + * Covers tabulating the damage multipliers we have from wounds (burn specifically), as well as deleting our gauze wrapping if we don't have any wounds that can use bandaging + * + * Arguments: + * * replaced- If true, this is being called from the remove_wound() of a wound that's being replaced, so the bandage that already existed is still relevant, but the new wound hasn't been added yet + */ /obj/item/bodypart/proc/update_wounds(replaced = FALSE) var/dam_mul = 1 //initial(wound_damage_multiplier) @@ -944,16 +944,16 @@ return bleed_rate /** - * apply_gauze() is used to- well, apply gauze to a bodypart - * - * As of the Wounds 2 PR, all bleeding is now bodypart based rather than the old bleedstacks system, and 90% of standard bleeding comes from flesh wounds (the exception is embedded weapons). - * The same way bleeding is totaled up by bodyparts, gauze now applies to all wounds on the same part. Thus, having a slash wound, a pierce wound, and a broken bone wound would have the gauze - * applying blood staunching to the first two wounds, while also acting as a sling for the third one. Once enough blood has been absorbed or all wounds with the ACCEPTS_GAUZE flag have been cleared, - * the gauze falls off. - * - * Arguments: - * * gauze- Just the gauze stack we're taking a sheet from to apply here - */ + * apply_gauze() is used to- well, apply gauze to a bodypart + * + * As of the Wounds 2 PR, all bleeding is now bodypart based rather than the old bleedstacks system, and 90% of standard bleeding comes from flesh wounds (the exception is embedded weapons). + * The same way bleeding is totaled up by bodyparts, gauze now applies to all wounds on the same part. Thus, having a slash wound, a pierce wound, and a broken bone wound would have the gauze + * applying blood staunching to the first two wounds, while also acting as a sling for the third one. Once enough blood has been absorbed or all wounds with the ACCEPTS_GAUZE flag have been cleared, + * the gauze falls off. + * + * Arguments: + * * gauze- Just the gauze stack we're taking a sheet from to apply here + */ /obj/item/bodypart/proc/apply_gauze(obj/item/stack/gauze) if(!istype(gauze) || !gauze.absorption_capacity) return @@ -967,13 +967,13 @@ SEND_SIGNAL(src, COMSIG_BODYPART_GAUZED, gauze) /** - * seep_gauze() is for when a gauze wrapping absorbs blood or pus from wounds, lowering its absorption capacity. - * - * The passed amount of seepage is deducted from the bandage's absorption capacity, and if we reach a negative absorption capacity, the bandages fall off and we're left with nothing. - * - * Arguments: - * * seep_amt - How much absorption capacity we're removing from our current bandages (think, how much blood or pus are we soaking up this tick?) - */ + * seep_gauze() is for when a gauze wrapping absorbs blood or pus from wounds, lowering its absorption capacity. + * + * The passed amount of seepage is deducted from the bandage's absorption capacity, and if we reach a negative absorption capacity, the bandages fall off and we're left with nothing. + * + * Arguments: + * * seep_amt - How much absorption capacity we're removing from our current bandages (think, how much blood or pus are we soaking up this tick?) + */ /obj/item/bodypart/proc/seep_gauze(seep_amt = 0) if(!current_gauze) return diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index b8bf9ecb600..fb031ae68d0 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -149,13 +149,13 @@ forceMove(Tsec) /** - * get_mangled_state() is relevant for flesh and bone bodyparts, and returns whether this bodypart has mangled skin, mangled bone, or both (or neither i guess) - * - * Dismemberment for flesh and bone requires the victim to have the skin on their bodypart destroyed (either a critical cut or piercing wound), and at least a hairline fracture - * (severe bone), at which point we can start rolling for dismembering. The attack must also deal at least 10 damage, and must be a brute attack of some kind (sorry for now, cakehat, maybe later) - * - * Returns: BODYPART_MANGLED_NONE if we're fine, BODYPART_MANGLED_FLESH if our skin is broken, BODYPART_MANGLED_BONE if our bone is broken, or BODYPART_MANGLED_BOTH if both are broken and we're up for dismembering - */ + * get_mangled_state() is relevant for flesh and bone bodyparts, and returns whether this bodypart has mangled skin, mangled bone, or both (or neither i guess) + * + * Dismemberment for flesh and bone requires the victim to have the skin on their bodypart destroyed (either a critical cut or piercing wound), and at least a hairline fracture + * (severe bone), at which point we can start rolling for dismembering. The attack must also deal at least 10 damage, and must be a brute attack of some kind (sorry for now, cakehat, maybe later) + * + * Returns: BODYPART_MANGLED_NONE if we're fine, BODYPART_MANGLED_FLESH if our skin is broken, BODYPART_MANGLED_BONE if our bone is broken, or BODYPART_MANGLED_BOTH if both are broken and we're up for dismembering + */ /obj/item/bodypart/proc/get_mangled_state() . = BODYPART_MANGLED_NONE @@ -167,18 +167,18 @@ . |= BODYPART_MANGLED_FLESH /** - * try_dismember() is used, once we've confirmed that a flesh and bone bodypart has both the skin and bone mangled, to actually roll for it - * - * Mangling is described in the above proc, [/obj/item/bodypart/proc/get_mangled_state]. This simply makes the roll for whether we actually dismember or not - * using how damaged the limb already is, and how much damage this blow was for. If we have a critical bone wound instead of just a severe, we add +10% to the roll. - * Lastly, we choose which kind of dismember we want based on the wounding type we hit with. Note we don't care about all the normal mods or armor for this - * - * Arguments: - * * wounding_type: Either WOUND_BLUNT, WOUND_SLASH, or WOUND_PIERCE, basically only matters for the dismember message - * * wounding_dmg: The damage of the strike that prompted this roll, higher damage = higher chance - * * wound_bonus: Not actually used right now, but maybe someday - * * bare_wound_bonus: ditto above - */ + * try_dismember() is used, once we've confirmed that a flesh and bone bodypart has both the skin and bone mangled, to actually roll for it + * + * Mangling is described in the above proc, [/obj/item/bodypart/proc/get_mangled_state]. This simply makes the roll for whether we actually dismember or not + * using how damaged the limb already is, and how much damage this blow was for. If we have a critical bone wound instead of just a severe, we add +10% to the roll. + * Lastly, we choose which kind of dismember we want based on the wounding type we hit with. Note we don't care about all the normal mods or armor for this + * + * Arguments: + * * wounding_type: Either WOUND_BLUNT, WOUND_SLASH, or WOUND_PIERCE, basically only matters for the dismember message + * * wounding_dmg: The damage of the strike that prompted this roll, higher damage = higher chance + * * wound_bonus: Not actually used right now, but maybe someday + * * bare_wound_bonus: ditto above + */ /obj/item/bodypart/proc/try_dismember(wounding_type, wounding_dmg, wound_bonus, bare_wound_bonus) if(wounding_dmg < DISMEMBER_MINIMUM_DAMAGE) return diff --git a/code/modules/surgery/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index 0502ff4cca2..4108a3b3d6c 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -1,7 +1,9 @@ /datum/surgery/coronary_bypass name = "Coronary Bypass" - steps = list(/datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/clamp_bleeders, - /datum/surgery_step/incise_heart, /datum/surgery_step/coronary_bypass, /datum/surgery_step/close) + steps = list( + /datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/clamp_bleeders, + /datum/surgery_step/incise_heart, /datum/surgery_step/coronary_bypass, /datum/surgery_step/close, + ) possible_locs = list(BODY_ZONE_CHEST) /datum/surgery/coronary_bypass/can_start(mob/user, mob/living/carbon/target) diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm index a3a97126601..1f0602e5ed1 100644 --- a/code/modules/surgery/lobectomy.dm +++ b/code/modules/surgery/lobectomy.dm @@ -1,7 +1,9 @@ /datum/surgery/lobectomy name = "Lobectomy" //not to be confused with lobotomy - steps = list(/datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/clamp_bleeders, - /datum/surgery_step/lobectomy, /datum/surgery_step/close) + steps = list( + /datum/surgery_step/incise, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/clamp_bleeders, + /datum/surgery_step/lobectomy, /datum/surgery_step/close, + ) possible_locs = list(BODY_ZONE_CHEST) /datum/surgery/lobectomy/can_start(mob/user, mob/living/carbon/target) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 7c0cbf3176b..ac67dd4d18b 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -78,11 +78,11 @@ Retract() /** - * Called when the mob uses the "drop item" hotkey - * - * Items inside toolset implants have TRAIT_NODROP, but we can still use the drop item hotkey as a - * quick way to store implant items. In this case, we check to make sure the user has the correct arm - * selected, and that the item is actually owned by us, and then we'll hand off the rest to Retract() + * Called when the mob uses the "drop item" hotkey + * + * Items inside toolset implants have TRAIT_NODROP, but we can still use the drop item hotkey as a + * quick way to store implant items. In this case, we check to make sure the user has the correct arm + * selected, and that the item is actually owned by us, and then we'll hand off the rest to Retract() **/ /obj/item/organ/cyberimp/arm/proc/dropkey(mob/living/carbon/host) if(!host) diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index 631f9616c49..511e8012307 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -3,7 +3,7 @@ /obj/item/autosurgeon name = "autosurgeon" desc = "A device that automatically inserts an implant, skillchip or organ into the user without the hassle of extensive surgery. \ - It has a screwdriver slot for removing accidentally added items." + It has a screwdriver slot for removing accidentally added items." icon = 'icons/obj/device.dmi' icon_state = "autoimplanter" inhand_icon_state = "nothing" @@ -17,7 +17,7 @@ /obj/item/autosurgeon/organ name = "implant autosurgeon" desc = "A device that automatically inserts an implant or organ into the user without the hassle of extensive surgery. \ - It has a slot to insert implants or organs and a screwdriver slot for removing accidentally added items." + It has a slot to insert implants or organs and a screwdriver slot for removing accidentally added items." var/organ_type = /obj/item/organ var/starting_organ @@ -114,7 +114,7 @@ /obj/item/autosurgeon/skillchip name = "skillchip autosurgeon" desc = "A device that automatically inserts a skillchip into the user's brain without the hassle of extensive surgery. \ - It has a slot to insert a skillchip and a screwdriver slot for removing accidentally added items." + It has a slot to insert a skillchip and a screwdriver slot for removing accidentally added items." var/skillchip_type = /obj/item/skillchip var/starting_skillchip var/obj/item/skillchip/stored_skillchip diff --git a/code/modules/surgery/organs/helpers.dm b/code/modules/surgery/organs/helpers.dm index bc1d9dff4e1..77346622b50 100644 --- a/code/modules/surgery/organs/helpers.dm +++ b/code/modules/surgery/organs/helpers.dm @@ -1,27 +1,27 @@ /** - * Get the organ object from the mob matching the passed in typepath - * - * Arguments: - * * typepath The typepath of the organ to get - */ + * Get the organ object from the mob matching the passed in typepath + * + * Arguments: + * * typepath The typepath of the organ to get + */ /mob/proc/getorgan(typepath) return /** - * Get organ objects by zone - * - * This will return a list of all the organs that are relevant to the zone that is passedin - * - * Arguments: - * * zone [a BODY_ZONE_X define](https://github.com/tgstation/tgstation/blob/master/code/__DEFINES/combat.dm#L187-L200) - */ + * Get organ objects by zone + * + * This will return a list of all the organs that are relevant to the zone that is passedin + * + * Arguments: + * * zone [a BODY_ZONE_X define](https://github.com/tgstation/tgstation/blob/master/code/__DEFINES/combat.dm#L187-L200) + */ /mob/proc/getorganszone(zone) return /** - * Returns a list of all organs in specified slot - * - * Arguments: - * * slot Slot to get the organs from - */ + * Returns a list of all organs in specified slot + * + * Arguments: + * * slot Slot to get the organs from + */ /mob/proc/getorganslot(slot) return diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 559c10f997a..8a8ba91c184 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -156,11 +156,11 @@ applyOrganDamage(d - damage) /** check_damage_thresholds - * input: M (a mob, the owner of the organ we call the proc on) - * output: returns a message should get displayed. - * description: By checking our current damage against our previous damage, we can decide whether we've passed an organ threshold. - * If we have, send the corresponding threshold message to the owner, if such a message exists. - */ + * input: M (a mob, the owner of the organ we call the proc on) + * output: returns a message should get displayed. + * description: By checking our current damage against our previous damage, we can decide whether we've passed an organ threshold. + * If we have, send the corresponding threshold message to the owner, if such a message exists. + */ /obj/item/organ/proc/check_damage_thresholds(M) if(damage == prev_damage) return @@ -226,13 +226,13 @@ /** get_availability - * returns whether the species should innately have this organ. - * - * regenerate organs works with generic organs, so we need to get whether it can accept certain organs just by what this returns. - * This is set to return true or false, depending on if a species has a specific organless trait. stomach for example checks if the species has NOSTOMACH and return based on that. - * Arguments: - * S - species, needed to return whether the species has an organ specific trait - */ + * returns whether the species should innately have this organ. + * + * regenerate organs works with generic organs, so we need to get whether it can accept certain organs just by what this returns. + * This is set to return true or false, depending on if a species has a specific organless trait. stomach for example checks if the species has NOSTOMACH and return based on that. + * Arguments: + * S - species, needed to return whether the species has an organ specific trait + */ /obj/item/organ/proc/get_availability(datum/species/S) return TRUE diff --git a/code/modules/swarmers/swarmer.dm b/code/modules/swarmers/swarmer.dm index 1f93f2d5a48..043283c0b1f 100644 --- a/code/modules/swarmers/swarmer.dm +++ b/code/modules/swarmers/swarmer.dm @@ -1,18 +1,18 @@ /** - * # Swarmer - * - * Tiny machines made by an ancient civilization, they seek only to consume materials and replicate. - * - * Tiny robots which, while not lethal, seek to destroy station components in order to recycle them into more swarmers. - * Sentient player swarmers spawn from a beacon spawned in maintenance and they can spawn melee swarmers to protect them. - * Swarmers have the following abilities: - * - Can melee targets to deal stamina damage. Stuns cyborgs. - * - Can teleport friend and foe alike away using ctrl + click. Applies binds to carbons, preventing them from immediate retaliation - * - Can shoot lasers which deal stamina damage to carbons and direct damage to simple mobs - * - Can self repair for free, completely healing themselves - * - Can construct traps which stun targets, and walls which block non-swarmer entites and projectiles - * - Can create swarmer drones, which lack the above abilities sans melee stunning targets. A swarmer can order its drones around by middle-clicking a tile. - */ + * # Swarmer + * + * Tiny machines made by an ancient civilization, they seek only to consume materials and replicate. + * + * Tiny robots which, while not lethal, seek to destroy station components in order to recycle them into more swarmers. + * Sentient player swarmers spawn from a beacon spawned in maintenance and they can spawn melee swarmers to protect them. + * Swarmers have the following abilities: + * - Can melee targets to deal stamina damage. Stuns cyborgs. + * - Can teleport friend and foe alike away using ctrl + click. Applies binds to carbons, preventing them from immediate retaliation + * - Can shoot lasers which deal stamina damage to carbons and direct damage to simple mobs + * - Can self repair for free, completely healing themselves + * - Can construct traps which stun targets, and walls which block non-swarmer entites and projectiles + * - Can create swarmer drones, which lack the above abilities sans melee stunning targets. A swarmer can order its drones around by middle-clicking a tile. + */ /mob/living/simple_animal/hostile/swarmer name = "swarmer" @@ -145,13 +145,13 @@ ////END CTRL CLICK FOR SWARMERS//// /** - * Called when a swarmer creates a structure or drone - * - * Proc called whenever a swarmer creates a structure or drone - * Arguments: - * * fabrication_object - The atom to create - * * fabrication_cost - How many resources it costs for a swarmer to create the object - */ + * Called when a swarmer creates a structure or drone + * + * Proc called whenever a swarmer creates a structure or drone + * Arguments: + * * fabrication_object - The atom to create + * * fabrication_cost - How many resources it costs for a swarmer to create the object + */ /mob/living/simple_animal/hostile/swarmer/proc/Fabricate(atom/fabrication_object,fabrication_cost = 0) if(!isturf(loc)) to_chat(src, "This is not a suitable location for fabrication. We need more space.") @@ -163,12 +163,12 @@ return new fabrication_object(drop_location()) /** - * Called when a swarmer attempts to consume an object - * - * Proc which determines interaction between a swarmer and whatever it is attempting to consume - * Arguments: - * * target - The material or object the swarmer is attempting to consume - */ + * Called when a swarmer attempts to consume an object + * + * Proc which determines interaction between a swarmer and whatever it is attempting to consume + * Arguments: + * * target - The material or object the swarmer is attempting to consume + */ /mob/living/simple_animal/hostile/swarmer/proc/Integrate(obj/target) var/resource_gain = target.integrate_amount() if(resources + resource_gain > max_resources) @@ -193,12 +193,12 @@ return TRUE /** - * Called when a swarmer attempts to destroy a structure - * - * Proc which determines interaction between a swarmer and a structure it is destroying - * Arguments: - * * target - The material or object the swarmer is attempting to destroy - */ + * Called when a swarmer attempts to destroy a structure + * + * Proc which determines interaction between a swarmer and a structure it is destroying + * Arguments: + * * target - The material or object the swarmer is attempting to destroy + */ /mob/living/simple_animal/hostile/swarmer/proc/dis_integrate(atom/movable/target) new /obj/effect/temp_visual/swarmer/disintegration(get_turf(target)) do_attack_animation(target) @@ -206,12 +206,12 @@ SSexplosions.low_mov_atom += target /** - * Called when a swarmer attempts to teleport a living entity away - * - * Proc which finds a safe location to teleport a living entity to when a swarmer teleports it away. Also energy handcuffs carbons. - * Arguments: - * * target - The entity the swarmer is trying to teleport away - */ + * Called when a swarmer attempts to teleport a living entity away + * + * Proc which finds a safe location to teleport a living entity to when a swarmer teleports it away. Also energy handcuffs carbons. + * Arguments: + * * target - The entity the swarmer is trying to teleport away + */ /mob/living/simple_animal/hostile/swarmer/proc/prepare_target(mob/living/target) if(target == src) return @@ -254,12 +254,12 @@ return ..() /** - * Called when a swarmer attempts to disassemble a machine - * - * Proc called when a swarmer attempts to disassemble a machine. Destroys the machine, and gives the swarmer metal. - * Arguments: - * * target - The machine the swarmer is attempting to disassemble - */ + * Called when a swarmer attempts to disassemble a machine + * + * Proc called when a swarmer attempts to disassemble a machine. Destroys the machine, and gives the swarmer metal. + * Arguments: + * * target - The machine the swarmer is attempting to disassemble + */ /mob/living/simple_animal/hostile/swarmer/proc/dismantle_machine(obj/machinery/target) do_attack_animation(target) to_chat(src, "We begin to dismantle this machine. We will need to be uninterrupted.") @@ -286,10 +286,10 @@ qdel(target) /** - * Called when a swarmer attempts to create a trap - * - * Proc used to allow a swarmer to create a trap. Checks if a trap is on the tile, then if the swarmer can afford, and then places the trap. - */ + * Called when a swarmer attempts to create a trap + * + * Proc used to allow a swarmer to create a trap. Checks if a trap is on the tile, then if the swarmer can afford, and then places the trap. + */ /mob/living/simple_animal/hostile/swarmer/proc/create_trap() set name = "Create trap" set category = "Swarmer" @@ -303,10 +303,10 @@ Fabricate(/obj/structure/swarmer/trap, 4) /** - * Called when a swarmer attempts to create a barricade - * - * Proc used to allow a swarmer to create a barricade. Checks if a barricade is on the tile, then if the swarmer can afford it, and then will attempt to create a barricade after a second delay. - */ + * Called when a swarmer attempts to create a barricade + * + * Proc used to allow a swarmer to create a barricade. Checks if a barricade is on the tile, then if the swarmer can afford it, and then will attempt to create a barricade after a second delay. + */ /mob/living/simple_animal/hostile/swarmer/proc/create_barricade() set name = "Create barricade" set category = "Swarmer" @@ -322,10 +322,10 @@ Fabricate(/obj/structure/swarmer/blockade, 4) /** - * Called when a swarmer attempts to create a drone - * - * Proc used to allow a swarmer to create a drone. Checks if the swarmer can afford the drone, then creates it after 5 seconds, and also registers it to the creating swarmer so it can command it - */ + * Called when a swarmer attempts to create a drone + * + * Proc used to allow a swarmer to create a drone. Checks if the swarmer can afford the drone, then creates it after 5 seconds, and also registers it to the creating swarmer so it can command it + */ /mob/living/simple_animal/hostile/swarmer/proc/create_swarmer() set name = "Replicate" set category = "Swarmer" @@ -347,18 +347,18 @@ playsound(loc,'sound/items/poster_being_created.ogg', 20, TRUE, -1) /** - * Used to determine what type of swarmer a swarmer should create - * - * Returns the type of the swarmer to be created - */ + * Used to determine what type of swarmer a swarmer should create + * + * Returns the type of the swarmer to be created + */ /mob/living/simple_animal/hostile/swarmer/proc/swarmer_type_to_create() return /mob/living/simple_animal/hostile/swarmer/melee /** - * Called when a swarmer attempts to repair itself - * - * Proc used to allow a swarmer self-repair. If the swarmer does not move after a period of time, then it will heal fully - */ + * Called when a swarmer attempts to repair itself + * + * Proc used to allow a swarmer self-repair. If the swarmer does not move after a period of time, then it will heal fully + */ /mob/living/simple_animal/hostile/swarmer/proc/repair_self() if(!isturf(loc)) return @@ -369,10 +369,10 @@ to_chat(src, "We successfully repaired ourselves.") /** - * Called when a swarmer toggles its light - * - * Proc used to allow a swarmer to toggle its light on and off. If a swarmer has any drones, change their light settings to match their master's. - */ + * Called when a swarmer toggles its light + * + * Proc used to allow a swarmer to toggle its light on and off. If a swarmer has any drones, change their light settings to match their master's. + */ /mob/living/simple_animal/hostile/swarmer/proc/toggle_light() if(swarmer_flags & SWARMER_LIGHT_ON) swarmer_flags = ~SWARMER_LIGHT_ON @@ -395,12 +395,12 @@ /** - * Proc which is used for swarmer comms - * - * Proc called which sends a message to all other swarmers. - * Arugments: - * * msg - The message the swarmer is sending, gotten from ContactSwarmers() - */ + * Proc which is used for swarmer comms + * + * Proc called which sends a message to all other swarmers. + * Arugments: + * * msg - The message the swarmer is sending, gotten from ContactSwarmers() + */ /mob/living/simple_animal/hostile/swarmer/proc/swarmer_chat(msg) var/rendered = "Swarm communication - [src] [say_quote(msg)]" for(var/i in GLOB.mob_list) @@ -412,10 +412,10 @@ to_chat(listener, "[link] [rendered]") /** - * Proc which is used for inputting a swarmer message - * - * Proc which is used for a swarmer to input a message on a pop-up box, then attempt to send that message to the other swarmers - */ + * Proc which is used for inputting a swarmer message + * + * Proc which is used for a swarmer to input a message on a pop-up box, then attempt to send that message to the other swarmers + */ /mob/living/simple_animal/hostile/swarmer/proc/contact_swarmers() var/message = stripped_input(src, "Announce to other swarmers", "Swarmer contact") // TODO get swarmers their own colour rather than just boldtext @@ -430,13 +430,13 @@ /** - * Removes a drone from the swarmer's list. - * - * Removes the drone from our list. - * Called specifically when a drone is about to be destroyed, so we don't have any null references. - * Arguments: - * * mob/drone - The drone to be removed from the list. - */ + * Removes a drone from the swarmer's list. + * + * Removes the drone from our list. + * Called specifically when a drone is about to be destroyed, so we don't have any null references. + * Arguments: + * * mob/drone - The drone to be removed from the list. + */ /mob/living/simple_animal/hostile/swarmer/proc/remove_drone(mob/drone, force) SIGNAL_HANDLER @@ -444,10 +444,10 @@ dronelist -= drone /** - * # Swarmer Drone - * - * Melee subtype of swarmers, always AI-controlled under normal circumstances. Cannot fire projectiles, but does double stamina damage on melee - */ + * # Swarmer Drone + * + * Melee subtype of swarmers, always AI-controlled under normal circumstances. Cannot fire projectiles, but does double stamina damage on melee + */ /mob/living/simple_animal/hostile/swarmer/melee icon_state = "swarmer_melee" icon_living = "swarmer_melee" diff --git a/code/modules/swarmers/swarmer_act.dm b/code/modules/swarmers/swarmer_act.dm index 350f24e2679..0c73a66da4b 100644 --- a/code/modules/swarmers/swarmer_act.dm +++ b/code/modules/swarmers/swarmer_act.dm @@ -1,10 +1,10 @@ /** - * Determines what happens to an atom when a swarmer interacts with it - * - * Determines behavior upon being interacted on by a swarmer. - * Arguments: - * * S - A reference to the swarmer doing the interaction - */ + * Determines what happens to an atom when a swarmer interacts with it + * + * Determines behavior upon being interacted on by a swarmer. + * Arguments: + * * S - A reference to the swarmer doing the interaction + */ #define DANGEROUS_DELTA_P 250 //Value in kPa where swarmers arent allowed to break a wall or window with this difference in pressure. ///Finds the greatest difference in pressure across a turf, only considers open turfs. @@ -48,8 +48,8 @@ return actor.Integrate(src) /** - * Return used to determine how many resources a swarmer gains when consuming an object - */ + * Return used to determine how many resources a swarmer gains when consuming an object + */ /obj/proc/integrate_amount() return 0 diff --git a/code/modules/swarmers/swarmer_objs.dm b/code/modules/swarmers/swarmer_objs.dm index a41abcf681a..46bdf5d3562 100644 --- a/code/modules/swarmers/swarmer_objs.dm +++ b/code/modules/swarmers/swarmer_objs.dm @@ -30,14 +30,14 @@ qdel(src) /** - * # Swarmer Beacon - * - * Beacon which creates sentient player swarmers. - * - * The beacon which creates sentient player swarmers during the swarmer event. Spawns in maint on xeno locations, and can create a player swarmer once every 30 seconds. - * The beacon cannot be damaged by swarmers, and must be destroyed to prevent the spawning of further player-controlled swarmers. - * Holds a swarmer within itself during the 30 seconds before releasing it and allowing for another swarmer to be spawned in. - */ + * # Swarmer Beacon + * + * Beacon which creates sentient player swarmers. + * + * The beacon which creates sentient player swarmers during the swarmer event. Spawns in maint on xeno locations, and can create a player swarmer once every 30 seconds. + * The beacon cannot be damaged by swarmers, and must be destroyed to prevent the spawning of further player-controlled swarmers. + * Holds a swarmer within itself during the 30 seconds before releasing it and allowing for another swarmer to be spawned in. + */ /obj/structure/swarmer_beacon name = "swarmer beacon" @@ -70,12 +70,12 @@ que_swarmer(user) /** - * Interaction when a ghost interacts with a swarmer beacon - * - * Called when a ghost interacts with a swarmer beacon, allowing them to become a swarmer - * Arguments: - * * user - A reference to the ghost interacting with the beacon - */ + * Interaction when a ghost interacts with a swarmer beacon + * + * Called when a ghost interacts with a swarmer beacon, allowing them to become a swarmer + * Arguments: + * * user - A reference to the ghost interacting with the beacon + */ /obj/structure/swarmer_beacon/proc/que_swarmer(mob/user) var/swarm_ask = alert("Become a swarmer?", "Do you wish to consume the station?", "Yes", "No") if(swarm_ask == "No" || QDELETED(src) || QDELETED(user) || processing_swarmer) @@ -88,23 +88,23 @@ return TRUE /** - * Releases a swarmer from the beacon and tells it what to do - * - * Occcurs 30 seconds after a ghost becomes a swarmer. The beacon releases it, tells it what to do, and opens itself up to spawn in a new swarmer. - * Arguments: - * * swarmer - The swarmer being released and told what to do - */ + * Releases a swarmer from the beacon and tells it what to do + * + * Occcurs 30 seconds after a ghost becomes a swarmer. The beacon releases it, tells it what to do, and opens itself up to spawn in a new swarmer. + * Arguments: + * * swarmer - The swarmer being released and told what to do + */ /obj/structure/swarmer_beacon/proc/release_swarmer(mob/swarmer) to_chat(swarmer, "SWARMER CONSTRUCTION COMPLETED. OBJECTIVES:\n\ - 1. CONSUME RESOURCES AND REPLICATE UNTIL THERE ARE NO MORE RESOURCES LEFT\n\ - 2. ENSURE PROTECTION OF THE BEACON SO THIS LOCATION CAN BE INVADED AT A LATER DATE; DO NOT PERFORM ACTIONS THAT WOULD RENDER THIS LOCATION DANGEROUS OR INHOSPITABLE\n\ - 3. BIOLOGICAL RESOURCES WILL BE HARVESTED AT A LATER DATE: DO NOT HARM THEM\n\ - OPERATOR NOTES:\n\ - - CONSUME RESOURCES TO CONSTRUCT TRAPS, BARRIERS, AND FOLLOWER DRONES\n\ - - FOLLOWER DRONES WILL FOLLOW YOU AUTOMATCIALLY UNLESS THEY POSSESS A TARGET. WHILE DRONES CANNOT ASSIST IN RESOURCE HARVESTING, THEY CAN PROTECT YOU FROM THREATS\n\ - - LCTRL + ATTACKING AN ORGANIC WILL ALOW YOU TO REMOVE SAID ORGANIC FROM THE AREA\n\ - - YOU AND YOUR DRONES HAVE A STUN EFFECT ON MELEE. YOU ARE ALSO ARMED WITH A DISABLER PROJECTILE, USE THESE TO PREVENT ORGANICS FROM HALTING YOUR PROGRESS\n\ - GLORY TO !*# $*#^") + 1. CONSUME RESOURCES AND REPLICATE UNTIL THERE ARE NO MORE RESOURCES LEFT\n\ + 2. ENSURE PROTECTION OF THE BEACON SO THIS LOCATION CAN BE INVADED AT A LATER DATE; DO NOT PERFORM ACTIONS THAT WOULD RENDER THIS LOCATION DANGEROUS OR INHOSPITABLE\n\ + 3. BIOLOGICAL RESOURCES WILL BE HARVESTED AT A LATER DATE: DO NOT HARM THEM\n\ + OPERATOR NOTES:\n\ + - CONSUME RESOURCES TO CONSTRUCT TRAPS, BARRIERS, AND FOLLOWER DRONES\n\ + - FOLLOWER DRONES WILL FOLLOW YOU AUTOMATCIALLY UNLESS THEY POSSESS A TARGET. WHILE DRONES CANNOT ASSIST IN RESOURCE HARVESTING, THEY CAN PROTECT YOU FROM THREATS\n\ + - LCTRL + ATTACKING AN ORGANIC WILL ALOW YOU TO REMOVE SAID ORGANIC FROM THE AREA\n\ + - YOU AND YOUR DRONES HAVE A STUN EFFECT ON MELEE. YOU ARE ALSO ARMED WITH A DISABLER PROJECTILE, USE THESE TO PREVENT ORGANICS FROM HALTING YOUR PROGRESS\n\ + GLORY TO !*# $*#^") swarmer.forceMove(get_turf(src)) processing_swarmer = FALSE diff --git a/code/modules/tgchat/to_chat.dm b/code/modules/tgchat/to_chat.dm index ef5e7d90f8f..3030ec7fe91 100644 --- a/code/modules/tgchat/to_chat.dm +++ b/code/modules/tgchat/to_chat.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/tgui/external.dm b/code/modules/tgui/external.dm index ec1857768d8..fc1db4510fe 100644 --- a/code/modules/tgui/external.dm +++ b/code/modules/tgui/external.dm @@ -1,4 +1,4 @@ -/** +/*! * External tgui definitions, such as src_object APIs. * * Copyright (c) 2020 Aleksej Komarov diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm index 877611fb323..62cb2ded81d 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -1,4 +1,4 @@ -/** +/*! * Base state and helpers for states. Just does some sanity checks, * implement a proper state for in-depth checks. * diff --git a/code/modules/tgui/states/admin.dm b/code/modules/tgui/states/admin.dm index 227a2940785..4da5061dfcb 100644 --- a/code/modules/tgui/states/admin.dm +++ b/code/modules/tgui/states/admin.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: admin_state * * Checks that the user is an admin, end-of-story. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(admin_state, /datum/ui_state/admin_state, new) diff --git a/code/modules/tgui/states/always.dm b/code/modules/tgui/states/always.dm index 210f0896a2f..2406dbb2b9b 100644 --- a/code/modules/tgui/states/always.dm +++ b/code/modules/tgui/states/always.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: always_state * * Always grants the user UI_INTERACTIVE. Period. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(always_state, /datum/ui_state/always_state, new) diff --git a/code/modules/tgui/states/conscious.dm b/code/modules/tgui/states/conscious.dm index 670ca7c07e8..8e35a97da32 100644 --- a/code/modules/tgui/states/conscious.dm +++ b/code/modules/tgui/states/conscious.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: conscious_state * * Only checks if the user is conscious. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(conscious_state, /datum/ui_state/conscious_state, new) diff --git a/code/modules/tgui/states/contained.dm b/code/modules/tgui/states/contained.dm index 1eb8edba25f..98187b746e0 100644 --- a/code/modules/tgui/states/contained.dm +++ b/code/modules/tgui/states/contained.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: contained_state * * Checks that the user is inside the src_object. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(contained_state, /datum/ui_state/contained_state, new) diff --git a/code/modules/tgui/states/deep_inventory.dm b/code/modules/tgui/states/deep_inventory.dm index a2b9276a593..a7351a0d2d9 100644 --- a/code/modules/tgui/states/deep_inventory.dm +++ b/code/modules/tgui/states/deep_inventory.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: deep_inventory_state * * Checks that the src_object is in the user's deep * (backpack, box, toolbox, etc) inventory. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(deep_inventory_state, /datum/ui_state/deep_inventory_state, new) diff --git a/code/modules/tgui/states/default.dm b/code/modules/tgui/states/default.dm index 80ac5791ffd..ca1539fe90a 100644 --- a/code/modules/tgui/states/default.dm +++ b/code/modules/tgui/states/default.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: default_state * * Checks a number of things -- mostly physical distance for humans * and view for robots. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(default_state, /datum/ui_state/default, new) diff --git a/code/modules/tgui/states/hands.dm b/code/modules/tgui/states/hands.dm index 1c885ed4140..e8cb844bf7f 100644 --- a/code/modules/tgui/states/hands.dm +++ b/code/modules/tgui/states/hands.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: hands_state * * Checks that the src_object is in the user's hands. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(hands_state, /datum/ui_state/hands_state, new) diff --git a/code/modules/tgui/states/human_adjacent.dm b/code/modules/tgui/states/human_adjacent.dm index 2ac7c8637b6..b9208f96cd6 100644 --- a/code/modules/tgui/states/human_adjacent.dm +++ b/code/modules/tgui/states/human_adjacent.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: human_adjacent_state * * In addition to default checks, only allows interaction for a * human adjacent user. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(human_adjacent_state, /datum/ui_state/human_adjacent_state, new) diff --git a/code/modules/tgui/states/inventory.dm b/code/modules/tgui/states/inventory.dm index dc5dd0d57e6..4bc121b278a 100644 --- a/code/modules/tgui/states/inventory.dm +++ b/code/modules/tgui/states/inventory.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: inventory_state * * Checks that the src_object is in the user's top-level * (hand, ear, pocket, belt, etc) inventory. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(inventory_state, /datum/ui_state/inventory_state, new) diff --git a/code/modules/tgui/states/language_menu.dm b/code/modules/tgui/states/language_menu.dm index 6389b05cd5e..eaaa125786d 100644 --- a/code/modules/tgui/states/language_menu.dm +++ b/code/modules/tgui/states/language_menu.dm @@ -1,10 +1,12 @@ -/** - * tgui state: language_menu_state - * +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ +/** + * tgui state: language_menu_state + */ + GLOBAL_DATUM_INIT(language_menu_state, /datum/ui_state/language_menu, new) /datum/ui_state/language_menu/can_use_topic(src_object, mob/user) diff --git a/code/modules/tgui/states/not_incapacitated.dm b/code/modules/tgui/states/not_incapacitated.dm index 4d38c62392f..f7278c86de4 100644 --- a/code/modules/tgui/states/not_incapacitated.dm +++ b/code/modules/tgui/states/not_incapacitated.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: not_incapacitated_state * * Checks that the user isn't incapacitated - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(not_incapacitated_state, /datum/ui_state/not_incapacitated_state, new) diff --git a/code/modules/tgui/states/notcontained.dm b/code/modules/tgui/states/notcontained.dm index 1d4e6aec192..018e0fa0304 100644 --- a/code/modules/tgui/states/notcontained.dm +++ b/code/modules/tgui/states/notcontained.dm @@ -1,11 +1,13 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: notcontained_state * * Checks that the user is not inside src_object, and then makes the * default checks. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(notcontained_state, /datum/ui_state/notcontained_state, new) diff --git a/code/modules/tgui/states/observer.dm b/code/modules/tgui/states/observer.dm index d105de1c0c0..b749afa8948 100644 --- a/code/modules/tgui/states/observer.dm +++ b/code/modules/tgui/states/observer.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: observer_state * * Checks that the user is an observer/ghost. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(observer_state, /datum/ui_state/observer_state, new) diff --git a/code/modules/tgui/states/physical.dm b/code/modules/tgui/states/physical.dm index 3073039d14c..b559758f720 100644 --- a/code/modules/tgui/states/physical.dm +++ b/code/modules/tgui/states/physical.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: physical_state * * Short-circuits the default state to only check physical distance. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(physical_state, /datum/ui_state/physical, new) diff --git a/code/modules/tgui/states/self.dm b/code/modules/tgui/states/self.dm index 4b6e3b9fd9f..f7cef3f6005 100644 --- a/code/modules/tgui/states/self.dm +++ b/code/modules/tgui/states/self.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: self_state * * Only checks that the user and src_object are the same. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(self_state, /datum/ui_state/self_state, new) diff --git a/code/modules/tgui/states/zlevel.dm b/code/modules/tgui/states/zlevel.dm index 64ea2fa1c0e..f1a2282b3c2 100644 --- a/code/modules/tgui/states/zlevel.dm +++ b/code/modules/tgui/states/zlevel.dm @@ -1,10 +1,12 @@ +/*! + * Copyright (c) 2020 Aleksej Komarov + * SPDX-License-Identifier: MIT + */ + /** * tgui state: z_state * * Only checks that the Z-level of the user and src_object are the same. - * - * Copyright (c) 2020 Aleksej Komarov - * SPDX-License-Identifier: MIT */ GLOBAL_DATUM_INIT(z_state, /datum/ui_state/z_state, new) diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 7322c4179bb..b99783f67ad 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index f24a46e33d8..61e4db27e73 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/tgui_panel/audio.dm b/code/modules/tgui_panel/audio.dm index e62c4b5bc19..68069615994 100644 --- a/code/modules/tgui_panel/audio.dm +++ b/code/modules/tgui_panel/audio.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/tgui_panel/external.dm b/code/modules/tgui_panel/external.dm index fd892728aac..89973a925da 100644 --- a/code/modules/tgui_panel/external.dm +++ b/code/modules/tgui_panel/external.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/tgui_panel/telemetry.dm b/code/modules/tgui_panel/telemetry.dm index 79087d8500c..e1abfb1e125 100644 --- a/code/modules/tgui_panel/telemetry.dm +++ b/code/modules/tgui_panel/telemetry.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index dae7ae3d242..b2fb1201002 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -1,4 +1,4 @@ -/** +/*! * Copyright (c) 2020 Aleksej Komarov * SPDX-License-Identifier: MIT */ diff --git a/code/modules/unit_tests/spawn_humans.dm b/code/modules/unit_tests/spawn_humans.dm index 7189e87277d..0500deae0af 100644 --- a/code/modules/unit_tests/spawn_humans.dm +++ b/code/modules/unit_tests/spawn_humans.dm @@ -1,7 +1,7 @@ /datum/unit_test/spawn_humans/Run() - var/locs = block(run_loc_bottom_left, run_loc_top_right) + var/locs = block(run_loc_bottom_left, run_loc_top_right) - for(var/I in 1 to 5) - new /mob/living/carbon/human(pick(locs)) + for(var/I in 1 to 5) + new /mob/living/carbon/human(pick(locs)) - sleep(50) + sleep(50) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 12ea9001e62..18df65c7fb0 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -741,7 +741,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/ammo/shotgun/meteor name = "12g Meteorslug Shells" desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ - Great for blasting airlocks off their frames and knocking down enemies." + Great for blasting airlocks off their frames and knocking down enemies." item = /obj/item/ammo_box/magazine/m12g/meteor include_modes = list(/datum/game_mode/nuclear) diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index bd3cdcc8cf5..2ff5b7f01bd 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -95,8 +95,8 @@ AddElement(/datum/element/waddling) /obj/vehicle/sealed/car/clowncar/Destroy() - playsound(src, 'sound/vehicles/clowncar_fart.ogg', 100) - return ..() + playsound(src, 'sound/vehicles/clowncar_fart.ogg', 100) + return ..() /obj/vehicle/sealed/car/clowncar/after_move(direction) . = ..() diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm index 8d86338c1eb..1417244e714 100644 --- a/code/modules/vehicles/mecha/_mecha.dm +++ b/code/modules/vehicles/mecha/_mecha.dm @@ -1,22 +1,22 @@ /***************** WELCOME TO MECHA.DM, ENJOY YOUR STAY *****************/ /** - * Mechs are now (finally) vehicles, this means you can make them multicrew - * They can also grant select ability buttons based on occupant bitflags - * - * Movement is handled through vehicle_move() which is called by relaymove - * Clicking is done by way of signals registering to the entering mob - * NOTE: MMIS are NOT mobs but instead contain a brain that is, so you need special checks - * AI also has special checks becaus it gets in and out of the mech differently - * Always call remove_occupant(mob) when leaving the mech so the mob is removed properly - * - * For multi-crew, you need to set how the occupants recieve ability bitflags corresponding to their status on the vehicle(i.e: driver, gunner etc) - * Abilities can then be set to only apply for certain bitflags and are assigned as such automatically - * - * Clicks are wither translated into mech_melee_attack (see mech_melee_attack.dm) - * Or are used to call action() on equipped gear - * Cooldown for gear is on the mech because exploits - */ + * Mechs are now (finally) vehicles, this means you can make them multicrew + * They can also grant select ability buttons based on occupant bitflags + * + * Movement is handled through vehicle_move() which is called by relaymove + * Clicking is done by way of signals registering to the entering mob + * NOTE: MMIS are NOT mobs but instead contain a brain that is, so you need special checks + * AI also has special checks becaus it gets in and out of the mech differently + * Always call remove_occupant(mob) when leaving the mech so the mob is removed properly + * + * For multi-crew, you need to set how the occupants recieve ability bitflags corresponding to their status on the vehicle(i.e: driver, gunner etc) + * Abilities can then be set to only apply for certain bitflags and are assigned as such automatically + * + * Clicks are wither translated into mech_melee_attack (see mech_melee_attack.dm) + * Or are used to call action() on equipped gear + * Cooldown for gear is on the mech because exploits + */ /obj/vehicle/sealed/mecha name = "mecha" desc = "Exosuit" diff --git a/code/modules/vehicles/mecha/combat/durand.dm b/code/modules/vehicles/mecha/combat/durand.dm index f99d8a59531..5ff023fd4ec 100644 --- a/code/modules/vehicles/mecha/combat/durand.dm +++ b/code/modules/vehicles/mecha/combat/durand.dm @@ -168,18 +168,18 @@ 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" 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 - * * signal_args: whether it's forced - */ + * 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 + * * signal_args: whether it's forced + */ /obj/durand_shield/proc/activate(datum/source, mob/owner, list/signal_args) SIGNAL_HANDLER currentuser = owner diff --git a/code/modules/vehicles/mecha/combat/honker.dm b/code/modules/vehicles/mecha/combat/honker.dm index da96bb2b949..8d14fc377a1 100644 --- a/code/modules/vehicles/mecha/combat/honker.dm +++ b/code/modules/vehicles/mecha/combat/honker.dm @@ -93,7 +93,7 @@ - "} + "} return output /obj/vehicle/sealed/mecha/combat/honker/get_commands() diff --git a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm index f191a866d0f..4f2e47fb3cf 100644 --- a/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm +++ b/code/modules/vehicles/mecha/equipment/tools/mining_tools.dm @@ -41,8 +41,8 @@ return target.visible_message("[chassis] starts to drill [target].", \ - "[chassis] starts to drill [target]...", \ - "You hear drilling.") + "[chassis] starts to drill [target]...", \ + "You hear drilling.") // You can't drill harder by clicking more. if(!(target in source.do_afters) && do_after_cooldown(target, source)) diff --git a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm index 583ec832437..2bf2b35e412 100644 --- a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm +++ b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm @@ -489,7 +489,7 @@ else PG.throwforce = 0 - //has to be low sleep or it looks weird, the beam doesn't exist for very long so it's a non-issue + //has to be low sleep or it looks weird, the beam doesn't exist for very long so it's a non-issue chassis.Beam(PG, icon_state = "chain", time = missile_range * 20, maxdistance = missile_range + 2, beam_sleep_time = 1) /obj/item/punching_glove diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm index a8ead6cba59..ca324c2c3cb 100644 --- a/code/modules/vehicles/mecha/mech_fabricator.dm +++ b/code/modules/vehicles/mecha/mech_fabricator.dm @@ -104,12 +104,12 @@ . += "The status display reads: Storing up to [rmat.local_size] material units.
Material consumption at [component_coeff*100]%.
Build time reduced by [100-time_coeff*100]%.
" /** - * Generates an info list for a given part. - * - * Returns a list of part information. - * * D - Design datum to get information on. - * * categories - Boolean, whether or not to parse snowflake categories into the part information list. - */ + * Generates an info list for a given part. + * + * Returns a list of part information. + * * D - Design datum to get information on. + * * categories - Boolean, whether or not to parse snowflake categories into the part information list. + */ /obj/machinery/mecha_part_fabricator/proc/output_part_info(datum/design/D, categories = FALSE) var/cost = list() for(var/c in D.materials) @@ -178,11 +178,11 @@ return part /** - * Generates a list of resources / materials available to this Exosuit Fab - * - * Returns null if there is no material container available. - * List format is list(material_name = list(amount = ..., ref = ..., etc.)) - */ + * Generates a list of resources / materials available to this Exosuit Fab + * + * Returns null if there is no material container available. + * List format is list(material_name = list(amount = ..., ref = ..., etc.)) + */ /obj/machinery/mecha_part_fabricator/proc/output_available_resources() var/datum/component/material_container/materials = rmat.mat_container @@ -209,19 +209,19 @@ return null /** - * Intended to be called when an item starts printing. - * - * Adds the overlay to show the fab working and sets active power usage settings. - */ + * Intended to be called when an item starts printing. + * + * Adds the overlay to show the fab working and sets active power usage settings. + */ /obj/machinery/mecha_part_fabricator/proc/on_start_printing() add_overlay("fab-active") use_power = ACTIVE_POWER_USE /** - * Intended to be called when the exofab has stopped working and is no longer printing items. - * - * Removes the overlay to show the fab working and sets idle power usage settings. Additionally resets the description and turns off queue processing. - */ + * Intended to be called when the exofab has stopped working and is no longer printing items. + * + * Removes the overlay to show the fab working and sets idle power usage settings. Additionally resets the description and turns off queue processing. + */ /obj/machinery/mecha_part_fabricator/proc/on_finish_printing() cut_overlay("fab-active") use_power = IDLE_POWER_USE @@ -229,11 +229,11 @@ process_queue = FALSE /** - * Calculates resource/material costs for printing an item based on the machine's resource coefficient. - * - * Returns a list of k,v resources with their amounts. - * * D - Design datum to calculate the modified resource cost of. - */ + * Calculates resource/material costs for printing an item based on the machine's resource coefficient. + * + * Returns a list of k,v resources with their amounts. + * * D - Design datum to calculate the modified resource cost of. + */ /obj/machinery/mecha_part_fabricator/proc/get_resources_w_coeff(datum/design/D) var/list/resources = list() for(var/R in D.materials) @@ -242,12 +242,12 @@ return resources /** - * Checks if the Exofab has enough resources to print a given item. - * - * Returns FALSE if the design has no reagents used in its construction (?) or if there are insufficient resources. - * Returns TRUE if there are sufficient resources to print the item. - * * D - Design datum to calculate the modified resource cost of. - */ + * Checks if the Exofab has enough resources to print a given item. + * + * Returns FALSE if the design has no reagents used in its construction (?) or if there are insufficient resources. + * Returns TRUE if there are sufficient resources to print the item. + * * D - Design datum to calculate the modified resource cost of. + */ /obj/machinery/mecha_part_fabricator/proc/check_resources(datum/design/D) if(length(D.reagents_list)) // No reagents storage - no reagent designs. return FALSE @@ -257,12 +257,12 @@ return FALSE /** - * Attempts to build the next item in the build queue. - * - * Returns FALSE if either there are no more parts to build or the next part is not buildable. - * Returns TRUE if the next part has started building. - * * verbose - Whether the machine should use say() procs. Set to FALSE to disable the machine saying reasons for failure to build. - */ + * Attempts to build the next item in the build queue. + * + * Returns FALSE if either there are no more parts to build or the next part is not buildable. + * Returns TRUE if the next part has started building. + * * verbose - Whether the machine should use say() procs. Set to FALSE to disable the machine saying reasons for failure to build. + */ /obj/machinery/mecha_part_fabricator/proc/build_next_in_queue(verbose = TRUE) if(!length(queue)) return FALSE @@ -275,13 +275,13 @@ return FALSE /** - * Starts the build process for a given design datum. - * - * Returns FALSE if the procedure fails. Returns TRUE when being_built is set. - * Uses materials. - * * D - Design datum to attempt to print. - * * verbose - Whether the machine should use say() procs. Set to FALSE to disable the machine saying reasons for failure to build. - */ + * Starts the build process for a given design datum. + * + * Returns FALSE if the procedure fails. Returns TRUE when being_built is set. + * Uses materials. + * * D - Design datum to attempt to print. + * * verbose - Whether the machine should use say() procs. Set to FALSE to disable the machine saying reasons for failure to build. + */ /obj/machinery/mecha_part_fabricator/proc/build_part(datum/design/D, verbose = TRUE) if(!D) return FALSE @@ -341,12 +341,12 @@ return TRUE /** - * Dispenses a part to the tile infront of the Exosuit Fab. - * - * Returns FALSE is the machine cannot dispense the part on the appropriate turf. - * Return TRUE if the part was successfully dispensed. - * * D - Design datum to attempt to dispense. - */ + * Dispenses a part to the tile infront of the Exosuit Fab. + * + * Returns FALSE is the machine cannot dispense the part on the appropriate turf. + * Return TRUE if the part was successfully dispensed. + * * D - Design datum to attempt to dispense. + */ /obj/machinery/mecha_part_fabricator/proc/dispense_built_part(datum/design/D) var/obj/item/I = new D.build_path(src) I.material_flags |= MATERIAL_NO_EFFECTS //Find a better way to do this. @@ -366,12 +366,12 @@ return TRUE /** - * Adds a list of datum designs to the build queue. - * - * Will only add designs that are in this machine's stored techweb. - * Does final checks for datum IDs and makes sure this machine can build the designs. - * * part_list - List of datum design ids for designs to add to the queue. - */ + * Adds a list of datum designs to the build queue. + * + * Will only add designs that are in this machine's stored techweb. + * Does final checks for datum IDs and makes sure this machine can build the designs. + * * part_list - List of datum design ids for designs to add to the queue. + */ /obj/machinery/mecha_part_fabricator/proc/add_part_set_to_queue(list/part_list) for(var/v in stored_research.researched_designs) var/datum/design/D = SSresearch.techweb_design_by_id(v) @@ -379,11 +379,11 @@ add_to_queue(D) /** - * Adds a datum design to the build queue. - * - * Returns TRUE if successful and FALSE if the design was not added to the queue. - * * D - Datum design to add to the queue. - */ + * Adds a datum design to the build queue. + * + * Returns TRUE if successful and FALSE if the design was not added to the queue. + * * D - Datum design to add to the queue. + */ /obj/machinery/mecha_part_fabricator/proc/add_to_queue(datum/design/D) if(!istype(queue)) queue = list() @@ -393,11 +393,11 @@ return FALSE /** - * Removes datum design from the build queue based on index. - * - * Returns TRUE if successful and FALSE if a design was not removed from the queue. - * * index - Index in the build queue of the element to remove. - */ + * Removes datum design from the build queue based on index. + * + * Returns TRUE if successful and FALSE if a design was not removed from the queue. + * * index - Index in the build queue of the element to remove. + */ /obj/machinery/mecha_part_fabricator/proc/remove_from_queue(index) if(!isnum(index) || !ISINTEGER(index) || !istype(queue) || (index<1 || index>length(queue))) return FALSE @@ -405,10 +405,10 @@ return TRUE /** - * Generates a list of parts formatted for tgui based on the current build queue. - * - * Returns a formatted list of lists containing formatted part information for every part in the build queue. - */ + * Generates a list of parts formatted for tgui based on the current build queue. + * + * Returns a formatted list of lists containing formatted part information for every part in the build queue. + */ /obj/machinery/mecha_part_fabricator/proc/list_queue() if(!istype(queue) || !length(queue)) return null @@ -420,23 +420,23 @@ return queued_parts /** - * Calculates the coefficient-modified resource cost of a single material component of a design's recipe. - * - * Returns coefficient-modified resource cost for the given material component. - * * D - Design datum to pull the resource cost from. - * * resource - Material datum reference to the resource to calculate the cost of. - * * roundto - Rounding value for round() proc - */ + * Calculates the coefficient-modified resource cost of a single material component of a design's recipe. + * + * Returns coefficient-modified resource cost for the given material component. + * * D - Design datum to pull the resource cost from. + * * resource - Material datum reference to the resource to calculate the cost of. + * * roundto - Rounding value for round() proc + */ /obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, datum/material/resource, roundto = 1) return round(D.materials[resource]*component_coeff, roundto) /** - * Calculates the coefficient-modified build time of a design. - * - * Returns coefficient-modified build time of a given design. - * * D - Design datum to calculate the modified build time of. - * * roundto - Rounding value for round() proc - */ + * Calculates the coefficient-modified build time of a design. + * + * Returns coefficient-modified build time of a given design. + * * D - Design datum to calculate the modified build time of. + * * roundto - Rounding value for round() proc + */ /obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(construction_time, roundto = 1) //aran return round(construction_time*time_coeff, roundto) @@ -598,12 +598,12 @@ return FALSE /** - * Eject material sheets. - * - * Returns the number of sheets successfully ejected. - * eject_sheet - Byond REF of the material to eject. - * eject_amt - Number of sheets to attempt to eject. - */ + * Eject material sheets. + * + * Returns the number of sheets successfully ejected. + * eject_sheet - Byond REF of the material to eject. + * eject_amt - Number of sheets to attempt to eject. + */ /obj/machinery/mecha_part_fabricator/proc/eject_sheets(eject_sheet, eject_amt) var/datum/component/material_container/mat_container = rmat.mat_container if (!mat_container) diff --git a/code/modules/vehicles/mecha/mecha_control_console.dm b/code/modules/vehicles/mecha/mecha_control_console.dm index 404eb0b4053..adb10e3f042 100644 --- a/code/modules/vehicles/mecha/mecha_control_console.dm +++ b/code/modules/vehicles/mecha/mecha_control_console.dm @@ -86,8 +86,8 @@ var/obj/vehicle/sealed/mecha/chassis /** - * Returns a html formatted string describing attached mech status - */ + * Returns a html formatted string describing attached mech status + */ /obj/item/mecha_parts/mecha_tracking/proc/get_mecha_info() if(!chassis) return FALSE @@ -126,8 +126,8 @@ chassis = M /** - * Attempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown - */ + * Attempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown + */ /obj/item/mecha_parts/mecha_tracking/proc/shock() if(recharging) return @@ -137,8 +137,8 @@ recharging = TRUE /** - * Resets recharge variable, allowing tracker to be EMP pulsed again - */ + * Resets recharge variable, allowing tracker to be EMP pulsed again + */ /obj/item/mecha_parts/mecha_tracking/proc/recharge() recharging = FALSE diff --git a/code/modules/vehicles/mecha/mecha_wreckage.dm b/code/modules/vehicles/mecha/mecha_wreckage.dm index 8fd45616fac..cbd7efd07d2 100644 --- a/code/modules/vehicles/mecha/mecha_wreckage.dm +++ b/code/modules/vehicles/mecha/mecha_wreckage.dm @@ -93,7 +93,7 @@ if(!..()) return - //Proc called on the wreck by the AI card. + //Proc called on the wreck by the AI card. if(interaction != AI_TRANS_TO_CARD) //AIs can only be transferred in one direction, from the wreck to the card. return if(!AI) //No AI in the wreck diff --git a/code/modules/vehicles/mecha/working/ripley.dm b/code/modules/vehicles/mecha/working/ripley.dm index cfee22760f1..36bec709753 100644 --- a/code/modules/vehicles/mecha/working/ripley.dm +++ b/code/modules/vehicles/mecha/working/ripley.dm @@ -188,10 +188,10 @@ to_chat(user, "You fail to push [O] out of [src]!") /** - * Makes the mecha go faster and halves the mecha drill cooldown if in Lavaland pressure. - * - * Checks for Lavaland pressure, if that works out the mech's speed is equal to fast_pressure_step_in and the cooldown for the mecha drill is halved. If not it uses slow_pressure_step_in and drill cooldown is normal. - */ + * Makes the mecha go faster and halves the mecha drill cooldown if in Lavaland pressure. + * + * Checks for Lavaland pressure, if that works out the mech's speed is equal to fast_pressure_step_in and the cooldown for the mecha drill is halved. If not it uses slow_pressure_step_in and drill cooldown is normal. + */ /obj/vehicle/sealed/mecha/working/ripley/proc/update_pressure() var/turf/T = get_turf(loc) diff --git a/code/modules/vehicles/mecha/working/working.dm b/code/modules/vehicles/mecha/working/working.dm index 72952f1f800..8e630c91a58 100644 --- a/code/modules/vehicles/mecha/working/working.dm +++ b/code/modules/vehicles/mecha/working/working.dm @@ -14,10 +14,10 @@ collect_ore() /** - * Handles collecting ore. - * - * Checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box. - */ + * Handles collecting ore. + * + * Checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box. + */ /obj/vehicle/sealed/mecha/working/proc/collect_ore() if(!box) return diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 32388ac0792..4621bf0024b 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -18,10 +18,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C #define MAX_VENDING_INPUT_AMOUNT 30 /** - * # vending record datum - * - * A datum that represents a product that is vendable - */ + * # vending record datum + * + * A datum that represents a product that is vendable + */ /datum/data/vending_product name = "generic" ///Typepath of the product that is created when this record "sells" @@ -38,10 +38,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C var/age_restricted = FALSE /** - * # vending machines - * - * Captalism in the year 2525, everything in a vending machine, even love - */ + * # vending machines + * + * Captalism in the year 2525, everything in a vending machine, even love + */ /obj/machinery/vending name = "\improper Vendomat" desc = "A generic vending machine." @@ -140,16 +140,16 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C var/extra_price = 50 ///Whether our age check is currently functional var/age_restrictions = TRUE - /** + /** * Is this item on station or not * * if it doesn't originate from off-station during mapload, everything is free */ var/onstation = TRUE //if it doesn't originate from off-station during mapload, everything is free - ///A variable to change on a per instance basis on the map that allows the instance to force cost and ID requirements + ///A variable to change on a per instance basis on the map that allows the instance to force cost and ID requirements var/onstation_override = FALSE //change this on the object on the map to override the onstation check. DO NOT APPLY THIS GLOBALLY. - ///ID's that can load this vending machine wtih refills + ///ID's that can load this vending machine wtih refills var/list/canload_access_list @@ -170,18 +170,18 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C var/obj/item/radio/Radio /obj/item/circuitboard - ///determines if the circuit board originated from a vendor off station or not. + ///determines if the circuit board originated from a vendor off station or not. var/onstation = TRUE /** - * Initialize the vending machine - * - * Builds the vending machine inventory, sets up slogans and other such misc work - * - * This also sets the onstation var to: - * * FALSE - if the machine was maploaded on a zlevel that doesn't pass the is_station_level check - * * TRUE - all other cases - */ + * Initialize the vending machine + * + * Builds the vending machine inventory, sets up slogans and other such misc work + * + * This also sets the onstation var to: + * * FALSE - if the machine was maploaded on a zlevel that doesn't pass the is_station_level check + * * TRUE - all other cases + */ /obj/machinery/vending/Initialize(mapload) var/build_inv = FALSE if(!refill_canister) @@ -296,14 +296,14 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C GLOBAL_LIST_EMPTY(vending_products) /** - * Build the inventory of the vending machine from it's product and record lists - * - * This builds up a full set of /datum/data/vending_products from the product list of the vending machine type - * Arguments: - * * productlist - the list of products that need to be converted - * * recordlist - the list containing /datum/data/vending_product datums - * * startempty - should we set vending_product record amount from the product list (so it's prefilled at roundstart) - */ + * Build the inventory of the vending machine from it's product and record lists + * + * This builds up a full set of /datum/data/vending_products from the product list of the vending machine type + * Arguments: + * * productlist - the list of products that need to be converted + * * recordlist - the list containing /datum/data/vending_product datums + * * startempty - should we set vending_product record amount from the product list (so it's prefilled at roundstart) + */ /obj/machinery/vending/proc/build_inventory(list/productlist, list/recordlist, start_empty = FALSE) default_price = round(initial(default_price) * SSeconomy.inflation_value()) extra_price = round(initial(extra_price) * SSeconomy.inflation_value()) @@ -327,13 +327,13 @@ GLOBAL_LIST_EMPTY(vending_products) recordlist += R /** - * Reassign the prices of the vending machine as a result of the inflation value, as provided by SSeconomy - * - * This rebuilds both /datum/data/vending_products lists for premium and standard products based on their most relevant pricing values. - * Arguments: - * * recordlist - the list of standard product datums in the vendor to refresh their prices. - * * premiumlist - the list of premium product datums in the vendor to refresh their prices. - */ + * Reassign the prices of the vending machine as a result of the inflation value, as provided by SSeconomy + * + * This rebuilds both /datum/data/vending_products lists for premium and standard products based on their most relevant pricing values. + * Arguments: + * * recordlist - the list of standard product datums in the vendor to refresh their prices. + * * premiumlist - the list of premium product datums in the vendor to refresh their prices. + */ /obj/machinery/vending/proc/reset_prices(list/recordlist, list/premiumlist) default_price = round(initial(default_price) * SSeconomy.inflation_value()) extra_price = round(initial(extra_price) * SSeconomy.inflation_value()) @@ -352,13 +352,13 @@ GLOBAL_LIST_EMPTY(vending_products) record.custom_premium_price = round(extra_price + (initial(potential_product.custom_price) * (SSeconomy.inflation_value() - 1))) /** - * Refill a vending machine from a refill canister - * - * This takes the products from the refill canister and then fills the products,contraband and premium product categories - * - * Arguments: - * * canister - the vending canister we are refilling from - */ + * Refill a vending machine from a refill canister + * + * This takes the products from the refill canister and then fills the products,contraband and premium product categories + * + * Arguments: + * * canister - the vending canister we are refilling from + */ /obj/machinery/vending/proc/restock(obj/item/vending_refill/canister) if (!canister.products) canister.products = products.Copy() @@ -371,12 +371,12 @@ GLOBAL_LIST_EMPTY(vending_products) . += refill_inventory(canister.contraband, hidden_records) . += refill_inventory(canister.premium, coin_records) /** - * Refill our inventory from the passed in product list into the record list - * - * Arguments: - * * productlist - list of types -> amount - * * recordlist - existing record datums - */ + * Refill our inventory from the passed in product list into the record list + * + * Arguments: + * * productlist - list of types -> amount + * * recordlist - existing record datums + */ /obj/machinery/vending/proc/refill_inventory(list/productlist, list/recordlist) . = 0 for(var/R in recordlist) @@ -387,10 +387,10 @@ GLOBAL_LIST_EMPTY(vending_products) record.amount += diff . += diff /** - * Set up a refill canister that matches this machines products - * - * This is used when the machine is deconstructed, so the items aren't "lost" - */ + * Set up a refill canister that matches this machines products + * + * This is used when the machine is deconstructed, so the items aren't "lost" + */ /obj/machinery/vending/proc/update_canister() if (!component_parts) return @@ -404,8 +404,8 @@ GLOBAL_LIST_EMPTY(vending_products) R.premium = unbuild_inventory(coin_records) /** - * Given a record list, go through and and return a list of type -> amount - */ + * Given a record list, go through and and return a list of type -> amount + */ /obj/machinery/vending/proc/unbuild_inventory(list/recordlist) . = list() for(var/R in recordlist) @@ -651,11 +651,11 @@ GLOBAL_LIST_EMPTY(vending_products) . = ..() /** - * Is the passed in user allowed to load this vending machines compartments - * - * Arguments: - * * user - mob that is doing the loading of the vending machine - */ + * Is the passed in user allowed to load this vending machines compartments + * + * Arguments: + * * user - mob that is doing the loading of the vending machine + */ /obj/machinery/vending/proc/compartmentLoadAccessCheck(mob/user) if(!canload_access_list) return TRUE @@ -901,13 +901,13 @@ GLOBAL_LIST_EMPTY(vending_products) if(shoot_inventory && DT_PROB(shoot_inventory_chance, delta_time)) throw_item() /** - * Speak the given message verbally - * - * Checks if the machine is powered and the message exists - * - * Arguments: - * * message - the message to speak - */ + * Speak the given message verbally + * + * Checks if the machine is powered and the message exists + * + * Arguments: + * * message - the message to speak + */ /obj/machinery/vending/proc/speak(message) if(machine_stat & (BROKEN|NOPOWER)) return @@ -923,11 +923,11 @@ GLOBAL_LIST_EMPTY(vending_products) //Somebody cut an important wire and now we're following a new definition of "pitch." /** - * Throw an item from our internal inventory out in front of us - * - * This is called when we are hacked, it selects a random product from the records that has an amount > 0 - * This item is then created and tossed out in front of us with a visible message - */ + * Throw an item from our internal inventory out in front of us + * + * This is called when we are hacked, it selects a random product from the records that has an amount > 0 + * This item is then created and tossed out in front of us with a visible message + */ /obj/machinery/vending/proc/throw_item() var/obj/throw_item = null var/mob/living/target = locate() in view(7,src) @@ -953,25 +953,25 @@ GLOBAL_LIST_EMPTY(vending_products) visible_message("[src] launches [throw_item] at [target]!") return TRUE /** - * A callback called before an item is tossed out - * - * Override this if you need to do any special case handling - * - * Arguments: - * * I - obj/item being thrown - */ + * A callback called before an item is tossed out + * + * Override this if you need to do any special case handling + * + * Arguments: + * * I - obj/item being thrown + */ /obj/machinery/vending/proc/pre_throw(obj/item/I) return /** - * Shock the passed in user - * - * This checks we have power and that the passed in prob is passed, then generates some sparks - * and calls electrocute_mob on the user - * - * Arguments: - * * user - the user to shock - * * prb - probability the shock happens - */ + * Shock the passed in user + * + * This checks we have power and that the passed in prob is passed, then generates some sparks + * and calls electrocute_mob on the user + * + * Arguments: + * * user - the user to shock + * * prb - probability the shock happens + */ /obj/machinery/vending/proc/shock(mob/living/user, prb) if(!istype(user) || machine_stat & (BROKEN|NOPOWER)) // unpowered, no shock return FALSE @@ -984,12 +984,12 @@ GLOBAL_LIST_EMPTY(vending_products) else return FALSE /** - * Are we able to load the item passed in - * - * Arguments: - * * I - the item being loaded - * * user - the user doing the loading - */ + * Are we able to load the item passed in + * + * Arguments: + * * I - the item being loaded + * * user - the user doing the loading + */ /obj/machinery/vending/proc/canLoadItem(obj/item/I, mob/user) return FALSE diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm index 7a39764a417..4e2162250c1 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -38,11 +38,14 @@ /obj/item/reagent_containers/food/drinks/bottle = 15, /obj/item/reagent_containers/food/drinks/bottle/small = 15 ) - contraband = list(/obj/item/reagent_containers/food/drinks/mug/tea = 12, - /obj/item/reagent_containers/food/drinks/bottle/fernet = 5) + contraband = list( + /obj/item/reagent_containers/food/drinks/mug/tea = 12, + /obj/item/reagent_containers/food/drinks/bottle/fernet = 5, + ) premium = list(/obj/item/reagent_containers/glass/bottle/ethanol = 4, - /obj/item/reagent_containers/food/drinks/bottle/champagne = 5, - /obj/item/reagent_containers/food/drinks/bottle/trappist = 5) + /obj/item/reagent_containers/food/drinks/bottle/champagne = 5, + /obj/item/reagent_containers/food/drinks/bottle/trappist = 5, + ) product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" diff --git a/code/world.dm b/code/world.dm index 691a9263bf9..71a9853d01f 100644 --- a/code/world.dm +++ b/code/world.dm @@ -2,14 +2,14 @@ //Try looking in game/world.dm /** - * # World - * - * Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke - * - * The byond world object stores some basic byond level config, and has a few hub specific procs for managing hub visiblity - * - * The world /New() is the root of where a round itself begins - */ + * # World + * + * Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke + * + * The byond world object stores some basic byond level config, and has a few hub specific procs for managing hub visiblity + * + * The world /New() is the root of where a round itself begins + */ /world mob = /mob/dead/new_player turf = /turf/open/space/basic diff --git a/tools/Redirector/textprocs.dm b/tools/Redirector/textprocs.dm index aa64b5b7874..0e82aa0d6b1 100644 --- a/tools/Redirector/textprocs.dm +++ b/tools/Redirector/textprocs.dm @@ -1,153 +1,142 @@ /* - Written by contributor Doohl for the /tg/station Open Source project, hosted on Google Code. - (2012) - - NOTE: The below functions are part of BYOND user Deadron's "TextHandling" library. - [ http://www.byond.com/developer/Deadron/TextHandling ] + * Written by contributor Doohl for the /tg/station Open Source project, hosted on Google Code. + * (2012) + * + * NOTE: The below functions are part of BYOND user Deadron's "TextHandling" library. + * [ http://www.byond.com/developer/Deadron/TextHandling ] */ -proc - /////////////////// - // Reading files // - /////////////////// - dd_file2list(file_path, separator = "\n") - var/file - if (isfile(file_path)) - file = file_path - else - file = file(file_path) - return dd_text2list(file2text(file), separator) +/// Reading files +/proc/dd_file2list(file_path, separator = "\n") + var/file + if (isfile(file_path)) + file = file_path + else + file = file(file_path) + return dd_text2list(file2text(file), separator) - //////////////////// - // Replacing text // - //////////////////// - dd_replacetext(text, search_string, replacement_string) +/// Replacing text +/proc/dd_replacetext(text, search_string, replacement_string) // A nice way to do this is to split the text into an array based on the search_string, // then put it back together into text using replacement_string as the new separator. var/list/textList = dd_text2list(text, search_string) return dd_list2text(textList, replacement_string) - dd_replaceText(text, search_string, replacement_string) - var/list/textList = dd_text2List(text, search_string) - return dd_list2text(textList, replacement_string) +/proc/dd_replaceText(text, search_string, replacement_string) + var/list/textList = dd_text2List(text, search_string) + return dd_list2text(textList, replacement_string) - ///////////////////// - // Prefix checking // - ///////////////////// - dd_hasprefix(text, prefix) - var/start = 1 - var/end = lentext(prefix) + 1 - return findtext(text, prefix, start, end) +///Prefix checking +/proc/dd_hasprefix(text, prefix) + var/start = 1 + var/end = lentext(prefix) + 1 + return findtext(text, prefix, start, end) - dd_hasPrefix(text, prefix) - var/start = 1 - var/end = lentext(prefix) + 1 - return findtextEx(text, prefix, start, end) +/proc/dd_hasPrefix(text, prefix) + var/start = 1 + var/end = lentext(prefix) + 1 + return findtextEx(text, prefix, start, end) - ///////////////////// - // Suffix checking // - ///////////////////// - dd_hassuffix(text, suffix) - var/start = length(text) - length(suffix) - if (start) - return findtext(text, suffix, start) +///Suffix checking +/proc/dd_hassuffix(text, suffix) + var/start = length(text) - length(suffix) + if (start) + return findtext(text, suffix, start) - dd_hasSuffix(text, suffix) - var/start = length(text) - length(suffix) - if (start) - return findtextEx(text, suffix, start) +/proc/dd_hasSuffix(text, suffix) + var/start = length(text) - length(suffix) + if (start) + return findtextEx(text, suffix, start) - ///////////////////////////// - // Turning text into lists // - ///////////////////////////// - dd_text2list(text, separator) - var/textlength = lentext(text) - var/separatorlength = lentext(separator) - var/list/textList = new /list() - var/searchPosition = 1 - var/findPosition = 1 - var/buggyText - while (1) // Loop forever. - findPosition = findtext(text, separator, searchPosition, 0) - buggyText = copytext(text, searchPosition, findPosition) // Everything from searchPosition to findPosition goes into a list element. - textList += "[buggyText]" // Working around weird problem where "text" != "text" after this copytext(). +/// Turning text into lists +/proc/dd_text2list(text, separator) + var/textlength = lentext(text) + var/separatorlength = lentext(separator) + var/list/textList = new /list() + var/searchPosition = 1 + var/findPosition = 1 + var/buggyText + while (1) // Loop forever. + findPosition = findtext(text, separator, searchPosition, 0) + buggyText = copytext(text, searchPosition, findPosition) // Everything from searchPosition to findPosition goes into a list element. + textList += "[buggyText]" // Working around weird problem where "text" != "text" after this copytext(). - searchPosition = findPosition + separatorlength // Skip over separator. - if (findPosition == 0) // Didn't find anything at end of string so stop here. - return textList - else - if (searchPosition > textlength) // Found separator at very end of string. - textList += "" // So add empty element. - return textList - - dd_text2List(text, separator) - var/textlength = lentext(text) - var/separatorlength = lentext(separator) - var/list/textList = new /list() - var/searchPosition = 1 - var/findPosition = 1 - var/buggyText - while (1) // Loop forever. - findPosition = findtextEx(text, separator, searchPosition, 0) - buggyText = copytext(text, searchPosition, findPosition) // Everything from searchPosition to findPosition goes into a list element. - textList += "[buggyText]" // Working around weird problem where "text" != "text" after this copytext(). - - searchPosition = findPosition + separatorlength // Skip over separator. - if (findPosition == 0) // Didn't find anything at end of string so stop here. - return textList - else - if (searchPosition > textlength) // Found separator at very end of string. - textList += "" // So add empty element. - return textList - - dd_list2text(list/the_list, separator) - var/total = the_list.len - if (total == 0) // Nothing to work with. - return - - var/newText = "[the_list[1]]" // Treats any object/number as text also. - var/count - for (count = 2, count <= total, count++) - if (separator) - newText += separator - newText += "[the_list[count]]" - return newText - - dd_centertext(message, length) - var/new_message = message - var/size = length(message) - if (size == length) - return new_message - if (size > length) - return copytext(new_message, 1, length + 1) - - // Need to pad text to center it. - var/delta = length - size - if (delta == 1) - // Add one space after it. - return new_message + " " - - // Is this an odd number? If so, add extra space to front. - if (delta % 2) - new_message = " " + new_message - delta-- - - // Divide delta in 2, add those spaces to both ends. - delta = delta / 2 - var/spaces = "" - for (var/count = 1, count <= delta, count++) - spaces += " " - return spaces + new_message + spaces - - dd_limittext(message, length) - // Truncates text to limit if necessary. - var/size = length(message) - if (size <= length) - return message + searchPosition = findPosition + separatorlength // Skip over separator. + if (findPosition == 0) // Didn't find anything at end of string so stop here. + return textList else - return copytext(message, 1, length + 1) + if (searchPosition > textlength) // Found separator at very end of string. + textList += "" // So add empty element. + return textList + +/proc/dd_text2List(text, separator) + var/textlength = lentext(text) + var/separatorlength = lentext(separator) + var/list/textList = new /list() + var/searchPosition = 1 + var/findPosition = 1 + var/buggyText + while (1) // Loop forever. + findPosition = findtextEx(text, separator, searchPosition, 0) + buggyText = copytext(text, searchPosition, findPosition) // Everything from searchPosition to findPosition goes into a list element. + textList += "[buggyText]" // Working around weird problem where "text" != "text" after this copytext(). + + searchPosition = findPosition + separatorlength // Skip over separator. + if (findPosition == 0) // Didn't find anything at end of string so stop here. + return textList + else + if (searchPosition > textlength) // Found separator at very end of string. + textList += "" // So add empty element. + return textList + +/proc/dd_list2text(list/the_list, separator) + var/total = the_list.len + if (total == 0) // Nothing to work with. + return + + var/newText = "[the_list[1]]" // Treats any object/number as text also. + var/count + for (count = 2, count <= total, count++) + if (separator) + newText += separator + newText += "[the_list[count]]" + return newText + +/proc/dd_centertext(message, length) + var/new_message = message + var/size = length(message) + if (size == length) + return new_message + if (size > length) + return copytext(new_message, 1, length + 1) + + // Need to pad text to center it. + var/delta = length - size + if (delta == 1) + // Add one space after it. + return new_message + " " + + // Is this an odd number? If so, add extra space to front. + if (delta % 2) + new_message = " " + new_message + delta-- + + // Divide delta in 2, add those spaces to both ends. + delta = delta / 2 + var/spaces = "" + for (var/count = 1, count <= delta, count++) + spaces += " " + return spaces + new_message + spaces + +/proc/dd_limittext(message, length) + // Truncates text to limit if necessary. + var/size = length(message) + if (size <= length) + return message + else + return copytext(message, 1, length + 1) diff --git a/tools/ci/check_grep.sh b/tools/ci/check_grep.sh index 2c4df2c5042..7573398b364 100644 --- a/tools/ci/check_grep.sh +++ b/tools/ci/check_grep.sh @@ -52,6 +52,16 @@ if grep -P '^/*var/' code/**/*.dm; then echo "ERROR: Unmanaged global var use detected in code, please use the helpers." st=1 fi; +echo "Checking for space indentation" +if grep -P '(^ {2})|(^ [^ * ])|(^ +)' code/**/*.dm; then + echo "space indentation detected" + st=1 +fi; +echo "Checking for mixed indentation" +if grep -P '^\t+ [^ *]' code/**/*.dm; then + echo "mixed indentation detected" + st=1 +fi; nl=' ' nl=$'\n'